# cvc-pattern-valid: порушення шаблону XSD

Значення не задовольняє обмеження xs:pattern свого простого типу. Регулярні вирази XML Schema мають власні правила, тому успіх JavaScript-тестера не замінює запуск XSD-валідатора з тим самим оголошенням і базовим типом.

Наш артикул потребує двох великих літер, дефіса й трьох цифр. ab204 порушує регістр і не має роздільника; BK-204 відповідає шаблону. Виправлена пара змінює лише текст, залишаючи схему попередньою. Додаткове cvc-type.3.1.3 Xerces описує той самий результат для цілого елемента.

1. Не збігаються регістр, роздільники або класи символів. Схожий знак Unicode може відрізнятися від буквального дефіса в контракті.
2. До XSD скопійовано вираз іншої мови. Екранування та підтримувані конструкції мають відповідати XML Schema, а не правилам браузера.
3. Обробка пробілів змінює текст перед зіставленням. Типи на основі string та token можуть по-різному нормалізувати навколишні й повторні пробіли.

Знайдіть restriction і прочитайте pattern разом із базовим типом та успадкованими обмеженнями. Порівняйте відоме правильне значення з помилковим посимвольно. Відтворіть перевірку в XSDHub і внесіть мінімальну правку, що зберігає зміст артикула. Перевірте сусідні випадки: малу літеру, відсутню цифру та інший роздільник, аби нормалізація виробника не приймала зайві форми.

Зазвичай помилка шаблону означає, що оголошення знайдено й перевірка значення вже працює. Namespace стає важливим, коли чужий елемент або xsi:type обирає несподіване обмеження. Спочатку встановіть джерело pattern: зміна xmlns сама не перетворює малі літери на великі та не вставляє потрібний дефіс.

Видалення pattern або заміна на вираз для будь-якого тексту послаблює домовленість з одержувачем. Якщо формат артикула справді змінився, проведіть погоджену зміну схеми та перевірте виробників обох версій. Не покладайтеся на інший regex-рушій лише тому, що його інтерфейс показав успішне зіставлення.


## Pattern facet / cvc-pattern-valid — Broken

```xml
<sku>ab204</sku>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="sku">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="[A-Z]{2}-[0-9]{3}"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>
```

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

## Pattern facet / cvc-pattern-valid — Corrected

```xml
<sku>BK-204</sku>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="sku">
    <xs:simpleType>
      <xs:restriction base="xs:string">
        <xs:pattern value="[A-Z]{2}-[0-9]{3}"/>
      </xs:restriction>
    </xs:simpleType>
  </xs:element>
</xs:schema>
```

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

### Apache Xerces-J 2.12.2

```text
cvc-pattern-valid: Value 'ab204' is not facet-valid with respect to pattern '[A-Z]{2}-[0-9]{3}' for type '#AnonType_sku'.
cvc-type.3.1.3: The value 'ab204' of element 'sku' is not valid.
```

Corrected: PASS.

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

```text
The 'sku' element is invalid - The value 'ab204' is invalid according to its datatype 'String' - The Pattern constraint failed.
```

Corrected: PASS.

### XSDHub libxml2/WASM 0.7.2

```text
Element 'sku': [facet 'pattern'] The value 'ab204' is not accepted by the pattern '[A-Z]{2}-[0-9]{3}'.
```

Corrected: PASS.

### XSDHub xmlschema 4.3.1 · XSD 1.0

```text
value doesn't match any pattern of ['[A-Z]{2}-[0-9]{3}']
```

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)
