Эти сообщения Xerces могут описывать одно неправильное значение на разных уровнях. cvc-datatype-valid.1.2.1 указывает на недопустимое лексическое представление атомарного типа, а cvc-type.3.1.3 сообщает о невалидном значении содержащего его элемента.
Что сообщение означает буквально
Текст two нельзя интерпретировать как xs:integer. Для count Xerces выдаёт и ошибку типа данных, и общее сообщение элемента; другие движки могут ограничиться одной диагностикой. Замена two на 2 исправляет представление числа без изменения объявления count и без ослабления типа до строки.
Три частые причины для проверки
В машинное поле попало человекочитаемое оформление. Слова, разделители тысяч и локальная десятичная пунктуация могут нарушать правила выбранного XSD-типа.
Для числа или даты отправлен пустой либо состоящий из пробелов элемент. Наличие тега не создаёт допустимое типизированное значение.
Производитель и получатель используют разные контракты типов. Обычная строка с идентификатором может оказаться несовместимой с типом из выбранной версии схемы.
Исправление и повторная проверка
Сначала прочитайте наиболее раннюю диагностику типа данных или фасеты, затем общее сообщение значения. Извлеките точный текст после XML-раскрытия сущностей и обработки пробелов. Сравните его с простым типом и базовым определением. Исправляйте сериализацию поля в источнике; замена xs:integer на xs:string отключает проверку чисел вместо ремонта данных.
Когда причина в пространстве имён
Здесь валидатор уже выбрал правильное объявление count, поэтому причина не в отсутствующем namespace. Пространства имён важны, если xsi:type выбирает иной тип или загружен другой словарь. Если названный тип неожиданен, сначала проследите его выбор, а уже потом преобразуйте значение.
Как сопоставлять отчёты движков
Два сообщения Xerces не означают наличие двух разных испорченных полей. В журнале оба относятся к count и исчезают после одной правки текста. Если базовый тип уже принимает значение, проверьте ограничения pattern, enumeration и length: принудительное числовое преобразование не решает каждый случай cvc-type.3.1.3.
Полные проверенные пары XML и XSD
Откройте нужный вариант в редакторе и нажмите Validate XML. Загрузка образца не запускает проверку и не отправляет документы; серверный режим требует отдельного согласия.
cvc-datatype-valid.1.2.1: 'two' is not a valid value for 'integer'.
cvc-type.3.1.3: The value 'two' of element 'count' is not valid.
PASS
.NET 8.0.33 · System.Xml.Schema Validation
The 'count' element is invalid - The value 'two' is invalid according to its datatype 'http://www.w3.org/2001/XMLSchema:integer' - The string 'two' is not a valid Integer value.
PASS (no warnings)
XSDHub libxml2/WASM 0.7.2 Validation
Element 'count': 'two' is not a valid value of the atomic type 'xs:integer'.
PASS
XSDHub xmlschema 4.3.1 · XSD 1.0 Validation
invalid literal for int() with base 10: 'two'
PASS
Saxon
Сопоставление с EE: cvc-datatype-valid.1.2.1, cvc-type.3.1.3 обозначает соответствующее ограничение XSD. Запуск Saxon-EE и буквальная формулировка не заявлены: лицензия EE недоступна. Saxon-HE не выполняет XSD-валидацию.
Успешные исправления относятся к этим самодостаточным образцам XSD 1.0. Они не подтверждают выполнение бизнес-правил для другого документа или выпуска схемы.