PARSER ERROR CODES

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

XSDHub · Проверено 5 ноября 2026 · Как проверяются руководства

Значение xs:ID обозначает один объект документа, а xs:IDREF ссылается на такой идентификатор. Xerces использует cvc-id.1 для отсутствующей цели и cvc-id.2 для повторного ID. Проверка зависит от отношений во всём XML, а не только от формы отдельных значений.

Что сообщение означает буквально

В первом примере существует A1, но ссылка указывает на отсутствующий A2. Замена ссылки на A1 восстанавливает связь. Во втором две записи получают A1; назначение второй записи A2 возвращает уникальность. При изменении настоящего ID необходимо также обновить все ссылки, которые должны обозначать именно эту запись.

Три частые причины для проверки

  1. Целевая запись отфильтрована, перенесена в другой документ или переименована без обновления ссылок. IDREF проверяет текущий XML, а не удалённую базу приложения.
  2. Генератор выдал одинаковые ID разным объектам. При объединении фрагментов могут появиться коллизии, хотя каждый исходный фрагмент был корректен отдельно.
  3. Поля не типизированы как xs:ID и xs:IDREF. Строковый атрибут с названием id не получает свойства схемной идентичности автоматически.

Исправление и повторная проверка

Соберите все типизированные ID и ссылки из полного документа, затем проверьте уникальность и отсутствующие цели отдельно. Установите исходные записи каждой коллизии перед повторной генерацией значений. Запускайте проверку после добавления всех целей: ссылка вперёд допустима, поэтому её появление раньше целевого элемента само по себе не является ошибкой.

Когда причина в пространстве имён

Значения ID здесь являются идентификаторами, а не квалифицированными именами элементов. Изменение xmlns не создаёт A2 и не делает два A1 различными. Namespace важен, когда из-за квалификации атрибут не получает задуманный тип; сначала убедитесь, что объявление идентичности действительно применяется.

Как сопоставлять отчёты движков

Измеренный 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

Первичные источники