Usando xml
This presentation is the property of its rightful owner.
Sponsored Links
1 / 45

Usando XML PowerPoint PPT Presentation


  • 88 Views
  • Uploaded on
  • Presentation posted in: General

Usando XML. Ing. Juan Carlos Olivares Rojas Dr. Víctor Jesús Sosa Sosa. Introducción. XML no es sólo una cara bonita. David Eisenberg, “Using XML” , http://www.alistapart.com/stories/usingxml/ , julio de 2002. Consultado: marzo de 2006. Creando un nuevo lenguaje de marcado.

Download Presentation

Usando XML

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


Usando xml

Usando XML

Ing. Juan Carlos Olivares Rojas

Dr. Víctor Jesús Sosa Sosa

Cuernavaca, Morelos, México, marzo de 2006.


Introducci n

Introducción

  • XML no es sólo una cara bonita.

  • David Eisenberg, “Using XML”, http://www.alistapart.com/stories/usingxml/, julio de 2002. Consultado: marzo de 2006.


Creando un nuevo lenguaje de marcado

Creando un nuevo lenguaje de marcado

  • El autor creó un nuevo lenguaje que almacena la información nutrimental que se encuentra en las etiquetas de alimentos en los estados unidos.

  • El documento completo se puede ver aquí.


Creando un nuevo lenguaje de marcado1

<nutrition>

<!-- Establish the daily values -->

<daily-values>

<total-fat units="g"> 65 </total-fat>

<saturated-fat units="g"> 20 </saturated-fat>

<cholesterol units="mg"> 300 </cholesterol>

<sodium units="mg"> 2400 </sodium>

<carb units="g"> 300 </carb>

<fiber units="g"> 25 </fiber>

<protein units="g"> 50 </protein>

</daily-values>

<!-- Now list the individual foods -->

<food>

<name>Avocado Dip</name>

<mfr>Sunnydale</mfr>

<serving units="g"> 29 </serving>

<calories total="110" fat="100"/>

<total-fat> 11 </total-fat>

<saturated-fat> 3 </saturated-fat>

<cholesterol> 5 </cholesterol>

<!-- etc. -->

</nutrition>

Creando un nuevo lenguaje de marcado


Beneficios inmediatos

Beneficios inmediatos

  • Los datos están estructurados.

  • Es legible y entendible por humanos.

  • Es abierto, por lo cual no se necesita software propietario caro para extraer la información de archivos binarios.


Validando el documento

Validando el documento

  • Relax NG, es otro lenguaje de marcado basado en XML. Su propósito es especificar si otros lenguajes de marcado son válidos.

  • Se debe recordar que ¡Los libros de gramática en español están hechos en español!


Validando el documento1

Validando el documento

<element name="calories">

<empty/>

<attribute name="total"><data type="decimal"/>

          </attribute>

<attribute name="fat"><data type="decimal"/>

          </attribute>

</element>

  • <calories total="100" fat="10"/>

  • <calories total="217" fat="don't ask!"/>


Validando el documento2

Validando el documento

  • La especificación completa de la gramática se encuentra aquí.

  • Relax NG no es la única forma de especificar gramáticas. Se pueden utilizar un DTD (Document Type Definition), el cual no es tan poderoso como Relax NG o se puede utilizar XML Schema, el cual es igual de poderoso que Relax NG pero más difícil de aprender.


Int ntalo

Inténtalo

  • Instalación de herramientas se puede hacer tanto en Windows como en Linux:

  • Básicos

  • Instalar MSV (validador).

  • Instalar Xalan (transformador).

  • Instalar Fop (convertidor de objetos).

  • Instalar Batik (visor SVG).


B sicos

Básicos

  • Instalar J2RE o J2SE (SDK) 1.4 o superior.

  • Crear directorios:

  • C:\xmlapps herramientas

  • C:\nutrition para los datos y procesos en lotes


Usando xml

MSV

  • http://wwws.sun.com/software/xml/developers/multischema/.

  • Copiar a xmlapps y añadir un archivo .bat:

  • java -jar c:\xmlapps\msv\msv.jar %1 %2


Xalan

Xalan

  • http://xml.apache.org/xalan-j/index.html

  • Construir (build .bat), copiar .jar obtenidos a la carpeta bin, y carpeta org al principio, crear archivo .bat:

  • java -cp c:\xmlapps\xalan-j\bin\xml-apis.jar;c:\xmlapps\xalan-j\bin\xercesImpl.jar;c:\xmlapps\xalan-j\bin\xalan.jar org.apache.xalan.xslt.Process -IN %1 -XSL %2 -OUT %3


Usando xml

Fop

  • http://xml.apache.org/fop/index.html.

  • Copiar archivo .bat a carpeta nutrition, cambiar las rutas relativas a absolutas build\fop.jar;lib\batik.jar; quedando así:

  • c:\xmlapps\fop\build\fop.jar;c:\xmlapps\fop\lib\batik.jar;


Batik

Batik

  • http://xml.apache.org/batik/

  • Crear archivo .bat con:

  • java -jar c:\xmlapps\batik\batik-svgbrowser.jar %1


Int ntalo1

Inténtalo

Figura 1. Uso de MSV para validar documento nutrition.xml.

  • Problemas de instalación. Se instaló Adobe SVG Viewer.


Ahora qu

¿Ahora qué?

Figura 2. Visualización del documento nutrition.xml en el navegador.


Desplegando el xml

Desplegando el XML

  • Se puede agregar una “hoja de estilo” al archivo XML. Se debe agregar la siguiente línea en la parte superior del archivo nutrition.xml

  • <?xml version="1.0"?>

  • <?xml-stylesheet type="text/css"

  •           href="nutrition.css"?>

  • <nutrition>


Desplegando el xml1

Desplegando el XML

  • nutrition.css es muy similar a las hojas de estilos de los archivos HTML. La diferencia es que se asignan estilos para cada nueva etiqueta de nutrition y no para las etiquetas HTML.

    mfr {

        display: inline;

        font-size: 16pt;

        font-style: italic;

              }


Desplegar xml

Desplegar XML

Este desplegará la información.


Transformaci n

Transformación

  • Los problemas con las hojas de estilo son:

    • Sólo funcionan con los últimos navegadores que manejen Cascading Style Sheets Nivel 2.

    • No pueden extraer toda la información (por ejemplo, los atributos).

    • No puede realizar operaciones aritméticas.


Transformaci n1

Transformación

  • El lenguaje inventado es orientado a datos; es decir, esta diseñado para describir datos a ser almacenados o transmitidos por otros programas.

  • Las hojas de estilo trabajan mejor con documentos de marcado orientados a la narración. Ejemplos de estos documentos son: XHTML, DocBook y NewsML.


Transformaci n2

Transformación

  • XSLT toma como entrada un archivo XML (el “documento fuente”) y sacar otro documento resultante.

  • XSLT tiene la flexibilidad de extraer datos de los atributos, y puede también realizar cálculos y ordenaciones a través de los datos en el documento fuente.


Transformaci n a html

Transformación a HTML

  • El primer archivo XSLT (este), convierte el documento nutrition en un archivo plano HTML:

Figura 4. Transformación de documento XML a HTML en forma plana.


Transformaci n a html1

El resultado generado visto desde un navegador es el siguiente:

Transformación a HTML


Transformaci n mejor dise ada

Transformación mejor diseñada

  • Si se tiene el archivo XSLT llamado nutrition_fancy.xslt se puede teclear el siguiente comando:


Transformaci n mejor dise ada1

Transformación mejor diseñada

  • Esto produce el archivo nutrition_fancy.html


Transformaci n no html

Transformación no HTML

  • Hay más que solo navegadores en el mundo. Quizás se desee tomar los datos y convertirlos a un archivo de texto separado por tabuladores para luego importarlos en una hoja de cálculo o una base de datos.

  • A continuación se muestra el archivo resultante de la transformación, ejecutando el siguiente comando:


Transformaci n no html1

Transformación no HTML

Figura 9. Resultado de la transformación de XML a un archivo de texto plano separado por tabuladores.


Conversi n para imprimir

Conversión para imprimir

  • XSL-FO (Extensible Stylesheet Language – Formating Objects) es un lenguaje de disposición de páginas.

  • Una herramienta llamada FOP (Formating Objects to PDF) toma el marcado y crea el archivo PDF.


Conversi n para imprimir1

Conversión para imprimir

  • Si se tiene el archivo nutrition_fo.xslt, se puede usar FOP para convertir a PDF de la siguiente forma:

Figura 10. Conversión de un archivo XML a PDF usando la herramienta FOP.


Conversi n para imprimir2

El resultado es un archivo PDF; el cual produce páginas de aproximadamente 8 centímetros de ancho por 9 de altura, el cual es muy confortable en un bolso de una camisa.

Conversión para imprimir


Generando gr ficos

Generando gráficos

  • SVG –Scalable Vector Graphics- permite crear gráficos interactivos de los datos. SVG tiene elementos como los siguientes:

  • <line x1="0" y1="0" x2="50" y2="50"

  •     style="stroke: black; fill:none;"/>

  • <circle cx="100" cy="100" r="30"

  •     style="stroke:green; fill:yellow;"/>


Generando gr ficos1

Generando gráficos

  • La imagen resultante se puede visualizar con el visualizador SVG Browser que es parte del juego de herramientas Batik. Si se tiene instalado batik, se puede ver la imagen tecleando batik nutrition.svg. Se muestra la imagen obtenida:

Figura 12. Transformación de XML a SVG.


Generando gr ficos2

Generando gráficos

  • En nuestro caso se instaló el Adobe SVG Viewerhttp://www.adobe.com/svg/

Figura 13. Visualización de documento SVG en Internet Explorer con el visor SVG de Adobe.


Otras maneras de usar las herramientas xml

Otras maneras de usar las herramientas XML

  • Se utilizaron:

    • Multi-Schema Validator,

    • Transformador Xalan,

    • Convertidor FOP

    • Visor Batik.


Tiempos

Tiempos

  • No se necesita ser un experto en Relax NG, XSLT, XSL Formatting Objects, o SVG para seguir el tutorial. La filosofía del autor fue “la primera manera de pensar en el trabajo es la manera correcta”. Es posible aprender estas herramientas de manera efectiva en poco tiempo.


Rendimiento

Rendimiento

  • Los resultados al ejecutar el programa en nuestro equipo de Prueba (HP PAvilion dv1025LA con 5l2 Mb de memoria RAM, microprocesador Intel centrino de 1.4 Ghz con Windows XP Home Edition Service Pack 2) fueron los siguientes:


Rendimiento1

Rendimiento

Figura 14. Resultados de la ejecución de SimpleTransform.


Sumario

Sumario

  • Usar lenguaje de marcas basados en XML da a los documentosestructura, haciéndolos más fácil de leer y abrir.

  • XML es parte de una familia de tecnologías.

  • Se pueden utilizar gramáticas de lenguajes de marcado como Relax NG, DTD o XML Schema para validar documentos.


Sumario1

Sumario

  • Se pueden usar transformaciones XSLT para reformatear un documento. Un documento simple puede ser transformado a XHTML, texto plano, PDF y a otros lenguajes de marcado basados en XML como SVG.

  • Programas que realizan validan y transforman están disponibles gratuitamente y son fáciles de usar.


Ap ndice

Apéndice

  • También se puede convertir un documento de XML a WML sólo hace falta definir el XSLT respectivo.

  • Para aplicar este ejemplo se utilizó el archivo XML disponible aquí.


Ap ndice1

Apéndice

  • <?xml version="1.0" encoding="UTF-8"?>

  • <?xml-stylesheet type="text/css" href="estilos.css"?>

  • <GASWT>

  • <GAT ip="192.168.190.34" puerto="2700" transformador="0" ipMA="192.168.190.34" puertoMA="1800" />

  • <GAP ip="127.0.0.1" puerto="10800" cache="\" indice="patrones.xml" conexion="1" />

  • <ALMACENAMIENTO espacio="64248" longitud="4096" maximo="101" tipos="*.jpg|*.gif|*.css|*.pdf" />

  • </GASWT>

configuracion.xml


Ap ndice2

La hoja de estilo tiene el siguiente formato:

<?xml version="1.0" encoding="ISO-8859-1"?>

<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">

<xsl:output doctype-public="-//WAPFORUM//DTD WML1.1//EN" doctype-system="http://www.wapforum.org/DTD/wml_1.1.xml" indent='yes'/>

<xsl:template match='GASWT'>

<wml>

<template>

<do type="prev"><prev/></do>

</template>

<card id="card1" title="Configuración del cenidet GAP" newcontext="true">

<p align="center">

<big><b>GAT</b></big>

</p>

<p>IP: <xsl:value-of select="[email protected]"/></p>

<p>Puerto: <xsl:value-of select="[email protected]"/></p>

<p>Transcodificacion: <xsl:value-of select="[email protected]"/></p>

<p>IP del MA: <xsl:value-of select="[email protected]"/></p>

<p>Puerto del MA: <xsl:value-of select="[email protected]"/></p>

<do type="accept" label="GAP" name="GAP">

<go href="#card2"/>

</do>

<do type="accept" label="Almacenamiento" name="Almacenamiento">

<go href="#card3"/>

</do>

</card>

</wml>

</xsl:template>

</xsl:stylesheet>

Apéndice

Ver hoja de estilo completa aquí


Ap ndice3

Apéndice

Resultado de la transformación visto en el navegador Pocket Internet Explorer de una Pocket PC con Windows Mobile 2003


Preguntas

{jcolivares04c,vjsosa}

@cenidet.edu.mx

http://www.cenidet.edu.mx/

¿Preguntas?


  • Login