XSD y XSLT: definición de esquemas y transformación de datos XML

Informática y TelecomunicacionesActualizado el 6,23 KB

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.

Ponte a prueba

¿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:string
  • xs:date (formato: dd/mm/yyyy)
  • xs:time
  • xs:dateTime
  • xs:decimal
  • xs:integer
  • xs:boolean
  • xs:hexBinary

Indicadores de Orden en XSD

  1. <xs:all>: Todos los elementos hijos pueden aparecer en cualquier orden.
  2. <xs:choice>: Entre los elementos hijos, solo puede aparecer uno u otro.
  3. <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

  1. Tener bien definido el documento XML.
  2. Crear una hoja de estilos XSL bien formada.
  3. 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 de xsl: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 etiqueta xsl: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 &lt; en XML/HTML)
  • Operador Mayor que: > (se escribe &gt; 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 HTML

Preguntas 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

1. ¿Qué define XSD en un documento XML?
2. ¿Qué indicador de orden permite que solo aparezca uno de los elementos hijos?
3. ¿Qué indicador de orden exige un orden específico de los elementos hijos?
4. ¿Con qué etiqueta se recorre todo el conjunto de elementos XML en XSLT?
5. ¿Qué etiqueta se usa para extraer el contenido de un elemento XML?
6. ¿Cuál es el tipo de dato de formato dd/mm/yyyy según el texto?
7. ¿Qué elemento de XSLT permite establecer múltiples condiciones?
8. ¿Cómo se escribe el operador menor que en XML?

Preguntas generadas con IA a partir del documento: comprueba las respuestas con el texto.