# cvc-elt.1.a: не найдено объявление элемента

Валидатор не может связать корневой элемент документа с глобальным объявлением в загруженном наборе схем. До проверки дочернего содержимого он ещё не дошёл. Начните с корня и выбранного входного XSD, а не с редактирования всех потомков.

Схема объявляет stock в urn:example:stock, тогда как ошибочный XML содержит stock без пространства имён. Добавление нужного default namespace меняет полные имена stock и его ребёнка sku. Оба становятся соответствующими квалифицированным объявлениям этой схемы, без изменения самих данных.

1. URI корня отличается от targetNamespace или namespace вообще отсутствует. Регистр, завершающий слеш и другие символы идентификатора имеют значение.
2. Выбран неправильный входной файл схемы. XSD с переиспользуемыми типами может не содержать глобального объявления корня приложения.
3. Изменились имя корня либо версия словаря. Объявление похожего элемента из другого выпуска не доказывает совместимость входящего документа.

Запишите корень в виде {URI}local-name и сравните с xs:element верхнего уровня в выбранном проекте. Убедитесь, что приложение действительно передаёт эту схему валидатору. Для многофайлового контракта загрузите все зависимости и выберите настоящий входной XSD. После исправления корня повторно проверьте потомков: elementFormDefault может выявить отдельные расхождения квалификации.

Этот образец непосредственно показывает namespace-проблему: единственное изменение XML добавляет xmlns="urn:example:stock". Объявление xmlns:xsi или подсказка schemaLocation сами по себе не перемещают stock в нужный URI. Другая запись префикса с прежней правильной привязкой, наоборот, сохраняет идентичность элемента.

В измеренной конфигурации .NET с ReportValidationWarnings этот документ даёт предупреждения о stock и sku без событий ошибки. Отсутствие ошибки здесь не доказывает покрытие схемой. Xerces, libxml2 и второй движок XSDHub отвергают тот же корень; отдельный strict-wildcard-пример объясняет формулировку is not declared.


## Undeclared root / cvc-elt.1.a — Broken

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

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:example:stock" elementFormDefault="qualified">
  <xs:element name="stock">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="sku" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
```

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

## Undeclared root / cvc-elt.1.a — Corrected

```xml
<stock xmlns="urn:example:stock">
  <sku>BK-204</sku>
</stock>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="urn:example:stock" elementFormDefault="qualified">
  <xs:element name="stock">
    <xs:complexType>
      <xs:sequence>
        <xs:element name="sku" type="xs:string"/>
      </xs:sequence>
    </xs:complexType>
  </xs:element>
</xs:schema>
```

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

### Apache Xerces-J 2.12.2

```text
cvc-elt.1.a: Cannot find the declaration of element 'stock'.
```

Corrected: PASS.

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

```text
No error event; warnings:
Could not find schema information for the element 'stock'.
Could not find schema information for the element 'sku'.
```

Corrected: PASS.

### XSDHub libxml2/WASM 0.7.2

```text
Element 'stock': No matching global declaration available for the validation root.
```

Corrected: PASS.

### XSDHub xmlschema 4.3.1 · XSD 1.0

```text
'stock' is not an element of the schema
```

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)
