Validando XML con XSD ... pero aún permitiendo la extensibilidad
Tal vez soy yo, pero parece que si tienes un 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 el esquema para este documento
<?xml version="1.0" encoding="utf-8" ?>
<User ID="1">
<GivenName></GivenName>
<SurName></SurName>
</User>
No se podría validar si agrega otro elemento, diga EmailAddress y mezcle el pedido
<?xml version="1.0" encoding="utf-8" ?>
<User ID="1">
<SurName></SurName>
<EmailAddress></EmailAddress>
<GivenName></GivenName>
</User>
No quiero agregar EmailAddress al documento y que se marque como opcional.
Solo quiero un XSD que valide los requisitos mínimos básicos que debe cumplir el documento.
¿Hay alguna forma de hacer esto?
EDITAR:marc_s señaló a continuación que puede usarxs:any
dentro dexs:sequence
para permitir más elementos, desafortunadamente, debes mantener el orden de los elementos.
Alternativamente, puedo usarxs:all
que no impone el orden de los elementos, pero, por desgracia, no me permite colocarxs:any
dentro de ella.