# 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)
