+ All Categories
Home > Documents > Fernando Alonso Blázquez

Fernando Alonso Blázquez

Date post: 03-Feb-2016
Category:
Upload: oriana
View: 38 times
Download: 0 times
Share this document with a friend
Description:
XML (eXtensible Mark-up Language). 27 de Mayo de 2004. Fernando Alonso Blázquez. Í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. - PowerPoint PPT Presentation
Popular Tags:
34
Fernando Alonso Blázquez XML (eXtensible Mark-up Language) 27 de Mayo de 2004
Transcript
Page 1: Fernando Alonso Blázquez

Fernando Alonso Blázquez

XML(eXtensible Mark-up

Language)

27 de Mayo de 2004

Page 2: Fernando Alonso Blázquez

Í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

Page 3: Fernando Alonso Blázquez

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...

Page 4: Fernando Alonso Blázquez

¿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

<libro><autor>Antonio Muñoz Molina</autor><titulo>El Jinete Polaco</titulo><precio moneda=“EURO”>20</precio>

</libro>

Page 5: Fernando Alonso Blázquez

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

Page 6: Fernando Alonso Blázquez

Construyendo documentos XML

• El elemento y sus atributos

<autor pais=“ES”>Antonio Muñoz Molina</autor>

• 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)

Nombre del elemento

Nombre del atributo

Valor del atributo

Contenido del elemento

Etiqueta de fin

Page 7: Fernando Alonso Blázquez

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

<nombre>Topacio Jade<email></nombre>[email protected]</email>

Page 8: Fernando Alonso Blázquez

Estructura jerárquica de elementos

mensaje

remitente

destinatario

asunto: Informe de ventas

texto

nombre: Topacio Jade

email: [email protected]

nombre: Esmeralda Turquesa

email: [email protected]

parrafo: Ya esta acabado el informe.

parrafo: Lo he dejado en el servidor del departamento.

Page 9: Fernando Alonso Blázquez

Estructura jerárquica de elementos<?xml version="1.0" encoding="UTF-7"?><!DOCTYPE mensaje SYSTEM “mensaje.dtd”><mensaje>

<remitente><nombre>Topacio Jade</nombre><email>[email protected]</email>

</remitente><destinatario>

<nombre>Esmeralda Turquesa</nombre><email>[email protected]</email>

</destinatario><asunto>Informe de ventas</asunto><texto>

<parrafo> Ya esta acabado el informe.</parrafo>

<parrafo> Lo he dejado en el servidor del departamento.

</parrafo></texto>

</mensaje>

Page 10: Fernando Alonso Blázquez

Algunas normas

• 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

<animal> Perro

<raza tipo="Cocker Spaniel">

<animal> Vaca

<raza tipo="Holstein"><animal> Perro

<raza tipo="Cocker Spaniel">

</animal>

<animal> Vaca

<raza tipo="Holstein">

</animal> <animal> Perro

<raza tipo="Cocker Spaniel" />

</animal>

<animal> Vaca

<raza tipo="Holstein" />

</animal>

Page 11: Fernando Alonso Blázquez

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”: <autor><Autor>

• 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.

Page 12: Fernando Alonso Blázquez

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 “<“ y terminan con “>”

• En el caso de referencias de entidad, el carácter inicial es “&” y el final “;”

Page 13: Fernando Alonso Blázquez

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

<?xml version="1.0" encoding="UTF-7”?><!DOCTYPE mensaje SYSTEM “mensaje.dtd”>

<?xml version="1.0" encoding=“ISO-8859-1”?><!DOCTYPE HTML PUBLIC “-/ /W3C/ /DTD HTML 3.2 Final/ /EN”>

<?xml version="1.0" encoding=“Big5”?>

Page 14: Fernando Alonso Blázquez

Elementos

• Elementos con contenido

• Elementos vacíos

<nombre>Fulano Mengánez</nombre>

<aviso tipo=“emergencia” gravedad=“mortal”>Que no cunda el pánico</aviso>

<identificador referencia=“1234567890”/>

<linea-horizontal/>

Page 15: Fernando Alonso Blázquez

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

<verdura clase=“zanahoria” longitud=’15” y media’>

<cita texto=“’Hola, buenos días’, dijo él”>

<gato><nombre>Micifú</nombre><raza>Persa</raza></gato>

<gato raza=“Persa”>Micifú</gato>

<gato raza=“Persa” nombre=“Micifú”/>

Page 16: Fernando Alonso Blázquez

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; <&gt; >&apos; ‘&quot; “

Page 17: Fernando Alonso Blázquez

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.

<ejemplo>

&lt;HTML&gt;

&lt;HEAD&gt;&lt;TITLE&gt;Rock &amp; ROLL&lt;/TITLE&gt;

&lt;/HEAD&gt;

</ejemplo>

<ejemplo>

<![CDATA[

<HTML>

<HEAD><TITLE>Rock & Roll</TITLE></HEAD>

]]>

</ejemplo>

Page 18: Fernando Alonso Blázquez

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 “<!--” y terminan con “-->”

• Se pueden introducir en cualquier lugar de la instancia o del prólogo, pero nunca dentro de las declaraciones, etiquetas u otros comentarios.

Page 19: Fernando Alonso Blázquez

Fernando Alonso Blázquez

DTD(Document Type Definition)

27 de Mayo de 2004

Page 20: Fernando Alonso Blázquez

Í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

Page 21: Fernando Alonso Blázquez

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”

Page 22: Fernando Alonso Blázquez

Ejemplos de DTD<!DOCTYPE etiqueta [<!ELEMENT etiqueta (nombre, calle, ciudad, pais, codigo)><!ELEMENT nombre (#PCDATA)><!ELEMENT calle (#PCDATA)><!ELEMENT ciudad (#PCDATA)><!ELEMENT pais (#PCDATA)><!ELEMENT codigo (#PCDATA)>]><etiqueta> <nombre>Topacio Jade</nombre> <calle>Minas de Moria, 13</calle> <ciudad>Azanulbizar</ciudad> <pais>Khuzdul</pais> <codigo>78125</codigo></etiqueta>

<!DOCTYPE coche SYSTEM “http://www.tecnun.es/coche.dtd”><coche> <modelo>...</modelo> ...</coche>

Page 23: Fernando Alonso Blázquez

Declaraciones de tipo Elemento

• Deben empezar con “<!ELEMENT” seguidas por el identificador genérico del elemento que se declara

• A continuación tienen una especificación del contenido

• Ejemplo:

• <!ELEMENT receta (titulo, ingredientes, procedimiento)>

Documento XML válido de acuerdo al DTD anterior

<receta> <titulo>Arroz cocido</titulo> <ingredientes>Arroz</ingredientes> <procedimiento>Cocer el arroz</procedimiento></receta>Documento XML no válido

<receta>

<parrafo>La siguiente receta me la pasó Alvaro</parrafo> <titulo>Arroz cocido</titulo> <ingredientes>Arroz</ingredientes> <procedimiento>Cocer el arroz</procedimiento></receta>

Page 24: Fernando Alonso Blázquez

Especificación de contenido• EMPTY: No tiene contenido.

<!ELEMENT linea-horizontal EMPTY>

• ANY: Puede tener cualquier contenido. Es mejor no usarla y estructurar adecuadamente los documentos<!ELEMENT batiburrillo ANY>

• Mixed: Puede tener caracteres o una mezcla de caracteres y sub-elementos especificados<!ELEMENT enfasis (#PCDATA)><!ELEMENT parrafo (#PCDATA|enfasis)*>

• Element: Sólo puede contener sub-elementos especificados<!ELEMENT mensaje (remite, texto)>

Page 25: Fernando Alonso Blázquez

Modelos de contenido

• <!ELEMENT aviso (parrafo)>– <aviso> sólo puede contener un <parrafo>

• <!ELEMENT aviso (titulo, parrafo>– <aviso> debe contener un elemento

<titulo> seguido de un elemento <parrafo>

• <!ELEMENT aviso (parrafo | grafico)>– La barra vertical “|” indica opción. El número

de opciones no está limitado y se pueden agrupar usando paréntesis

• <!ELEMENT aviso (titulo, (parrafo | grafico))>– <aviso> debe contener un <titulo> seguido

de un <parrafo> o un <grafico>

Page 26: Fernando Alonso Blázquez

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

<!ELEMENT aviso (titulo?, (parrafo+, grafico)*)>

Indicador

Frecuencia

? Opcional (0 ó 1 vez)* Opcional y repetible

(0 ó más veces)+ Necesario y repetible

(1 ó más veces)

Page 27: Fernando Alonso Blázquez

Declaración de lista de Atributos

• 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 “<!ATTLIST”– Identificador del elemento al que se aplica– Nombre del atributo– Tipo– Valor por defecto

<mensaje prioridad=“urgente”> <de>Topacio Jade</de> <a>Esmeralda Turquesa</a> <texto idioma=“español”> Hay que preparar los informes de junio </texto></mensaje>

<!ELEMENT mensaje (de, a, texto)><!ATTLIST mensaje prioridad (normal | urgente) normal><!ELEMENT texto (#PCDATA)><!ATTLIST texto idioma CDATA #REQUIRED>

Page 28: Fernando Alonso Blázquez

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

<!ATTLIST IMG URL CDATA #REQUIRED

ALT CDATE #IMPLIED>

Page 29: Fernando Alonso Blázquez

Tipos de Atributos

• Atributos CDATA (character data): Pueden contener casi cualquier cosa

<!ATTLIST mensaje fecha CDATA #REQUIRED>

< mensaje fecha=“21 de Mayo de 2003”>

• Atributos enumerados: Sólo pueden contener un valor de entre un número reducido de opciones

<!ATTLIST mensaje prioridad (normal | urgente) normal>

Page 30: Fernando Alonso Blázquez

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

<!ELEMENT enlace EMPTY>

<!ATTLIST enlace destino IDREF #REQUIRED>

<!ELEMENT capitulo (parrafo)*>

<!ATTLIST capitulo referencia ID #IMPLIED>

Page 31: Fernando Alonso Blázquez

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 “<!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

Page 32: Fernando Alonso Blázquez

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

<!DOCTYPE texto[<!ENTITY ovni “Objeto Volador No Identificado”>]><texto> <titulo> Durmiendo en clase, Topacio soñó con un &ovni; </titulo></texto>

Page 33: Fernando Alonso Blázquez

Tipos de Entidades

• Entidades generales externas analizadas

<!ENTITY intro SYSTEM “http://www.tecnun.es/intro.xml>

• Entidades no analizadas

<!ENTITY logo SYSTEM “http://www.tecnun.es/logo.gif>

• Entidades parámetro Internas

<!DOCTYPE texto[ <!ENTITY % elemento-alf “!ELEMENT ALF (#PCDATA)>”> %elemento-alf; ]>

• Entidades parámetro Externas

<!DOCTYPE texto[ <!ENTITY % elemento-alf SYSTEM “alf.ent”> ... %elemento-alf; ]>

Page 34: Fernando Alonso Blázquez

Ejemplo de DTD

<?xml encoding=“UTF-7”?>

<!ELEMENT lista (persona)+><!ELEMENT persona (nombre, email*, relacion?)><!ATTLIST persona id ID #REQUIRED><!ATTLIST persona sexo (hombre | mujer) #IMPLIED><!ELEMENT nombre (#PCDATA)><!ELEMENT email (#PCDATA)><!ELEMENT relacion EMPTY><!ATTLIST relacion amigo-de IDREFS #IMPLIED enemigo-de IDREFS #IMPLIED>

<?xml version=“1.0”?>

<!DOCTYPE lista SYSTEM “Lista.dtd”><lista> <persona sexo=“hombre” id=“Topacio”> <nombre>Topacio Jade</nombre> <email>[email protected]</email> <relacion amigo-de=“esmeralda”> </persona> <persona sexo=“mujer” id=“esmeralda”> <nombre>Esmeralda Turquesa</nombre> <email>[email protected]</email> </persona></lista>


Recommended