# cvc-minLength-valid / cvc-maxLength-valid: границы длины

Связанные фасеты ограничивают минимальную и максимальную длину значения простого типа. Диагностику удобно рассматривать вместе: сначала нужно определить, что именно считает выбранный тип и на каком этапе обработки применяется граница.

Минимальный образец требует три символа: AB содержит два, а ABC содержит три. Максимальный допускает пять: ABCDEF содержит шесть, ABCDE — пять. У каждой пары собственная полная схема; нижняя и верхняя границы проверяются раздельно, чтобы одна ошибка не скрывала другую.

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

Откройте restriction, установите базовый тип и используемые им единицы длины. Проверьте унаследованные ограничения наряду с непосредственными. Запустите значения на границе, ниже и выше неё через принимающий валидатор. Исправляйте исходное поле или его отображение в контракт; произвольное дополнение идентификатора символами только ради прохождения проверки может изменить его смысл.

Оба образца уже находят правильное объявление code. Добавление namespace не меняет число символов. Пространства имён становятся подозрительными, когда неожиданная версия схемы или другой тип накладывает чужие границы. Сначала установите эффективное определение, затем сравнивайте способ подсчёта с интерфейсом приложения.

Короткие исправленные строки демонстрируют поведение границ и не рекомендуют обрезать настоящие данные. Для идентификаторов усечение создаёт риск совпадений, а для названий заполнение портит содержание. Сохраните оригинал и выясните причину ограничения. Оба журнала ниже оставляют формулировку длины именно такой, какой её выдал соответствующий движок.


## Minimum length / cvc-minLength-valid — Broken

```xml
<code>AB</code>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="3"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>
```

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

## Minimum length / cvc-minLength-valid — Corrected

```xml
<code>ABC</code>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:minLength value="3"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>
```

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

### Apache Xerces-J 2.12.2

```text
cvc-minLength-valid: Value 'AB' with length = '2' is not facet-valid with respect to minLength '3' for type '#AnonType_code'.
cvc-type.3.1.3: The value 'AB' of element 'code' is not valid.
```

Corrected: PASS.

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

```text
The 'code' element is invalid - The value 'AB' is invalid according to its datatype 'String' - The actual length is less than the MinLength value.
```

Corrected: PASS.

### XSDHub libxml2/WASM 0.7.2

```text
Element 'code': [facet 'minLength'] The value has a length of '2'; this underruns the allowed minimum length of '3'.
```

Corrected: PASS.

### XSDHub xmlschema 4.3.1 · XSD 1.0

```text
value length cannot be lesser than 3
```

Corrected: PASS.

## Maximum length / cvc-maxLength-valid — Broken

```xml
<code>ABCDEF</code>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="5"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>
```

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

## Maximum length / cvc-maxLength-valid — Corrected

```xml
<code>ABCDE</code>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="code">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:maxLength value="5"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>
```

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

### Apache Xerces-J 2.12.2

```text
cvc-maxLength-valid: Value 'ABCDEF' with length = '6' is not facet-valid with respect to maxLength '5' for type '#AnonType_code'.
cvc-type.3.1.3: The value 'ABCDEF' of element 'code' is not valid.
```

Corrected: PASS.

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

```text
The 'code' element is invalid - The value 'ABCDEF' is invalid according to its datatype 'String' - The actual length is greater than the MaxLength value.
```

Corrected: PASS.

### XSDHub libxml2/WASM 0.7.2

```text
Element 'code': [facet 'maxLength'] The value has a length of '6'; this exceeds the allowed maximum length of '5'.
```

Corrected: PASS.

### XSDHub xmlschema 4.3.1 · XSD 1.0

```text
value length cannot be greater than 5
```

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)
