simpleContent
El elemento simpleContent
se utiliza para describir el contenido de un elemento cuando el contenido es de un tipo simple (como una cadena de texto, un número, etc.).
Este elemento se puede combinar con las extensiones.
Tipo de contenido
Como elemento XSD destinado para el contenido de elementos, no se aplica a atributos.
Extensiones
Una extensión es una forma de agregar atributos o restricciones a un tipo de datos existente. Se definen mediante elementos XSD dentro de extension
.
Una extensión se basa en un tipo de datos existente, el cual se especifica en el atributo base
.
<xs:extension base="xs:integer">
<!-- Reglas -->
</xs:extesion>
Consideremos el siguiente documento XSD:
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="velocidad" type="magnitud"/>
<xs:complexType name="magnitud">
<xs:simpleContent>
<xs:extension base="xs:decimal">
<xs:attribute name="unidad" type="xs:string" use="required"/>
</xs:extension>
</xs:simpleContent>
</xs:complexType>
</xs:schema>
En el código anterior:
- El elemento hijo de
complexType
es unsimpleContent
ya que el contenido del elemento<velocidad>
es simple. - A su vez, se realiza una extensión del tipo
decimal
(que es el tipo de dato del contenido de<velocidad>
), añadiendo un nuevo atributounidad
. - El atributo
unidad
es obligatorio y acepta como valores una cadena de texto.
Un documento XML válido sería el siguiente:
<velocidad unidad="km/h">60</velocidad>