Publicado el 18 de Junio del 2018
697 visualizaciones desde el 18 de Junio del 2018
2,5 MB
26 paginas
Creado hace 15a (21/10/2009)
Lenguaje XML
Jose Emilio Labra Gayo
Departamento de Informática
Universidad de Oviedo
Marcado de documentos
Sólo texto
ALBA Abril de 1915 Granada Mi corazón oprimido
siente junto a la alborada el dolor de sus
amores y el sueño de las distancias.
Título, negrita, centrado, 14pt
SubTítulo, negrita, centrado
SubTítulo cursiva, centrado
Texto marcado
]ALBA[
]Abril de 1915[
]Granada[
]Mi corazón oprimido [
]siente junto a la alborada [
]el dolor de sus amores [
Verso
]y el sueño de las distancias. [
Verso, 10pt
Verso
Verso
Resultado
ALBA
Abril de 1915
Granada
Mi corazón oprimido
siente junto a la alborada
el dolor de sus amores
y el sueño de las distancias.
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
Marcado Descriptivo
El marcado no es la información que contiene el documento
Marcado = información acerca del documento = meta-información
Lenguajes de Marcado descriptivo: Incluyen marcas que 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 (http://www.di.uniovi.es/~labra )
Marcado Generalizado
Marcado generalizado = Sintaxis común que facilita la creación de
lenguajes descriptivos
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>
Otras marcas...(misma sintaxis)
<poema fecha="Abril de 1915"
lugar="Granada">
<titulo>Alba</titulo>
<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 (http://www.di.uniovi.es/~labra )
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 la forma de representarlo
Muy flexible (permite definir vocabularios específicos para cada
aplicación)
HTML era un vocabulario de SGML
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
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 > 500
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
XML y el comercio electrónico
XML aparece en pleno apogeo del comercio electrónico
Formato que permita transmitir información semiestructurada
"…necesito 20 rotuladores RX2 de código R23, que
escriban y 2 grapadoras Lin de código G56 envueltas
para regalo"
XML
<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 (http://www.di.uniovi.es/~labra )
HTML y la información semiestructurada
HTML es un lenguaje para presentaciones de hipertexto
No está pensado para representar información semiestructurada
<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
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
XML
<?xml version=“1.0” ?>
<!DOCTYPE raíz[
…
]>
<raíz>
<elemento>
…
</elemento>
</raíz>
Declaración de
XML
Declaración de
Tipo DTD
Opcional
Documento
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
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 (http://www.di.uniovi.es/~labra )
Anidamiento
Se pueden anidar elementos
<externo>
<interno>texto</interno>
</externo>
...pero no se pueden entrelazar:
<externo>
<interno>texto</externo>
</interno>
Árbol del documento XML
Sólo puede haber un único elemento raíz
Cualquier documento puede representarse como un árbol
<poema fecha="Abril de 1915"
lugar="Granada">
<titulo>Alba</titulo>
<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>
<root>
Poema
Raíz
Elemento
Atributo
Texto
fecha
Lugar
Título
Verso
Verso
Verso
Abril de 1915
Granada
Alba
Mi corazon ...
siente ...
el dolor ...
Árbol del documento
Los documentos HTML también se pueden representar como un
árbol
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>
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
DOM
El árbol DOM puede manipularse dinámicamente
<html>
<head><title>Prueba</title>
<script type="text/javascript"><!--
function clona() {
var raiz=document.documentElement;
var cuerpo=raiz.getElementsByTagName("body")[0];
var texto=cuerpo.firstChild;
var textoNuevo=texto.cloneNode(true);
cuerpo.appendChild(textoNuevo);
}
--></script>
</head>
<body>
Hola
<input type="button" name="Clona" value="Saluda!" onclick="clona();" />
</body>
</html>
://www.di.uniovi.es/~labra/cursos/XML/ejemplos/cambiaDOM.html
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
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>
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 nombres
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
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 - seguidos
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
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
< <
> >
" “
' „
& &
Para incluir los caracteres especiales, se utilizan las macros
<código>
if x < 4 then x:=x + 1;
</código>
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
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>
if x < 3
&& x > 4 then
print "Hola"
</código>
<código>
<![CDATA[
if x < 3 && x > 4 then
print “Hola”
]]>
</código>
Jose Emilio Labra Gayo - Universidad de Oviedo (http://www.di.uniovi.es/~labra )
Instrucciones de Procesamiento
Es posible incluir instrucciones que indican al procesador alguna
acción a realizar
Sintaxis: <?aplicación datos ?>
Pueden utilizarse para asociar una hoja de estilos al documento:
<?xml-stylesheet type="text/xsl" href=“hoja.xsl"?>
...o para otros propósitos especiales
<?php ... ?>
En realidad la declaración de documento es una instrucción de
procesamiento
<?xml version=“1.0” ?>
Documento bien form
Comentarios de: Lenguaje XML - Tecnologías Web y XML (0)
No hay comentarios