1. Estructura
<?xml version="1.0" encoding="UTF-8"?>
<etiquetaraiz xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="esquema.xsd">
<etiqueta propiedad="valor">contenido</etiqueta>
</etiquetaraiz>
2. XSD (XML Schema Definition)
- Sirve para definir la estructura de un documento XML, permitiendo su validación
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="etiquetaraiz">
<xs:complexType>
<xs:sequence>
<xs:element name="item" maxOccurs="unbounded">
<xs:complexType>
<xs:sequence>
<xs:element name="id" type="xs:positiveInteger"/>
<xs:element name="brand" type="xs:string" />
<xs:element name="year" type="xs:gYear" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
- Tipo complejo (
complexType
): contienen otros elementos
sequence
: los elementos deben aparecer en el XML en el mismo orden que en el esquema
maxOccurs="unbounded"
: pueden aparecer ilimitados elementos, no hay máximo
- Valor fijo:
<xs:element name="" type="" fixed=""/>
- Valor por defecto:
default=""
- Definir un atributo (escrito debajo del elemento):
<xs:attribute name="" type=""/>
- Definición de un espacio de nombres
- En el XML:
<etiq:etiquetaraiz xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="direccionespacio archivoxsd"
xmlns:etiq="direccionespacio">
<etiq:lista>
...
</etiq:lista>
</etiq:etiquetaraiz>
- En el XSD:
<?xml version="1.0" encoding="UTF-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
targetNamespace="direccionespacio"
xmlns="direccionespaciodefecto"
elementFormDefault="qualified">
<xs:element name="marcadores">
<xs:complexType>
...
</xs:complexType>
</xs:element>
</xs:schema>
- El uso del prefijo
etiq
se consigue
con elementFormDefault="qualified"