XML - Introducción
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

XML - Introducción

  • 824 views
Uploaded on

Pequeña introducción a XML. Utilizada en diversos cursos por Jose Emilio Labra Gayo

Pequeña introducción a XML. Utilizada en diversos cursos por Jose Emilio Labra Gayo

More in: Education
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
    Be the first to like this
No Downloads

Views

Total Views
824
On Slideshare
824
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
20
Comments
0
Likes
0

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. Lenguaje XML Jose Emilio Labra Gayo Departamento de Informática Universidad de Oviedo
  • 2. Marcado Descriptivo HTML es un lenguaje de marcado descriptivo Las marcas describen cómo procesar el documento Ejemplo: HTML <html> <head><title>Poema</title></head> <body lang=“es”> <h1>Alba</h1> <h2>Abril de 1915 </h2> <h2><i>Granada</i></h2> <p>Mi corazón oprimido</p> <p>siente junto a la alborada</p> <p>el dolor de sus amores</p> <p>y el sueño de las distancias. </p> </body> </html>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 3. Marcado Generalizado Marcado generalizado = Sintaxis común que facilita la creación de lenguajes descriptivos HTML Otras marcas...(misma sintaxis) <html> <poema fecha="Abril de 1915" <head><title>Poema</title></head> lugar="Granada"> <body lang=“es”> <h1>Alba</h1> <titulo>Alba</titulo> <h2>Abril de 1915 </h2> <h2><i>Granada</i></h2> <verso>Mi corazón oprimido</verso> <p>Mi corazón oprimido</p> <verso>siente junto a la alborada</verso> <p>siente junto a la alborada</p> <verso>el dolor de sus amores</verso> <p>el dolor de sus amores</p> <verso>y el sueño de las distancias. </verso> <p>y el sueño de las distancias.</p> </poema> </body> </html> Sintaxis común contenido <etiqueta atributo=“valor”> </etiqueta>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 4. Marcado Generalizado SGML 1970s GML desarrollado en IBM – Generalized Markup Language (Goldfarb, Mosher, Lorie) 1986 SGML Standard Generalized Markup Language (Estándar ISO) Utilizado para el intercambio de documentos Principio: Separar contenido de representación Muy flexible (permite definir vocabularios específicos para cada aplicación) HTML = vocabulario de SGMLJose Emilio Labra Gayo – Universidad de Oviedo
  • 5. Marcado Generalizado XML Desarrollado por T. Bray, J. Paoli, C. M. Sperberg-McQueen (1995) T. Bray: Consultor de Textuality para Netscape (ahora en Sun) C. M. Sperberg-McQueen (TEI, SGML) J. Paoli (Microsoft) Objetivos: Crear una versión simplificada de SGML para la Web 20% de características de SGML ⇔ 80% de funcionalidad de SGML Detalle (Especificación de XML = 26 páginas, de SGML > 500Jose Emilio Labra Gayo – Universidad de Oviedo
  • 6. XML y el comercio electrónico XML aparece en pleno apogeo del comercio electrónico Formato que permita transmitir información semiestructurada Problema: Dificultad de procesar automáticamente el lenguaje natural "…necesito 20 rotuladores RX2 de código R23, que escriban y 2 grapadoras Lin de código G56 envueltas para regalo"Jose Emilio Labra Gayo – Universidad de Oviedo
  • 7. HTML y la información semiestructurada HTML es un lenguaje para presentaciones de hipertexto Las marcas indican únicamente cómo representar el contenido El sistema no entiende el contenido dentro de las marcas <html> <head><title>Pedido</title></title> <body> <h1>Pedido de material</h1> <table> <tr><th>Codigo</th><th>Nombre</th><th>Cantidad</th><th>Comentarios</th></tr> <tr><td>R23</td><td>Rotulador RX2</td><td>20</td><td>Color negro</td></tr> <tr><td>G56</td><td>Grapadora Lin</td><td>2</td><td>Envuelta para regalo</td></tr> </table> </html> Problema: ¿cómo identificar los campos? Técnicas de Screen scrappingJose Emilio Labra Gayo – Universidad de Oviedo
  • 8. XML y el comercio electrónico Las marcas de XML permiten procesar de forma no ambigüa los documentos <pedido> <producto codigo="R23"> <nombre>Rotulador RX2</nombre> <cantidad>20</cantidad> <comentarios>Comprobad que escriben</comentarios> </producto> <producto codigo="G56"> <nombre>Grapadora Lin</nombre> <cantidad>2</cantidad> <comentarios>Envuelta para regalo</comentarios> </producto> </pedido>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 9. XML Declaración de <?xml version=“1.0” ?> XML <!DOCTYPE raíz[ … Declaración de ]> Tipo DTD Opcional <raíz> <elemento> … </elemento> Documento </raíz>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 10. Declaración de XML <?xml version=“1.0” encoding=“iso-8859-1” standalone=“yes”?> version: Actual = 1.0 También existe la versión 1.1 Mayor compatibilidad con Unicode Identificadores: Permite cualquier carácter Unicode encoding: UTF-8, UTF-16, iso-8859-1, etc. standalone: Indica si se puede gestionar el documento sin hacer uso de recursos externosJose Emilio Labra Gayo – Universidad de Oviedo
  • 11. Documentos y elementos XML Los documentos consisten en una serie de datos marcados mediante etiquetas Las etiquetas describen la estructura del documento Un elemento = etiqueta inicial, etiqueta final y contenido entre ambas. La etiqueta inicial puede incluir atributos <etiqueta attributo=“valor”>……</etiqueta> Distinción minúsculas/mayúsculasJose Emilio Labra Gayo – Universidad de Oviedo
  • 12. Documentos XML Elementos vacíos Elementos vacío: elementos que no incluyen información Habitualmente, incluyen atributos Ejemplo: <img src="foto.jpg" alt="Foto de Paisaje" ></img> Sintaxis abreviada: <etiqueta attributo=“valor”></etiqueta> ⇓ <etiqueta atributo=“valor”/> <img src="foto.jpg" alt="Foto de Paisaje" />Jose Emilio Labra Gayo – Universidad de Oviedo
  • 13. Anidamiento Se pueden anidar elementos <externo> <interno>texto</interno> </externo>  ...pero no se pueden entrelazar:  <externo> <interno>texto</externo> </interno>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 14. Árbol del documento XML <pedido fecha="3/2/2011"> <producto codigo="G23"> <nombre>Grapadora</nombre> <cantidad>2</cantidad> <comentarios> Contactar con <persona>Juan</persona> Raíz </comentarios> Elemento </producto> <producto codigo="R15"> Atributo <nombre>Rotulador</nombre> <root> Texto <cantidad>10</cantidad> </producto> pedido </pedido> fecha producto producto 3/2/2011 codigo nombre cantidad comentarios codigo nombre cantidad G23 Grapadora 2 Contactar con persona R15 Rotulador 10 JuanJose Emilio Labra Gayo – Universidad de Oviedo
  • 15. Ejercicio Dibujar el árbol del siguiente documento HTML <html> <head> <title>Pagina</title></head> <body> <h1>Ejemplo</h1> <p>Este párrafo tiene un <a href="http://www.uniovi.es">enlace</a> y un texto <em>enfatizado</em></p> </body> </html> NOTA: Cualquier documento HTML se puede representar como un árbolJose Emilio Labra Gayo – Universidad de Oviedo
  • 16. Modificación del árbol El árbol DOM puede manipularse dinámicamente <html> <head> <title>Prueba</title> <script type="text/javascript"> function inserta() { var nuevo = document.createElement("p"); var saludo = document.createTextNode("¡Hola!"); nuevo.appendChild(saludo); document.body.appendChild(nuevo); } </script> </head> <body> <input type="button" value="Saluda!" onclick="inserta();" /> </body> </html> http://www.di.uniovi.es/~labra/cursos/XML/ejemplos/cambiaDOM.htmlJose Emilio Labra Gayo – Universidad de Oviedo
  • 17. Atributos Cada elemento puede contener atributos en la etiqueta inicial <poema fecha=“Abril de 1915” lugar=“Granada”> . . . </poema> El orden de los atributos no es significativo No puede haber 2 atributos con el mismo nombre Las comillas dobles y simples pueden mezclarse <autor frase=“Juan dijo ‘Hola’ ”> ... </autor> <autor frase=‘Juan dijo “Hola” ’> ... </autor>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 18. Atributos predefinidos xml:lang especifica el idioma. Ejemplo: en (inglés), es (español) xml:space especifica cómo tratar el espacio en blanco. preserve = Mantenerlo default = Permitir a la aplicación que lo trate como quiera. xml:base: Especifica URL de base en las referencias relativas <doc xml:base=“http://www.ejemplo.org”> <link url=“friends.xml”>Amigos</link> </doc> xmlns:a Declara a como un alias para un espacio de nombresJose Emilio Labra Gayo – Universidad de Oviedo
  • 19. Comentarios Mediante <!-- y --> <poema fecha="Abril de 1915" lugar="Granada"> <!-- Este poema es divertido --> <titulo>Alba</titulo> <verso>Mi corazón oprimido</verso> <!-- Cuando me inspire escribiré más versos --> </poema> NOTA: Dentro de los comentarios no pueden aparecer dos caracteres - seguidosJose Emilio Labra Gayo – Universidad de Oviedo
  • 20. Caracteres especiales Mediante &#nº; se puede incluir un carácter Unicode Ejemplo: &#x2200; incluye ∀ &nombre; permite referenciar macros (se definen en una DTD) Algunas macros predefinidas &lt; < &gt; > &quot; “ &apos; ‘ &amp; & Para incluir los caracteres especiales, se utilizan las macros <código> if x &lt; 4 then x:=x + 1; </código>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 21. Secciones CDATA Las secciones CDATA permiten escribir texto literal que no será procesado <código> if x < 3 && x > 4 then print “Hola” </código> <código> <código> if x &lt; 3 <![CDATA[ &amp;&amp; x &gt; 4 then if x < 3 && x > 4 then print &quot;Hola&quot; print “Hola” </código> ]]> </código>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 22. Instrucciones de Procesamiento Indican alguna acción a realizar por una aplicación externa Si el procesador reconoce la aplicación externa le pasa los datos Si no la reconoce, se ignora Formato: <?aplicación datos ?> Se usan para asociar una hoja de estilos al documento: <?xml-stylesheet type="text/xsl" href=“hoja.xsl"?> ...o para otros propósitos especiales <?php ... ?> La declaración inicial podría considerarse una instrucción de procesamiento <?xml version="1.0" ?>Jose Emilio Labra Gayo – Universidad de Oviedo
  • 23. Documento bien formado Documento bien formado Sigue las reglas sintácticas Importante: Contiene un único elemento raíz Todas las etiquetas están correctamente anidadas <pizzas> <pizzas> <pizza nombre="Margarita" precio="6"> <pizza nombre="Margarita" precio="6"> <ingrediente nombre="Tomate" /> <ingrediente nombre="Tomate" > <ingrediente nombre="Queso" /> </pizzas> </pizza> </pizzas> Jose Emilio Labra Gayo – Universidad de Oviedo
  • 24. Documento válido Se puede incluir una declaración del tipo de documento <?xml version=“1.0”?> <!DOCTYPE poema SYSTEM “poema.dtd”> <poema fecha="Abril de 1915" lugar="Granada"> poema.dtd <!ELEMENT poema (titulo,verso*)> <titulo>Alba</titulo> <!ELEMENT titulo (#PCDATA)> <!ELEMENT verso (#PCDATA)> <verso>Mi corazón oprimido</verso> <!ATTLIST poema fecha CDATA #REQUIRED <verso>siente junto a la alborada</verso> lugar CDATA #IMPLIED> <verso>el dolor de sus amores</verso> <verso>y el sueño de las distancias. </verso> </poema> Documento válido Está bien formado y La estructura encaja con la declaración del tipo de documentoJose Emilio Labra Gayo – Universidad de Oviedo
  • 25. Fin de la PresentaciónJose Emilio Labra Gayo – Universidad de Oviedo