Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
1.1-Caracteristicas de XML
1.1.1Sintaxis de XML
1.1.2-Estuctura basica
2.-Que es XSLT?
2.1-Caracteristicas de XSLT
2.2-Sintaxis de XSLT
3-Interaccion de XML y XSLT
3.1Procesadores
3.2-Funcionalidad del Procesador
3.3-Transformacion Directa
3.4- Transformacion usando algun IDE
3.5-Configuracion del IDE Netbeans
3.5.1-Instalando plugins
3.5.2-Depuracion Local
3.5.3- Procesamiento con Navegador
4- Explorando etiquetas XSL
4.1 La instruccin <xsl:value-of>
4.2-La instruccin <xsl:text>
4.3-La instruccin <xsl:attribute>
4.4-La instruccin <xsl:apply-templates>
4.5-La instruccion <xsl:if>
4.6-La instruccion <xsl:for-each>
4.7-La instruccion <xsl:choose>
1.-Que es XML?
XML, sigla en ingls de Extensible Markup Language (lenguaje de marcas extensible), es
un metalenguaje de etiquetas desarrollado por el denominado World Wide Web Consortium.
La base del XML es la introduccin de datos estructurados en un fichero de texto mediante
una serie de reglas, creando archivos fcilmente generados y ledos por un ordenador, cuya
principal utilizacin consiste en permitir compartir estos datos a todos los niveles, por todas
las aplicaciones y soportes.
De la misma forma que el lenguaje HTML, el XML utiliza tags -etiquetas- y atributos para
su definicin, pero HTML combina la interpretacin de los datos con la presentacin de estos
,mientras que el lenguaje XML usa las etiquetas slo para delimitar datos, y deja su
interpretacin, a la aplicacin que los lee.
XML es una tecnologa potenciada por un Internet creciente, ya que existen muchos sistemas
distintos que tienen que comunicarse entre s.
1.1-Caracteristicas de XML
1.1.1Sintaxis de XML
XML se escribe en un documento de texto ASCII, igual que el HTML la cabecera del texto
se inicializa con el siguiente comando:
<?xml version="1.0"?>
En el resto del documento se deben escribir etiquetas como las de HTML.
<ETIQ1>...<ETIQ2>...</ETIQ2>...</ETIQ1>
Cualquier etiqueta puede tener atributos.
<ETIQ atributo1="valor1" atributo2="valor2"...>
Los comentarios de XML se escriben igual que los de HTML.
<!-- Comentario -->
Para definir qu etiquetas y atributos debemos utilizar al escribir en XML tenemos que
fijarnos en la manera de guardar la informacin de una forma estructurada y ordenada.
1.1.2-Estuctura basica
Elementos anidados: Todos los elementos deben contener elementos completos, es decir,
deben contener tanto la etiqueta de apertura como la de cierre. Por tanto se debe respetar el
orden inverso al de apertura a la hora de cerrarlos.
{ <elemento1><elemento2>...</elemento2></elemento1> }
Atributos entre comillas: Todos los atributos de los elementos deben tener su valor entre
comillas. Pudindose elegir entre comillas simples o dobles.
{ <elemento atributo="valor"> = <elemento atributo='valor'> }
Maysculas y minsculas: Las etiquetas en XML, a diferencia con el HTML, diferencian
entre maysculas y minsculas.
Cerrar elementos: Todos los elementos deben cerrarse con la etiqueta correspondiente.
{ <elemento>...</elemento> }
Elementos vacos: Los elementos que no contengan nada pueden abrir y cerrarse con una
nica etiqueta
{ <elemento/> }
2.-Que es XSLT?
El XSLT forma parte de la familia de lenguajes del XSL (siglas de Extensible Stylesheet
Language), basados en el estndar XML que permite describir cmo la informacin contenida
en un documento XML cualquiera debe ser transformada o formateada para su presentacin en
un medio.
Desde 1997 varias empresas informticas como Arbortext, Microsoft e Inso se pusieron a
trabajar en una propuesta de XSL (antes llamado "xml-style") que presentaron al W3C y cuyo
fin era permitir modificar el aspecto de un documento. Con las hojas de estilo ya se podan
lograr algunas mejoras en el aspecto del documento, pero XSL permite otras muchas
aplicaciones como mltiples columnas, orden de visualizacin de los datos de una tabla,
Actualmente hay varias versiones del estndar XSLT: la versin 1.0, que es la que
implementan la mayora de los procesadores, y se denomina "recomendacin", es decir, para
el consorcio W3, lo equivalente a un estndar, y la versin 2.0 , que, a fecha de hoy, an se
est acabando de desarrollar y validar como estndar.
Algunos procesadores, tales como el Saxon, implementan ya esta ltima versin. Hay algunas
diferencias importantes: el tratamiento uniforme de los rboles, uso de mltiples documentos
de salida, y funciones definidas por el usuario que se pueden definir en XSLT, y no slo en
Java u otro lenguaje, como suceda en estndares anteriores.
2.2-Sintaxis de XSLT
A grandes rasgos se ver la sintaxis de un documento XSLT, ya que en los anexos se
describirn todos los mtodos y funciones que disponemos a la hora de desarrollar XSLT.
Como se ha visto anteriormente, un documento XML se compone de informacin estructurada
en nodos en forma de rbol. Si se tiene en cuenta que un XSLT ha de recorrer un documento
XML entenderemos que la sintaxis bsica para el desarrollo de XSLT, son recorridos, bucles,
y condicionales que naveguen por la estructura del XML.
Iniciamos una hoja de estilos xsl mediante la etiqueta stylesheet para todos los documentos
que hagamos. Indicamos la versin 1 de la hoja de estilo con el atributo version y adems
iniciamos que seguimos las recomendaciones de la W3C y seguimos su namespace (criterio y
restricciones de la recomendacin sobre la estructura de tipos de elemento y nombres de
atrubuto), con xmlns y xmlns:xsl.
Hemos de indicar tambin la salida que resultar de la transformacin con la etiqueta output.
En la salida hemos de indicar el mtodo de entrada con el atributo method. Tambin hemos de
marcar la versin del xslt y la codificacin de caracteres que seguir la plantilla mediante version y
encoding respectivamente. Para finalizar la cabecera le decimos el medio de salida
despus de la transformacin con media-type y la validacin que seguir con doctype-public.
Ejemplo de cabecera:
<xsl:stylesheet version="1.0"
xmlns="http://www.w3.org/1999/xhtml
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="xml" version="1.0"
encoding="utf-8"
media-type="text/html"
doctype-public="-//W3C//DTD XHTML 1.0 Strict//EN"
doctype-system="http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
indent="yes"/>
La siguiente etiqueta tambin es obligatoria. Aqu se indica el nombre del template que
usaremos. Podemos hacerlo marcndolo con match y la secuencia de nodos a la que actuar, o
bien dotndola de un nombre por el que luego lo llamaremos si es que nos hace falta con el
atributo name.
<xsl:template match="XMLData/nodes">
<xsl:template name="nodes">
Estas ltimas instrucciones las usaremos para cerrar el marcado XSLT, tambin es obligatorio
ya que si no nos dara un error al parsear.
</xsl:template>
</xsl:stylesheet>
cada etiqueta tiene que tener su apertura y cierre.
Ejemplo:
Ejemplo:
Archivo XML:
<?xmlversion="1.0"?>
<PROYECTO>
<FICHA>
<ALUMNO> Sergio Lpez </ALUMNO>
<NOMBRE>Proyecto XSLT</NOMBRE>
<NOTA>10</NOTA>
</FICHA>
</PROYECTO>
La cabecera para idntificar a un archivo XML es <?xmlversion=1.0>
La etiqueta root esta implicita para el archivo XML se puede acceder a este nodo es /
Las etquetas que se encuantran a continuacion de las ya mencionadas como
<PROYECTO>,<FICHA>...ETC, son definidas segun sea necesario para representar a la etiqueta.
Archivo XSLT:
<xsl:stylesheet version = 1.0>
<xsl: templeate match =/>
<html><head><title></title></head>
<body><h1>
<xsl:valueof select=proyecto/ficha/nombre/>
</h1>
</body>
</xsl:templeate>
</xsl:stylesheet>
La cabecera para indentificar al archivo XSLT es similar a la de un XML <xsl:stylesheet version =
1.0>
.
Las etiquetas html estan sin ninguna diferencia, para acceder a los datos del XML con XSLT
la siguiente etiqueta es la encargada de interactuar con los datos del XML para luego generar un
archivo de salida reemplazando las etiquetas con prefijo <xsl:____/> por el dato.
Ejemplo:
<xsl:valueof select=proyecto/ficha/nombre/>
Esta linea realiza la interaccion, reemplaznado el nombre en el lugar donde se encuantra la etiqueta
<xsl:___/>
Ejemplo:
Archivo XML:
<?xml version="1.0" encoding="utf-8"?>
<Document>
<detallProducte>
<tipus>llibre</tipus>
<Id_producte>4</Id_producte>
<titol>Los Pilares de la Tierra</titol>
<resumen>El gran maestro de la narrativa y el suspense nos transporta a la Edad
Archivo XSLT:
<?xml version="1.0" encoding="utf-8"?>
<xsl:stylesheet version="1.0" xmlns="http://www.w3.org/1999/xhtml"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="html" version="1.0" encoding="UTF-8" media-
</a>
</div>
<div class="detall-info">
<h2>Los Pilares de la Tierra</h2>
<p>El gran maestro de la narrativa y el suspense nos transporta a la Edad Media,
a un fascinante mundo de reyes, damas, caballeros, pugnas feudales, castillos y
ciudades amuralladas.</p>
<div class="info-adicional">
<p>El gran maestro de la narrativa y el suspense nos transporta a la Edad
Media, a un fascinante mundo de reyes, damas, caballeros, pugnas feudales, castillos
y ciudades amuralladas. El amor y la muerte se entrecruzan vibrantemente en este
magistral tapiz cuyo centro es la construccin de una catedral gtica. La historia
se inicia con el ahorcamiento pblico de un inocente y finaliza con la humillacin
de un rey. "Los pilares de la tierra" es la obra maestra de Ken Follett y constituye
una excepcional evocacin de una poca de violentas pasiones.</p>
</div>
<dl>
<dt>Autor:</dt><dd>Ken Follet</dd>
<dt>Editorial:</dt><dd>Plaza y Jans</dd>
<dt>Coleccin:</dt>dd>xitos</dd>
<dt>Pginas:</dt><dd>1135</dd>
<dt>Gnero:</dt><dd>Histrica</dd>
<dt>Valoracin Media:</dt><dd>6,5</dd>
</dl>
<p id="mas-info">
<a href="#">ms info..</a>
</p>
</div>
</div>
</div>
3.3-Transformacion Directa
Un ejemplo de cmo podramos realizar una transformacin en nuestro pc mediante saxon
seria a travs de la lnea de comandos y usando la consola java:
Utiliza el Local pestaa del depurador XSLT Herramientas Ventana para seleccionar
el archivo que desea depurar. Desde XSLT es lo que se est depurando un XML
Fuente (tpicamente con un . XML de extensin) del archivo para transformar se
requiere y una secuencia de comandos de XSLT (tpicamente con un XSL. extensin)
que especifica se requiere la transformacin. Adems, dado que la transformacin
genera una salida y no se requiere nombre de archivo de salida (si el cuadro de texto
<libro>
<titulo>Pantalen y las visitadoras</titulo>
<autor fechaNacimiento="28/03/1936">Mario Vargas Llosa</autor>
<fechaPublicacion ao="1973"/>
</libro>
<libro>
<titulo>Conversacin en la catedral</titulo>
<autor fechaNacimiento="28/03/1936">Mario Vargas Llosa</autor>
<fechaPublicacion ao="1969"/>
</libro>
</biblioteca>
Archivo XLS archivo que define lo que es necesario obtener del XML.
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
version="1.0">
<xsl:template match="autor">
</xsl:template>
</xsl:stylesheet>
Archivo de salida.
<?xml version="1.0" encoding="UTF-8"?>
La vida est en otra parte
Pantalen y las visitadoras
Conversacin en la catedral
Archivo XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="libro">
<xsl:value-of select="autor"/>
</xsl:template>
</xsl:stylesheet>
Resultado
<?xml version="1.0" encoding="UTF-8"?>
Milan Kundera
Mario Vargas Llosa
Mario Vargas Llosa
Archivo XLS
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="/">
<p>Prueba</p>
<xsl:text> </xsl:text>
<p>Prueba</p>
</xsl:template>
</xsl:stylesheet>
Resultado
<?xml version="1.0" encoding="UTF-8"?>
<p>Prueba</p>
<p>Prueba</p>
Archivo XML
<?xml version="1.0" encoding="UTF-8"?>
<licencias>
<licencia>
<nombre>Creative Commons By - Share Alike</nombre>
<imagen>cc_bysa_88x31.png</imagen>
</licencia>
</licencias>
Archivo XSL
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="1.0">
<xsl:template match="licencia">
<p><img src="<xsl:value-of select="imagen" />" /></p>
</xsl:template>
</xsl:stylesheet>
Resultado
<?xml version="1.0" encoding="UTF-8"?>
<p>
<img src="cc_bysa_88x31.png"/>
</p>
<h1><xsl:value-of></h1>
<xsl:if>
4.6-La instruccion <xsl:for-each>
Se utiliza para correr los elementos de un documento, y realizar una serie de
operaciones con los mismos.
El atributo select, determina que elementos se van a recorrer.
<xsl:for-each select=elemento>
instrucciones
<xsl:for-each>
Tambien puede llevar el atributo order-by, para ordenar los datos procesados por el
bucle.
<xsl:for-each order-by=+nombre select=personal/persona>
<tr>
<td><xsl:value-of select=@sexo/></td>
<td><xsl:value-of select=nombre></td>
</tr>
</xsl:for-each>
4.7-La instruccion <xsl:choose>
Permite seleccionar entre varias opciones, estas se establecen mediante <xsl:when>:
<xsl:choose>
<xsl:when test=condition>
:
</xsl:when>
<xsl:otherwise>
:
</xsl:otherwise>
</xsl:choose>
El formato de xsl:when es el mismo que el de xsl:if
Si no se cumple ninguna condicion xsl:when, se ejecutara xsl:otherwise:
<xsl:choose>
<xsl:when test=@curso[.!='xml']>
<xsl:value-of select=@curso>
</xsl:when>
<xsl:otherwise>
</br>
</xsl:otherwise>
</xsl:choose>