PARSER ERROR CODES

cvc-enumeration-valid: значення поза дозволеним набором

XSDHub · Перевірено 5 листопада 2026 · Як перевіряються посібники

Простий тип обмежений скінченним набором enumeration. Текст може відповідати базовому типу та все одно бути відсутнім у дозволеному переліку. Діагностика часто показує прийнятні альтернативи або прямо називає порушену фасету.

Що повідомлення означає буквально

Поле status дозволяє READY та SENT. HOLD є звичайним текстом, однак не належить до набору. Заміна на READY робить навчальний зразок допустимим. Для справжньої операції вибирайте правдивий стан: не підставляйте зручне значення лише тому, що воно проходить перевірку.

Три поширені причини для перевірки

  1. Відправник передає напис інтерфейсу замість узгодженого коду. Перекладена назва стану може відрізнятися від стабільного значення обміну.
  2. Виробник уже додав новий код, але одержувач користується попередньою схемою. Дозволений набір визначається фактично завантаженим випуском XSD.
  3. Відрізняються регістр або пробіли з урахуванням базового типу. Рядкове enumeration і тип на основі token не обов’язково однаково порівнюють оформлення.

Виправлення та повторна перевірка

Перегляньте всі xs:enumeration ефективного простого типу та перевірте його базу. Зіставте вихідне значення з кодовим списком одержувача і версією схеми. Виправте відображення в експортері, зберігаючи правильний зміст стану. Перевірте всі стани, які може створити це відображення, включно з перехідними та невідомими, а не лише один зручний успішний сценарій.

Коли причина у просторі імен

Переважно це проблема значення, адже обмеження вже знайдено й застосовано. Якщо перелік несподівано належить до іншого словника, перевірте targetNamespace та можливий xsi:type. Правильна прив’язка префікса не додає HOLD до набору READY і SENT; зміна URI без домовленості також не виправляє зміст даних.

Як зіставляти звіти рушіїв

Enumeration не завжди є побайтовим порівнянням рядків: важливі рівність значень типу та нормалізація пробілів. Тут використано xs:token, тому навколишні пробіли нормалізуються, але регістр зберігає значення. Не додавайте новий код лише локально, доки приймальна сторона не погодила його обробку.

Повні перевірені пари XML та XSD

Відкрийте потрібний варіант у редакторі й натисніть Validate XML. Завантаження прикладу не запускає перевірку та не надсилає документи; серверний режим потребує окремої згоди.

Журнали отримано 5 листопада 2026 року під час запуску саме тих файлів, які наведено нижче. Завантажити виміряні результати та хеші SHA-256.

Enumeration facet / cvc-enumeration-valid

Помилковий XML

<status>HOLD</status>
Повна помилкова XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="status">
    <xs:simpleType>
      <xs:restriction base="xs:token">
        <xs:enumeration value="READY"/>
        <xs:enumeration value="SENT"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>

Завантажити XML · Завантажити XSD

Відкрити помилкову пару →

Виправлений XML

<status>READY</status>
Повна виправлена XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="status">
    <xs:simpleType>
      <xs:restriction base="xs:token">
        <xs:enumeration value="READY"/>
        <xs:enumeration value="SENT"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>

Завантажити XML · Завантажити XSD

Відкрити виправлену пару →

Один зразок у різних рушіях

РушійПомилка: справжній звітВиправлено
Apache Xerces-J 2.12.2
Validation
cvc-enumeration-valid: Value 'HOLD' is not facet-valid with respect to enumeration '[READY, SENT]'. It must be a value from the enumeration.
cvc-type.3.1.3: The value 'HOLD' of element 'status' is not valid.
PASS
.NET 8.0.33 · System.Xml.Schema
Validation
The 'status' element is invalid - The value 'HOLD' is invalid according to its datatype 'Token' - The Enumeration constraint failed.
PASS (no warnings)
XSDHub libxml2/WASM 0.7.2
Validation
Element 'status': [facet 'enumeration'] The value 'HOLD' is not an element of the set {'READY', 'SENT'}.
PASS
XSDHub xmlschema 4.3.1 · XSD 1.0
Validation
value must be one of ['READY', 'SENT']
PASS
SaxonЗіставлення з EE: cvc-enumeration-valid позначає відповідне обмеження XSD. Запуск Saxon-EE та буквальне формулювання не заявлено: ліцензія EE недоступна. Saxon-HE не виконує XSD-валідацію.Не запускався

Зіставлення із Saxon та межі перевірки

Документація Saxonica відносить обробку XSD до Enterprise Edition. Рядки Saxon зіставляють обмеження та не видають вигадані повідомлення за результат. Чотири виміряні рядки стосуються Xerces, .NET, локального рушія редактора й другого рушія XSDHub.

Успішні виправлення стосуються цих самодостатніх зразків XSD 1.0. Вони не підтверджують виконання бізнес-правил для іншого документа чи версії схеми.

Продовжити діагностику

Усі коди помилок парсерів · Валідатор XML та XSD

Першоджерела