PARSER ERROR CODES

cvc-id.1 / cvc-id.2: порушення зв’язків ідентифікаторів

XSDHub · Перевірено 5 листопада 2026 · Як перевіряються посібники

Значення xs:ID позначає один об’єкт документа, а xs:IDREF посилається на такий ідентифікатор. Xerces застосовує cvc-id.1 до відсутньої цілі та cvc-id.2 до повторного ID. Перевірка залежить від зв’язків у цілому документі, а не лише від форми окремих значень.

Що повідомлення означає буквально

Перший зразок містить A1, але посилається на відсутній A2. Заміна посилання на A1 відновлює зв’язок. У другому два записи мають A1; призначення другому A2 повертає унікальність. Під час зміни справжнього ID також оновіть усі посилання, які мають позначати саме цей об’єкт.

Три поширені причини для перевірки

  1. Цільовий запис відфільтровано, перенесено до іншого документа або перейменовано без оновлення посилань. IDREF перевіряє поточний XML, а не віддалену базу.
  2. Генератор призначив однакові ID різним записам. Об’єднання фрагментів може утворити колізії, хоча кожен початковий фрагмент окремо був правильним.
  3. Поля не типізовано як xs:ID і xs:IDREF. Звичайний рядковий атрибут на ім’я id автоматично не отримує семантики схемної ідентичності.

Виправлення та повторна перевірка

Зберіть усі типізовані ID та посилання повного документа, потім окремо перевірте унікальність і відсутні цілі. Простежте початкові записи кожної колізії перед повторною генерацією значень. Запускайте перевірку після додавання всіх цілей: посилання вперед допустиме, тож поява посилання раніше за ціль сама по собі не доводить порушення.

Коли причина у просторі імен

Значення ID тут є ідентифікаторами, а не кваліфікованими назвами елементів. Зміна xmlns не створює A2 і не робить два A1 різними. Простори імен важливі, якщо кваліфікація заважає атрибуту отримати задуманий тип. Переконайтеся, що оголошення ідентичності справді застосоване до потрібного поля.

Як зіставляти звіти рушіїв

Виміряний libxml2/WASM пропускає відсутню ціль, тоді як Xerces, .NET і другий рушій XSDHub її відхиляють. Кнопки IDREF вибирають другий рушій із непозначеним дозволом надсилання. Завантаження нічого не відправляє: для запуску позначте згоду та натисніть Validate XML. Повторний ID локальна перевірка виявляє, як показано окремо.

Повні перевірені пари XML та XSD

Відкрийте потрібний варіант у редакторі й натисніть Validate XML. Завантаження прикладу не запускає перевірку та не надсилає документи; серверний режим потребує окремої згоди.

Журнали отримано 5 листопада 2026 року під час запуску саме тих файлів, які наведено нижче. Завантажити виміряні результати та хеші SHA-256.

Unresolved IDREF / cvc-id.1

Помилковий XML

<catalog>
  <item id="A1"/>
  <link ref="A2"/>
</catalog>
Повна помилкова XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="catalog">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="item" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="id" type="xs:ID" use="required"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="link" minOccurs="0">
          <xs:complexType>
            <xs:attribute name="ref" type="xs:IDREF" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Завантажити XML · Завантажити XSD

Відкрити помилкову пару →

Виправлений XML

<catalog>
  <item id="A1"/>
  <link ref="A1"/>
</catalog>
Повна виправлена XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="catalog">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="item" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="id" type="xs:ID" use="required"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="link" minOccurs="0">
          <xs:complexType>
            <xs:attribute name="ref" type="xs:IDREF" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Завантажити XML · Завантажити XSD

Відкрити виправлену пару →

Один зразок у різних рушіях

РушійПомилка: справжній звітВиправлено
Apache Xerces-J 2.12.2
Validation
cvc-id.1: There is no ID/IDREF binding for IDREF 'A2'.
PASS
.NET 8.0.33 · System.Xml.Schema
Validation
Reference to undeclared ID is 'A2'.
PASS (no warnings)
XSDHub libxml2/WASM 0.7.2
Validation
PASS: no validation diagnostic.
PASS
XSDHub xmlschema 4.3.1 · XSD 1.0
Validation
IDREF 'A2' not found in XML document
PASS
SaxonЗіставлення з EE: cvc-id.1 позначає відповідне обмеження XSD. Запуск Saxon-EE та буквальне формулювання не заявлено: ліцензія EE недоступна. Saxon-HE не виконує XSD-валідацію.Не запускався

Duplicate ID / cvc-id.2

Помилковий XML

<catalog>
  <item id="A1"/>
  <item id="A1"/>
</catalog>
Повна помилкова XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="catalog">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="item" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="id" type="xs:ID" use="required"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="link" minOccurs="0">
          <xs:complexType>
            <xs:attribute name="ref" type="xs:IDREF" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Завантажити XML · Завантажити XSD

Відкрити помилкову пару →

Виправлений XML

<catalog>
  <item id="A1"/>
  <item id="A2"/>
</catalog>
Повна виправлена XSD
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="catalog">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="item" maxOccurs="unbounded">
          <xs:complexType>
            <xs:attribute name="id" type="xs:ID" use="required"/>
          </xs:complexType>
        </xs:element>
        <xs:element name="link" minOccurs="0">
          <xs:complexType>
            <xs:attribute name="ref" type="xs:IDREF" use="required"/>
          </xs:complexType>
        </xs:element>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>

Завантажити XML · Завантажити XSD

Відкрити виправлену пару →

Один зразок у різних рушіях

РушійПомилка: справжній звітВиправлено
Apache Xerces-J 2.12.2
Validation
cvc-id.2: There are multiple occurrences of ID value 'A1'.
cvc-attribute.3: The value 'A1' of attribute 'id' on element 'item' is not valid with respect to its type, 'ID'.
PASS
.NET 8.0.33 · System.Xml.Schema
Validation
'A1' is already used as an ID.
PASS (no warnings)
XSDHub libxml2/WASM 0.7.2
Validation
Element 'item', attribute 'id': 'A1' is not a valid value of the atomic type 'xs:ID'.
PASS
XSDHub xmlschema 4.3.1 · XSD 1.0
Validation
attribute id='A1': duplicated xs:ID value 'A1'
PASS
SaxonЗіставлення з EE: cvc-id.2 позначає відповідне обмеження XSD. Запуск Saxon-EE та буквальне формулювання не заявлено: ліцензія EE недоступна. Saxon-HE не виконує XSD-валідацію.Не запускався

Зіставлення із Saxon та межі перевірки

Документація Saxonica відносить обробку XSD до Enterprise Edition. Рядки Saxon зіставляють обмеження та не видають вигадані повідомлення за результат. Чотири виміряні рядки стосуються Xerces, .NET, локального рушія редактора й другого рушія XSDHub.

Успішні виправлення стосуються цих самодостатніх зразків XSD 1.0. Вони не підтверджують виконання бізнес-правил для іншого документа чи версії схеми.

Продовжити діагностику

Усі коди помилок парсерів · Валідатор XML та XSD

Першоджерела