minOccurs і maxOccurs: кількість елементів у XSD
XSDHub · 4 листопада 2026 року
Що означає проблема
Атрибути minOccurs і maxOccurs задають нижню та верхню межі повторення частинки моделі вмісту. Якщо обидва пропущено, типовим значенням є один. Тому елемент без явних обмежень не стає автоматично необов’язковим або повторюваним. Для необов’язкового елемента задають minOccurs="0", а для необмеженої верхньої межі — maxOccurs="unbounded".
З чого почати перевірку
Наведена схема списку дозволяє від одного до двох item. Коректний документ містить два елементи, а помилковий — три. Третій перевищує верхню межу, хоча назва та текст кожного елемента дозволені. Видалення зайвого item у навчальному прикладі виправляє структуру; у реальних даних спершу з’ясуйте, чи не втрачається потрібна інформація.
Як працює приклад
Нульова нижня межа стосується відсутності елемента, а не його порожнього значення. Порожній <item/> усе одно є одним входженням. Так само xsi:nil, якщо він дозволений оголошенням nillable, не прибирає елемент із підрахунку. Обмеження довжини тексту та допустимих значень задаються іншими засобами схеми й перевіряються окремо.
На що звернути увагу
Повторення групи та повторення поля всередині неї мають різний зміст. Два входження sequence з полями code і amount утворюють дві пари в установленому порядку. Це не те саме, що всі code поспіль, а за ними всі amount. Під час діагностики знайдіть саме ту частинку, до якої належить обмеження, включно з батьківськими групами.
Як застосувати виправлення
Додатково спробуйте список з одним item і порожній list: перший має пройти, другий порушить нижню межу. Перевірка граничних випадків швидко виявляє непорозуміння між автором схеми й генератором. Не збільшуйте maxOccurs у копії XSD заради прийняття файла одержувачем. Узгодьте потрібну модель даних та використовуйте оприлюднену версію схеми, що відповідає вашому обміну.
Перевірте приклади самостійно
Відкрити безкоштовний інструмент. Порівняйте помилковий і виправлений документи. Вставте повну XSD у поле схеми.
Повна навчальна схема XSD 1.0
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"><xs:element name="list"><xs:complexType><xs:sequence><xs:element name="item" type="xs:string" minOccurs="1" maxOccurs="2"/></xs:sequence></xs:complexType></xs:element></xs:schema>XML з помилкою — очікується відмова
<list><item>A</item><item>B</item><item>C</item></list>Виправлений XML — очікується успіх
<list><item>A</item><item>B</item></list>