Validando XML com XSDs ... mas ainda permite extensibilidade

Talvez seja eu, mas parece que se você tiver um 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>

que define o esquema para este documento

<?xml version="1.0" encoding="utf-8" ?>
<User ID="1">
    <GivenName></GivenName>
    <SurName></SurName>
</User>

Não seria possível validar se você adicionasse outro elemento, diga EmailAddress e misture o pedido

<?xml version="1.0" encoding="utf-8" ?>
<User ID="1">
    <SurName></SurName>
    <EmailAddress></EmailAddress>
    <GivenName></GivenName>
</User>

Não quero adicionar EmailAddress ao documento e ter a opção opcional.

Eu só quero um XSD que valide os requisitos mínimos que o documento deve atender.

Existe uma maneira de fazer isso?

EDITAR:

marc_s apontou abaixo que você pode usarxs:any dentro dexs:sequence para permitir mais elementos, infelizmente, você precisa manter a ordem dos elementos.

Como alternativa, eu posso usarxs:all que não impõe a ordem dos elementos, mas, infelizmente, não me permite colocarxs:any dentro dele.

questionAnswers(5)

yourAnswerToTheQuestion