0% encontró este documento útil (0 votos)
99 vistas

Java XSLT

Este documento introduce el lenguaje XSLT, que se utiliza para transformar documentos XML en otros formatos como HTML. Explica que XSLT y Java son tecnologías complementarias, donde XSLT es útil para transformar datos XML en formatos de texto como HTML, mientras que Java se usa comúnmente para procesar lógica empresarial y datos. También proporciona un ejemplo de cómo transformar documentos XML en una tienda virtual a documentos HTML usando XSLT.

Cargado por

George Mejia
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
99 vistas

Java XSLT

Este documento introduce el lenguaje XSLT, que se utiliza para transformar documentos XML en otros formatos como HTML. Explica que XSLT y Java son tecnologías complementarias, donde XSLT es útil para transformar datos XML en formatos de texto como HTML, mientras que Java se usa comúnmente para procesar lógica empresarial y datos. También proporciona un ejemplo de cómo transformar documentos XML en una tienda virtual a documentos HTML usando XSLT.

Cargado por

George Mejia
Derechos de autor
© Attribution Non-Commercial (BY-NC)
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
Está en la página 1/ 25

Programacin Orientada a Objetos Mayo, 2004

Java y XSLT
Raquel Snchez Daz Montserrat Vicente Carrera

Departamento de Informtica y Automtica Universidad de Salamanca

Java y XSLT

RESUMEN
Este trabajo es una introduccin al lenguaje XSLT (Transformaciones del Lenguaje de Hojas de Estilo Extensibles), que se utilizan para transformar un documento XML en otro documento de texto. Esto se ilustra mediante un ejemplo en el que se transformarn documentos en XML a documentos HTML.

ii

Java y XSLT

Snchez y Vicente

NDICE
1.- INTRODUCCIN ................................................................................................................... 1 2.- XSL Y XSLT ........................................................................................................................... 1 2.1.- OBJETOS DE FORMATO .............................................................................................. 2 3.- JAVA Y XSLT ........................................................................................................................ 2 4.- RAZONES DE CREACIN Y USO ...................................................................................... 2 5.- QU NECESITAMOS?......................................................................................................... 4 5.1- PROCESADORES XSLT ................................................................................................. 4 5.2- INSTALACION XALAN ................................................................................................. 4 6.- TRANSFORMACIONES XSLT............................................................................................. 5 7.- REPASO DE XML .................................................................................................................. 5 7.1- DTD................................................................................................................................... 5 8.- SINTAXIS BASICA DE XSLT .............................................................................................. 6 8.1.- UNA PRIMERA APROXIMACIN............................................................................... 6 8.2.- PROCESO DE TRANSFORMACIN............................................................................ 7 8.3.- XPATH............................................................................................................................. 7 8.4.- PASOS Y RUTAS DE LOCALIZACIN....................................................................... 8 8.5.- PUESTA EN BUCLE Y CLASIFICACION ................................................................. 10 8.6.- <XSL:IF> ....................................................................................................................... 11 8.7.- <XSL:COSE>, <XSL:WHEN>, <XSL:OTHERWISE>................................................ 11 8.8.- PARMETROS Y VARIABLES .................................................................................. 12 8.9.- <XSL:TEMPLATE> ...................................................................................................... 12 8.10.- <XSL:INCLUDE>, <XSL:IMPORT> ......................................................................... 13 8.11.- FORMATO DE CIFRAS Y TEXTO ........................................................................... 13 9.- OTRAS APLICACIONES..................................................................................................... 14 9.1.- APLICACIONES INALMBRICAS ............................................................................ 14 9.2.- APLICACIONES WEB ................................................................................................. 14 10.- EJEMPLO TIENDA VIRTUAL.......................................................................................... 15 10.1.- HOJA DE ESTILO BSICA: TEMPLATES .............................................................. 15 10.1.1.- PROCESNDOLO CON XALAN....................................................................... 16 10.1.2.- EXPLICACIN DEL CDIGO ........................................................................... 16 10.2.- DOCUMENTOS XML CON MS ETIQUETAS: TEMPLATES MLTIPLES ...... 17 10.2.1.- PROCESNDOLO CON XALAN....................................................................... 19 10.2.2.- EXPLICACIN DEL CDIGO ........................................................................... 19 11.- CONCLUSION.................................................................................................................... 20 12.- REFERENCIAS................................................................................................................... 20 13.- BIBLIOGRAFIA ................................................................................................................. 22

Java y XSLT

iii

Snchez y Vicente

1.- INTRODUCCIN
XSLT es el lenguaje que especifica la conversin de un documento de un formato a otro. Est diseado especialmente para transformar los datos XML en otros formatos de texto, como HTML, XHTML, WML u otro formato XML. Java y las Transformaciones del Lenguaje de Hojas de Estilo Extensible (XSLT) son tecnologas muy diferentes que en lugar de competir entre ellas, se complementan. Las ventajas de Java son su portabilidad, su vasta coleccin de bibliotecas estndar y su amplia aceptacin por parte de la mayora de las empresas. Sin embargo, una de las desventajas del Java reside en su habilidad para procesar texto. Por ejemplo, tal vez Java no sea la mejor tecnologa para convertir simplemente archivos XML a otro formato como XHTML o Lenguaje de Marcado Inalmbrico (WML). El uso de Java para dichas tareas requiere programadores expertos. En concreto, en el caso de pginas web, es recomendable simplificar el proceso de creacin de la pgina para que puedan participar personas que no sean programadores. Cuando apareci por primera vez XML, se extendi la creencia de que era el sucesor inminente de HTML. Este punto de vista se vio influenciado por una serie de factores, como la propaganda de los medios de comunicacin, el ilusionismo y la simple confusin sobre el nmero de nuevas tecnologas asociadas con XML. La realidad es que millones de pginas web estn escritas en HTML y que ningn buscador ampliamente usado soporta por completo el XML y sus estndares relacionados. Aunque los vendedores de buscadores incorporen soporte total para XML y para su familia de tecnologas relacionadas, pasarn aos antes de que haya suficientes personas que usen estas nuevas versiones, para que se pueda justificar la recomposicin de las pginas web en XML. Aunque mantener la compatibilidad con los buscadores anteriores es esencial, las empresas no deberan dudar en pasar a usar XML y las tecnologas relacionadas para el servidor. Desde las perspectivas del buscador, HTML seguir dominando en la web durante muchos aos. Sin embargo, si nos fijamos en los aspectos internos, la situacin es muy distinta, puesto que HTML se usa solo en el ltimo instante de presentacin. Las aplicaciones web deben soportar diversos buscadores, y el modo ms sencillo de que as lo hagan consiste sencillamente en transformar los datos en HTML antes de enviarlos al cliente. En el servidor, XML es el modo preferido de procesamiento e intercambio de datos porque es portable, estndar y fcil de utilizar. En este mbito es en el que intervienen Java y XSLT.

2.- XSL Y XSLT


El Lenguaje de Hojas de estilo Extensible (XSL) es una especificacin del World Wide Web Consortium (W3C) y se divide en dos tecnologas que se complementan: Objetos de Formato XSL (un lenguaje para definir el formato, las fuentes y el diseo de la pgina) y Transformaciones XSL (XSLT). XSLT se dise principalmente con objeto de transformar un documento XSL bien construido en Objetos de Formato XSL. A pesar de ello, se ha erigido como tecnologa preferida para todo tipo de transformaciones. La transformacin de XML a HTML es la ms comn, pero XSLT se puede utilizar tambin para transformar XML bien construido en cualquier formato de archivo de texto. Otro uso es el de transformar el XML en Lenguaje de Marcado para Telefona Inalmbrica (WML) o en algn otro formato descubierto que necesiten los dispositivos inalmbricos.

Java y XSLT

Java y XSLT

2.1.- OBJETOS DE FORMATO


Un objeto de formato se basa en un gran modelo llamado modelo de formato. Este modelo es un conjunto de objetos que se suministran como entrada a un formateador. Este formateador aplica los objetos al documento, entero o en parte, y lo que da como resultado es un documento nuevo que tiene todos o parte de los datos del documento XML original en un formato especfico de los objetos utilizados por el formateador. En particular, los modelos de formato se utilizan mucho cuando se convierten datos de texto XML a formatos binarios, como ficheros PDF, imgenes o formatos de documentos tales como Microsoft Word. Para transformar datos XML a otro formato de tipo texto, casi nunca se utilizan estos objetos explcitamente. Aunque son una parte sustancial de la lgica de hojas de estilo, los objetos de formato pocas veces se invocan directamente, ya que los datos de tipo texto que resultan a menudo se ajustan a otro lenguaje de marcado predefinido como HTML.

3.- JAVA Y XSLT


Muchos procesadores de XSLT estn escritos en Java, lo que convierte al Java en una opcin excelente para aplicaciones que habrn de interoperar con XML y XSLT. En el caso de pginas web que utilicen XSLT, todava se necesitan los servlets de Java y los EJB para interceptar las solicitudes del cliente, atraer datos de bases de datos e implementar la lgica empresarial. Se puede utilizar XSLT para crear cada una de las pginas web XHTML, pero esto no se puede realizar sin un lenguaje como Java que acte de coordinador.

4.- RAZONES DE CREACIN Y USO


Existe un famoso modelo de arquitectura de software llamado Modelo Modelo-VistaControlador (MVC). Es muy til cuando diseas una interfaz grfica de usuario (GUI). Este modelo separa el papel de los componentes en un programa de interfaz grfica de usuario en un modelo (M) para la estructura de los datos, una vista (V) para la presentacin del modelo, y un controlador (C) para operaciones en el modelo. Cuando los datos estn completamente aislados de la interfaz de usuario, se pueden realizar cambios en la apariencia visual de la aplicacin sin que eso afecte a los datos soportados. HTML no es muy sofisticado porque no separa la estructura lgica del documento de su presentacin. En cambio, XML tiene s separa modelo y vista. Un modelo se especifica en un documento XML y una vista se representa en un documento HTML. Sera conveniente tener una herramienta basada en una serie de reglas de traduccin que convirtiera un documento XML en uno HTML apropiado. XSLT esta diseado para darnos unas bases para hacer la traduccin. XSLT convierte un documento XML en otra cosa. En muchos casos, el resultado de la traduccin es otro documento XML, pero en otros, puede ser un documento HTML o CSV(Comma-Separated Value), o incluso un PDF(Portable Document Format). HTML no separa los datos de la presentacin. Por ejemplo, el siguiente fragmento de HTML muestra cierta informacin sobre un cliente. En l, los campos de datos como Juan y Santos Asensio se encuentran claramente entrelazados con elementos de formato como <tr> y <td>: <h3>Informacin del cliente</h3> <table border=1 cellpadding=2 cellspacing=0> <tr><td>Nombre:</td><td>Juan</td></tr> <tr><td>Apellidos:</td><td>Santos Asensio</td></tr> </table>

Java y XSLT

Snchez y Vicente

Existen dos formas de mantener la lgica de programacin separada de la generacin de HTML, pero extraer datos significativos de pginas HTML resulta casi imposible. Esto se debe a que el HTML no indica claramente el modo en que estn estructurados sus datos. Un humano puede observar el HTML y establecer lo que significan sus campos, pero resulta bastante difcil escribir un programa informtico que pueda extraer datos significativos de forma segura. Aunque podemos buscar modelos de texto como Nombre seguido de <td>, esta tcnica (conocida como reduccin de pantalla) falla desde el momento en que se modifica la presentacin. Por ejemplo, si cambiamos la pgina del siguiente modo, dicha tcnica no funcionar: <tr><td>Nombre completo:</td><td>Juan Santos Asensio</td></tr> Gracias a XSLT es posible definir claramente las funciones de Java, XML, XSLT y HTML. Java se utiliza para la lgica empresarial, las consultas y actualizaciones de bases de datos y para crear datos XML. El XML es responsable de los datos en bruto, mientras que XSLT transforma el XML en HTML para que un buscador lo vea. Una ventaja clave de esta tcnica es la ntida separacin entre los datos XML y las vistas HTML. Para soportar varios buscadores, se escriben varias hojas de estilo XSLT, pero se reutilizan los mismos datos XML en el servidor. En el ejemplo anterior, los datos XML del cliente no contenan ninguna instruccin de formato: <cliente> <nombre>Juan</nombre> <apellidos>Santos Asensio</apellidos> </cliente> Lo cual se vera as:

Dado que XML contiene nicamente datos, casi siempre resulta mucho ms sencillo que HTML. Adems solamente es necesario escribir el cdigo de generacin de CML una vez. Luego, se pueden transformar los datos XML mediante un nmero cualquiera de hojas de estilo XSLT para soportar diferentes buscadores, lenguajes alternativos e incluso dispositivos no buscadores como los telfonos mviles con los que se puede acceder a la Web.

Java y XSLT

Java y XSLT

5.- QU NECESITAMOS?
Para realizar transformaciones XSLT se necesitan tres componentes: una fuente de datos XML, una hoja de estilo XSLT y un procesador XSLT. La hoja de estilo XSLT es en realidad un documento XML bien construido, por lo que el procesador XSLT incluir o utilizar, adems un analizador gramatical XML.

5.1- PROCESADORES XSLT


Los procesadores XSLT son necesarios para interpretar y ejecutar las instrucciones que se encuentran en hojas de estilo XSLT. Un procesador XSLT es una aplicacin que aplica una hoja de estilo XSLT a una fuente de datos XML. En lugar de modificar los datos XML originales, el resultado de la transformacin se copia en un elemento denominado rbol de resultado, el cual se puede dirigir a un archivo esttico, se puede enviar directamente a un stream de salida e incluso puede conducir hacia otro procesador XSLT para ms transformaciones. Esta figura ilustra el proceso de transformacin, que muestra el modo en que se relacionan entre s la entrada XML, la hoja de estilo XSLT, el procesador XSLT y el rbol de resultado. La entrada XML y la hoja de estilo XSLT son normalmente dos entidades separadas.

Hola de estilo XSLT Procesador XSLT Entrada XML


rbol de resultado HTML, XML, Texto

Transformado en

Figura 1. Transformacin XSLT

5.2- INSTALACION XALAN


Se utilizar el procesador Xalan de Apache, que tambin incluye el analizador XML Xerces. Es una herramienta escrita en Java, y lo nico que se necesita para hacerla funcionar es una mquina virtual Java (JVM), tal como la de Microsoft, Sun o IBM. Desde Java tiene la ventaja de que los desarrollos son vlidos tanto para Windows como para Linux. Para instalarlo se puede obtener la ltima versin en el servidor de RedIris http://apache.rediris.es/xml/xalan-j/. Para mas informacin visitar la pgina de Xalan: http://xml.apache.org. Pasos de la instalacin: 1) Disponer del RunTime de Java o instalarlo desde SUN. 2) Desempaquetar xalan-j-current-bin-2jars.zip y dejar el resultado en el sitio definitivo. 3) Copiar las clases del directorio bin en la biblioteca de Java (CLASSPATH). Por ejemplo: C:\Archivos de programa\Java\j2re1.4.2_02\lib. 4) Probar la instalacin. Esto debe mostrar las opciones del sistema. java org.apache.xalan.xslt.Process

Java y XSLT

Snchez y Vicente

6.- TRANSFORMACIONES XSLT


Las transformaciones XSLT pueden tener lugar en el cliente o en el servidor, aunque las transformaciones en el servidor son las que predominan en la actualidad. Dado que la amplia mayora de los usuarios de Internet no utilizan buscadores compatibles con XSLT el modelo comn consiste en transformar el XML en HTML en el servidor para que el buscador vea solamente el HTML resultante. En un entorno empresarial cerrado en que se puede controlar la definicin de las caractersticas de buscador, se puede mejorar la escalabilidad y reducir el trfico en la red desplazando el proceso de transformacin XSLT al buscador. Se puede utilizar XSLT en la capa Web, mientras en la capa del cliente los buscadores Web funcionan slo con HTML.

7.- REPASO DE XML


XML es el Lenguaje de Marcado Extensible. Es un formato para almacenar datos estructurados. Aunque se parece mucho al HTML, XML es mucho ms estricto con las comillas, los identificadores debidamente finalizados y otros detalles similares. XML no define nombres de indicadores, por lo que los autores de documentos habrn de inventar sus propios conjuntos de indicadores personalizados que poseen un significado semntico. Por lo tanto el conjunto de etiquetas depende de los individuos y de las organizaciones el definir lenguajes de marcado especficos. No existe garanta de que distintas organizaciones utilicen exactamente el mismo marcado. Dentro de una misma empresa un grupo puede utilizar <employee>, mientras otros pueden utilizar <worker> o <associate>. Por esta razn, los datos XML tendrn que transformarse a un formato comn para poder compartirlos. Es en ese sentido en el que destaca XSLT (que se expresa utilizando la sintaxis XML): elimina la necesidad de escribir programas informticos personalizados para transformar datos. Slo creamos una o ms hojas de estilo XSLT. Los trminos elemento e indicador se utilizan normalmente de forma indistinta. Desde un punto de vista ms tcnico, elemento hace referencia al concepto que se est modelando, mientras que indicador se refiere a la marca real que aparece en el documento XML. Por lo tanto, <account> es un indicador que representa un elemento account en un programa informtico.

7.1- DTD
Un DTD es una definicin de tipo de documento. Un DTD establece un conjunto de restricciones para un documento o conjunto de documentos XML. DTD no es una especificacin en s misma, pero se define como parte de la especificacin de XML. En un documento XML, una declaracin de tipo de documento puede incluir tanto restricciones de marcado como referencias a un documento externo con restricciones de marcado. La suma de estos dos conjuntos de restricciones es la definicin de tipo de documento. Un DTD define la forma en la que se debe construir un documento XML. Un documento se considerar vlido cuando siga las restricciones que impone el DTD para dar formato a los datos XML. Esto es particularmente importante al intentar transferir datos entre aplicaciones, ya que para que sistemas diferentes logren entenderse, debe haber un acuerdo en el formato y la sintaxis.

Java y XSLT

Java y XSLT

8.- SINTAXIS BASICA DE XSLT


8.1.- UNA PRIMERA APROXIMACIN
Como modo de acercamiento a la sintaxis de XSLT pondremos un ejemplo genrico: <?xml versin=1.0 encoding=UTF-8 ?> <xsl:stylesheet versin=1.0 xmlns:xsl=http://www.w3.org/1999/XSL/Transform> <xsl:output method=html/> <!--************Plantilla / *****************- -> <xsl: template match=/> <html> <head> <title> [Ttulo] </title> </head> <body> <xsl:apply-templates select=[Expresin XPath:??? ]/> </body> </html> </xsl:template> <!--************Plantilla ??? *****************- -> <xsl: template match=???> <xsl: value-of select=[Valor]/> </template> </stylesheet> Una hoja de estilo XSLT es un documento XML bien construido, por tanto ha de cumplir las normas bsicas de un documento XML. Con lo cual la primera lnea de la hoja de estilo es una declaracin XML. Seguido inmediatamente por el elemento raz del documento <xsl: stylesheet> que tiene dos atributos. El primero es la versin de la especificacin XSLT. El segundo es el namespace XML. La siguiente lnea indica sencillamente que el rbol de resultados debera tratarse como un documento HTML y no como un documento XML. Lo que resta de la hoja de estilo son dos plantillas. Cada una de ellas se corresponde con un modelo del documento de salida XML y es responsable de crear una al rbol de resultado. El procesador XSLT comienza buscando la plantilla que se corresponda con el modelo /, dicho modelo corresponde al documento fuente XML que se est transformando. Este es siempre el punto de arranque del proceso y normalmente es el lugar en el que se crean las salidas de los elementos bsicos <html>, <head>, <body>. La sentencia que cabe destacar es <xsl_apply_templates select= /> ya que es el nico contenido dinmico de la plantilla. Es el modo de indicarle al procesador XSLT que contine la bsqueda de modelos adicionales, que comience una nueva bsqueda de elementos en el documento fuente XML y que cree una instancia de una plantilla adicional que corresponda.

Java y XSLT

Snchez y Vicente

8.2.- PROCESO DE TRANSFORMACIN


Todo documento XML bien construido forma una estructura de datos en rbol: el propio documento es la raz del rbol (el modelo /) y cada elemento tiene slo un padre. Una estructura de datos en rbol es fundamentalmente recursiva, algo que influir en la forma de realizar la transformacin. La mayor parte de la transformacin en XSLT est guiada por dos elementos: <xsl:template>, <xsl:apply-template>. La transformacin comienza con una lista de nodos actuales que contienen una sola entrada: el nodo raz; este es el documento XML y est representado por el modelo /. El procesamiento se desarrolla del modo que vemos a continuacin: Para cada nodo X de la lista de nodos actual, el procesador busca todos los elementos <xsl: template match=pattern> de la hoja de estilo que pueda corresponder a dicho nodo. A partir de esas plantillas, se selecciona la que contiene el que mejor corresponde. Se crea a continuacin una instancia de la seleccionada <xsl: template match=pattern> usando el nodo X como su nodo actual. Esta plantilla copia normalmente datos de un documento fuente en un rbol de resultado o produce un contenido totalmente nuevo en combinacin con datos de la fuente. Si la plantilla contiene <xsl: apply-templates select=newPattern/> se crea una nueva lista de nodos actual y se repite el proceso de forma recursiva. Se recorre el documento XML de nuevo, en busca de nodos que se correspondan con un modelo; si se encuentran nodos que correspondan, se crea una instancia de la plantilla que mejor corresponda. El modelo select es relativo al nodo X, no a la raz de documento. A medida que contina el proceso de transformacin XSLT, el nodo actual y la lista de nodos actuales estn cambiando continuamente. Los elementos que no comienzan con xsl se copian sencillamente en el rbol de resultado, puesto que se trata de texto normal.

8.3.- XPath
El objetivo fundamental consiste en definir un mecanismo para tratar todas las partes de un documento XML, lo cual significa que se utiliza para colocar nodos de elementos, nodos de atributos, nodos de texto y cualquier otra cosa que pueda aparecer en un documento XML. XPath trata estos nodos como parte de una estructura en rbol en lugar de tratar el XML como una cadena de texto. Adems XPath contiene un conjunto de funciones para formatear texto, convertir cifras y tratar con los bolanos. XSLT utiliza XPath para seleccionar y buscar correspondencias con los modelos en los datos XML originales(<xsl: template>, <xsl: apply-templates>); con el fin de soportar procesos condicionales; para generar texto. XPath define siete tipos diferentes de nodos: raz del documento, elementos, texto, instrucciones de proceso, comentarios, que representan espacios de nombre. Siempre que XSLT utiliza XPath se considera un elemento de los datos XML como el nodo de contexto actual. Un eje representa una relacin con el nodo de contexto actual. Existen varios tipos de ejes, algunos de los mas importantes son:

Java y XSLT

Java y XSLT

Ancestor: el padre del nodo de contexto, su padre, y as sucesivamente hasta llegar al nodo raz. Ancestro-or-self: lo mismo que ancestro con el aadido del nodo de contexto. Nodo raz siempre incluido. Attribute: los atributos pertenecientes al nodo de contexto. Abreviatura: @. Child: hijos inmediatos del nodo de contexto. Abreviatura: (espacio en blanco). Descendant: todos los hijos, nietos, etctera. Los nodos de atributos y de espacios de nombre se consideran descendientes de los nodos de elementos. Abreviatura: //. Descendant-or-self: igual que descendant con el aadido del nodo de contexto. Following: todos aquellos nodos del documento que aparecen despus del nodo de contexto. Los descendientes del nodo de contexto no estn incluidos. Following-silbing: todos aquellos nodos siguientes del documento que tengan el mismo padre que el nodo de contexto. Namespace: los nodos del namespace pertenecientes al nodo de contexto. Parent: padre inmediato del nodo de contexto. Abreviatura: ... Preceding: todos los nodos del documento que aparecen antes que el nodo de contexto, a excepcin de los ascendientes, los nodos de atributos y los nodos del namespace. Preceding-sibling: todos los nodos del documento que aparecen antes del nodo de contexto y tienen el mismo padre. Este eje se encuentra vaco si el nodo de contexto es un nodo de atributo o bien un nodo de namespace. Self: el propio nodo de contexto. Abreviatura: ..

Ejemplo: <xsl: apply-templates

select=child::team/>

El cdigo anterior selecciona todos los hijos <team> no solo el primero.

8.4.- PASOS Y RUTAS DE LOCALIZACIN


Un paso de localizacin es una construccin que sirve para seleccionar un conjunto de nodos de los dato XML. Su sintaxis es: axis::node-test[predicate-1]...[predicate-n] La prueba de nodo permite especificar el tipo de nodo que se seleccionar y que los predicados filtren el conjunto de nodos resultante. Las rutas de localizacin est formada por uno o ms pasos de localizacin separados por caracteres de barra oblicua(/). Una ruta de localizacin absoluta comienza con el citado carcter barra oblicua y es relativo a la raz del documento. Todos los dems tipos de rutas de localizacin son relativos al nodo de contexto. Ejemplo: Presidents.xml <?xml version=1.0 enconding=UTF-8?>

Java y XSLT

Snchez y Vicente

<?xml-stylesheet type=text/xsl?> <presidents> <president> <term from =1789 to=1797> <name> <first>George</first> <last>Washington</last> </name> <party>Federalist</party> <vicePresident> <name> <first>John</first> <last>Adams</last> </name> </vicePresident> </president> <president> <term from =1797 to=1801> <name> <first>John</first> <last>Adams</last> </name> <party>Federalist</party> <vicePresident> <name> <first>Thomas</first> <last>Jefferson</last> </name> </vicePresident> </president> <!--*********Omitimos el resto de presidentes********-- > </presidents> Presidentes.xslt

<?xml version=1.0 enconding=UTF-8?> <xsl:stylesheet version=1.0 xmnlns:xsl=http://www.w3.org/1999/XSL/Transform> <xsl: output method=html /> <xsl:template math=/> <html> <body> <h1> XPath Examples </h1>
EL tercer presidente fue:

<ul> <xsl:apply-templates select=presidents/president[position()=3]/name/> </ul>


Presidentes sin vicepresidentes fueron:

Java y XSLT

Java y XSLT

<ul> <xsl:apply-templates select=presidents/president[count(vicePresident)=0]/name/> </ul> Presidents elected before 1800 were: <ul> <xsl:apply-templates select=presidents/president[term/@from @lt; 1800]/name/> </ul>
Presidentes con ms de un vicepresidente fueron:

<ul> <xsl:apply-templates select=descendant::president[count(vicePresident)>1]/name/> </ul>


Presidente llamado John fue:

<ul> <xsl:apply-templates select= presidents/president/name[child::first=`John`]/> </ul>


Presidentes elegidos entre 1800 y 1850 fueron:

<ul> <xsl:apply-templates select=presidents/president[(term/@from > 1800) and (term/@from &lt; < 1850 )]/name/> </ul> </body> </html> </xsl:template> <xsl:template math=name> <li> <xsl:value-of select=first/> <xsl:text> </xsl:text> <xsl:value-of select=middle/> <xsl:text> </xsl:text> <xsl:value-of select=last/> </li> </xsl:template> </xsl:stylesheet>

8.5.- PUESTA EN BUCLE Y CLASIFICACION


Hasta el momento para buscar modelos en el documento XML utilizamos <xsl:applytemplates>, esta tcnica se denomina guiada por datos ya que los datos del archivo XML guan el proceso de seleccin. Otro estilo es la denominada guiada por plantillas, que significa que las plantillas guan el proceso de seleccin.

10

Java y XSLT

Snchez y Vicente

Para guiar de forma explcita el proceso de seleccin se hace con un elemento <xsl:for-each>; con esta tcnica se crea explcitamente un bucle para una coleccin de nodos sin crear una instancia de una plantilla aparte como ocurra con la otra tcnica. La sintis es la siguiente: <xsl:for-each select= > ..... </xsl:for-each> El atributo select puede contener cualquier ruta XPath y el bucle reunir a cada elemento del conjunto de nodos resultante. Se puede aplicar la clasificacin en cualquier tcnica guiada por datos o guiada por plantillas. En cualquier caso se aade <xsl:sort> como elemento hijo a otro elemento. Al aadir varios elementos <xsl:sort> consecutivos, podemos realizar una clasificacin de diversos campos. Cada clasificacin puede realizarse en orden ascendente(predefinido) o descendente y el tipo de datos que se va a clasificar ser number o text. <xsl:sort select= order= data-type= >

8.6.- <XSL:IF>
Es una forma de procesamiento condicional, esto permite que una hoja de estilo produzca diferentes salidas dependiendo de los resultados de una expresin lgica, que ser verdadera o falsa segn defina la especificacin XPath. Sintaxis: <xsl:if test=expresin booleana> <!Plantilla -- > </xsl:if> Es necesario el atributo test y habr de contener una expresin booleana. Si el resultado es verdadero, se crea una instancia del contenido de dicho elemento; si no es as, se omite.

8.7.- <XSL:COSE>, <XSL:WHEN>, <XSL:OTHERWISE>


El equivalente de la sentencia switch de Java es <xsl:choose>, la cual es casi idntica en cuanto a funcionalidad. <xsl_choose> habr de contener uno o ms elementos <xsl:when> seguidos por un elemento <xsl:otherwise> opcional. Sintaxis: <xsl:choose> <xsl:when test=condicion> <!- condicion -- > </xsl:when> <xsl:when test=condicion> <!- condicion -- > </xsl:when> ... <xsl:otherwise> <!- condicion -- > </xsl:otherwise> </xsl:choose>

Java y XSLT

11

Java y XSLT

En XSLT, los elementos <xsl:when> se evalan en el orden en el que aparecen y se evala primero el que tenga una expresin de prueba cuyo resultado sea verdadero. Si no hay ningn elemento <xsl:when> que corresponda, se evala <xsl:otherwise>, si est presente. Una diferencia entre la tcnica XSLT y una tcnica Java pura es que XSLT no necesita sentencias break entre elementos <xsl:when>.

8.8.- PARMETROS Y VARIABLES


Al igual que ocurre con otros lenguajes de programacin, normalmente es recomendable establecer una variable cuyo valor se reutilice en diversos lugares a lo largo de una hoja de estilo. Las variables en XSLT se definen con el elemento <xsl:variable> y pueden ser globales o locales. Una variable global se define en el nivel alto de una hoja de estilo, lo cual significa que se define fuera de toa plantilla como un hijo directo del elemento <xsl:stylesheet>. Este tipo de variables estn visibles a lo largo de toda la hoja de estilo, incluso en plantillas que aparecen antes de la declaracin de la variable. Para crear una variable local se define la variable dentro de una plantilla. Dichas variables solo son visibles para los elementos que siguen a la declaracin <xsl:variable> dentro de dicha plantilla y a sus descendientes. Para definir las variables existen tres modos: <xsl:variable </xsl:variable> name=nombre_variable> valor_variable

<xsl:variable name=nombre_variable select=XPath/> <xsl:variable name=empty/>

Para usar una variable, hay que hacer referencia al nombre de la variable con un carcter $ . Ejemplo: <xsl:variable name=lastPresident select=president[position()=last()]/name/> <xsl:value-of select=lastPresident/> La principal limitacin de las variables es que no se pueden modificar .

8.9.- <XSL:TEMPLATE>
Clasificamos las variaciones posibles del elemento <xsl:template> por medio de los atributos: Match: especifica el nodo en los datos XML al que se aplica una plantilla. Name: define un nombre arbitrario para una plantilla, independiente de los datos especficos de XML. Mode: permite que varias versiones de una plantilla correspondan al mismo modelo. Una plantilla puede mostrar datos de un modo complejo, mientras otra muestra los mismos datos de un modo abreviado.

12

Java y XSLT

Snchez y Vicente

Ejemplos de la sintaxis de plantillas habitual: <xsl:template match=president> ... </xsl:template> Corresponde a los nodos presidente del documento fuente XML. <xsl:template name=formatName> <xsl:param name=style/> ... </xsl:remplate> Define una plantilla denominada; utilizada en combinacin de <xsl:call-template> y <xsl:with-param>. <xsl:template match=customer mode=myModeName> ... </xsl:template> Corresponde a los nodos customer cuando <xsl:appy-templates> utiliza tambin mode=myModeName.

8.10.- <XSL:INCLUDE>, <XSL:IMPORT>


El elemento <xsl:include> permite que una hoja de estilo incluya a otra. Slo est permitido como elemento de nivel alto. Sintaxis: <xsl:include href=uri-reference/> Cuando una hoja de estilo incluye a otra, la hoja de estilo incluida se inserta de forma efectiva en el lugar del elemento <xsl:include>. En realidad, los hijos de su elemento <xsl:stylesheet> se insertan en el documento que incluye la hoja de estilo. ES posible incluir muchas hojas de estilo y que dichas hojas de estilo incluyan a otras. La importacin de una hoja de estilo aade una cierta inteligencia al proceso. Cuando se produce un conflicto, la hoja de estilo que se importa adopta prioridad sobre todas las hojas de estilo incluidas. A diferencia de la inclusin de hojas de estilo, los elementos <xsl:import> deben aparecer en cualquier otro hijo de elementos de <xsl:stylesheet>. Sintaxis: <xsl:import ref.=uri-reference/> La razn clave para utilizar <xsl:import> en lugar de <xsl:include> consiste en evitar conflictos. Cuando una hoja de estilo ya posee una plantilla que se corresponde con pageHeader, no podremos incluir pageElements.xsl si tambin tienen dicha plantilla. Si importamos, nuestra propia plantilla pageHeader tendr prioridad sobre la pageHeader importada.

8.11.- FORMATO DE CIFRAS Y TEXTO


XSLT y XPath definen un pequeo conjunto de funciones para manipular texto y cifras.

Java y XSLT

13

Java y XSLT

CIFRAS Ofrece la funcin format-number() para convertir nmeros como 123 en cifras con formato como $123.00. La funcin adopta la siguiente forma: string format-number(number, string, string?) El primer parmetro es el nmero al que vamos a dar formato, el segundo es la cadena de formato y el tercero (opcional) constituye el nombre de un elemento <xsl:decimal-format>. TEXTO La especificacin XPath define varias funciones de formato de texto, que permiten que el cdigo de una hoja de estilo XSLT realice operaciones como concatenar dos o ms cadenas, extraer una subcadena y calcular la longitud de una cadena. La sintaxis de algunas de estas funciones es: String concat(string, string,string*) Number string-lengh(string?) Boolean contains (string, string)

9.- OTRAS APLICACIONES


9.1.- Aplicaciones inalmbricas
Los telfonos mviles, los asistentes personales digitales (APD) y muchas otras formas de dispositivos inalmbricos est entrando con fuerza en el mundo, abriendo nuevas avenidas para el desarrollo, al tiempo que presentan innumerables retos para los desarrolladores. Dichos dispositivos son diminutos en comparacin con los PC, tanto en lo que se refiere a tamao fsico como a potencia de procesamiento. Eso significa que las pginas Web HTML tradicionales resultan inaceptables, por lo que se abre la posibilidad de que lenguajes de marcado basados en XML se conviertan en protagonistas. La familia de tecnologas usada por los dispositivos inalmbricos est an en una etapa infantil. Debido a esto, en la actualidad existen slo algunos lenguajes de marcado competentes. En Japn, el lder en el mercado es el protocolo i-mode. Este lenguaje de marcado comparte en gran medida la sintaxis del HTML pero es fundamentalmente propio y no se basa en XML. En Europa y Estados Unidos, es ms popular el Protocolo de Aplicacin para Tecnologa Inalmbrica (WAP). En la actualidad, WAP utiliza el WML (Lenguaje de Marcado Inalmbrico), que est basado en XML.

9.2.- APLICACIONES WEB


La tcnica XSLT consigue la mxima separacin posible entre de la presentacin y los datos soportados. Tambin soporta varios buscadores e incluso los objetivos WML. La transformacin XSLT conlleva una carga de procesamiento adicional en la capa web, lo cual habr de considerarse detenidamente en oposicin a las ventajas adquiridas con el diseo modular ntido que ofrece XSLT. A continuacin se resumen los puntos fuertes y los puntos dbiles de las diferentes tcnicas de desarrollo de aplicaciones web.

14

Java y XSLT

Snchez y Vicente

Servlet puro Ventajas Mximo rendimiento en tiempo de ejecucin. Desventajas Los cambios de HTML requieren cambios en el cdigo Java. Es difcil para mantener pginas complejas . No existe separacin de los datos, la lgica y la presentacin. JSP puro Ventajas Mejora para pginas que, principalmente, slo hay que mostrar, HTML esttico con pequeas cantidades de contenido dinmico. Rpido rendimiento en tiempo de ejecucin. Desventajas No separa el cdigo Java y HTML. No es adecuado para la validacin de solicitudes entrantes. Requiere el despliegue en un servidor web para el desarrollo y las pruebas. Hbrido Servlet/JSP Ventajas Permite una mayor separacin entre el cdigo Java y el HTML que el servlet puro o las tcnicas JSP. Resulta ms sencillo mantener un diseo modular para proyectos amplios. Rpido rendimiento en tiempo de ejecucin. Desventajas Requiere todava el despliegue en el servidor web para realizar pruebas y para el desarrollo. No obliga a los programadores a mantener el cdigo fuera de los JSP. No puede dirigirse a varios tipos de dispositivos cliente como XSLT. XSLT Ventajas Mxima separacin entre los datos, la lgica de programacin y la presentacin. Se pueden desarrollar y probar XML y XSLT fuera del servidor web. La capacidad de divisin en mdulos mxima mejora la capacidad de mantenimiento. Resulta fcil dirigirse a varios dispositivos cliente y lenguajes a travs de hojas de estilo XSLT diferentes. Desventajas Tiene el rendimiento ms bajo en tiempo de ejecucin. En el caso de pginas que son sobre todo HTML esttico, XSLT podra resultar ms difcil de escribir que JSP. Requiere de un paso extra para generar XML.

10.- EJEMPLO TIENDA VIRTUAL


10.1.- HOJA DE ESTILO BSICA: TEMPLATES

Java y XSLT

15

Java y XSLT

Para empezar, vamos a tratar de presentar una hoja XML de lo ms simple (tienda0.xml): <?xml version="1.0" encoding='ISO-8859-1'?> <?xml-stylesheet href="tienda0.xsl" type="text/xsl"?> <tienda> <nombre>Tienda Virtual </nombre> <telefono>923 20 20 20 </telefono> </tienda> Este ejemplo lo iremos extendiendo hasta que contenga un catlogo de una tienda virtual. Por lo pronto incluimos solamente datos bsicos sobre la tienda. Para convertirlo en HTML, usaremos la siguiente hoja de estilo (tienda-html.xsl): 1 <?xml version="1.0" encoding="UTF-8"?> 2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 3 <xsl:template match='/'> 4 <html> 5 <head> 7 <title>Generado con tienda-html.xsl</title> 8 </head> 9 <body> 10 <h1> <xsl:apply-templates /> </h1> 11 </body> 12 </html> 13 </xsl:template> 14 </xsl:stylesheet>

10.1.1.- PROCESNDOLO CON XALAN


Para procesarlo con el Xalan, tendremos que hacer: java org.apache.xalan.xslt.Process -IN tienda0.xml -XSL tienda-html.xsl OUT tienda0.html Esto da como resultado lo siguiente:

10.1.2.- EXPLICACIN DEL CDIGO tienda0.xml

16

Java y XSLT

Snchez y Vicente

La primera sentencia que se d en cualquier documento XML es una instruccin XML. Especifica que se est utilizando la versin XML 1.0 y el tipo de codificacin (ISO8859-1). En la segunda lnea se asocia la hoja de estilo XSLT (tienda-html.xsl) al documento. El cdigo XML contiene una etiqueta, <tienda>, con otras dos etiquetas dentro, <nombre> y <telefono>, que contienen el texto que queremos que aparezca en la pgina web.

tienda-html.xsl
La primera hoja de estilo con la que nos enfrentamos es relativamente simple. El "esqueleto" es un documento HTML normal, al cual tenemos que aadir "contenido dinmico", es decir, contenido generado a partir del XML original. El XML original, como se ve, es simplemente XML bien formado, no usa un DTD ni lo necesita: basta con que haya una etiqueta raz (<tienda>, en nuestro caso), las etiquetas estn emparejadas correctamente y los atributos entre comillas. Diferentes documentos XML podran ser procesados con la misma hoja de estilo, y daran diferente resultado. Para hacernos una idea, en este caso simple, una hoja XSLT es como una plantilla sobre la que se cambian los contenidos por sus valores al aplicarla. Para empezar, se incluyen una serie de instrucciones, de la lnea 1 a la 3: no son instrucciones en s, sino que modifican el aspecto de la salida. La primera declara el documento XML y el tipo de codificacin (ISO-8859-1) y la segunda es la etiqueta raz de la hoja de estilo, cerrada en la ltima lnea (14). Recordemos que una hoja de estilo XSL es tambin un documento XML y por tanto tiene que seguir todas sus convenciones. Se declara la versin de XSLT que se est usando (1.0) y el espacio de nombre (namespace) que vamos a usar, es decir, el prefijo que usarn todas las instrucciones propias de XSLT. En este caso usamos xsl, pero cambiando esta instruccin podramos usar otro cualquiera. Ese esqueleto est organizado en "templates", que son partes de la hoja que se disparan cuando encuentran una etiqueta que corresponda a lo que hay en su atributo match. El primer y nico template comienza en la lnea 3, y, en este caso, el template que corresponde a la etiqueta raz genera un esqueleto de pgina HTML. La orden en la lnea 10 cede el control a los otros templates, es decir, trata de aplicar todos los dems templates que haya en el documento, incluyendo el resultado de aplicarlos precisamente en ese punto (entre las etiquetas <h1>). En este caso no hay ms templates, salvo los llamados los templates por defecto, que lo nico que hacen es incluir el contenido de las etiquetas en el documento de salida. Es decir, lo que hemos hecho es decirle dnde tiene que incluir en el esqueleto los valores del documento original. La orden <xsl:apply-templates /> podra haberse sustituido, en este caso, por <xsl:value-of select='tienda' /> y habra tenido exactamente el mismo efecto: incluir el contenido de la etiqueta tienda (y todas las que descienden de ella).

10.2.- DOCUMENTOS XML CON MS ETIQUETAS: TEMPLATES MLTIPLES

Java y XSLT

17

Java y XSLT

Veamos un documento XML algo ms complicado: vamos a tratar de procesar documentos XML que describen diferentes artculos de una tienda. Una tienda virtual est formada por diferentes productos, que a su vez tienen una serie de caractersticas: cdigo de producto, tipo de artculo, seccin. Una tienda virtual se describira en un fichero como el siguiente (tienda1.xml): <?xml version="1.0" encoding='ISO-8859-1'?> <?xml-stylesheet href="tienda0.xsl" type="text/xsl"?> <tienda> <nombre>Tienda Virtual </nombre> <telefono>923 20 20 20 </telefono> <producto> <codigo>92 </codigo> <cantidad>10 </cantidad> <articulo>Radio-Cassete </articulo> </producto> <producto> <codigo>103 </codigo> <cantidad>50 </cantidad> <articulo>Reloj Cocina </articulo> </producto> <producto> <codigo>1312 </codigo> <cantidad>3 </cantidad> <articulo>Sof </articulo> </producto> </tienda> Este se transforma con la siguiente hoja XSLT (tienda1-html.xsl): 1 <?xml version="1.0" encoding='ISO-8859-1'?> 2 <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> 3 <xsl:template match='/'> 4 <html> 5 <xsl:apply-templates /> 6 </html> 7 </xsl:template> 8 <xsl:template match='tienda'> 9 <head> 10 <title> 11 <xsl:value-of select='nombre' /> 12 Generado por tienda1-html.xsl 13 </title> 14 </head> 15 <body> 16 <h1> <xsl:value-of select='nombre' /> </h1> 17 <h2>Telfono: <xsl:value-of select='telefono' /> </h2> 18 <h2>Nuestros mejores productos </h2> 19 <table> 20 <tr> 21 <th>Cdigo</th> 22 <th>Existencias</th>

18

Java y XSLT

Snchez y Vicente

25 26 27 28 29 30 31 32 33 33 34

<th>Artculo</th> </tr> <xsl:apply-templates select='producto' /> </table> </body> </xsl:template> <xsl:template match='producto'> <tr><xsl:apply-templates /></tr> </xsl:template> <xsl:template match='codigo|cantidad|articulo'> <td><xsl:apply-templates /></td> </xsl:template> </xsl:stylesheet>

23 24

10.2.1.- PROCESNDOLO CON XALAN


Para procesarlo con el Xalan, tendremos que hacer: java org.apache.xalan.xslt.Process -IN tienda1.xml -XSL tienda1-html.xsl OUT tienda1.html Esto da como resultado lo siguiente:

10.2.2.- EXPLICACIN DEL CDIGO

Java y XSLT

19

Java y XSLT

Esta hoja se compone de cuatro templates diferentes, mientras que la anterior tena solamente uno. Cada uno de ellos trata elementos de diferente profundidad dentro del rbol del documento XML: el primer template tratara la raz, el segundo las ramas que descienden de l, y el tercer y cuarto ramas progresivamente ms bajas. Por eso el primer template (lnea 3) simplemente incluye el cdigo de apertura y cierre del documento HTML, y cede control al siguiente template (lnea 8), que trata la primera etiqueta , <tienda>, tal como aparece en el atributo match. En este template se incluyen dentro del patrn en HTML el nombre y al telfono, usando xsl:value-of, que simplemente incluye el contenido del elemento correspondiente, crea el esqueleto de una tabla en HTML con su cabecera, y cede control al siguiente template (lnea 29), que se encargar de cada uno de los productos. Para que se procesen slo las etiquetas de este tipo que desciendan de tienda, y no las otras, que ya estn incluidas en la salida, se usa el atributo select. Con xsl:applytemplates select='producto' se aplicarn slo los templates que correspondan a este elemento. Ese template (lnea 29) crea el esqueleto de una fila, cediendo el control a los templates que traten con los descendientes. Hay un slo template que lo hace, el que comienza en la lnea 32; en vez de procesar un slo tipo de elemento, procesa tres, y para ello usamos | para indicar que puede procesar cualquiera de ellos, incluyndolos dentro de un demarcador de celda de tabla en HTML El orden en el que se incluyen los elementos en la salida es el mismo en el que se encuentran en la entrada, es lo que se denomina orden de documento. Este orden se puede alterar usando etiquetas value-of adecuadamente.

11.- CONCLUSION
A lo largo de este informe se ha explicado cul es la filosofa de la tcnica XSLT. Bsicamente se trata de transformar un documento en formato XML a otro formato, principalmente HTML. Esta tcnica se basa en el paradigma MVC (Modelo-Vista-Controlador), ya que XML si separa entre modelo y vista, mientras que en HTML no se produce tal separacin ya que su principal funcin es la utilizacin de este lenguaje slo en el ltimo instante de presentacin. Java tambin tiene su influencia en toda esta situacin; ya que este lenguaje se utiliza para la lgica empresarial, las consultas y las utilizaciones de la base de datos y para crear el XML. Ya que en el servidor se utilizan los datos en bruto (XML), y slo cuando se requiere de una informacin por parte de un cliente se produce una transformacin en el servidor, XSLT transforma el XML en HTML para que el buscador lo vea en ese formato. En resumen, la ventaja de toda esta tcnica es la gran separacin que se produce entre los datos XML y las distintas vistas HTML, y que estas transformaciones resultan de gran simplicidad gracias a XSLT.

12.- REFERENCIAS

XML:
o o o

XML.com: http://www.xml.com Guidelines for using XML for Electronic Data Interchange: http://www.geocities.com/WallStreet/Floor/5815/guide.htm Soporte XML en IE5.0: http://www.xml.com/xml/pub/1999/03/ie5/first-x.html

20

Java y XSLT

Snchez y Vicente

XML in Mozilla: http://www.mozilla.org/rdf/doc/xml.html

o XML: It's Not Your Father's HTML:http://www.webreference.com/authoring/languages/xml/intro/browser.h tml o o o o o o o o o

XML: http://www.harvardcomputing.com/Resources/Reports/XML/xml.html XML.COM - What's the Big Deal With XSL?: http://www.xml.com/xml/pub/1999/04/holman/xsl.html Extensible Markup Language (XML): http://www.w3.org/XML/ IBM alphaWorks: http://www.alphaworks.ibm.com/ Cafe con Leche XML News, and Resources: http://metalab.unc.edu/xml/ SUN: http://java.sun.com/xml/ Webreference:http://www.webreference.com/authoring/languages/xml/ DataChannel XML Resources, XML = Revolution: http://www.datachannel.com/xml_resources/ POET XML Resource Library: http://www.poet.com/xml/xml_lib.html XSLT Programmer's Reference, 2nd edition, por Michael Kay: http://www.amazon.com/exec/obidos/ASIN/1861005067/perltutobyjjmere/1033957727-4663029 Transformaciones XSLT: http://www.ibiblio.org/xml/books/bible2/chapters/ch17.html IBM XML Web Site, Education - XML Tutorials for Programmers: http://www.software.ibm.com/xml/education/tutorial-prog/overview.html DEVELOPERLIFE.COM brought to you by The Bean Factory: http://developerlife.com/xmljavatutorial1/default.htm Introduction to XML (Webmonkey): http://metalab.unc.edu/xml/books/xml/examples/ Examples from XML: Extensible Markup Language: http://metalab.unc.edu/xml/books/xml/examples/ Heart of Darkness: http://home.sprynet.com/~dmeggins/texts/darkness/index.html IBM: http://www.software.ibm.com/xml/ Xalan: http://xml.apache.org

XSLT:
o

Tutoriales:
o o o

Ejemplos:
o o

Software:
o o o

Saxon: http://saxon.sourceforge.net/
IBM | alphaWorks: http://www.alphaWorks.ibm.com/discussion

Ayudas/Foros:
o

Java y XSLT

21

Java y XSLT

DejaNews Search Results: http://www.dejanews.com/=netcenter/dnquery.xp?query=jvm&VW=&maxhits =25&format=terse&showsort=score&ST=QS&LN G=ALL

13.- BIBLIOGRAFIA
Hiroshi Maruyama y otros. XML and Java. Second Edition. Developing Web Applications. Addison-Wesley. Sitio web: http://www.aw.com/cseng Brett McLaughlin. Java y XML. ANAYA. Eric M. Burke. Java y XSLT. ANAYA.

22

Java y XSLT

También podría gustarte