Está en la página 1de 55

Procesar y Transformar Documentos XML

Tecnologías Software para


Internet
2004
Contexto
Para procesar o transformar
documentos XML intervienen varios
estandares y tecnologias

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 2


Donde tratar los documentos
XML ?
Para tratar documentos XML y mostrar
el contenido deseado al usuario existen
varias soluciones:
 Lado Cliente: mediante browsers XML
 Lado Servidor: procesar / transformar XML
y distribuirlos como páginas HTML
 Lado Cliente + Servidor: ejecutar la
elaboración / transformación y el formateo
entre ambos lados

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 3


Transformar / Presentar documentos
XML

Modos:
 XSL
 CSS

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 4


Hojas de Estilo
Procesar / Presentar Documentos
XML

5
Hoja de estilo
Conjunto de especificaciones que se
aplican a un documento original para
producir una salida esperada
Ofrecen un control preciso sobre la
presentación de documentos XML
Permiten de separar la presentación
del contenido

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 6


Hojas de Estilo para XML
CSS: Cascading StyleSheet (Formateo)

XML Formateo

Original

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 7


Hojas de Estilo para XML
XSL: Extensible Stylesheet Language
(Transformación + Formateo)

Transformación Formateo

XML

Original Documento
Resultante

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 8


Formateo
Organización de la página
 Imágenes y texto
 Márgenes, etc

Texto
 Fuente, alineamiento, dimensión, color, etc

Ambiente
 Background, imágenes, border
 Links, etc

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 9


Transformación
Seleccionar
 La información depende del usuario final

Reorganizar
 Ordenar, organizar en listas, tablas, etc

Reutilizar
 Varios documentos resultantes

Agregar
 Se puede agregar información no presente en el documento
original

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 10


CSS (Cascading StyleSheet)

11
CSS (Cascading StyleSheet)

CSS: simple lenguaje para asignar un


estilo (fuente, color, etc) a documentos
web
Puede ser aplicado a documentos
HTML o XML
Conjunto de reglas = Hoja de estilo

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 12


Hojas de estilo CSS para HTML
Hoja de estilo interna

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 13


Hojas de estilo CSS para HTML
Hoja de estilo externa

Estilo persistente, relacion


Entre la hoja de estilo y el file HTML
Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 14
Hojas de estilo CSS para HTML
<HTML>
...
<BODY>
File HTML
<H1>Leccion sobre CSS</H1>
<P>Hojas de estilo CSS</P>
</BODY>
</HTML>

File CSS

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 15


Hojas de estilo CSS para HTML

Resultado

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 16


Hojas de estilo CSS para XML

<?XML version=„1.0“ encoding=„UTF-8“?>


<?XML:stylesheet href=„styleformat.css“ type=„text/css“?>
</XML>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 17


Hojas de estilo CSS para XML
<information>
<society>EMPRESA A</society>
<tel>1233445556</tel>
File XML
<fax>9999999999</fax>
</information>

fax {
color:blue;
font-size:18.0pt;
File CSS
}

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 18


Hojas de estilo CSS para XML

Resultado

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 19


XSL (Extensible Stylesheet
Language)

20
XSL (Extensible Stylesheet
Language)

Lenguaje para describir hojas de estilo


Consiste en 2 partes:
 XSLT (XSL Transformations) – un lenguaje
para transformar documentos XML

 FO (Formatting Objects) – vocabulario para


especificar formatos

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 21


XSL – FO (XSL Formatting
Objects)

Aplicación XML para especificar


formatos de páginas
Vocabulario completo de presentación

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 22


Ventajas de XSL - FO

Más potente que CSS (notas a pie de


página, etc)
Pensado para usos más vastos de
páginas web:
 Documentos .ps, .pdf
 Documentos de ayuda
 Páginas web (.html)

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 23


Modelo de presentación de XSL -
FO

Basado en 56 elementos XSL – FO


(Objetos)
 Regiones, bloques, areas, tablas, etc
Con centenares de propiedades
 Colores, bordes, márgenes, fuente,
alineamiento, etc

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 24


Procesamiento de XSL - FO
Dos pasos: transformación y formateo
+ conversion
HTML
Conversión
Doc. Transformación
y formateo Para visualización
XML
Doc.
XSL-FO HELP

FO
Doc. Contenido
transformadoy
XSLT formateado PDF

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 25


XSL Transformations

26
XSL Transformations
La verdadera XML XSL
potencialidad de (documento) (hoja de estilo)
XSL es la
capacidad de
transformar un
documento XML Procesador
XSL
en otro
documento (Ej:
HTML, XML,
texto, etc) Salida (XML,
HTML, txt)
Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 27
Aplicar una hoja de estilo XSL a un
documento XML
Lado server:
 El servidor puede ejecutar la
transformación mediante un procesador
XSL y luego enviar el resultado al cliente

Lado cliente:
 El browser transforma el documento XML
como está indicado en la hoja de estilo y lo
presenta al usuario

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 28


Aplicar una hoja de estilo XSL con
Internet Explorer
La hoja de estilo es indicada mediante
una instrucción de proceso en el
documento XML
El procesador XSL está integrado en el
Browser IE

<?xml version=„1.0“ encoding=„UTF-8“?>


<?xml:stylesheet type=„text/xsl“ href=„class.xsl“?>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 29


Estructura de una hoja de estilo XSL
Una hoja de estilo consiste en un
conjunto de reglas (template rule)
Ejemplo:
 Procesador XSL cuando encuentres un
elemento classgroup ejecuta ....“
 Procesador XSL cuando encuentres un
elemento person ejecuta ...“
 Procesador XSL cuando encuentres un
elemento name ejecuta ...“

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 30


Estructura de una hoja de estilo XSL
xsl:stylesheet

Reglas para la raiz Reglas para Reglas para


el primer hijo Hijo n

Acciones a ejecutar

Acciones a ejecutar Acciones a ejecutar

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 31


Estructura de una hoja de estilo XSL

<?xml version=„1.0“?>
<xsl:stylesheet....>
<xsl:template match=„/“> Regla aplicada al root
[action]
</xsl:template>

<xsl:template match=„classgroup“>Un documento XSL es un


[action] documento XML que tiene
</xsl:template>
como elemento raíz:
</xsl:stylesheet> „xsl:stylesheet“

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 32


Estructura de una hoja de estilo XSL
Template Rule
Una „template rule“ toma la siguiente
forma:

<xsl:template match=„pattern“>
[action]
</xsl:template>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 33


Estructura de una hoja de estilo XSL
Template Rule
Una regla asocia un particular „output“
a un particular „input“
Cualquier regla posee 2 partes:
 Pattern: identifica el nodo o nodos de los
árbolos de origen
 Action: especifica la conversion y el estilo
del nodo resultante

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 34


Estructura de una hoja de estilo XSL
Template Rule – Ejemplo
pattern
<xsl:template match=„surname“>
<xsl:value-of-select=„.“/>
</xsl:template>
action

<xsl:template match=„surname“>
Indica al procesador XSL que esta regla debe ser ejecutada
cuando encuentre al elemento „surname“

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 35


Estructura de una hoja de estilo XSL
Template Rule – Ejemplo
pattern
<xsl:template match=„surname“>
<xsl:value-of-select=„.“/>
</xsl:template>
action

<xsl:value-of-select=„.“/>
Regresa el valor del elemento surname

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 36


Ejemplos de Pattern
<xsl:template match=„person“> Identifica cualquier elemento
„person“
<xsl:template match=/“> Identifica la root

<xsl:template match=„*“> Identifica cualquier elemento

<xsl:template Identifica cualquier elemento


match=„name¦address“> „name“ y „address“
<xsl:template Identifica cualquier elemento
match=„person/name“> „name“ con un padre „person“
<xsl:template match=„person/“> Identifica cualquier hijo del
elemento „person“

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 37


Ejemplos de Pattern
<xsl:template Identifica cualquier elemento „libro“
match=„book[@type]“> con un atributo „type“
<xsl:template Indentifica cualquier elemento
match=„book[@type=‚paperback‘]“ „libro“ con un atributo „type“ en el
> cual su valor sea „paperback“
<xsl:template match=„ Identifica cualquier elemento „libro“
collection/book[@type=‚paperback‘] con un atributo „type“ en el cual su
“> valor sea „paperback“ y con un
padre „collection“

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 38


Ejemplo 1

Crear una <classgroup>


hoja de estilo <person>
<name>
para un
<surname>
documento
<organization>
XML
<address>
„clase.xml“ <nationality>
</person>
<person> ...
</classgroup>

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 39


Ejemplo 1

Crear un „template rule“ para cualquier


tipo de nodo del documento XML que se
pretenda tratar
Evaluar la salida del documento html
Ej:
Personas.xsl

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 40


Explicación

<xsl:value-of-select=„.“/> aplicado a los


nodos „name“, „surname“, „address“,
„organization“ y „nationality“
 Retorna el valor del nodo especificado

<xsl:apply-templates/> aplicado a „root“,


„classgroup“ y „person“
 Pasa el control a cualquier de los hijos. Se indica
de procesar cualquier de los hijos del nodo

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 41


Ejemplo 2

Meter HTML entorno al contenido


Ej:
Personas2.xsl

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 42


Ejemplo 3
El documento HTML resultante no se
presente muy bien
Mejoraremos el estilo del documento HTML
indicar al procesador XSL de enviar el
mensaje „here is a person“ cada vez que
encuentre el elemento „person“
 Ej:
Personas3.xsl

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 43


Ejemplo 4
Modificar la hoja de estilo XSL para
mostrar cada dato de la persona en la
celda de una tabla
 Ej:
Personas4.xsl

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 44


Interfaces de Programación para XML

45
Interfaces de Programación para XML

DOM (Document Object Model)


SAX (Simple API for XML)

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 46


Interfaces de Programación para XML

Dos modos de procesar documentos XML


 Basado en un modo árbol (DOM)
 Se carga el documento bajo una estructura de árbol
 Representación detallada y precisa del documento

 Basado en eventos (SAX)


 Requiere menos memoria
 Eficiente

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 47


DOM XML
Interfaz de
programación estandard
a la estructura del
documento
Los programadores DOM
pueden usar diversos
lenguajes de
programación sin
cambiar el modelo Implementación
Visión orientada a
objetos de un
documento
Java JavaScript C++

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 48


Acceso a componentes

Ofrece un mecanismo general para acceder y


manipular la estructura de un documento
XML
Permite:
 Lectura
 Eliminación

 Agregar

 Editar

Contenidos, atributos y estilos

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 49


SAX

Simple API for XML

50
SAX

SAX es una interfaz de programación (API)


simple basada en eventos para XML
No necesita la creación de una estructura
interna ni su carga total como sucede con
DOM
Implementación: originariamente para Java,
posteriormente para (Pascal, Perl, C, C++)

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 51


Eventos SAX

El proceso de parsing (análisis del


documento) puede originar los
siguientes eventos:
 Inicio / fin del documento
 Inicio / fin del elemento
 Atributo de cada elemento

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 52


Eventos SAX

El proceso de parsing (análisis del


documento) puede originar los
siguientes eventos:
 Inicio / fin del documento
 Inicio / fin del elemento
 Atributo de cada elemento

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 53


Analizando el siguiente
documento
<priceList> [el analizador llama a startElement]
<coffee> [el analizador llama a startElement]
<name>Java</name> [El analizador llama a startElement, characters, y
endElement]
<price>11.95</price> [el analizador llama a startElement, characters, y a
endElement]
</coffee> [el analizador llama a endElement]

Si encuentra un „<„ llama a „startElement“


Si encuentra caracteres llama a „characters“
Si encuentra un „>“ llama a „endElement“

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 54


Y en Java ??

Implementar clase „DefaultHandler“


Implementar métodos startElement,
endElement, etc

Ver ejemplo

Tecnologías Software para Internet, Erick Arauco, Udep Ets - 2004 55

También podría gustarte