Я создаю XML-схемы с использованием eclipse, и у меня есть небольшая проблема с проверкой.
У меня есть две схемы и файл xml.
Основной.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Main"
xmlns:tns="http://www.example.org/Main"
elementFormDefault="qualified">
<complexType name="mainType">
<sequence>
<any namespace="##other" processContents="lax" />
</sequence>
</complexType>
<element name="main" type="tns:mainType" />
</schema
Sub.xsd:
<?xml version="1.0" encoding="UTF-8"?>
<schema xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.example.org/Sub"
xmlns:tns="http://www.example.org/Sub"
elementFormDefault="qualified">
<complexType name="subType">
<attribute name="name" type="string"
use="required" />
</complexType>
<element name="sub" type="tns:subType" />
</schema>
Образец.xml:
<?xml version="1.0" encoding="UTF-8"?>
<tns:main xmlns:tns="http://www.example.org/Main"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:sub="http://www.example.org/Sub"
xsi:schemaLocation="
http://www.example.org/Main Main.xsd
http://www.example.org/Sub Sub.xsd">
<sub:sub name="test" />
</tns:main>
Если я изменю атрибут имени подэлемента, проверка завершится неудачно, как и ожидалось:
Но если я изменю имя элемента подэлемента, проверка пройдет успешно:
Я ожидал, что эта проверка тоже потерпит неудачу. Что это не так?