Portabilidad de los datos XML - PowerPoint PPT Presentation

1 / 110
About This Presentation
Title:

Portabilidad de los datos XML

Description:

Se aplica a un tipo particular de documento y sirve como un contrato entre el ... Los caracteres a utilizar habr n de pertenecer al conjunto de caracteres Unicode ... – PowerPoint PPT presentation

Number of Views:200
Avg rating:3.0/5.0
Slides: 111
Provided by: diUn7
Category:

less

Transcript and Presenter's Notes

Title: Portabilidad de los datos XML


1
Portabilidad de los datos(XML)
  • Fernando Álvarez García
  • Universidad de Oviedo
  • falvarez_at_correo.uniovi.es

2
Portabilidad de los datos Índice
I Introducción II Conceptos básicos de
XML III La especificación XML IV XSL V Java y
XML
3
Introducción Intercambio de información en el WWW
(I)
  • HTML es el formato habitual de la información que
    circula en el web
  • La utilización de un formato como HTML introduce
    varios problemas
  • Existe una gran cantidad de páginas web con
    código HTML erróneo
  • lthtmlgtltheadgt
  • lttitlegtLista de Asignaturaslt/titlegt
  • lt/headgt
  • ltbodygtlth1gtLista de Asignaturaslt/bodygt
  • Afortunadamente? , los navegadores están
    preparados para tratar páginas web mal escritas
  • Nota en http//validator.w3.org/ hay un
    validador de documentos HTML pruébalo y te
    sorprenderás

4
Introducción Intercambio de información en el WWW
(II)
  • HTML mezcla la información propiamente dicha con
    su aspecto (presentación) a los ojos del usuario
  • Problema 1 búsqueda de documentos (páginas) que
    contengan determinada información
  • Ejemplo buscar Miguel Cervantes
  • Resultados páginas con la lista de libros
    escritos por Miguel Cervantes, páginas con
    información acerca de su vida, páginas de libros
    favoritos de ciertas personas
  • Conclusión 1 no es posible indicar el
    significado que se quiere dar a cada una de las
    palabras claves que forman el criterio de búsqueda

5
Introducción Intercambio de información en el WWW
(III)
  • Problema 2 análisis automatizado de la
    información
  • Ejemplo se obtiene la lista de libros escritos
    por Miguel de Cervantes se quiere ordenar por
    año de publicación
  • Resultado no es posible, dado que el servidor
    envía texto con formato y no es posible
    identificar el significado de cada una de las
    piezas de información del mismo
  • ltTABLEgtltTRgtltTDgtDon Quijotelt/TDgtltTDgt1999lt/TDgtlt/TRgt
  • ltTRgtltTDgtNovelas Ejemplareslt/TDgtltTDgt2001lt/TD
    gtlt/TRgt
  • ltTRgtltTDgtEntremeseslt/TDgtltTDgt1983lt/TDgtlt/TRgt
  • ltTRgtltTDgtObras completaslt/TDgtltTDgt1990lt/TDgtlt/
    TRgt
  • lt/TABLEgt
  • Posible algoritmo ordenación tomar el valor
    numérico de la 2ª columna de cada fila para
    ordenar y si el autor de la página cambia el
    orden de las columnas?
  • Conclusión 2 no es posible conocer el
    significado de la información contenida en una
    página HTML

6
Introducción Intercambio de información en el WWW
(IV)
  • Comercio electrónico
  • Ejemplo típico de intercambio de información
  • (B2C) Un cliente quiere conocer la lista de
    impresoras que ofrezcan cierta velocidad mínima
    de impresión
  • Problema no existe una forma estándar para que
    el cliente exprese las características de lo que
    desea buscar y obtenga los resultados en un
    formato estructurado
  • Problema la información buscada está diseminada
    a lo largo de párrafos de texto de las páginas
    web de los diferentes fabricantes
  • Conclusión no es posible automatizar el proceso
    de búsqueda de dicha información

7
Introducción Intercambio de información en el WWW
(V)
  • Comercio electrónico (continuación)
  • (B2B) Dos empresas que quieran comerciar
    electrónicamente tienen que acordar un formato
    para los mensajes
  • Se produce un coste asociado al desarrollo de
    software necesario para implementar dicho acuerdo
  • Escribir programas que soportan ese formato de
    mensajes
  • Problema Qué hacer si se mantienen relaciones
    comerciales con varias empresas?
  • Problema si llega una empresa nueva, con mejores
    precios y mayor calidad, nuestra empresa no podrá
    sacar provecho de esta nueva situación hasta que
    no acuerde un formato de intercambio de datos con
    ella

8
Introducción Intercambio de información en el WWW
(VI)
  • Acceso a bases de datos
  • Las empresas han acumulado gran cantidad de
    información en sus bases de datos a lo largo de
    los años
  • En muchos casos, la información que necesita una
    persona para realizar un trabajo reside en muchas
    y diferentes bases de datos
  • Es necesaria una tecnología que permita
    sintetizar datos que residen en múltiples bases
    de datos y ofrecer el resultado en función de las
    necesidades del usuario
  • Dicho usuario puede ser un empleado de la propia
    empresa o una empresa externa
  • Conclusión es necesario poder abstraer
    información de múltiples bases de datos

9
Introducción Intercambio de información en el WWW
(VII)
  • SOLUCIÓN
  • Definición de un estándar de intercambio de
    información
  • Debe cumplir 2 requisitos
  • Tiene que posibilitar la especificación del
    significado de cada porción de información
  • Debe posibilitar que dos o más interesados
    acuerden la utilización de una organización
    concreta de la información
  • Porque hay una variedad infinita de tipos de
    información que puede ser intercambiada

10
Introducción Intercambio de información en el WWW
(VIII)
  • El primer requisito se puede cumplir añadiendo
    metadatos (metainformación) a los datos
    (información) propiamente dichos
  • Ejemplo autor es un metadato sobre Cervantes
  • Ejemplo el esquema de una base de datos contiene
    metadatos sobre los datos contenidos en la misma
    (datos en columnas, del mismo tipo, etc.)
  • Problema los metadatos, por sí mismos, no
    permiten especificar la organización de la
    información (2º req.)
  • Ejemplo el metadato precio no permite saber si
    son dólares, pesetas, euros, etc.
  • En cambio, sí solucionan, por ejemplo, el
    problema de la búsqueda por autor

11
Introducción Intercambio de información en el WWW
(IX)
  • El segundo requisito se puede cumplir con la
    utilización de un contexto compartido
  • Un contexto compartido es una descripción formal
    de las reglas que tienen que seguir los metadatos
  • Se aplica a un tipo particular de documento y
    sirve como un contrato entre el receptor y el
    emisor del mismo
  • Ejemplo en B2B, dos empresas pueden acordar un
    tipo de documento orden. El contexto compartido
    aplicado podría consistir en
  • Una orden puede contener 1 o más líneas de
    elemento
  • Cada línea de elemento tiene una referencia,
    precio unitario, cantidad, etc.

12
Portabilidad de los datos Índice
  • I Introducción
  • II Conceptos básicos de XML
  • III La especificación XML
  • IV XSL
  • V Java y XML

13
Conceptos básicos de XML Introducción (I)
  • Los conceptos metadatos y contexto compartido son
    muy generales
  • Es necesaria una implementación
  • XML (eXtensible Markup Language) es una de las
    implementaciones más utilizadas
  • Es un subconjunto de SGML (Standard Generalized
    Markup Language), lenguaje estandarizado por la
    ISO (International Organization for
    Standardization) en 1986
  • SGML tiene sus orígenes en IBM, que quería un
    medio para describir el contenido de documentos
    de tal manera que se pudiera publicar el mismo
    contenido en diferentes formas
  • La aproximación seguida en SGML consiste en la
    utilización de metadatos y contexto compartido

14
Conceptos básicos de XML Introducción (II)
  • XML es, desde Febrero de 1998, un estándar del
    W3C (WWW Consortium, http//www.w3.org)
  • Está en su versión 1.0
  • Es lo suficientemente simple para ser entendido
    en su totalidad y lo suficientemente expresivo
    para cubrir la necesidad de contextos compartidos
    en Internet

15
Conceptos básicos de XML Metadatos y contexto
compartido en XML
  • Los metadatos son introducidos en los documentos
    con la utilización de etiquetas o marcas (tag)
  • Su sintaxis es muy parecida a la usada en HTML
  • Ejemplo para indicar que Miguel de Cervantes es
    el autor de un trabajo, se puede escribir
  • ltautorgtMiguel de Cervanteslt/autorgt
  • Los diseñadores de los documentos añaden el
    contexto compartido a través de definiciones de
    tipos de documentos (DTD, Document Type
    Definitions)
  • Un DTD es un conjunto de declaraciones que
    especifican el orden, estructura y atributos
    permitidos para las marcas en un tipo particular
    de documento

16
Conceptos básicos de XML Necesidad de software de
soporte para XML (I)
  • Con el fin de sacar el máximo provecho a XML
    (metadatos contexto compartido) se necesita una
    abundante cantidad de tipos de software que le
    den soporte
  • Se trata, en definitiva, que las aplicaciones
    puedan producir y procesar documentos XML
  • Requisitos de dicho software
  • Componentes software básicos
  • Proporcionan capacidades básicas para el análisis
    y la generación de documentos XML
  • Necesarios para diferentes (el máximo posible)
    lenguajes de programación

17
Conceptos básicos de XML Necesidad de software de
soporte para XML (II)
  • Herramientas de desarrollo de software
  • Permiten dotar a las aplicaciones de capacidades
    XML de manera sencilla
  • Posibilitan la inclusión de componentes software
    básicos (ver punto anterior) así como utilidades
    para manipular documentos XML
  • Herramientas de desarrollo de documentos
  • Son necesarias herramientas que permitan la
    definición de DTDs y la escritura de documentos
    XML
  • Necesitarían herramientas gráficas para la
    creación de DTDs y navegadores jerárquicos para
    la manipulación directa de los documentos XML

18
Conceptos básicos de XML Necesidad de software de
soporte para XML (III)
  • Infraestructura web
  • XML es, fundamentalmente, una tecnología para el
    web
  • Por lo tanto, servidores y navegadores deben
    (deberían) soportarlo
  • Si los desarrolladores están seguros de que
    prácticamente todos los navegadores estándar (más
    populares) pueden visualizar documentos XML, se
    animarán a utilizarlo
  • Componentes traductores
  • Las aplicaciones software ya tienen sus propios
    formatos para los datos
  • Para integrar dichas aplicaciones con otras a
    través de XML son necesarios componentes que
    traduzcan sus formatos de datos a XML

19
Conceptos básicos de XML Necesidad de software de
soporte para XML (IV)
  • Enlaces a páginas web con software/recursos XML
  • http//www.garshol.priv.no/download/xmltools/cat_i
    x.html
  • http//www.xml.com/resourceguide/
  • http//www.xmlsoftware.com/

20
Conceptos básicos de XML Documentos XML(I)
  • Un documento XML es una unidad de información
    que puede ser vista de dos maneras como una
    secuencia lineal de caracteres que contiene los
    datos y el marcado o como una estructura de datos
    abstracta que toma la forma de un árbol de nodos
  • Como secuencia de caracteres, facilita la lectura
    al ser humano
  • Como estructura jerárquica, facilita su
    procesamiento por programas de ordenador
  • Los caracteres a utilizar habrán de pertenecer al
    conjunto de caracteres Unicode
  • XML es sensible a la utilización de mayúsculas y
    minúsculas

21
Conceptos básicos de XML Documentos XML (II)
  • Hay una serie de caracteres especiales
    reservados lt, gt, , , . En su lugar hay que
    utilizar las entidades lt, gt, amp,
    quot y apos, respectivamente
  • Los espacios en blanco (espacios, tabuladores,
    retornos de carro y saltos de línea) son
    ignorados dentro del marcado, pero su utilización
    sirve en muchos casos para hacer que el documento
    XML sea legible

22
Conceptos básicos de XML Ejemplo de documento XML
(I)
  • Documento XML para un plan de estudios
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • lt!DOCTYPE planestudios SYSTEM "FormatoPlanEstudios
    .dtd"gt
  • ltplanestudiosgt
  • ltasignatura codigo"1"gt
  • ltnombregtFundamentos de Computadoreslt/nombregt
  • ltcreditosgtltteoricosgt4.5lt/teoricosgt
  • ltpracticosgt4.5lt/practicosgt
  • lt/creditosgt
  • lttipogtlttroncal curso"1"/gtlt/tipogt
  • ltareasconocimientogt
  • ltareagtltnombreareagtATClt/nombreareagt
  • ltestaasignada/gt
  • lt/areagt
  • ...
  • lt/planestudiosgt

23
Conceptos básicos de XML Ejemplo de documento XML
(II)
  • Vista jerárquica del documento XML

24
Conceptos básicos de XML Marcado y datos
  • El marcado es aquella parte del documento que
    debe ser entendida por el procesador XML
  • Empieza siempre con el carácter lt o con el
  • Ejemplo ltasignaturagt
  • Ejemplo amp
  • Las partes que se encuentran entre las marcas son
    las que deben resultar legibles para el ser
    humano y constituyen los datos de carácter
  • Ejemplo Fundamentos de Computadores
  • Ejemplo 4.5
  • También pueden ser legibles otras cosas
  • Por ejemplo, los valores de los atributos

25
Conceptos básicos de XML Documentos XML bien
formados
  • El marcado de un documento XML debe cumplir una
    serie de requisitos sencillos
  • De esta forma, un analizador XML podría
    construir el árbol (vista jerárquica) sin
    ambigüedad únicamente a partir del marcado
  • Una secuencia de caracteres que cumple los
    requisitos mencionados se dice documento XML
    bien formado
  • Basta con que no se cumpla uno de los requisitos
    para poder decir que no tenemos un documento XML
  • Los analizadores XML tampoco corrigen los errores
    (recuérdese que los navegadores sí hacen algo de
    esto)
  • Ejemplos de documentos NO XML
  • ltagtltbgtlt/agtlt/bgt (marcado se cruza)
  • ltagtltbgtlt/agt (ausencia de final de marca)

26
Conceptos básicos de XML Documentos XML válidos
  • Adicionalmente, un documento XML puede tener
    asociado un DTD
  • Si cumple las restricciones de su DTD, será,
    además, un documento válido
  • Obviamente, deberá ser también un documento bien
    formado
  • Una pequeña variación en la jerarquía del
    documento XML podría hacer que pasase a ser
    inválido
  • Aunque podría seguir siendo bien formado

27
Conceptos básicos de XML Ejemplo de DTD
  • DTD para documentos XML de planes de estudios
  • lt!ELEMENT planestudios (asignatura)gt
  • lt!ELEMENT asignatura (nombre,creditos,tipo,areasco
    nocimiento)gt
  • lt!ATTLIST asignatura codigo CDATA REQUIREDgt
  • lt!ELEMENT nombre (PCDATA)gt
  • lt!ELEMENT curso (PCDATA)gt
  • lt!ELEMENT tipo (troncal obligatoria
    optativa)gt
  • lt!ELEMENT creditos (teoricos, practicos)gt
  • lt!ELEMENT practicos (PCDATA)gt
  • lt!ELEMENT teoricos (PCDATA)gt
  • lt!ELEMENT areasconocimiento (area)gt
  • lt!ELEMENT area (nombrearea, estaasignada?)gt
  • lt!ELEMENT nombrearea (PCDATA)gt
  • lt!ELEMENT estaasignada EMPTYgt
  • lt!ELEMENT troncal EMPTYgt
  • lt!ATTLIST troncal curso CDATA REQUIREDgt
  • lt!ELEMENT obligatoria EMPTYgt
  • lt!ATTLIST obligatoria curso CDATA REQUIREDgt
  • lt!ELEMENT optativa (seimparte?)gt

28
Conceptos básicos de XML Usos principales de XML
  • Creación de documentos para su publicación en el
    Web o cualquier otro medio
  • Codificación de datos, incluyendo los extraídos
    de bases de datos, para ser intercambiados
  • Configuración de programas de ordenador
  • Desarrollo de vocabularios y DTDs específicos de
    diversos dominios
  • En la página web
  • http//www.oasis-open.org/cover/xml.htmlappli
    cations se puede encontrar una amplia lista de
    lenguajes XML

29
Portabilidad de los datos Índice
I Introducción II Conceptos básicos de
XML III La especificación XML IV XSL V Java y
XML
30
La especificación XML Sintaxis (I)
  • En líneas generales, un documento XML se divide
    en
  • Prólogo
  • Contiene información acerca del documento y cómo
    debe interpretarse éste
  • Juega un papel similar a, por ejemplo, las
    cabeceras de los mensajes de correo electrónico
    (remitente, destinatario, codificación, etc.)
  • Incluye dos cosas (ambas opcionales)
  • Versión XML utilizada
  • Tipo de documento (DTD) al que corresponde
  • Ejemplo
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • lt!DOCTYPE planestudios SYSTEM "FormatoPlanEstudios
    .dtd"gt

31
La especificación XML Sintaxis (II)
  • (2ª parte de un documento XML)
  • Instancia del documento
  • Contiene los datos reales del documento como una
    jerarquía de elementos
  • Si está definido un DTD en el prólogo, la
    instancia del documento debe seguir las
    restricciones en él marcadas
  • Ejemplo de instancia (ya visto)
  • ltplanestudiosgt
  • ltasignatura codigo"1"gt
  • ltnombregtFundamentos de Computadoreslt/nombregt
  • ltcreditosgtltteoricosgt4.5lt/teoricosgt
  • ltpracticosgt4.5lt/practicosgt
  • lt/creditosgt
  • ...

32
La especificación XML Elementos (I)
  • Los elementos se dividen en 2 categorías
  • La mayoría contienen caracteres, otros elementos
    o ambas cosas
  • Hay también elementos sin contenido, denominados
    vacíos
  • Los nombres de elementos no pueden comenzar con
    la cadena xml, ya sea en mayúsculas, minúsculas
    o combinación de ambas
  • Ejemplo de elemento con contenido
  • ltnombregtFundamentos de Computadoreslt/nombregt
  • Empieza con una etiqueta de inicio y termina con
    una de fin
  • Lo que hay en el medio es el contenido del
    elemento

33
La especificación XML Elementos (II)
  • Etiqueta de inicio
  • Símbolo lt, seguido del nombre del elemento y
    terminado con el símbolo gt
  • Puede, además, contener atributos
  • Etiqueta de fin
  • Cadena lt/, el mismo nombre de elemento que el
    usado en la etiqueta de inicio y el símbolo gt
  • Los elementos sin contenido pueden utilizar una
    sintaxis resumida
  • Símbolo lt, seguido del nombre del elemento y
    terminado con la cadena /gt
  • Ejemplos de elementos vacíos
  • ltestaasignadagtlt/estaasignadagt
  • ltestaasignada/gt (método abreviado)

34
La especificación XML Atributos
  • Además de contenido, los elementos pueden
    contener atributos
  • Son una forma de incorporar características o
    propiedades a los elementos
  • Los atributos tienen nombre y valor asignado
  • En un DTD, cada atributo viene especificado para
    un tipo de elemento específico
  • Ejemplo
  • ltasignatura codigo"1"gt...lt/asignaturagt
  • Atributo codigo, con valor 1
  • Los valores de atributos deben ir siempre
    entrecomillados (comillas simples o dobles)
  • Los DTD restringen la ocurrencia y valores
    permitidos de los atributos

35
La especificación XML Prólogo
  • Formado por una declaración XML y una declaración
    de tipo de documento, ambas opcionales
  • En caso de existir ambas, la declaración XML debe
    ir en primer lugar
  • Ejemplo de prólogo
  • lt?xml version"1.0" encoding"UTF-8"?gt
  • lt!DOCTYPE planestudios SYSTEM "FormatoPlanEstudios
    .dtd"gt
  • Indica que el documento es conforme con la
    versión 1.0, que utiliza el código UTF-8 (ASCII
    de 7 bits) para codificar los caracteres y que
    pertenece a un tipo de documento concreto
    denominado planestudios, definido en
    FormatoPlanEstudios.dtd
  • La declaración de tipo de documento puede
    compartir el mismo fichero que la instancia del
    documento

36
La especificación XML Secciones CDATA
  • Permiten especificar a los procesadores XML que
    no interpreten una parte del texto que contiene
    marcado
  • CDATA significa datos de carácter y su sintaxis
    es
  • lt!CDATAcontenidogt
  • Ejemplo
  • lt!CDATA
  • lthtmlgtltheadgt
  • lttitlegtLista de Asignaturaslt/titlegt
  • lt/headgt
  • ltbodygtlth1gtLista de Asignaturaslt/h1gtlt/bodygt
  • gt
  • OJO con la posible aparición de la cadena gt
    dentro de la sección delimitada

37
La especificación XML Comentarios
  • De manera similar a los comentarios de los
    programas de ordenador, resulta muy práctico
    poder incorporarlos en los documentos XML, de
    manera que se ignoren durante el procesamiento de
    los mismos
  • Pueden introducirse en cualquier lugar del
    prólogo y la instancia del documento
  • No pueden insertarse en las declaraciones,
    etiquetas y otros comentarios
  • Empiezan con la cadena lt!-- y terminan con --gt
  • Ejemplo
  • lt!-- Este documento contiene el plan de estudios
    de Informatica --gt

38
La especificación XML Definición del tipo de
documento
  • Un DTD define los tipos de elementos, atributos y
    entidades permitidas así como las formas posibles
    en que se pueden combinar en los documentos XML
    de dicho tipo que se quieran crear
  • En defnitiva, el DTD define una gramática que han
    de seguir los documentos XML de dicho tipo de
    documento
  • Obviamente, no es obligatorio que todo documento
    XML tenga un DTD asociado
  • En este último caso, el documento XML puede
    aspirar, únicamente, a estar bien formado

39
La especificación XML Definición del tipo de
documento. Elementos (I)
  • Todos los elementos de un documento XML válido
    deben ajustarse a un tipo de elemento declarado
    en su DTD
  • Las declaraciones de tipo de elemento empiezan
    con la cadena lt!ELEMENT seguida del nombre del
    elemento, seguida de una especificación de
    contenido y finaliza con gt
  • Ejemplo
  • lt!ELEMENT asignatura (nombre, creditos, tipo,
  • areasconocimiento)gt
  • En el ejemplo se especifica que el los elementos
    de tipo asignatura deben contener un elemento
    nombre, seguido de un elemento creditos, seguido
    a su vez de un elemento tipo y terminado con un
    elemento areasconocimiento

40
La especificación XML Definición del tipo de
documento. Elementos (II)
  • Especificaciones de contenido
  • Sin contenido se usa la palabra clave EMPTY
  • lt!ELEMENT estaasignada EMPTYgt
  • Cualquier contenido permite que un tipo de
    elemento contenga cualquier elemento o carácter
  • Poco usada, dado que el elemento en cuestión
    queda sin estructura definida
  • Se usa la palabra clave ANY
  • lt!ELEMENT cualquiera ANYgt
  • Datos textuales el contenido se limita a simple
    texto, no permitiéndose el anidamiento de otros
    elementos
  • Se utiliza la cadena (PCDATA)
  • lt!ELEMENT nombre (PCDATA)gt

41
La especificación XML Definición del tipo de
documento. Elementos (III)
  • Especificaciones de contenido (continuación)
  • Modelo de contenido utilizada para declarar que
    un tipo de elemento contiene a su vez elementos
  • Es un patrón que se establece para especificar
    los subelementos aceptados y el orden en que se
    aceptan
  • Ejemplo de secuencia de subelementos
  • lt!ELEMENT asignatura (nombre, curso)gt
  • Ejemplo de alternativa entre subelementos
  • lt!ELEMENT campus (Oviedo Mieres Cristo)gt
  • Ejemplo de indicadores de frecuencia
  • lt!ELEMENT titulos (bachiller?, superiores)gt
  • Ejemplo complejo
  • lt!ELEMENT test (introducción,
  • (pregunta,respuesta),
  • instrucciones?)gt

42
La especificación XML Definición del tipo de
documento. Atributos (I)
  • Se declaran para determinados tipos de elementos
  • Las declaraciones de atributos empiezan con la
    cadena lt!ATTLIST seguida del nombre del elemento,
    seguida del nombre del atributo, su tipo y su
    defecto y finaliza con gt
  • Ejemplo
  • lt!ATTLIST asignatura codigo CDATA REQUIREDgt
  • Se permite declarar varios atributos en la misma
    declaración de lista de atributos
  • lt!ATTLIST alumno email CDATA REQUIRED
  • telefono CDATA REQUIRED
  • fax CDATA REQUIREDgt
  • Se desaconseja utilizar el mismo nombre de
    atributo para varios de ellos asociados a
    distintos elementos

43
La especificación XML Definición del tipo de
documento. Atributos (II)
  • Tipos de atributos
  • Texto libre se identifican con la cadena CDATA
  • lt!ATTLIST asignatura codigo CDATA REQUIREDgt
  • Enumerados el atributo sólo puede tomar un valor
    entre los especificados
  • lt!ATTLIST aula tipo (pequeñamedianagrande
    REQUIREDgt
  • Valor por defecto
  • IMPLIED el atributo es opcional
  • REQUIRED el atributo es obligatorio
  • FIXED el atributo no puede cambiar de valor
  • lt!ATTLIST h1 titulo CDATA FIXED elem-titulogt
  • lt!ATTLIST aula tipo (pequeñagrande) grandegt

44
La especificación XML Definición del tipo de
documento. Atributos vs Elementos
  • Los atributos no pueden contener subelementos
  • Son texto sin estructura interna
  • Los atributos sólo pueden especificarse una vez y
    en cualquier orden
  • Los elementos suelen representar datos y su
    contenido debe aparecer en todas las
    representaciones visuales
  • Los atributos suelen contener información de
    menor importancia y normalmente son información
    sobre la información
  • Los atributos suelen representar propiedades de
    objetos y los elementos las partes de los mismos
  • Por ejemplo, para un elemento persona, sus
    subelementos representarán partes del cuerpo y
    sus atributos, propiedades como altura, peso, etc.

45
La especificación XML XML Schema (XSDL)
  • Los schemas se presentan como la mejor forma de
    especificar modelos de contenidos XML
  • Permiten una mayor expresividad que los DTDs
  • Eliminan alguno de los inconvenientes de los DTDs
  • Los DTDs no son documentos XML
  • Un schema será, por tanto, un documento XML
  • Cómo convertir los antiguos DTDs en schemas?
  • Hay herramientas que (casi) automatizan el
    proceso
  • Ver http//www.w3.org/2000/04/schema_hack/
  • Después de la conversión hay que realizar algún
    trabajo manual para sacar partido de la mayor
    expresividad de los schemas
  • Por ejemplo, poner mínimos y máximos a la
    ocurrencia de los elementos

46
La especificación XML Ejemplo de XML Schema
lt?xml version"1.0" encoding"UTF-8"?gt ltxsschema
xmlnsxshttp//www3.w3.org/2001/XMLSchemagt
ltxselement nameplanestudiosgt
ltxscomplexTypegt ltxssequencegt ltxselement
nameasignatura minOccurs1
maxOccursunboundedgt ltxsattribute
namecodigo typexsstring
userequired/gt ltxscomplexTypegt ltxs
sequencegt ltxselement namenombre
typexsstring/gt ltxselement
namecreditosgt ltxscomplexTypegt ltxs
sequencegt ltxselement nameteoricos
typexsstringgt
ltxselement namepracticos
typexsstringgt ...
47
La especificación XML Procesadores XML en línea
de comandos
  • Procesador Xerces
  • Forma parte del Apache XML Project
    (http//xml.apache.org)
  • Aunque no está orientado a su utilización desde
    línea de comandos, pueden utilizarse varios
    ejemplos (que vienen con Xerces) escritos en Java
    para ello
  • Es necesario tener instalado y configurado el JDK
    de Java
  • Ejecución del procesador
  • java sax.Writer fichero.xml
  • Si el fichero XML está bien formado, lo mostrará
    por pantalla
  • En otro caso, retornará el error encontrado

48
La especificación XML Validadores XML en línea de
comandos
  • Validador XML Validator
  • De ElCel Technology (http//www.elcel.com/)
  • Valida documentos XML contra su DTD
  • El DTD se puede especificar en la declaración
    DOCTYPE del documento XML, o bien, pasarse desde
    línea de comandos
  • Ejecución del validador (supuesto que el programa
    ejecutable está en el path
  • xmlvalid fichero.xml
  • Si el fichero XML es válido, lo indicará por
    pantalla
  • En otro caso, retornará la razón de la no validez
    del documento

49
La especificación XML Editores de documentos XML
  • Entorno XML Spy
  • De Altova (http//www.xmlspy.com/)
  • Entorno integrado de desarrollo para tecnologías
    XML
  • Potente editor XML
  • Hojas de estilos edición y transformación
  • Apariencia de procesador de textos
  • Valida documentos

50
La especificación XML Ejercicios (I)
  • Procesar con Xerces el documento
    escuelaPlanNuevo.xml
  • Eliminar alguna de las marcas estudiar el
    resultado
  • Añadir alguna marca incorrectamente estudiar el
    resultado
  • Añadir un segundo elemento nombre a cualquier
    asignatura procesar con Xerces y con Validator
  • Añadir una nueva asignatura a escuelaPlanNuevo.xm
    l que se va a impartir
  • Añadir un nuevo subelemento a asignatura que
    contenga el número de alumnos matriculados
    procesar con Xerces y con Validator

51
La especificación XML Ejercicios (II)
  • Añadir un atributo al elemento seimparte que
    indique el cuatrimestre en que esto ocurre
  • Modificar el DTD para que cada asignatura pueda
    llevar una lista de alumnos
  • Para cada alumno, queremos guardar su nombre,
    apellidos, DNI, y convocatoria en la que se
    encuentra
  • Todas las asignaturas tienen, al menos, un alumno
    matriculado
  • Modificar el fichero XML introduciendo nuevos
    alumnos para las asignaturas
  • Realizar de manera libre los ejercicios
    anteriores con XML Spy

52
Portabilidad de los datos Índice
I Introducción II Conceptos básicos de
XML III La especificación XML IV XSL V Java y
XML
53
XSL Introducción (I)
  • La presentación de documentos (información) es
    una parte importante de un entorno web
  • Dado que la especificación del contenido
    independientemente de su presentación es una
    característica muy importante de XML, los autores
    necesitan una manera de dar formato a sus
    documentos para sus usuarios
  • XSL (eXtensible Stylesheet Language) incluye
    tanto un lenguaje de transformación como un
    lenguaje de formateado
  • Transformación de un documento XML en otro
    documento XML
  • En particular, puede utilizar etiquetas definidas
    por los objetos de formato, la segunda parte de
    XSL

54
XSL Introducción (II)
  • La solución tiene que cumplir tres requisitos
  • Aplicación de reglas de formato a los elementos
  • Los autores pueden especificar reglas de formato
    para cada tipo de elemento de cada documento
  • Dichas reglas incluyen formato de la fuente,
    espaciado, formato de tablas, etc.
  • Utilizable con diferentes tecnologías de
    visualización
  • La misma hoja de estilos permitirá representar el
    mismo documento utilizando una amplia variedad de
    lenguajes de descripción de formato de páginas,
    como HTML, PDF, PS, RTF, etc.
  • La aplicación de una hoja de estilos a un
    documento creará una descripción intermedia
    denominada árbol de objetos de formato que se
    convertirá finalmente al lenguaje deseado

55
XSL Introducción (III)
  • La solución tiene que cumplir tres requisitos
    (cont.)
  • El consumidor del documento puede controlar la
    aplicación de hojas de estilos
  • En HTML, el autor del documento controla como lo
    va a ver el consumidor del mismo
  • En el modelo XSL, los consumidores puede elegir
    la hoja de estilos a aplicar

56
XSL Introducción (IV)
  • Con XSL se definen plantillas de formato que han
    de aplicarse a los elementos de los documentos
    XML
  • Ejemplo de hoja de estilos XSL
  • ltxsltemplate matchplanestudios"gt
  • lthtmlgtltheadgtlttitlegtAsignaturaslt/titlegt
  • lt/headgt
  • ltbodygtlth1gtLista de Asignaturaslt/h1gt
  • ltxslapply-templates/gt
  • lt/bodygt
  • lt/htmlgt
  • lt/xsltemplategt
  • Como se puede comprobar, una hoja de estilos XSL
    es, a su vez, un documento XML

57
XSL XSLT (I)
  • Las partes de transformación y formato de XSL
    pueden trabajar de manera independiente
  • Por ejemplo, el lenguaje de transformación puede
    transformar documentos XML en un fichero HTML e
    ignorar el proceso de formateado
  • En muchos casos existen diferentes DTDs que
    describen el mismo tipo de documento en
    diferentes empresas
  • El lenguaje de transformación permitirá
    transformar documentos de un tipo a otro
  • XSLT (XSL Transformations) es un subconjunto de
    XSL capaz de transformar un documento XML en un
    formato a otro documento XML en otro formato
  • Se ayuda de XPath, un lenguaje que se utiliza
    para referenciar elementos, atributos, datos de
    carácter, etc. en un documento XML

58
XSL XSLT (II)
  • En una transformación XSL, un procesador XSL lee
    un documento XML y una hoja de estilos XSL
  • Basándose en las instrucciones que el procesador
    encuentra en la hoja de estilos, obtiene un nuevo
    documento XML (incluido HTML)
  • En general, podría obtenerse texto arbitrario,
    pero está diseñado principalmente para
    transformaciones XML-a-XML
  • Hablando con más precisión, una transformación
    XSL acepta como entrada un árbol que representa
    un documento XML y produce como resultado un
    nuevo árbol, que representa también un documento
    XML
  • Por eso, la parte de transformación de XSL se
    denomina también parte de construcción del árbol

59
XSL XSLT (III)
  • Un documento XSL contiene una lista de plantillas
    y otras reglas
  • Una regla de plantilla contiene
  • Un patrón (expresión XPath, con algunas
    extensiones y restricciones) que especifica el
    árbol al que se aplica
  • Una plantilla que se debe devolver como resultado
    cuando se localiza el patrón en el documento XML
  • Funcionamiento un procesador XSL compara el
    documento XML con el patrón de cada regla de
    plantilla
  • Si encuentra un árbol que satisface el patrón,
    devuelve la plantilla de la regla
  • Esta plantilla incluye, habitualmente, marcado,
    datos nuevos y datos copiados del árbol del
    documento XML original

60
XSL XSLT (IV)
  • XSL utiliza XML para describir las reglas,
    plantillas y patrones
  • El documento XSL es un elemento xslstylesheet o
    un xsltransform
  • Cada regla de plantilla es un elemento
    xsltemplate
  • El patrón de la regla es el valor del atributo
    match del elemento xsltemplate
  • La plantilla resultado es el contenido del
    elemento xsltemplate
  • Todas las instrucciones de la plantilla para
    hacer cosas (por ejemplo, seleccionar partes del
    árbol de entrada) son realizadas por algún
    elemento XSL
  • Se identifican con el prefijo xsl en el nombre
    de elemento
  • Elementos sin ese prefijo formarán parte del
    árbol resultado

61
XSL XSLT (V)
  • Ejemplo de hoja de estilos
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0
  • xmlnsxsl"http//www.w3.org/1999/XSL/Transf
    orm"gt
  • ltxsltemplate matchplanestudios"gt
  • lthtmlgtltbodygtlth1gtLista de Asignaturaslt/h1gt
  • ltxslapply-templates/gt
  • lt/bodygt
  • lt/htmlgt
  • lt/xsltemplategt
  • ltxsltemplate match"asignatura"gt
  • lth2gtltxslvalue-of select"."/gtlt/h2gt
  • lt/xsltemplategt
  • lt/xslstylesheetgt

62
XSL XSLT (VI)
  • Documento XML al que aplicar la hoja de estilos
  • lt?xml version"1.0"?gt
  • lt?xml-stylesheet type"text/xsl"
    hrefescuela.xsl"?gt
  • ltplanestudiosgt
  • ltasignatura codigo"1"gt
  • ltnombregtSistemas Operativoslt/nombregt
  • ltcursogt2lt/cursogt
  • lttipogtobligatorialt/tipogt
  • ltseimparte/gt
  • lt/asignaturagt
  • ...
  • lt/planestudiosgt

63
XSL XSLT (VII)
  • Qué ocurre al aplicar la hoja de estilos?
  • El nodo raíz (del documento XML) se compara con
    todas las reglas de plantilla de la hoja de
    estilos no cumple ninguna
  • El primer hijo del nodo raíz del documento XML
    (xml-stylesheet) se compara con todas las reglas
    de plantilla no cumple ninguna
  • El segundo hijo del nodo raíz del documento XML
    (planestudios) se compara con todas las reglas de
    plantilla cumple la primera
  • Se devuelve, como resultado parcial,
    lthtmlgtltbodygtlth1gtLista de Asignaturaslt/h1gt
  • El elemento xslapply-templates obliga al motor
    de formato a procesar todos los nodos hijo de
    planestudios
  • (continúa en página siguiente)

64
XSL XSLT (VIII)
  • Qué ocurre al aplicar la hoja de estilos?
    (continuación)
  • ...
  • El primer hijo del nodo planestudios del
    documento XML (asignatura) se compara con todas
    las reglas de plantilla cumple la segunda
  • Se devuelve, como resultado parcial, lth2gt
  • El elemento xslvalue-of select devuelve como
    resultado parcial el contenido textual de todos
    los elementos hijos de asignatura
  • Se devuelve, como resultado parcial, lt/h2gt
  • El segundo (y sucesivos) hijo del nodo
    planestudios se procesa de igual forma que el
    primero
  • Se devuelve, como resultado parcial,
    lt/bodygtlt/htmlgt
  • En la página siguiente, se muestra el resultado
    de aplicar la hoja de estilos al documento XML

65
XSL XSLT (IX)
  • Documento resultante
  • lthtmlgtltbodygt
  • lth1gtLista de Asignaturaslt/h1gt
  • lth2gtSistemas Operativos
  • 2
  • obligatoria
  • lt/h2gt
  • lth2gt
  • Metodologia I
  • 1
  • obligatoria
  • lt/h2gt
  • ...
  • lt/bodygtlt/htmlgt

66
XSL XSLT. Plantillas (I)
  • Las reglas de plantilla son definidas por el
    elemento xsltemplate
  • Cada elemento xsltemplate tiene un atributo
    match que especifica para qué nodos del documento
    XML se debe instanciar la plantilla
  • El valor del atributo match es una expresión
    XPath
  • Una plantilla puede contener
  • Texto, que aparecerá literalmente en la salida
  • Instrucciones XSL, que copiarán datos del
    documento XML al resultado
  • Ejemplo
  • ltxsltemplate matchplanestudios"gt
  • lthtmlgtltbodygtlth1gtLista de Asignaturaslt/h1gtlt/bod
    ygt
  • lt/htmlgt
  • lt/xsltemplategt

67
XSL XSLT. Plantillas (II)
  • Habitualmente es necesario procesar los
    subelementos de un elemento que cumple una regla
    de plantilla
  • El elemento que lo permite es xslapply-templates
  • Introduciendo dicho elemento en la plantilla de
    salida, se le está diciendo al formateador que
    compare cada elemento hijo del elemento original
    que cumple la regla con las plantillas de la hoja
    de estilos
  • Si, a su vez, se encuentra alguna concordancia,
    se dará también como resultado su plantilla de
    salida
  • Ejemplo
  • ltxsltemplate matchplanestudios"gt
  • lthtmlgtlth1gtltxslapply-templates/gtlt/h1gtlt/htmlgt
  • lt/xsltemplategt

68
XSL XSLT. Plantillas (III)
  • En general, no siempre se desea procesar la
    totalidad de los subelementos de un elemento que
    cumple una regla de plantilla
  • Es posible seleccionar aquellos subelementos que
    se desea sean procesados por el elemento
    xslapply-templates
  • Únicamente hay que utilizar el atributo select de
    dicho elemento, que designará el hijo
    seleccionado
  • Ejemplo
  • ltxsltemplate matchasignatura"gt
  • lthtmlgtlth1gt
  • ltxslapply-templates selectseimparte/gt
  • lt/h1gtlt/htmlgt
  • lt/xsltemplategt

69
XSL XSLT. Obtención del valor de un nodo
  • El elemento xslvalue-of obtiene el valor de algo
    (casi siempre algo del documento XML) y lo copia
    en el documento de salida
  • Su atributo select especifica exactamente de qué
    algo hay que obtener el valor
  • Ejemplo
  • ltxsltemplate match"asignatura"gt
  • lth2gtltxslvalue-of selectnombre"/gtlt/h2gt
  • lt/xsltemplategt
  • El item cuyo valor es seleccionado (el elemento
    nombre) es relativo al nodo actual (asignatura)
  • El valor obtenido por la plantilla anterior
    aplicada a la primera asignatura es lth2gtSistemas
    Operativoslth2gt
  • El valor de un elemento son sus datos de
    carácter
  • El valor de un atributo es su valor asignado

70
XSL XSLT. Procesamiento de múltiples elementos
  • El elemento xslvalue-of debe ser utilizado
    únicamente en aquellas situaciones en las que no
    existe ambigüedad en el valor de qué nodo se está
    tomando
  • Si hay varias posibilidades, se coge la primera,
    como en el siguiente ejemplo
  • ltxsltemplate matchplanestudios"gt
  • ltxslvalue-of selectasignatura"/gt
  • lt/xsltemplategt
  • Aparte del elemento xslapply-templates ya visto,
    existe xslfor-each, que procesa todos los
    elementos (sin usar otra regla de plantilla)
    escogidos por su atributo select
  • ltxsltemplate matchplanestudios"gt
  • ltxslfor-each selectasignatura"/gt
  • ltxslvalue-of select."/gt
  • lt/xslfor-eachgt
  • lt/xsltemplategt

71
XSL XSLT. Patrones para seleccionar nodos (I)
  • El atributo select del elemento xsltemplate
    soporta una sintaxis compleja para permitir la
    especificación exacta de los nodos que se quieren
    buscar
  • Buscar el elemento raíz
  • ltxsltemplate match/"gt
  • ...
  • lt/xsltemplategt
  • Buscar nombres de elemento
  • ltxsltemplate matchasignatura"gt
  • ltxslvalue-of selectnombre/gt
  • ltxslvalue-of selectcurso/gt
  • ltxslvalue-of selecttipo/gt
  • lt/xsltemplategt

72
XSL XSLT. Patrones para seleccionar nodos (II)
  • (continuación)
  • Buscar hijos con /
  • ltxsltemplate matchasignatura/nombre"gt
  • ltxslvalue-of select./gt
  • lt!-- se muestra el contenido de nombre --gt
  • lt/xsltemplategt
  • Buscar utilizando el carácter comodín
  • lt!-- nombre como nieto de planestudios --gt
  • ltxsltemplate matchplanestudios//nombre"gt
  • ltxslvalue-of select./gt
  • lt!-- se muestra el contenido de nombre --gt
  • lt/xsltemplategt
  • Manejar elementos opcionales
  • ltxsltemplate matcharea"gt
  • ltxslif testestaasignadagt ... lt/xslifgt

73
XSL XSLT. Patrones para seleccionar nodos (III)
  • (continuación)
  • Buscar descendientes de un elemento dado
  • lt!-- nombre como descendiente de planestudios
  • --gt
  • ltxsltemplate matchplanestudios//nombre"gt
  • ltxslvalue-of select./gt
  • lt/xsltemplategt
  • Buscar atributos se utiliza el nombre de
    atributo precedido del carácter _at_
  • ltxsltemplate matchasignatura"gt
  • ltxslvalue-of selectnombre/gt
  • ltxslvalue-of select_at_codigo/gt
  • lt/xsltemplategt

74
XSL XSLT. Ordenación de los elementos de
resultado (I)
  • El elemento xslsort ordena los elementos
    resultado en un orden diferente al que tienen en
    la entrada
  • Un elemento xslsort puede aparecer como hijo de
    un xslapply-templates o un xslfor-each
  • El atributo select de xslsort define la clave
    utilizada para ordenar los elementos resultado
    del elemento xslapply-templates o xslfor-each
  • ltxsltemplate matchplanestudios"gt
  • ltxslapply-templatesgt
  • ltxslsort selectnombre"/gt
  • lt/xslapply-templatesgt
  • lt/xsltemplategt
  • ltxsltemplate matchasignatura"gt
  • ltxslapply-templates selectcurso"/gt
  • ltxslapply-templates selectnombre"/gt
  • lt/xsltemplategt

75
XSL XSLT. Ordenación de los elementos de
resultado (II)
  • Se puede hacer que el orden sea descendente y/o
    el tipo de datos del atributo que sirve para
    ordenar
  • ltxsltemplate matchplanestudios"gt
  • ltxslapply-templatesgt
  • ltxslsort selectcurso
  • orderdescending
  • data-typenumber/gt
  • lt/xslapply-templatesgt
  • lt/xsltemplategt
  • ltxsltemplate matchasignatura"gt
  • ltxslapply-templates selectcurso"/gt
  • ltxslapply-templates selectnombre"/gt
  • lt/xsltemplategt

76
XSLT Ejercicios (I)
  • Procesar con Xalan el documento
    escuelaPlanNuevo.xml con la hoja de estilos
    escuela.xsl
  • Cambiar los atributos match y estudiar el
    resultado
  • Procesar con la hoja de estilos escuela2.xsl
  • Procesar con la hoja de estilos escuela3.xsl
  • Procesar con la hoja de estilos escuela4.xsl
  • Procesar con la hoja de estilos escuela5.xsl
  • Escribir una hoja de estilos que muestre todos
    los alumnos matriculados en las asignaturas
  • Idem ejercicio 7, pero ordenados por orden
    alfabético

77
XSLT Ejercicios (II)
  • Para visualizar el resultado de la aplicación de
    una hoja de estilos sobre un documento XML,
    modificar el elemento xsl-stylesheet
  • ltxslstylesheet xmlnsxsl"http//www.w3.org/TR/WD
    -xsl" gt
  • Ahora se puede utilizar Internet Explorer para
    ver el documento XML (se verá realmente la
    aplicación de la hoja de estilos sobre el
    documento)
  • NOTA Internet Explorer obliga a que existan
    reglas de plantilla para todos los elementos que,
    desde el elemento raíz del documento XML, se
    quieran procesar con la hoja de estilos

78
XSL XSL-FO (I)
  • XSL-FO (XSL Formatting Objects) es el lenguaje de
    formateado de XML
  • Mediante los objetos de formato (Formatting
    Objects, FO) y sus propiedades se puede describir
    cómo se van a visualizar los elementos de un
    documento
  • Se pueden definir
  • Características de la página
  • Párrafos
  • Listas
  • Tablas
  • etc.
  • La especificación XSL indica el vocabulario XML
    que define estos objetos de formato

79
XSL XSL-FO (II)
  • El modelo XSL-FO se basa en cajas rectangulares
    denominadas áreas, que pueden contener
  • Texto, espacio vacío, imágenes, otros objetos de
    formato
  • Un área puede tener
  • Bordes, acolchado, espaciado-antes,
    espaciado-después, etc.
  • Un objeto de formato produce, en general, un área
  • En ocasiones, los cambios de página, la
    separación de palabras con guiones, etc., puede
    provocar la producción de varias áreas
  • Los objetos de formato se diferencian en lo que
    representan
  • Elemento de una lista, una tabla, una región, un
    bloque, etc.

80
XSL XSL-FO (III)
  • Cuando se procesa, un documento de objetos de
    formato se divide en páginas
  • Una ventana de un navegador es algo así como una
    página de gran longitud
  • En cambio, un formato de impresión contiene
    habitualmente varias páginas individuales
  • Cada página está formada por cierto número de
    áreas
  • Hay 4 tipos básicos de áreas (cada tipo contiene,
    en general, áreas de los tipos que le siguen en
    la lista)
  • Regiones cabecera, cuerpo y pie de página
  • Bloques párrafos
  • Líneas línea de texto
  • Parte-de-línea carácter individual, referencia
    de nota al pie, ecuación matemática, etc.
  • Hay varios objetos de formato para producir áreas
    de cada tipo

81
XSL XSL-FO (IV)
  • Propiedades de formato
  • Los objetos de formato en un documento XSL-FO
    especifican el orden en que los contenidos se
    colocan en las páginas
  • Las propiedades de formato especifican los
    detalles del formato
  • Tamaño, posición, fuente, color, etc.
  • Se representan como atributos de los elementos
    objetos de formato individuales
  • ltfoblock font-size9pt" font-family"sans-serif"
    line-height"24ptgt

82
XSL XSL-FO (V)
  • Patrón de página
  • Juegan el mismo papel que, por ejemplo, los
    patrones de diapositivas de PowerPoint
  • Define una distribución general para una página
  • Márgenes, tamaños de la cabecera, pie y cuerpo de
    la página, etc.
  • Se utiliza el elemento ltfosimple-page-mastergt

83
XSL XSL-FO (VI)
  • Ejemplo de XSL-FO (simple.fo)
  • lt?xml version"1.0" encoding"utf-8"?gt
  • ltforoot xmlnsfo"http//www.w3.org/1999/XSL/Form
    at"gt
  • ltfolayout-master-setgt
  • ltfosimple-page-master master-name"simple
    "
  • page-height"29.7cm"
    page-width"21cm margin-top"1cm"
  • margin-bottom"2cm"
    margin-left"2.5cm" margin-right"2.5cm"gt
  • ltforegion-body margin-top"3cm"/gt
  • ltforegion-before extent"3cm"/gt
  • ltforegion-after extent"1.5cm"/gt
  • /fosimple-page-mastergt
  • lt/folayout-master-setgt
  • ltfopage-sequence master-reference"simple"gt
  • ltfoflow flow-name"xsl-region-body"gt
  • ltfoblock font-size"18pt"
    font-family"sans-serif" line-height"24pt"
  • space-after.optimum"15pt
    background-color"blue" color"white"
  • text-align"center"
    padding-top"3pt"gt
  • Portabilidad de los datos (XML)
  • lt/foblockgt ...

84
XSL XSL-FO (VII)
  • Un procesador XSL-FO es un programa que procesa
    un documento XML compuesto de XSL-FOs y lo
    presenta en un formato legible

85
XSL XSL-FO (VIII)
  • Salida del procesador XSL-FO FOP para el
    ejemplo simple.fo en formato PDF

86
XSL XSL-FO (IX)
  • La forma habitual de construir documentos XSL-FO
    resulta de la aplicación de hojas de estilos
    (XSLT) a documentos XML que contienen la
    información propiamente dicha

87
XSL XSL-FO (X)
  • Ejemplo (página 1 de 3)
  • lt?xml version"1.0"?gt
  • ltxslstylesheet version"1.0" xmlnsxsl"http//ww
    w.w3.org/1999/XSL/Transform"
  • xmlnsfo"http//www
    .w3.org/1999/XSL/Format" gt
  • ltxsltemplate match"/"gt
  • ltforoot xmlnsfo"http//www.w3.org/1999/XS
    L/Format"gt
  • lt
Write a Comment
User Comments (0)
About PowerShow.com