SlideShare una empresa de Scribd logo
1 de 23
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 
(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
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
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
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
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
<!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
<?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
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
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"" //>>
<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> 
 

Á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
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
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
<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>
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
<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
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 
&lt; < 
&gt; > 
&quot; “ 
&apos; ‘ 
&amp; & 
<código> 
if x &lt; 4 then x:=x + 1; 
</código>
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>
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
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> 

<?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
Fin de la Presentación 
Jose Emilio Labra Gayo – Universidad de Oviedo

Más contenido relacionado

La actualidad más candente (20)

Xml
XmlXml
Xml
 
Apuntes de XML
Apuntes de XMLApuntes de XML
Apuntes de XML
 
Tutorial de XML en PDF
Tutorial de XML en PDFTutorial de XML en PDF
Tutorial de XML en PDF
 
Tema 2
Tema 2Tema 2
Tema 2
 
Xml
XmlXml
Xml
 
Chuleta de XML
Chuleta de XMLChuleta de XML
Chuleta de XML
 
Presentacion xml
Presentacion xmlPresentacion xml
Presentacion xml
 
Curso xml
Curso xmlCurso xml
Curso xml
 
Ejercicio - Personal de departamentos (XSD - XML Schema)
Ejercicio - Personal de departamentos (XSD - XML Schema)Ejercicio - Personal de departamentos (XSD - XML Schema)
Ejercicio - Personal de departamentos (XSD - XML Schema)
 
Curso css
Curso   cssCurso   css
Curso css
 
XML de A a Z
XML de A a ZXML de A a Z
XML de A a Z
 
Introducción a XML
Introducción a XMLIntroducción a XML
Introducción a XML
 
Xml dtd
Xml dtd Xml dtd
Xml dtd
 
Manual XML
Manual XMLManual XML
Manual XML
 
XML y JAVA
XML y JAVAXML y JAVA
XML y JAVA
 
Test de XML
Test de XMLTest de XML
Test de XML
 
Xml
XmlXml
Xml
 
Colima2000
Colima2000Colima2000
Colima2000
 
XML Básico
XML BásicoXML Básico
XML Básico
 
Tutorial XML
Tutorial XMLTutorial XML
Tutorial XML
 

Similar a Introducción a XML: Sintaxis y documentos bien formados (20)

Clase Html + CSS
Clase Html + CSSClase Html + CSS
Clase Html + CSS
 
Html
HtmlHtml
Html
 
Arquitectura del Web 2
Arquitectura del Web 2Arquitectura del Web 2
Arquitectura del Web 2
 
Tema02 html
Tema02 htmlTema02 html
Tema02 html
 
Presentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.pptPresentación muy chula ApéndiceTecnologíaXML.ppt
Presentación muy chula ApéndiceTecnologíaXML.ppt
 
05introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp0205introduccionhtml 100901142734-phpapp02
05introduccionhtml 100901142734-phpapp02
 
10 etiquetas basicas de html
10 etiquetas basicas de html10 etiquetas basicas de html
10 etiquetas basicas de html
 
XHTML
XHTMLXHTML
XHTML
 
Html
HtmlHtml
Html
 
Datos En La Web - Clase 1
Datos En La Web - Clase 1Datos En La Web - Clase 1
Datos En La Web - Clase 1
 
Qué es xml
Qué es xmlQué es xml
Qué es xml
 
05 Introduccion a HTML
05 Introduccion a HTML05 Introduccion a HTML
05 Introduccion a HTML
 
Curso de diseño CSS
Curso de diseño CSSCurso de diseño CSS
Curso de diseño CSS
 
Producto 3 Jorge Robles y Miguel
Producto 3 Jorge Robles y MiguelProducto 3 Jorge Robles y Miguel
Producto 3 Jorge Robles y Miguel
 
Html
HtmlHtml
Html
 
Html
HtmlHtml
Html
 
Bases de Datos - Parte 9/10 XML
Bases de Datos - Parte 9/10 XMLBases de Datos - Parte 9/10 XML
Bases de Datos - Parte 9/10 XML
 
U7 1 xslt-curso2018-19
U7 1 xslt-curso2018-19U7 1 xslt-curso2018-19
U7 1 xslt-curso2018-19
 
Tags actividad 11 jmar 180112
Tags actividad 11 jmar 180112Tags actividad 11 jmar 180112
Tags actividad 11 jmar 180112
 
U7 1 xslt-curso2017-18
U7 1 xslt-curso2017-18U7 1 xslt-curso2017-18
U7 1 xslt-curso2017-18
 

Más de Jose Emilio Labra Gayo

Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctoradoJose Emilio Labra Gayo
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapesJose Emilio Labra Gayo
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data qualityJose Emilio Labra Gayo
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesJose Emilio Labra Gayo
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesJose Emilio Labra Gayo
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosJose Emilio Labra Gayo
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorJose Emilio Labra Gayo
 

Más de Jose Emilio Labra Gayo (20)

Publicaciones de investigación
Publicaciones de investigaciónPublicaciones de investigación
Publicaciones de investigación
 
Introducción a la investigación/doctorado
Introducción a la investigación/doctoradoIntroducción a la investigación/doctorado
Introducción a la investigación/doctorado
 
Challenges and applications of RDF shapes
Challenges and applications of RDF shapesChallenges and applications of RDF shapes
Challenges and applications of RDF shapes
 
Legislative data portals and linked data quality
Legislative data portals and linked data qualityLegislative data portals and linked data quality
Legislative data portals and linked data quality
 
Validating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectivesValidating RDF data: Challenges and perspectives
Validating RDF data: Challenges and perspectives
 
Wikidata
WikidataWikidata
Wikidata
 
Legislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologiesLegislative document content extraction based on Semantic Web technologies
Legislative document content extraction based on Semantic Web technologies
 
ShEx by Example
ShEx by ExampleShEx by Example
ShEx by Example
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
Introducción a la Web Semántica
Introducción a la Web SemánticaIntroducción a la Web Semántica
Introducción a la Web Semántica
 
RDF Data Model
RDF Data ModelRDF Data Model
RDF Data Model
 
2017 Tendencias en informática
2017 Tendencias en informática2017 Tendencias en informática
2017 Tendencias en informática
 
RDF, linked data and semantic web
RDF, linked data and semantic webRDF, linked data and semantic web
RDF, linked data and semantic web
 
Introduction to SPARQL
Introduction to SPARQLIntroduction to SPARQL
Introduction to SPARQL
 
19 javascript servidor
19 javascript servidor19 javascript servidor
19 javascript servidor
 
Como publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazadosComo publicar datos: hacia los datos abiertos enlazados
Como publicar datos: hacia los datos abiertos enlazados
 
16 Alternativas XML
16 Alternativas XML16 Alternativas XML
16 Alternativas XML
 
XSLT
XSLTXSLT
XSLT
 
XPath
XPathXPath
XPath
 
Arquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el ServidorArquitectura de la Web y Computación en el Servidor
Arquitectura de la Web y Computación en el Servidor
 

Último

12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdfedwinmelgarschlink2
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfisrael garcia
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenadanielaerazok
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webDecaunlz
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenajuniorcuellargomez
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAdanielaerazok
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdflauradbernals
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfOscarBlas6
 

Último (8)

12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf12 Clasificacion de las Computadoras.pdf
12 Clasificacion de las Computadoras.pdf
 
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdfNUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
NUVO PROGRAMAS DE ESCUELAS NUEVO-ACUERDO-CTE.pdf
 
Institucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalenaInstitucion educativa la esperanza sede la magdalena
Institucion educativa la esperanza sede la magdalena
 
Buscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la webBuscadores, SEM SEO: el desafío de ser visto en la web
Buscadores, SEM SEO: el desafío de ser visto en la web
 
institucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalenainstitucion educativa la esperanza sede magdalena
institucion educativa la esperanza sede magdalena
 
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENAINSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
INSTITUCION EDUCATIVA LA ESPERANZA SEDE MAGDALENA
 
Guia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdfGuia para el registro en el sitio slideshare.pdf
Guia para el registro en el sitio slideshare.pdf
 
COMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdfCOMPETENCIAS CIUDADANASadadadadadadada .pdf
COMPETENCIAS CIUDADANASadadadadadadada .pdf
 

Introducción a XML: Sintaxis y documentos bien formados

  • 1. Lenguaje XML Jose Emilio Labra Gayo Departamento de Informática Universidad de Oviedo
  • 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. 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. 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. 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. 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. <!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. <?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. 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. 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. <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. Á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. 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. 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. <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. 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. <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. 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 &lt; < &gt; > &quot; “ &apos; ‘ &amp; & <código> if x &lt; 4 then x:=x + 1; </código>
  • 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. 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. 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. <?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. Fin de la Presentación Jose Emilio Labra Gayo – Universidad de Oviedo