validacion tipos simples significa que opcional minoccurs esquema elemento datos archivo xsd

xsd - tipos - Diferencia entre el grupo y la secuencia en el esquema XML?



validacion xsd (1)

¿Cuál es la diferencia entre un xs:group y una xs:sequence en XML Schema? ¿Cuándo usarías uno o el otro?


xs:sequence - junto con xs:choice y xs:all - se usa para definir las secuencias válidas del elemento XML en el XML objetivo. Por ejemplo, el esquema para este XML:

<mainElement> <firstSubElement/> <subElementA/> <subElementB/> </mainElement>

es algo así como:

<xs:element name=''mainElement''> <xs:complexType> <xs:sequence> <xs:element name="firstSubElement"/> <xs:element name="subElementA"/> <xs:element name="subElementB"/> </xs:sequence> </xs:complexType> </xs:element>

xs:group se usa para definir un grupo nombrado de elemento XML siguiendo ciertas reglas que luego se pueden referenciar en diferentes partes del esquema. Por ejemplo, si el XML es:

<root> <mainElementA> <firstSubElement/> <subElementA/> <subElementB/> </mainElementA> <mainElementB> <otherSubElement/> <subElementA/> <subElementB/> </mainElementB> </root>

puedes definir un grupo para los subelementos comunes:

<xs:group name="subElements"> <xs:sequence> <xs:element name="subElementA"/> <xs:element name="subElementB"/> </xs:sequence> </xs:group>

y luego úsalo:

<xs:element name="mainElementA"> <xs:complexType> <xs:sequence> <xs:element name="firstSubElement"/> <xs:group ref="subElements"/> </xs:sequence> </xs:complexType> </xs:element> <xs:element name="mainElementB"> <xs:complexType> <xs:sequence> <xs:element name="otherSubElement"/> <xs:group ref="subElements"/> </xs:sequence> </xs:complexType> </xs:element>