# cvc-type.3.1.3 / cvc-datatype-valid.1.2.1: неверное значение

Эти сообщения Xerces могут описывать одно неправильное значение на разных уровнях. cvc-datatype-valid.1.2.1 указывает на недопустимое лексическое представление атомарного типа, а cvc-type.3.1.3 сообщает о невалидном значении содержащего его элемента.

Текст two нельзя интерпретировать как xs:integer. Для count Xerces выдаёт и ошибку типа данных, и общее сообщение элемента; другие движки могут ограничиться одной диагностикой. Замена two на 2 исправляет представление числа без изменения объявления count и без ослабления типа до строки.

1. В машинное поле попало человекочитаемое оформление. Слова, разделители тысяч и локальная десятичная пунктуация могут нарушать правила выбранного XSD-типа.
2. Для числа или даты отправлен пустой либо состоящий из пробелов элемент. Наличие тега не создаёт допустимое типизированное значение.
3. Производитель и получатель используют разные контракты типов. Обычная строка с идентификатором может оказаться несовместимой с типом из выбранной версии схемы.

Сначала прочитайте наиболее раннюю диагностику типа данных или фасеты, затем общее сообщение значения. Извлеките точный текст после XML-раскрытия сущностей и обработки пробелов. Сравните его с простым типом и базовым определением. Исправляйте сериализацию поля в источнике; замена xs:integer на xs:string отключает проверку чисел вместо ремонта данных.

Здесь валидатор уже выбрал правильное объявление count, поэтому причина не в отсутствующем namespace. Пространства имён важны, если xsi:type выбирает иной тип или загружен другой словарь. Если названный тип неожиданен, сначала проследите его выбор, а уже потом преобразуйте значение.

Два сообщения Xerces не означают наличие двух разных испорченных полей. В журнале оба относятся к count и исчезают после одной правки текста. Если базовый тип уже принимает значение, проверьте ограничения pattern, enumeration и length: принудительное числовое преобразование не решает каждый случай cvc-type.3.1.3.


## Invalid datatype / cvc-type.3.1.3 — Broken

```xml
<count>two</count>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="count" type="xs:integer"/>
</xs:schema>
```

[Open broken pair](https://xsdhub.com/?example=parser-datatype&variant=bad#workbench)

## Invalid datatype / cvc-type.3.1.3 — Corrected

```xml
<count>2</count>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="count" type="xs:integer"/>
</xs:schema>
```

[Open corrected pair](https://xsdhub.com/?example=parser-datatype&variant=good#workbench)

### Apache Xerces-J 2.12.2

```text
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.
```

Corrected: PASS.

### .NET 8.0.33 · System.Xml.Schema

```text
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.
```

Corrected: PASS.

### XSDHub libxml2/WASM 0.7.2

```text
Element 'count': 'two' is not a valid value of the atomic type 'xs:integer'.
```

Corrected: PASS.

### XSDHub xmlschema 4.3.1 · XSD 1.0

```text
invalid literal for int() with base 10: 'two'
```

Corrected: PASS.

Saxon EE was not available; no measured Saxon wording is claimed.

[All parser codes](https://xsdhub.com/learn#parser-error-codes)
[Download engine evidence](https://xsdhub.com/parser-error-examples/engine-evidence.json)
