Следующий XML с XSD вызывает ошибку проверки:
Элемент 'choices' в пространстве имен
'http://www.test.it'
имеет недопустимый дочерний элемент 'choice' в пространстве имен'http://www.test.it'
. Ожидается список возможных элементов: «выбор».
Это choices.xml
:
<?xml version="1.0" encoding="utf-8"?>
<choices xmlns="http://www.test.it"
xmlns:xsd="http://www.w3.org/2001/XMLSchema-instance"
xsd:schemaLocation="http://www.test.it ./schema/choices.xsd">
<choice>yes</choice>
</choices>
Это schema/choices.xsd
:
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns="http://www.test.it"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://www.test.it">
<xs:simpleType name="yes_or_no_t">
<xs:restriction base="xs:string">
<xs:enumeration value="yes" />
<xs:enumeration value="no" />
</xs:restriction>
</xs:simpleType>
<xs:element name="choices" >
<xs:complexType>
<xs:all>
<xs:element name="choice" type="yes_or_no_t" />
</xs:all>
</xs:complexType>
</xs:element>
</xs:schema>
Я должен сохранить xmlns="http://www.test.it"
в XML. XML и XSD предназначены для локальных файлов (не публикуются по сети). Я бы предпочел хранить XSD в подкаталоге schema
.