# src-resolve: не удаётся разрешить компонент схемы

Это диагностика компиляции XSD: схема ссылается на тип, элемент или группу, которую валидатор не может найти. Значения экземпляра XML не исправляют отсутствующее определение в наборе компонентов схемы.

Элемент amount ссылается на MoneyTypo, но в той же схеме объявлен Money. Исправленная пара оставляет XML со значением 12.50 неизменным и правит только ссылку на тип в XSD. Так можно отделить ошибку символа схемы от недопустимого представления десятичной суммы.

1. В QName опечатка либо выбрано определение другого рода. Именованный элемент не заменяет именованный простой тип только из-за совпадения локальных имён.
2. Префикс ссылки связан с неправильным URI или отсутствует необходимый import. QName-атрибут должен указывать на namespace, где объявлен нужный компонент.
3. Не загружена зависимость либо выбран неверный входной XSD. Синтаксически правильная цепочка include/import не доказывает доступность всех её файлов.

Сначала скомпилируйте схему и найдите неразрешённый QName в первой диагностике src-resolve. Ищите объявление нужного вида и сравните URI с локальным именем. Для общего targetNamespace изучите include, для другого пространства — import и его namespace. Загружайте зависимости полным локальным проектом, затем переходите к проверке экземпляра XML.

В нашем случае причина — опечатка, а не разные URI: Money и исправленная ссылка принадлежат компонентам без namespace. Для схем с targetNamespace обычно применяют связанный с ним префикс в type или ref. Само объявление префикса даёт привязку QName, но не импортирует определения чужого словаря.

Кнопка исправленного образца загружает другую XSD вместе с XML. Сравнение только видимой суммы пропускает настоящий ремонт. Не создавайте пустой тип-заглушку лишь для удовлетворения поиска: это может незаметно убрать денежные ограничения и оставить задуманные определения незагруженными. После успешной компиляции обязательно проверьте само значение.


## Unknown schema type / src-resolve — Broken

```xml
<amount>12.50</amount>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="amount" type="MoneyTypo"/>
  <xs:simpleType name="Money">
    <xs:restriction base="xs:decimal"/>
  </xs:simpleType>
</xs:schema>
```

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

## Unknown schema type / src-resolve — Corrected

```xml
<amount>12.50</amount>
```

```xml
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
  <xs:element name="amount" type="Money"/>
  <xs:simpleType name="Money">
    <xs:restriction base="xs:decimal"/>
  </xs:simpleType>
</xs:schema>
```

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

### Apache Xerces-J 2.12.2

```text
src-resolve: Cannot resolve the name 'MoneyTypo' to a(n) 'type definition' component.
```

Corrected: PASS.

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

```text
Type 'MoneyTypo' is not declared.
```

Corrected: PASS.

### XSDHub libxml2/WASM 0.7.2

```text
element decl. 'amount', attribute 'type': The QName value 'MoneyTypo' does not resolve to a(n) type definition.
```

Corrected: PASS.

### XSDHub xmlschema 4.3.1 · XSD 1.0

```text
unknown type 'MoneyTypo':

Schema component:

  <xs:element xmlns:xs="http://www.w3.org/2001/XMLSchema" name="amount" type="MoneyTypo" />

Path: /xs:schema/xs:element

Schema URL: schema.xsd

```

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)
