Проверка 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 внутри него.

Ответы на вопрос(5)

Ваш ответ на вопрос