Atributos y Tipos de Datos en XML Schema: Elementos Simples y Complejos
Propiedades de los Elementos en XML Schema
- maxOccurs y minOccurs: determinan el número máximo y mínimo de veces que el elemento puede aparecer en un documento instancia; obviamente, sólo se aplican a atributos de elementos de tipo real.
name: especifica el nombre usado para referenciar un tipo de elemento tanto en el resto del esquema como en un documento instancia.
ref: hace referencia a un elemento global ya declarado. Es mutuamente excluyente con
name.<xsd:element name="Nombre" type="xsd:string"/> <xsd:element ref="Nombre"/> <xsd:element name="color" type="xsd:string" default="red"/> <xsd:element name="color" type="xsd:string" fixed="red"/>
Elementos Complejos y Simples
Estructura de Elementos
Ejemplo de elemento complejo:
<xsd:element name="libro">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="titulo" type=""/>
</xsd:sequence>
<xsd:attribute name="precio" type=""/>
</xsd:complexType>
</xsd:element>Elementos "simples":
<xsd:element name="nombre" type="tipo"/>
<xsd:element name="nombre">
<xsd:simpleType>infor</xsd:simpleType>
</xsd:simpleType>Definir Tipos Simples por Lista
Atributos de control para listas:
- value / length: indica que la lista tendrá un número exacto de valores.
- minLength: indica que la lista tendrá un número mínimo de valores.
- maxLength: indica que la lista tendrá un número máximo de valores.
- enumeration: posibles valores que puede tener la lista.
- whiteSpace: gestión de los espacios en blanco en cada elemento de la lista.
- pattern: expresión regular que debe cumplir cada elemento de la lista.
Ejemplos de Listas
<xs:simpleType name="listaDecimales">
<xs:list itemType="xs:decimal" />
</xs:simpleType>
<xs:simpleType name="listaNotas">
<xs:restriction base="listaDecimales">
<xs:minLength value="3" />
<xs:maxLength value="6" />
</xs:restriction>
</xs:simpleType>Restricciones y Enumeraciones
Valores Mínimos y Máximos
-
minExclusive: establece un valor mínimo. El valor debe ser mayor que el establecido por la etiqueta a través del atributo
value. -
maxExclusive: establece un valor máximo. El valor debe ser menor que el establecido por la etiqueta a través del atributo
value.
Enumeraciones
Las realiza una etiqueta llamada enumeration que sirve para indicar los posibles valores que puede tomar un componente. Por ejemplo:
<xs:simpleType name="diasSemanaTipo">
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse" />
<xs:enumeration value="Lunes" />
<xs:enumeration value="martes" />
</xs:restriction>
</xs:simpleType>Validación de Patrones (Ejemplo de DNI)
<xs:simpleType name="dniTipo">
<xs:restriction base="xs:string">
<xs:whiteSpace value="collapse" />
<xs:pattern value="[0-9]{8}[A-Z]" />
</xs:restriction>
</xs:simpleType>