КатегорияСхемна грешка (XSD)
Кога се хващаПри XSD валидация, при затварящия таг на непълния елемент
Типичен сигналcvc-complex-type.2.4.b: The content of element … is not complete
Какво значи
За всеки съставен елемент схемата определя не само реда на децата, но и минималния им брой (minOccurs). Когато задължително дете липсва изцяло и родителят „свършва“ преждевременно, валидаторът докладва, че съдържанието не е пълно:
Типичните случаи в SAF-T: Invoice без нито един InvoiceLine, или Transaction без TransactionLine. Документ без редове не носи никаква информация — затова схемата изисква поне един ред. Разликата с „this element is not expected“: там валидаторът среща неочакван елемент по средата; тук стига до края на родителя, без да е срещнал очакваното.
Защо се случва
- Филтър на експорта е отрязал редовете, но не и заглавната част. Софтуерът записва „шапката“ на документа от една таблица, а редовете — от друга. Ако филтърът по период/тип засегне само редовете, остават празни обвивки.
- Записи с нулеви суми се прескачат. Някои експорти пропускат редове с нулева стойност „за икономия“. Ако всички редове на документа са нулеви, той остава празен — а схемата изисква поне един ред, включително с нулеви стойности, щом документът присъства.
- Прекъснат или частичен експорт. Генерирането е спряло по средата (грешка, недостиг на памет, timeout) и последният отворен елемент е останал без съдържание — често това личи и по размера на файла.
- Данните реално липсват. Документът е осчетоводен „на общо основание“ без аналитични редове в системата-източник. Тогава проблемът не е в експорта, а в данните преди него.
Как се поправя
- От съобщението вземете елемента-родител и очакваното дете, намерете реда във файла и вижте какво реално има вътре.
- Проверете същия документ в системата-източник: има ли редове там? Ако има — проблемът е във филтрите или логиката на експорта. Ако няма — данните трябва да се допълнят преди експорт.
- Прегледайте настройките на експорта за опции от типа „пропускай нулеви редове/празни секции“ и ги изключете за задължителните структури. Схемата иска стойностите да присъстват изрично — включително празни или нулеви, там където ги изисква.
- Регенерирайте целия файл наведнъж и валидирайте пак. Не „дозаписвайте“ липсващото на ръка — следващият месец грешката ще се върне.
Пример
<Transaction>
<TransactionID>2026-0117</TransactionID>
<TransactionDate>2026-01-15</TransactionDate>
</Transaction>
<!-- cvc-complex-type.2.4.b: The content
of element 'Transaction' is not
complete. One of '{TransactionLine}'
is expected. -->
<Transaction>
<TransactionID>2026-0117</TransactionID>
<TransactionDate>2026-01-15</TransactionDate>
<TransactionLine>
<RecordID>1</RecordID>
<AccountID>411</AccountID>
...
</TransactionLine>
</Transaction>
Пуснете файла през безплатната проверка: всяка грешка идва с ред, обяснение и съвет. Проверете файла — безплатно, в браузъра.