Publicado el 6 de Junio del 2018
1.940 visualizaciones desde el 6 de Junio del 2018
15,3 MB
155 paginas
Creado hace 11a (05/05/2013)
Ciclo Formativo de Grado
Superior de Administración de
Sistemas Informáticos en red
Módulo Profesional: LMSGI
U.T. 8.- Conversión y adaptación de documentos XML.
XSL/XSLT/XPATH ..
Departamento de Informática y Comunicación
IES San Juan Bosco (Lorca-Murcia)
Profesor: Juan Antonio López Quesada
Xpath
XSLT
xsl:avanzado
Introducción a la
conversión de doc
XML
2
Forma
parte
de
igual que XML, XSLT es un
lenguaje de
Al
trilogía
la
programación.
transformadora de XML, compuesta por las CSS
(Cascading Style Sheets, hojas de estilo en cascada), que
permite dar una apariencia en el navegador determinada
a cada una de las etiquetas XML; XSLT (XML
Stylesheets Language for Transformation , o lenguaje de
transformación basado en hojas de estilo); y XSL:FO,
(Formatting Objects, objetos de
formateo), o
transformaciones para fotocomposición, o, en general,
para cualquier cosa que no sea XML, como por ejemplo
HTML "del viejo" o PDF (el formato de Adobe).
XSLT es pues, un lenguaje que se usa para convertir
documentos XML en otros documentos XML; puede
convertir un documento XML que obedezca a un DTD a
otro que obedezca otro diferente, un documento XML
bien formado a otro que siga un DTD, o, lo más
habitual, convertirlo a "formatos finales", tales como
WML (usado en los móviles WAP) o XHTML.
3
XML se presenta como un estándar para “transmitir”
datos a través de Internet.
la posibilidad de que distintos
Ante
“centros” o
“aplicaciones” utilicen esquemas o DTD diferentes, es
necesario un sistema que permita “transformar” los
datos de un documento XML.
(eXtensible Stylesheet
XSLT
Language – Transformations),
describe un lenguaje basado en
transformar
XML
documentos XML a cualquier
otro formato.
para
XSLT
utilizaremos
Normalmente,
para
transformar documentos entre esquemas XML
que permitan su procesamiento por distintos
sistemas.
También utilizaremos XSLT para transformar
documentos XML en HTML, WML*
o cualquier
otro formato que facilite su presentación en la
pantalla de un ordenador o en impresora.
La transformación de XML a HTML es el principal
uso que se hace de XSLT.
El Wireless Markup Language es un lenguaje cuyo origen es
el XML (eXtensible Markup Language). Este lenguaje se utiliza
para construir las páginas que aparecen en las pantallas de los
teléfonos móviles y los asistentes personales digitales (PDA)
No debemos confundir las transformaciones
XSLT con la presentación de documentos XML
con CSS.
Con XSLT, generaremos un documento HTML a
partir de un documento XML. Se tratará de dos
documentos “distintos”
Con CSS, el navegador recibe un documento
XML que formatea utilizando las reglas CSS
para presentarlo en pantalla de forma que sea
más
legible, pero es el mismo
documento.
fácilmente
XSLT, XSL, XSL FO...
La XSL es una especificación desarrollada dentro del W3C para aplicar
formato a los documentos XML de forma estandarizada. La XSL es un
lenguaje para escribir hojas de estilo que consta de dos partes:
XSL-FO
(eXtensible Stylesheet Language Formatting
Objects): un lenguaje de formateo, que no es más que un
vocabulario XML para especificar objetos de formateo (FO).
XSLT (eXtensible StyleSheet Language Transformations), es
un lenguaje de transformación, mediante el cual se puede
transformar un documento XML en otro XML.
XSL FO cuenta con escaso soporte por parte de la industria debido a
su complejidad.
Su propósito es definir la forma en la que se debe presentar un
documento XML en papel o en pantalla.
En este sentido, XSL FO sería una especificación similar a CSS.
XSLT, XSL, XSL FO...
Actualmente contamos con
varias herramientas para
realizar
transformaciones
XSLT:
Saxon, desarrollado en Java
por Michael Kay (un gurú de
XSLT)
xt, diseñado por James Clark
En las prácticas usaremos
Altova XMLSpy
Estructura de una hoja XSLT...
c:\tmp> xt documento1.xml documento1.xsl doc1.xml
Estructura de una hoja XSLT...
Estructura de una hoja XSLT...
Una hoja de estilo XSLT es un documento XML. Debe
estar bien formado.
Las hojas de estilo se guardarán siempre en archivos
independientes con extensión .xsl
Deben comenzar con una declaración XML:
<?xml version="1.0“?>
El elemento raíz de
la hoja de estilo XSLT es
stylesheet.
Este elemento contendrá a todos los demás, y debe ir
precedido por el alias xsl correspondiente al espacio de
nombres para hojas de estilo XSLT.
Estructura de una hoja XSLT...
En las hojas de estilo XSLT, los nombres de los
elementos “reservados” por la especificación, proceden
de un mismo espacio de nombres, y por lo tanto deben
escribirse precedidos por el correspondiente alias xsl.
El alias debe “apuntar” a la URL:
http://www.w3.org/1999/XSL/Transform
De esta forma, el elemento raíz quedará así:
<xsl:stylesheet version="1.0"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
....................
…………………..
</xsl:stylesheet>
Estructura de una hoja XSLT...
Entre las marcas de inicio y de fin del elemento raíz
reglas de
las
xsl:stylesheet,
transformación propiamente dichas.
se escribirán
Cada regla se definirá mediante un elemento
xsl:template.
La regla indica qué instancias de los elementos del
documento XML se van a transformar.
La
regla
también
indicará cómo se deben
transformar cada una de ellas.
Estructura de una hoja XSLT...
<h2>
</h2>
<xsl:value-of select=”.” />
<xsl:template match=”//nombre”>
</xsl:template>
La regla se aplicará a todas las instancias del elemento nombre que
se encuentre en el xml al que se va a aplicar la transformación. Esto
se indica mediante el atributo match que acompaña al elemento
xsl:template.
Regla de Transformación
Xpath
Entre las etiquetas de inicio y de fin del elemento xsl:template se
escribe la transformación que se debe realizar, es decir, qué texto y
qué marcas se escribirán en el documento resultado de la
transformación, cada vez que se encuentre una instancia del
elemento nombre en el documento origen.
Con <xsl:value-of...>, se recupera y escribe en el documento
resultado el valor del elemento que está siendo procesado.
<nombre>Madrid</nombre>
<habitantes>3500000</habitantes>
Ejemplo de Transformación XSLT
<?xml version="1.0" encoding="ISO-8859-1"?>
<?xml-stylesheet type="text/xsl" href="nombre_ciudades.xsl"?>
<ciudades>
<ciudad>
</ciudad>
<ciudad>
</ciudad>
<ciudad>
</ciudad>
</ciudades>
ciudades.xml
<nombre>Málaga</nombre>
<habitantes>800000</habitantes>
<nombre>Toledo</nombre>
<habitantes>50000</habitantes>
Ejemplo de Transformación XSLT
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="ciudades">
</xsl:template>
</xsl:stylesheet>
<head>
<meta http-equiv="Content-Type" content="text/html: charset=iso-8859-1" />
<title>Ejemplo de XST</title>
</head>
<body>
<h3>ciudades:</h3>
<xsl:for-each select="ciudad/nombre">
<h1><xsl:value-of select=".">
</xsl:value-of></h1>
</xsl:for-each>
</body>
<html>
</html>
nombre_ciudades.xsl
Ejemplo de Transformación XSLT
<html>
</html>
<head>
<meta http-equiv="Content-Type" content="text/html: charset=iso-8859-1" />
<title>Ejemplo de XST</title>
</head>
<body>
</body>
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:template match="/">
</xsl:template>
<xsl:template match="//nombre">
</xsl:template>
</xsl:stylesheet>
nombre_ciudades.xsl
<h1>ciudades:</h1>
<xsl:apply-templates select="//nombre" />
<h1>ciudades:</h1>
<xsl:apply-templates select="//nombre" />
<h3><xsl:value-of select="."/></h3>
Ejemplo de Transformación XSLT
La regla <xsl:template match=“/”> se ejecuta
cuando se encuentra el elemento raíz del
documento XML.
Dentro de esta regla, podemos incluir llamadas
a otras reglas definidas en la hoja de estilo,
mediante el elemento:
<xsl:apply-templates select=”…” />
El atributo select tomará como valor el nombre
del elemento asociado a la regla que queremos
“disparar”.
Esto nos ofrece un control real sobre el “orden”
de ejecución de las reglas.
Ejemplos
<?xml version="1.0" encoding="UTF-8"?>
<libro>
<titulo>Fuente Ovejuna</titulo>
<autor>Lope de Vega</autor>
<isbn>84-9815-002-7</isbn>
</libro>
</libros>
<libros>
<libro>
<titulo>Fuente Ovejuna</titulo>
<autor>Lope de Vega</autor>
<isbn>84-9815-002-7</isbn>
</libro>
<libro>
<titulo>La Celestina</titulo>
<autor>Fernando de Rojas</autor>
<isbn>84-96390-96-9</isbn>
</libro>
<libro>
<titulo>Fuente Ovejuna</titulo>
<autor>Lope de Vega</autor>
<isbn>84-9815-002-7</isbn>
</libro>
Ejemplos
Lo que vamos a hacer mediante el XSLT es obtener información del
documento XML y crear un documento XHTML donde se vean
dichos datos.
Para construir el documento XSLT lo primero que tenemos que
saber es que, este, es a su vez otro documento XML. Por lo tanto,
la primera línea que nos encontraremos será la definición del XML.
<?xml version="1.0" encoding="iso-8859-1"?>
Lo siguiente es empezar a definir la hoja de estilos y el n
+
Comentarios de: Conversión y adaptación de documentos XML. XSL/XSLT/XPATH (0)
No hay comentarios