Lenguaje XML 
Jose Emilio Labra Gayo 
Departamento de Informática 
Universidad de Oviedo
1970s GML (IBM) – Generalized Markup Language 
(Goldfarb, Mosher, Lorie) 
1986 SGML Standard Generalized Markup Language 
...
Desarrollado por T. Bray, J. Paoli, C. M. Sperberg-McQueen (1995) 
T. Bray: Consultor de Textuality para Netscape (ahora e...
XML y el comercio electrónico 
XML aparece en pleno apogeo del comercio electrónico 
Formato que permita transmitir inform...
HTML y la información semiestructurada 
HTML es un lenguaje para presentaciones de hipertexto 
Las marcas indican únicamen...
XML y el comercio electrónico 
Las marcas de XML permiten procesar de forma no 
ambigüa los documentos 
<pedido> 
<pedido>...
<!DOCTYPE raíz[ 
… 
]> 
Jose Emilio Labra Gayo – Universidad de Oviedo 
XML 
<?xml version=“1.0” ?> 
<raíz> 
<elemento> 
…...
<?xml version=“1.0” 
encoding=“iso-8859-1” 
standalone=“yes”?> 
Jose Emilio Labra Gayo – Universidad de Oviedo 
Declaració...
Documentos y elementos XML 
Los documentos consisten en una serie de datos marcados 
mediante etiquetas 
Las etiquetas des...
Documentos XML 
Elementos vacíos 
Elementos vacío: elementos que no incluyen información 
Habitualmente, incluyen atributo...
<externo> 
<interno>texto</interno> 
</externo> 
...pero no se pueden entrelazar: 
<externo> 
<interno>texto</externo> 
</...
Árbol del documento XML 
<pedido fecha="3/2/2011"> 
<producto codigo="G23"> 
<nombre>Grapadora</nombre> 
<cantidad>2</cant...
Dibujar el árbol del siguiente documento HTML 
<html> 
<head> 
<title>Pagina</title></head> 
<body> 
<h1>Ejemplo</h1> 
<p>...
Modificación del árbol 
El árbol DOM puede manipularse dinámicamente 
<html> 
<head> 
<title>Prueba</title> 
<script type=...
<poema fecha="Abril de 1915" lugar="Granada"> 
. . . 
</poema> 
<autor frase="Juan dijo 'Hola' "> 
. . . 
</autor> <autor ...
Atributos predefinidos 
xml:lang especifica el idioma. Ejemplo: en (inglés), es (español) 
xml:space especifica cómo trata...
<poema fecha="Abril de 1915" 
Jose Emilio Labra Gayo – Universidad de Oviedo 
Comentarios 
Mediante <!-- y --> 
<poema fec...
Caracteres especiales 
Mediante &#nº; se puede incluir un carácter Unicode 
Ejemplo: ∀ incluye " 
&nombre; permite referen...
Secciones CDATA 
Las secciones CDATA permiten escribir texto literal que no será 
procesado 
<código> 
<código> 
if x < 3 ...
Instrucciones de Procesamiento 
Indican alguna acción a realizar por una aplicación externa 
Si el procesador reconoce la ...
Documento bien formado 
Documento bien formado 
Sigue las reglas sintácticas 
Importante: 
Contiene un único elemento raíz...
<?xml version="1.0"?> 
<!DOCTYPE poema SYSTEM "poema.dtd"> 
<poema fecha="Abril de 1915" 
<?xml version="1.0"?> 
<!DOCTYPE...
Fin de la Presentación 
Jose Emilio Labra Gayo – Universidad de Oviedo
Próxima SlideShare
Cargando en…5
×

Introducción a XML: Sintaxis y documentos bien formados

557 visualizaciones

Publicado el

XML, Documento bien formado

Publicado en: Internet
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
557
En SlideShare
0
De insertados
0
Número de insertados
8
Acciones
Compartido
0
Descargas
15
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Introducción a XML: Sintaxis y documentos bien formados

  1. 1. Lenguaje XML Jose Emilio Labra Gayo Departamento de Informática Universidad de Oviedo
  2. 2. 1970s GML (IBM) – Generalized Markup Language (Goldfarb, Mosher, Lorie) 1986 SGML Standard Generalized Markup Language (Estándar ISO) Intercambio de documentos Principio: Separar contenido de representación Muy flexible (permite definir vocabularios específicos para cada aplicación) HTML = vocabulario de SGML Jose Emilio Labra Gayo – Universidad de Oviedo Charles Goldfarb SGML SGML
  3. 3. 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 20% de características de SGML Û 80% de funcionalidad de SGML Detalle (Especificación de XML = 26 páginas, de SGML > 500 Detalle (Especificación de XML = 26 páginas, de SGML > 500 Jose Emilio Labra Gayo – Universidad de Oviedo Tim Bray XML
  4. 4. 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" "…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
  5. 5. 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> <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 scrapping Problema: ¿cómo identificar los campos? Técnicas de Screen scrapping Jose Emilio Labra Gayo – Universidad de Oviedo
  6. 6. XML y el comercio electrónico Las marcas de XML permiten procesar de forma no ambigüa los documentos <pedido> <pedido> <producto codigo="R23"> <producto codigo="R23"> <nombre>Rotulador RX2</nombre> <cantidad>20</cantidad> <comentarios>Comprobad que escriben</comentarios> <nombre>Rotulador RX2</nombre> <cantidad>20</cantidad> <comentarios>Comprobad que escriben</comentarios> </producto> <producto codigo="G56"> </producto> <producto codigo="G56"> <nombre>Grapadora Lin</nombre> <cantidad>2</cantidad> <comentarios>Envuelta para regalo</comentarios> </producto> <nombre>Grapadora Lin</nombre> <cantidad>2</cantidad> <comentarios>Envuelta para regalo</comentarios> </producto> </pedido> </pedido> Jose Emilio Labra Gayo – Universidad de Oviedo
  7. 7. <!DOCTYPE raíz[ … ]> Jose Emilio Labra Gayo – Universidad de Oviedo XML <?xml version=“1.0” ?> <raíz> <elemento> … </elemento> </raíz> Declaración de XML Declaración de Tipo DTD Opcional Documento
  8. 8. <?xml version=“1.0” encoding=“iso-8859-1” standalone=“yes”?> Jose Emilio Labra Gayo – Universidad de Oviedo 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 externos
  9. 9. 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úsculas Jose Emilio Labra Gayo – Universidad de Oviedo
  10. 10. Documentos XML Elementos vacíos Elementos vacío: elementos que no incluyen información Habitualmente, incluyen atributos <etiqueta attributo=“valor”></etiqueta> Jose Emilio Labra Gayo – Universidad de Oviedo ß <etiqueta atributo=“valor”/> Ejemplo: <img src="foto.jpg" alt="F <img src="foto.jpg" alt="Foottoo ddee PPaaiissaajjee"" >><<//iimmgg>> Sintaxis abreviada: <<iimmgg ssrrcc==""ffoottoo..jjppgg"" aalltt==""FFoottoo ddee PPaaiissaajjee"" //>>
  11. 11. <externo> <interno>texto</interno> </externo> ...pero no se pueden entrelazar: <externo> <interno>texto</externo> </interno> Jose Emilio Labra Gayo – Universidad de Oviedo Anidamiento Se pueden anidar elementos <externo> <interno>texto</interno> </externo> <externo> <interno>texto</externo> </interno>  
  12. 12. Árbol del documento XML <pedido fecha="3/2/2011"> <producto codigo="G23"> <nombre>Grapadora</nombre> <cantidad>2</cantidad> <comentarios> <pedido fecha="3/2/2011"> <producto codigo="G23"> <nombre>Grapadora</nombre> <cantidad>2</cantidad> <comentarios> Contactar con <persona>Juan</persona> Contactar con <persona>Juan</persona> </comentarios> </producto> <producto codigo="R15"> <nombre>Rotulador</nombre> <cantidad>10</cantidad> </producto> </pedido> pedido </comentarios> </producto> <producto codigo="R15"> <nombre>Rotulador</nombre> <cantidad>10</cantidad> </producto> </pedido> Raíz Elemento fecha producto producto Jose Emilio Labra Gayo – Universidad de Oviedo <root> 3/2/2011 Atributo Texto codigo nombre cantidad G23 comentarios Grapadora 2 Contactar con persona Juan codigo nombre cantidad R15 Rotulador 10 http://software.hixie.ch/utilities/js/live-dom-viewer
  13. 13. Dibujar el árbol del siguiente documento HTML <html> <head> <title>Pagina</title></head> <body> <h1>Ejemplo</h1> <p>La <a href="http://www.uniovi.es"> Universidad de Oviedo</a> está en <em>Asturias</em> </p> </body> </html> Solución NOTA: Cualquier documento HTML se puede representar como un árbol Jose Emilio Labra Gayo – Universidad de Oviedo Ejercicio <html> <head> <title>Pagina</title></head> <body> <h1>Ejemplo</h1> <p>La <a href="http://www.uniovi.es"> Universidad de Oviedo</a> está en <em>Asturias</em> </p> </body> </html> NOTA: Cualquier documento HTML se puede representar como un árbol
  14. 14. Modificación del árbol El árbol DOM puede manipularse dinámicamente <html> <head> <title>Prueba</title> <script type="text/javascript"> function inserta() { <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> 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.html Jose Emilio Labra Gayo – Universidad de Oviedo
  15. 15. <poema fecha="Abril de 1915" lugar="Granada"> . . . </poema> <autor frase="Juan dijo 'Hola' "> . . . </autor> <autor frase='Juan dijo "Hola" '> Jose Emilio Labra Gayo – Universidad de Oviedo 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> . . . </autor>
  16. 16. 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> <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 nombres Jose Emilio Labra Gayo – Universidad de Oviedo
  17. 17. <poema fecha="Abril de 1915" Jose Emilio Labra Gayo – Universidad de Oviedo 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> 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 NOTA: Dentro de los comentarios no ppuueeddeenn a appaarerecceer rd dooss c caararacctetereress - -s seegguuididooss
  18. 18. Caracteres especiales Mediante &#nº; se puede incluir un carácter Unicode Ejemplo: ∀ 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 &lt; < &gt; > &quot; “ &apos; ‘ &amp; & <código> if x &lt; 4 then x:=x + 1; </código>
  19. 19. Secciones CDATA Las secciones CDATA permiten escribir texto literal que no será procesado <código> <código> if x < 3 && x > 4 then if x < 3 && x > 4 then </código> <código> if x &lt; 3 &amp;&amp; x &gt; 4 then print &quot;Hola&quot; </código> Jose Emilio Labra Gayo – Universidad de Oviedo print “Hola” print “Hola” </código> <código> <![CDATA[ if x < 3 && x > 4 then <código> <![CDATA[ if x < 3 && x > 4 then print “Hola” ]]> </código> print “Hola” ]]> </código> <código> if x &lt; 3 &amp;&amp; x &gt; 4 then print &quot;Hola&quot; </código>
  20. 20. 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
  21. 21. 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> <pizza nombre="Margarita" precio="6"> <ingrediente nombre="Tomate" /> <ingrediente nombre="Queso" /> </pizza> </pizzas> <pizzas> <pizza nombre="Margarita" precio="6"> <ingrediente nombre="Tomate" /> <ingrediente nombre="Queso" /> </pizza> </pizzas> Jose Emilio Labra Gayo – Universidad de Oviedo <pizzas> <pizza nombre="Margarita" precio="6"> <pizzas> <pizza nombre="Margarita" precio="6"> <ingrediente nombre="Tomate" > <ingrediente nombre="Tomate" > </pizzas> </pizzas> 
  22. 22. <?xml version="1.0"?> <!DOCTYPE poema SYSTEM "poema.dtd"> <poema fecha="Abril de 1915" <?xml version="1.0"?> <!DOCTYPE poema SYSTEM "poema.dtd"> <poema fecha="Abril de 1915" lugar="Granada"> lugar="Granada"> <titulo>Alba</titulo> <titulo>Alba</titulo> ppooeemmaa..ddttdd <!ELEMENT poema (titulo,verso*)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT verso (#PCDATA)> <!ATTLIST poema fecha CDATA #REQUIRED <!ELEMENT poema (titulo,verso*)> <!ELEMENT titulo (#PCDATA)> <!ELEMENT verso (#PCDATA)> <!ATTLIST poema fecha CDATA #REQUIRED <verso>Mi corazón oprimido</verso> <verso>siente junto a la alborada</verso> <verso>el dolor de sus amores</verso> <verso>y el sueño de las distancias.</verso> </poema> <verso>Mi corazón oprimido</verso> <verso>siente junto a la alborada</verso> <verso>el dolor de sus amores</verso> <verso>y el sueño de las distancias.</verso> </poema> Jose Emilio Labra Gayo – Universidad de Oviedo Documento válido Se puede incluir una declaración del tipo de documento Documento válido lugar CDATA #IMPLIED> lugar CDATA #IMPLIED> Está bien formado y La estructura encaja con la declaración del tipo de documento
  23. 23. Fin de la Presentación Jose Emilio Labra Gayo – Universidad de Oviedo

×