Title: Fernando Alonso Bl
1 XML (eXtensible Mark-up Language)
27 de Mayo de 2004
Fernando Alonso Blázquez
2Índice
- Introducción
- Qué es XML?
- Ventajas de XML
- Construyendo documentos XML
- Estructura jerárquica de elementos
- Algunas normas
- El prólogo
- Elementos
- Atributos
- Secciones CDATA
- Comentarios
- SAX2 API
3Introducción
- Webs de asignaturas de la Escuela
- Informática 3
- Intercambio de Información B2B
- Almacenamiento de Información
- Producción automática de Libros, Artículos,
Manuales... - Explotación de los Metadatos
- Keywords, Indexing, Annotations, Interdocument
linking...
4Qué es XML?
- Es un subconjunto de SGML (Standard Generalized
Mark-up Language), simplificado y adaptado a
Internet - XML (eXtensible Mark-up Language) no es un
lenguaje de marcado - XML es un meta-lenguaje que permite definir
lenguajes de marcado adecuados a usos determinados
ltlibrogt ltautorgtAntonio Muñoz Molinalt/autorgt ltti
tulogtEl Jinete Polacolt/titulogt ltprecio
monedaEUROgt20lt/preciogt lt/librogt
5Ventajas de XML
- Procesable por humanos y por software
- Separa la información o el contenido de su
presentación o formato - Ideal para transacciones B2B
- Permite poderosas técnicas de extracción de
información y data-mining - Fácil análisis sintáctico
6Construyendo documentos XML
- El elemento y sus atributos
- ltautor paisESgtAntonio Muñoz Molinalt/autorgt
- XML bien-formado (well-formed)
- Cumple una serie de reglas descritas en la
especificación oficial de XML v1.0 - World Wide Web Consortium (W3C)
Contenido del elemento
Nombre del atributo
Nombre del elemento
Etiqueta de fin
Valor del atributo
7Estructura jerárquica de elementos
- Los elementos deben seguir una estructura de
árbol, es decir, estríctamente jeráquica - Los elementos deben estar correctamente anidados
- Los elementos no se pueden superponer entre ellos
- Sólo puede haber un elemento raíz, en el que
están contenidos todos los demás
XML erróneo ltnombregtTopacio
Jadeltemailgt lt/nombregttopacio.jade_at_mail.comlt/emailgt
8Estructura jerárquica de elementos
remitente
nombre Topacio Jade
email topacio.jade_at_mail.com
destinatario
nombre Esmeralda Turquesa
mensaje
email eturquesa_at_gmail.com
asunto Informe de ventas
texto
parrafo Ya esta acabado el informe.
parrafo Lo he dejado en el servidor del
departamento.
9Estructura jerárquica de elementos
lt?xml version"1.0" encoding"UTF-7"?gt lt!DOCTYPE
mensaje SYSTEM mensaje.dtdgt ltmensajegt ltremitent
egt ltnombregtTopacio Jadelt/nombregt ltemailgttopaci
o.jade_at_mail.comlt/emailgt lt/remitentegt ltdestinatar
iogt ltnombregtEsmeralda Turquesalt/nombregt ltemail
gteturquesa_at_gmai.comlt/emailgt lt/destinatariogt ltasu
ntogtInforme de ventaslt/asuntogt lttextogt ltparrafo
gt Ya esta acabado el informe. lt/parrafogt ltparra
fogt Lo he dejado en el servidor del departamento.
lt/parrafogt lt/textogt lt/mensajegt
10Algunas normas
ltanimalgt Perro ltraza tipo"Cocker
Spaniel"gt ltanimalgt Vaca ltraza tipo"Holstein"gt
- Todas las etiquetas tienen que estar debidamente
cerradas - etiqueta de cierre que se corresponda con la de
apertura - Las etiquetas sin contenido tienen una sintaxis
especial
ltanimalgt Perro ltraza tipo"Cocker
Spaniel"gt lt/animalgt ltanimalgt Vaca ltraza
tipo"Holstein"gt lt/animalgt
ltanimalgt Perro ltraza tipo"Cocker Spaniel"
/gt lt/animalgt ltanimalgt Vaca ltraza tipo"Holstein"
/gt lt/animalgt
11Algunas normas
- Un nombre de elemento, atributo, entidad, etc.,
debe empezar siempre por una letra. - Las letras XML (o xml o xMl,etc.) no pueden
usarse como caracteres iniciales de un nombre de
elemento, atributo, etc. - XML es case-sensitive ltautorgt?ltAutorgt
- El uso del espacio en blanco y los saltos de
línea sólo se tienen en cuenta cuando aparecen en
el valor de un atributo, o cuando se indica su
significancia.
12Marcado y datos
- Las construcciones como etiquetas, referencias de
entidad y declaraciones se denominan marcas
(mark-up) y son las partes que el analizador
sintáctico (parser) espera comprender - El resto del documento, que se encuentra entre
las marcas, son los datos que resultan
entendibles por las personas - Marcas en un documento XML son aquellas que
comienzan con lt y terminan con gt - En el caso de referencias de entidad, el carácter
inicial es y el final
13El prólogo
- Es opcional
- La primera línea permite especificar
- La versión de XML (de momento sólo 1.0)
- La codificación de carácter (US-ASCII, UTF-8,
UTF-7, UCS-2, EUC-JP, Big5, ISO-8859-1, etc.) - La segunda línea define el tipo de documento,
especificando qué DTD (Document Type Definitions)
valida y define los datos que contiene
lt?xml version"1.0" encoding"UTF-7?gt lt!DOCTYPE
mensaje SYSTEM mensaje.dtdgt lt?xml
version"1.0" encodingISO-8859-1?gt lt!DOCTYPE
HTML PUBLIC -/ /W3C/ /DTD HTML 3.2 Final/
/ENgt lt?xml version"1.0" encodingBig5?gt
14Elementos
- Elementos con contenido
- Elementos vacíos
ltnombregtFulano Mengánezlt/nombregt ltaviso
tipoemergencia gravedadmortalgt Que no cunda
el pánicolt/avisogt
ltidentificador referencia1234567890/gt ltlinea-h
orizontal/gt
15Atributos
- Manera de incorporar características o
propiedades a los elementos - Pueden estar marcados entre comillas simples ()
o dobles () - Un concepto se puede representar de diversas
formas consistencia
ltverdura clasezanahoria longitud15 y
mediagt ltcita textoHola, buenos días, dijo
élgt
ltgatogtltnombregtMicifúlt/nombregtltrazagtPersalt/razagtlt/g
atogt ltgato razaPersagtMicifúlt/gatogt ltgato
razaPersa nombreMicifú/gt
16Entidades predefinidas
- En XML 1.0 se definen cinco entidades para
representar caracteres especiales y que no se
interpretan como marcado por el procesadr XML
Entidad Caracter
amp
lt lt
gt gt
apos
quot
17Secciones CDATA
- Construcción en XML que permite especificar
datos, utilizando cualquier carácter, especial o
no, sin que se interprete como marcado XML. - La razón de esta construcción es que a veces es
necesario para los autores de documentos XML,
poder leerlo facilmente sin tener que descifrar
los códigos de entidades. Especialmente cuando
son muchas.
ltejemplogt ltHTMLgt ltHEADgtltTITLEgtRo
ck amp ROLLlt/TITLEgt lt/HEADgt lt/ejempl
ogt
ltejemplogt lt!CDATA ltHTMLgt ltHEADgtltTITLEgtRock
Rolllt/TITLEgtlt/HEADgt gt lt/ejemplogt
18Comentarios
- Insertados en el documento XML
- Ignorados por el procesado de la información y
las reproducciones del documento - Tienen el mismo formato que en HTML
- Comienzan por lt!-- y terminan con --gt
- Se pueden introducir en cualquier lugar de la
instancia o del prólogo, pero nunca dentro de las
declaraciones, etiquetas u otros comentarios.
19 DTD (Document Type Definition)
27 de Mayo de 2004
Fernando Alonso Blázquez
20Índice
- Validación y definición de documentos
- DTD Document Type Definition
- Declaraciones de tipo Elemento
- Modelos de contenido
- Declaraciones de lista de Atributos
- Tipos de Atributos
- Declaración de Entidades
21Document Type Definition (DTD)
- Es como definir nuestro propio lenguaje de
marcado para una aplicación específica - Define los tipos de elementos, atributos y
entidades permitidas, y puede expresar algunas
limitaciones para combinarlos - Puede residir en un fichero externo y ser
compartido por varios documentos XML. - O bien puede estar contenido en el propio
documento XML, como parte de su declaración de su
prólogo. - El documento XML que se ajusta a su DTD, se
denomina valido ? bien-formado
22Ejemplos de DTD
lt!DOCTYPE etiqueta lt!ELEMENT etiqueta (nombre,
calle, ciudad, pais, codigo)gt lt!ELEMENT nombre
(PCDATA)gt lt!ELEMENT calle (PCDATA)gt lt!ELEMENT
ciudad (PCDATA)gt lt!ELEMENT pais
(PCDATA)gt lt!ELEMENT codigo (PCDATA)gt gt ltetiquet
agt ltnombregtTopacio Jadelt/nombregt ltcallegtMinas
de Moria, 13lt/callegt ltciudadgtAzanulbizarlt/ciudad
gt ltpaisgtKhuzdullt/paisgt ltcodigogt78125lt/codigogt
lt/etiquetagt
lt!DOCTYPE coche SYSTEM http//www.tecnun.es/coche
.dtdgt ltcochegt ltmodelogt...lt/modelogt
... lt/cochegt
23Declaraciones de tipo Elemento
Documento XML válido de acuerdo al DTD
anterior ltrecetagt lttitulogtArroz
cocidolt/titulogt ltingredientesgtArrozlt/ingrediente
sgt ltprocedimientogtCocer el arrozlt/procedimientogt
lt/recetagt
- Deben empezar con lt!ELEMENT seguidas por el
identificador genérico del elemento que se
declara - A continuación tienen una especificación del
contenido - Ejemplo
- lt!ELEMENT receta (titulo, ingredientes,
procedimiento)gt
Documento XML no válido ltrecetagt ltparrafogtLa
siguiente receta me la pasó Alvarolt/parrafogt
lttitulogtArroz cocidolt/titulogt
ltingredientesgtArrozlt/ingredientesgt
ltprocedimientogtCocer el arrozlt/procedimientogt lt/re
cetagt
24Especificación de contenido
- EMPTY No tiene contenido.
- lt!ELEMENT linea-horizontal EMPTYgt
- ANY Puede tener cualquier contenido. Es mejor no
usarla y estructurar adecuadamente los documentos - lt!ELEMENT batiburrillo ANYgt
- Mixed Puede tener caracteres o una mezcla de
caracteres y sub-elementos especificados - lt!ELEMENT enfasis (PCDATA)gt
- lt!ELEMENT parrafo (PCDATAenfasis)gt
- Element Sólo puede contener sub-elementos
especificados - lt!ELEMENT mensaje (remite, texto)gt
25Modelos de contenido
- lt!ELEMENT aviso (parrafo)gt
- ltavisogt sólo puede contener un ltparrafogt
- lt!ELEMENT aviso (titulo, parrafogt
- ltavisogt debe contener un elemento lttitulogt
seguido de un elemento ltparrafogt - lt!ELEMENT aviso (parrafo grafico)gt
- La barra vertical indica opción. El número de
opciones no está limitado y se pueden agrupar
usando paréntesis - lt!ELEMENT aviso (titulo, (parrafo grafico))gt
- ltavisogt debe contener un lttitulogt seguido de un
ltparrafogt o un ltgraficogt
26Modelos de contenido
- Indicador de frecuencia
- Siguen directamente a un identificador general,
una secuencia o una opción - No pueden ir precedidos por espacios en blanco
- lt!ELEMENT aviso (titulo?, (parrafo, grafico))gt
Indicador Frecuencia
? Opcional (0 ó 1 vez)
Opcional y repetible (0 ó más veces)
Necesario y repetible (1 ó más veces)
27Declaración de lista de Atributos
lt!ELEMENT mensaje (de, a, texto)gt lt!ATTLIST
mensaje prioridad (normal urgente)
normalgt lt!ELEMENT texto (PCDATA)gt lt!ATTLIST
texto idioma CDATA REQUIREDgt
- Atributos
- Añaden información adicional a los elementos
- Sólo se pueden especificar una vez y en cualquier
orden - No pueden contener sub-atributos
- Declaración
- Empiezan con lt!ATTLIST
- Identificador del elemento al que se aplica
- Nombre del atributo
- Tipo
- Valor por defecto
ltmensaje prioridadurgentegt ltdegtTopacio
Jadelt/degt ltagtEsmeralda Turquesalt/agt lttexto
idiomaespañolgt Hay que preparar los informes
de junio lt/textogt lt/mensajegt
28Declaración de lista de Atributos
- REQUIRED Es obligatorio especificar el
atributo. No tiene valor por defecto. - IMPLIED Se puede omitir el atributo, sin que se
adopte automáticamente un valor por defecto - lt!ATTLIST IMG URL CDATA REQUIRED
- ALT CDATE IMPLIEDgt
29Tipos de Atributos
- Atributos CDATA (character data) Pueden contener
casi cualquier cosa - lt!ATTLIST mensaje fecha CDATA REQUIREDgt
- lt mensaje fecha21 de Mayo de 2003gt
- Atributos enumerados Sólo pueden contener un
valor de entre un número reducido de opciones - lt!ATTLIST mensaje prioridad (normal urgente)
normalgt
30Tipos de Atributos
- Atributos ID e IDREF
- El tipo ID permite que un atributo determinado
tenga un nombre único que podrá ser referenciado
por un atributo de otro elemento que sea de tipo
IDREF - Permite implementar un sistema de hipervínculos
en un documento XML - lt!ELEMENT enlace EMPTYgt
- lt!ATTLIST enlace destino IDREF REQUIREDgt
- lt!ELEMENT capitulo (parrafo)gt
- lt!ATTLIST capitulo referencia ID IMPLIEDgt
31Declaración de Entidades
- La Entidades se utilizan para hacer referencia a
objetos (ficheros, páginas Web, imágenes,...) que
no deben ser analizados sintácticamente según las
reglas de XML - Se declaran mediante lt!ENTITY
- Puede usarse para declarar una abreviatura que se
utiliza como una forma más corta de algunos
textos - En otras ocasiones es una referencias a un objeto
externo o local
32Tipos de Entidades
- Las entidades pueden ser
- Internas Externas
- Analizadas o No analizadas
- Generales o Parámetro
- Entidades generales internas
- Son básicamente abreviaturas definidas en la
sección del DTD del documento XML - Son siempre entidades analizadas
lt!DOCTYPE texto lt!ENTITY ovni Objeto Volador No
Identificadogt gt lttextogt lttitulogt Durmiendo en
clase, Topacio soñó con un ovni
lt/titulogt lt/textogt
33Tipos de Entidades
- Entidades generales externas analizadas
- lt!ENTITY intro SYSTEM http//www.tecnun.es/intro.
xmlgt - Entidades no analizadas
- lt!ENTITY logo SYSTEM http//www.tecnun.es/logo.gi
fgt - Entidades parámetro Internas
- lt!DOCTYPE texto
- lt!ENTITY elemento-alf !ELEMENT ALF
(PCDATA)gtgt - elemento-alf gt
- Entidades parámetro Externas
- lt!DOCTYPE texto
- lt!ENTITY elemento-alf SYSTEM alf.entgt
- ...
- elemento-alf gt
34Ejemplo de DTD
lt?xml encodingUTF-7?gt lt!ELEMENT lista
(persona)gt lt!ELEMENT persona (nombre, email,
relacion?)gt lt!ATTLIST persona id ID
REQUIREDgt lt!ATTLIST persona sexo (hombre
mujer) IMPLIEDgt lt!ELEMENT nombre
(PCDATA)gt lt!ELEMENT email (PCDATA)gt lt!ELEMENT
relacion EMPTYgt lt!ATTLIST relacion amigo-de
IDREFS IMPLIED enemigo-de
IDREFS IMPLIEDgt
lt?xml version1.0?gt lt!DOCTYPE lista SYSTEM
Lista.dtdgt ltlistagt ltpersona sexohombre
idTopaciogt ltnombregtTopacio Jadelt/nombregt
ltemailgttopacio.jade_at_mail.comlt/emailgt
ltrelacion amigo-deesmeraldagt lt/personagt
ltpersona sexomujer idesmeraldagt
ltnombregtEsmeralda Turquesalt/nombregt
ltemailgteturquesa_at_gmail.comlt/emailgt
lt/personagt lt/listagt