PARSER ERROR CODES

cvc-enumeration-valid: значение вне допустимого набора

XSDHub · Проверено 5 ноября 2026 · Как проверяются руководства

Простой тип ограничен конечным набором значений enumeration. Текст может быть корректен для базового типа и всё же отсутствовать в разрешённом списке. Сообщение часто показывает допустимые альтернативы либо прямо называет нарушенную фасету.

Что сообщение означает буквально

Поле status допускает READY и SENT. HOLD является нормальным текстом, но не входит в этот набор. Замена на READY делает учебный образец допустимым. В реальном процессе выбирайте правдивый статус операции: удобное проходящее значение нельзя подставлять вместо неизвестного без разбора смысла.

Три частые причины для проверки

  1. Отправитель передаёт подпись интерфейса вместо согласованного кода. Переведённое название статуса может отличаться от стабильного значения обмена.
  2. Новый код добавлен у производителя, но получатель применяет старый выпуск XSD. При проверке действует список из фактически загруженной схемы.
  3. Различаются регистр или пробелы с учётом правил базового типа. Строковое перечисление и тип на основе 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

Первичные источники