Publicado el 29 de Mayo del 2018
622 visualizaciones desde el 29 de Mayo del 2018
496,2 KB
36 paginas
Creado hace 20a (19/07/2004)
Tecnologías XML y
Web Semántica
Departamento de Informática
Universidad de Oviedo
Sesión 1
Lenguaje XML
Departamento de Informática
Universidad de Oviedo
Esquema de la Sesión
•
•
(9-11h) Primera parte: Introducción a XML
– Definición de XML
– DTDs
– Ventajas/Inconvenientes
(11-11:30h) Descanso
– Creación y validación documentos XML con DTDs
(12-13h) Segunda Parte: Vocabularios XML
– Espacios de Nombres
– XML Schema
– Algunos vocabularios XML
(13-13:30h) Descanso
– Creación/Validación documentos XML con Schema
Marcado de documentos
Orígenes: Industria de la publicación
Se usaban marcas para indicar cómo componer el
documento
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.
Resultado
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
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.
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>
<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>
Marcado Generalizado
Sintaxis común que facilita la creación de lenguajes descriptivos
También pueden incluir reglas de aplicación y otras facilidades
HTML
<html>
<head><title>Poema</title></head>
<body>
<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>
Evolución del Marcado Generalizado
(70-) GML (Generalizared Markup Language)
Desarrollado en IBM (Goldfrab, Mosher, Lorie)
(86) SGML (Standard Generalized Markup Language)
Estándar ISO
Utilizado en intercambio de documentos
Permite separar presentación de contenido
Muy flexible (vocabularios específicos para cada aplicación)
HTML nace como vocabulario de SGML
(96) XML (eXtensible Markup Language)
Simplificación de SGML
Objetivo = Aplicación en Internet
Problemas de SGML
SGML era muy complejo
Para identificar la estructura era necesario el DTD...
...pero en la Web no siempre está disponible
Ejemplo (especificación listas HTML)
La etiqueta final es obligatoria
<!ELEMENT OL - -
<!ELEMENT LI - O (%flow;)* >
<!ELEMENT P
- O (%inline;)* >
(LI)+ >
La etiqueta final es opcional
<P> párrafo <UL> lista </UL>
?
<P> párrafo
</P>
<OL> lista
</OL>
<P> párrafo
<OL> lista
</OL>
</P>
a ambigüedad se deshace mediante el DTD
En Internet no siempre podremos acceder al DTD
Desarrollado por T. Bray, J. Paoli, C. M. Sperberg-McQueen (1995)
Objetivos de diseño (según la especificación)
XML
1. Utilizable en Internet
2. Soporte a gran variedad de aplicaciones
3. Compatible con SGML
4. Debe ser fácil escribir programas que procesen XML
5. Número de características opcionales = Mínimo
6. Documentos legibles por personas
7. El diseño de XML debe poder hacerse rápidamente
8. El diseño de XML debe ser formal y conciso
9. La creación de documentos XML debe ser fácil
10. La concisión de las marcas XML no tiene importancia (es preferible la
claridad a la brevedad)
20% de características de SGML
80% de funcionalidad de SGML
Curiosidad: Especificación de XML = 26 páginas, de SGML > 500
XML
Declaración de
XML
Declaración de
Tipo DTD
Opcional
Documento
<?xml version=“1.0” ?>
<!DOCTYPE raíz[
…
]>
<raíz>
<elemento>
…
</elemento>
</raíz>
Declaración de XML
<?xml version=“1.0”
encoding=“iso-8859-1”
standalone=“yes”?>
version: Actual = 1.0
Borrador de 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 el documento no hace referencias
a entidades externas
Documentos XML
Los documentos consisten en una serie de datos marcados
mediante etiquetas
Las etiquetas describen la estructura del documento
Un elemento = grupo formado por etiqueta inicial, etiqueta final y
contenido entre ambas. La etiqueta inicial puede incluir
atributos.
<etiqueta attributo=“valor”>……</etiqueta>
Distinción
minúsculas/mayúsculas
Elemento vacío: Entre la etiqueta inicial y final no hay información:
<etiqueta attributo=“valor”></etiqueta>
<etiqueta atributo=“valor”/>
Documentos XML
Anidamiento
Se pueden anidar
elementos
<externo>
</externo>
<interno>texto</interno>
...pero no se pueden entrelazar:
<externo>
</interno>
<interno>texto</externo>
J
L
Sólo puede haber un único elemento raíz
Cada documento XML equivale a 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>
Documentos XML
Estructura General
poema
titulo
verso
. . .
verso
Documentos XML
Atributos
Cada elemento puede contener atributos en la etiqueta inicial
<pizza nombre=“Margarita” precio=“6”>
. . .
</pizza>
El orden de los atributos no es significativo
No puede haber 2 atributos con el mismo nombre
Atributos predefinidos:
xml:lang: Especifica el idioma.
Por ejemplo: en (inglés), sp (español)
xml:space: Especifica cómo tratar el espacio en blanco.
Valores: preserve = Mantenerlo
default = Permitir a la aplicación que lo trate como quiera.
Documentos XML
Otras características
Comentarios
<!-- el texto de un comentario
no es analizado -->
Caracteres especiales: No pueden incluirse directamente
<código>
</código>
if x < 4 then x:=x + 1;
Secciones CDATA
Si se desea introducir código sin analizar
<código>
if x < 3 && x > 4 then
print “Hola”
</código>
<código>
if x < 3
&& x > 4 then
print "Hola"
</código> L
< <
> >
" “
' ‘
& &
<código>
<código>
<![CDATA[
<![CDATA[
if x < 3 && x > 4 then
if x < 3 && x > 4 then
print “Hola”
print “Hola”
]]>
]]>
</código>
</código>
Documentos XML
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
En realidad la declaración de documento es una instrucción de
procesamiento
<?xml version=“1.0” ?>
Documentos XML
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" >
</pizzas>
C
Documentos XML
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" >
<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>
pizzas.dtd
<!ELEMENT poema (titulo,autor?,verso+)>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT verso (#PCDATA)>
<!ATTLIST poema fecha CDATA #REQUIRED
lugar CDATA #IMPLIED>
Documento válido
Está bien formado y
La estructura encaja con la declaración del tipo de documento
Declaración de tipo de documento (DTD)
<?xml version=“1.0”?>
<!DOCTYPE poema [
<!ELEMENT poema (titulo, autor?, verso+)>
. . .
]>
<poema>. . . </poema>
También es posible
especificar un DTD externo y
añadir definiciones locales
SYSTEM (DTDs de ámbito local)
<?xml version=“1.0”?>
<!DOCTYPE poemaSYSTEM “http://www.poemas.org/poema.dtd“ >
<poema>
. . .
</poema>
DTD interno
DTD externo
PUBLIC (DTDs compartidos por diversas organizaciones)
<?xml version=“1.0”?>
<!DOCTYPE HTML PUBLIC
"-//W3C//DTD HTML 4.0//EN”
“http://www.w3c.org/TR/REC-html/strict.dtd”>
DTD
Tipos de declaraciones
ELEMENT
Elementos del documento XML
ATTLIST
Lista de atributos de un elemento
ENTITY
Entidades (» variables o macros)
NOTATION
Definen tipos de contenidos
Facilitan la inclusión de formatos binarios (imágenes, vídeos,
sonidos, ...)
DTD
Elementos
= 0, 1 elemento
= 0 ó más elementos
= 1 ó más elementos
= alternativa
= secuencia
(?)
(*)
(+)
(|)
(,)
EMPTY = vacío
ANY
#PCDATA = cadena de caracteres analizados
= cualquier estructura de subelementos
<!ELEMENTpoema (titulo,autor?,verso+)>
<!ELEMENT publicacion (poema | novela | ensayo) >
<!ELEMENT autor EMPTY>
<!ELEMENT titulo (#PCDATA)>
<!ELEMENT sección (título, (contenido | sección+))>
<!ELEMENT p (#PCDATA | a | ul | em )* >
Recursividad
PCDATA = Parsed Character Data
Indica que los datos son analizados buscando etiquetas
DTD
Atributos
Tipos de datos
Valor de los Atributos
CDATA = Cadena de caracteres
NMTOKEN = Palabra (sin espacios)
NMTOKENS = Lista de palabras
Enumeración separada por |
ID = Nombre único (sin duplicados)
Comentarios de: Tecnologías XML y Web Semántica (0)
No hay comentarios