Fernando Alonso Bl - PowerPoint PPT Presentation

1 / 34
About This Presentation
Title:

Fernando Alonso Bl

Description:

Keywords, Indexing, Annotations, Interdocument linking... Qu es XML? Es un subconjunto de SGML (Standard Generalized Mark-up Language), simplificado ... – PowerPoint PPT presentation

Number of Views:609
Avg rating:3.0/5.0
Slides: 35
Provided by: jsan8
Category:

less

Transcript and Presenter's Notes

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

3
Introducció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...

4
Qué 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
5
Ventajas 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

6
Construyendo 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
7
Estructura 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

8
Estructura 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.
9
Estructura 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
10
Algunas 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
11
Algunas 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.

12
Marcado 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

13
El 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
14
Elementos
  • 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
15
Atributos
  • 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
16
Entidades 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
17
Secciones 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
18
Comentarios
  • 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

21
Document 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

22
Ejemplos 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
23
Declaraciones 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
24
Especificació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

25
Modelos 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

26
Modelos 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)
27
Declaració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
28
Declaració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

29
Tipos 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

30
Tipos 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

31
Declaració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

32
Tipos 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
33
Tipos 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

34
Ejemplo 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
Write a Comment
User Comments (0)
About PowerShow.com