Elementos complejos en XSD (XML Schema)
Un elemento es complejo (complexType) cuando contiene uno o más elementos y/o atributos. De entre las posibles combinaciones de elementos y/o atributos que puede contener un elemento complejo (1 elemento y 0 atributos, 1 elemento y 1 atributo, 1 elemento y varios atributos, 0 elementos y 1 atributo...) cabe destacar las siguientes:
- Un elemento complejo puede estar vacío, es decir, no contener elementos ni texto, pero sí tener al menos un atributo.
- Un elemento complejo puede contener contenido mixto, es decir, contener uno o más elementos, además de texto. Por otra parte, podría tener atributos, o no.
Elemento vacío
EJEMPLO En el siguiente código se ha definido vacío el elemento "bola", no pudiendo contener ni otros elementos ni texto. Ahora bien, véase que sí tiene un atributo, llamado numero:
<xs:element name="bola">
<xs:complexType>
<xs:attribute name="numero" type="numeroDeBola"/>
</xs:complexType>
</xs:element>
<xs:simpleType name="numeroDeBola">
<xs:restriction base="xs:positiveInteger">
<xs:minInclusive value="1"/>
<xs:maxExclusive value="90"/>
</xs:restriction>
</xs:simpleType>
- xs:positiveInteger indica que el valor del atributo numero debe ser un número entero mayor que cero.
Ejercicio resuelto |
---|
Contenido mixto
Fíjese que, en el siguiente código se ha definido el elemento "persona" de tipo complejo mixto (mixed="true"):
<xs:element name="persona">
<xs:complexType mixed="true">
<xs:sequence>
<xs:element name="nombre" type="xs:string"/>
<xs:element name="ciudad" type="xs:string"/>
<xs:element name="edad" type="xs:positiveInteger"/>
</xs:sequence>
</xs:complexType>
</xs:element>
Ejercicio resuelto |
---|