XSD y XSLT: definición de esquemas y transformación de datos XML
Resumen
El documento explica XSD (XML Schema Definition) para definir la estructura, atributos, tipos de datos y obligatoriedad de los elementos de un XML, y XSLT/XSL para transformar y presentar esos datos. Incluye los tipos de datos y indicadores de orden de XSD, así como los elementos básicos (xsl:for-each, xsl:value-of, xsl:sort), condicionales (xsl:if, xsl:choose) y un ejemplo completo de hoja de estilos.
Puntos clave
- XSD define qué elementos pueden aparecer en un XML, sus atributos, tipos de datos y si son obligatorios u opcionales.
- Los elementos simples no tienen hijos; los compuestos pueden contener atributos u otros elementos.
- Indicadores de orden en XSD: xs:all (cualquier orden), xs:choice (uno u otro) y xs:sequence (orden específico).
- XSL/XSLT es un lenguaje declarativo con hojas de estilo que transforman el XML, que es a XML lo que CSS es a HTML.
- xsl:for-each recorre elementos, xsl:value-of extrae su contenido y xsl:sort ordena, siempre tras xsl:for-each.
- xsl:if permite condiciones simples y xsl:choose con xsl:when y xsl:otherwise permite múltiples condiciones.
¿Qué es XSD?
XSD (XML Schema Definition) es similar a DTD (Document Type Definition). Define qué elementos puede contener un documento XML, cómo están organizados, qué atributos y de qué tipo pueden tener sus elementos.
Características Principales de XSD
- Define qué elementos pueden aparecer en un documento XML.
- Define los atributos de los elementos.
- Los elementos pueden ser compuestos, indicando qué elementos hijos deben aparecer y en qué orden.
- Los elementos pueden ser vacíos o pueden incluir texto asociado.
- Define los tipos de datos que pueden utilizarse en cada elemento o atributo.
- Define la obligatoriedad y la opcionalidad de elementos y atributos.
Ventajas de XSD
- Es fácilmente extensible para futuras modificaciones.
- No es necesario aprender un nuevo lenguaje, puesto que utiliza sintaxis XML.
- Permite definir de manera clara los tipos de datos.
Tipos de Datos en XSD
- Simples: Son elementos que se definen por sí mismos y que no tienen elementos hijos.
- Compuestos: Son todos aquellos que pueden contener atributos propios, otros elementos o atributos.
Tipos de Elementos Simples Comunes
xs:stringxs:date(formato: dd/mm/yyyy)xs:timexs:dateTimexs:decimalxs:integerxs:booleanxs:hexBinary
Indicadores de Orden en XSD
<xs:all>: Todos los elementos hijos pueden aparecer en cualquier orden.<xs:choice>: Entre los elementos hijos, solo puede aparecer uno u otro.<xs:sequence>: Indica el orden específico en que aparecen los elementos hijos.
Diferencia entre XSD y XSL
XSD: Es un lenguaje esquemático, en el cual se indica la posible estructura y contenido que puede tener un fichero XML.
XSL: Es un lenguaje de programación declarativo, mediante hojas de estilo que pueden transformar el XML.
¿Qué es XSL?
XSL es a XML lo que las hojas de estilo CSS a HTML. Permite tomar pleno control sobre los datos, pudiendo establecer criterios como qué datos ver, en qué orden visualizarlos, establecer filtros y definir formatos de salida para representarlos.
Reglas para Adaptar un XML a un XSL
- Tener bien definido el documento XML.
- Crear una hoja de estilos XSL bien formada.
- Vincular la hoja de estilo XSL al documento XML.
Elementos Básicos de XSLT
xsl:for-each: Si se necesita recorrer todos y cada uno de los campos y extraer datos para darles formato, esta etiqueta indica que se recorrerá todo el conjunto de elementos XML.xsl:value-of: Después dexsl:for-each, se necesita extraer el contenido. Para ello, se utiliza esta etiqueta de extracción de elementos. Es la manera más sencilla de realizar un listado completo, formateado y con estilos adecuados.xsl:sort: Sirve para indicar la manera en que se desea ordenar, siempre después de la etiquetaxsl:for-each.
Operadores Condicionales en XSLT
xsl:if: Permite obtener fragmentos de plantillas condicionales simples.xsl:choose: Permite establecer múltiples condiciones dentro del recorrido en el XML. Se pueden añadir tantos elementos condicionales como se deseen mediante los elementos<xsl:when>y<xsl:otherwise>para establecer una condición por defecto.
Operadores Lógicos en XSLT
- Operador de Igualdad:
= - Operador de Desigualdad:
!= - Operador Menor que:
<(se escribe<en XML/HTML) - Operador Mayor que:
>(se escribe>en XML/HTML)
xsl:template
Permite definir sobre qué parte del código XML actuar. Mediante el atributo match, siempre se referencia la raíz del documento XML, sin establecer ramas para componerlo.
Ejemplo de XSLT
<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<table border="1">
<tr>
<th>Name</th>
<th>Address</th>
<th>Phone</th>
</tr>
<xsl:for-each select="customers/customer">
<xsl:sort select="state" order="descending"/>
<xsl:sort select="name"/>
<tr>
<td><xsl:value-of select="name"/></td>
<td><xsl:value-of select="address"/></td>
<td><xsl:value-of select="phone"/></td>
</tr>
</xsl:for-each>
</table>
</body>
</html>
</xsl:template>
</xsl:stylesheet>
Descargar
PDF Word HTMLPreguntas frecuentes
¿Qué es XSD?
XSD (XML Schema Definition) es un lenguaje similar a DTD que define qué elementos puede contener un documento XML, cómo están organizados, y qué atributos y tipos de datos pueden tener.
¿Cuál es la diferencia entre XSD y XSL?
XSD es un lenguaje esquemático que indica la posible estructura y contenido de un fichero XML, mientras que XSL es un lenguaje de programación declarativo mediante hojas de estilo que transforman el XML.
¿Para qué sirve xsl:sort?
xsl:sort indica el criterio de ordenación de los elementos recorridos y se utiliza siempre después de xsl:for-each.
Ponte a prueba
Tarjetas de repaso
Pulsa una tarjeta para ver la respuesta.
Test
Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.