Проверка XML с помощью XSD… но все же допускает расширяемость
Может быть, это я, но кажется, что если у вас есть XSD
<?xml version="1.0" encoding="utf-8"?>
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="User">
<xs:complexType>
<xs:sequence>
<xs:element name="GivenName" />
<xs:element name="SurName" />
</xs:sequence>
<xs:attribute name="ID" type="xs:unsignedByte" use="required" />
</xs:complexType>
</xs:element>
</xs:schema>
который определяет схему для этого документа
<?xml version="1.0" encoding="utf-8" ?>
<User ID="1">
<GivenName></GivenName>
<SurName></SurName>
</User>
Проверка не удастся, если вы добавите другой элемент, скажем EmailAddress, и перепутаете порядок
<?xml version="1.0" encoding="utf-8" ?>
<User ID="1">
<SurName></SurName>
<EmailAddress></EmailAddress>
<GivenName></GivenName>
</User>
Я не хочу добавлять EmailAddress к документу и помечать его как необязательный.
Я просто хочу XSD, который подтверждает минимальные требования, которым должен соответствовать документ.
Есть ли способ сделать это?
РЕДАКТИРОВАТЬ:ниже указано, что вы можете использоватьxs:any
Внутриxs:sequence
чтобы разрешить больше элементов, к сожалению, вы должны поддерживать порядок элементов.
В качестве альтернативы я могу использоватьxs:all
который не обеспечивает порядок элементов, но, увы, не позволяет мне разместитьxs:any
внутри него.