¿Qué es XML?
§ XML es un subconjunto de SGML (Standard
Generalised Mark-up Language), simplificado y
adaptado a Internet.
§ XML (eXtensible Mark-up Language) no es, como
su nombre podría sugerir, un lenguaje de
marcado.
§ XML es un meta-lenguaje que nos permite definir
lenguajes de marcado adecuados a usos
determinados.
¿Qué no es XML?
§ XML no es una “versión mejorada de HTML”.
§ HTML es una aplicación de XML (más o menos)
§ XML no es un lenguaje para hacer mejores
páginas de web.
§ XML no es difícil :-)
¿Por qué XML?
§ Es un estándar internacionalmente reconocido.
§ No pertenece a ninguna compañía, y su
utilización es libre.
§ Permitirá la utilización efectiva de Internet en
diferentes alfabetos, por gente con minusvalías
físicas, y en diferente hardware (teléfonos
celulares, PDAs, terminales Braille, etc.)
Un ejemplo de HTML
<p><b>La insoportable levedad del ser</b>
<br>Milan Kundera
<br>Precio: <i>20 dólares</i>
¿Qué problema tiene HTML?
§ Define más la presentación que el contenido.
§ No es fácilmente procesable por “máquinas”.
§ Problemas de internacionalización.
§ Su estructura es “caótica”.
§ Su interpretación es ambigua según el software
utilizado.
§ Sólo tiene un uso: páginas de web.
Una propuesta en XML
<libro>
<titulo>La insoportable levedad del
ser</titulo>
<autor>Milan Kundera</autor>
<precio moneda=“USD”>20</precio>
</libro>
Ventajas de XML
§ Fácilmente procesable tanto por humanos como
por software.
§ Separa radicalmente la información o el
contenido de su presentación o formato.
§ Diseñado para ser utilizado en cualquier lenguaje
o alfabeto.
Ventajas de XML (más...)
Un documento, muchas formas de presentación.
XML
HTML
WML
RTF
PDF
VRML
Ventajas de XML (y más...)
§ Formato ideal para transacciones B2B.
§ Permite poderosas técnicas de extracción de
información y data-mining.
§ XML + validación = datos autodefinidos.
§ Las estrictas reglas para la composición de un
documento XML permiten su fácil análisis
sintáctico.
(Breve) historia de XML
§ Desarrollado a partir de 1996, como sub-
conjunto de SGML.
§ Adoptado como estándar en Febrero 1998 por
el World Wide Web Consortium (W3C)
World Wide Web Consortium (W3C)
§ Constituido en 1994 con el objetivo de
desarrollar protocolos comunes para la
evolución de Intermet.
§ Es un consorcio de industrias internacionales, y
está participado por el MIT (EEUU), INRIA
(Francia), y Keio University (Japón).
§ Cuenta con el soporte oficial de DARPA (EEUU) y
la Comisión Europea.
La sopa de letras
XLL
DC
XML
XSL
XSLT
DTD
XPath
XML-Sig
DOM
XBase
RDF
SAX
XPointer
SGML
Schema
SML
namespace
Un poco de terminología
XML
SGML
XML “bien-formado”
Validación
DTD
Schema
XSL
Parser
eXtended Mark-up Language
Standard Generalised Mark-up Language
Document Type Definition
eXtended Stylesheet Language
Analizador sintáctico
Un poco (más) de terminología
Elemento
Atributo
DOM
RDF
XLink, XPointer
SML
SMIL
XHTML
Document Object Model
Resource Description Framework
Simple Mark-up Language
Synchronized Multimedia bla bla
Tecnologías XML (un resumen)
Especificación
XML v1.0
Definición de documentos
DTD or Schemas
Definición de estilos
XSL = XSLT + XPath
Enlazado de documentos
XLL = XLink + XPointer
Aplicaciones
RDF, SMIL, HTML, etc.
Construyendo documentos XML
El elemento y sus atributos
nombre del atributo
contenido del elemento
<autor pais=“CZ”>Milan Kundera</autor>
nombre del elemento
etiqueta de fin
valor del atributo
XML “bien-formado” (well-formed)
§ Se dice que un documento XML es “bien-
formado” cuando cumple una serie de reglas
descritas en la especificación oficial de XML v1.0
Estructura jerárquica de elementos
§ Los elementos deben seguir una estructura de
“arbol”, es decir, estríctamente jerárquica.
§ Los elementos deben estar correctamente
anidados.
§ Los elementos no se pueden superponer entre
ellos.
Ejemplo de XML erróneo
<nombre>Alfredo Reino<email>
</nombre>
[email protected]</email>
Estructura jerárquica de elementos
§ Sólo puede haber un elemento raiz, en el que
están contenidos todos los demás.
Estructura jerárquica de elementos
<?xml version=“1.0” encoding=“UTF-7”?>
<!DOCTYPE mensaje SYSTEM “mensaje.dtd”>
<mensaje>
<remite>
<nombre>Alfredo Reino</nombre>
<email>
[email protected]</email>
</remite>
<destinatario>
<nombre>Bill Clinton</nombre>
<email>
[email protected]</email>
</destinatario>
<asunto>Hola Bill</asunto>
<texto>
<parrafo>¿Hola qué tal? ...</parrafo>
</texto>
</mensaje>
Estructura jerárquica de elementos
Etiquetas
§ Todas las etiquetas tienen que estar
debidamente “cerradas”, es decir, con una
etiqueta de cierre que se corresponda con la de
apertura.
§ Las etiquetas “vacías” (es decir, sin contenido)
tienen una sintaxis especial.
Ejemplos de XML incorrecto
<animal>Perro
<raza tipo=“Cocker Spaniel”>
<animal>Vaca
<raza tipo=“Holstein”>
Una versión más correcta...
<animal>Perro
<raza tipo=“Cocker Spaniel”>
</animal>
<animal>Vaca
<raza tipo=“Holstein”>
</animal>
Las etiquetas tienen que estar SIEMPRE cerradas
¡La versión más correcta!
<animal>Perro
<raza tipo=“Cocker Spaniel” />
</animal>
<animal>Vaca
<raza tipo=“Holstein” />
</animal>
Las etiquetas sin contenido se cierran de la forma mostrada
Atributos
§ Los valores de los atributos de los elementos
siempre deben estar marcados con las comillas
dobles (“) o sencillas (‘)
<a href=“http://www.disney.com”>Esto es correcto</a>
<a href=‘http://www.disney.com’>Esto es correcto</a>
<a href=http://www.disney.com>Esto NO es correcto</a>
Nombrando cosas
§ Un nombre de elemento, atributo, entidad, etc.
empieza por una letra, y continua con letras,
dígitos, guiones, rayas, punto o dos puntos.
§ Las letras “XML” (o “xml” o “xMl”, etc.) no pueden
usarse como caracteres iniciales de un nombre
de elemento, atributo, entidad, etc.
Otras reglas
§ XML es “case-sensitive”, es decir, que no es lo
mismo <autor> que <Autor>, por ejemplo.
§ El uso del espacio blanco y los saltos de línea, en
general funciona como en HTML (sólo se toma
en cuenta cuando aparece en el valor de un
atributo, o cuando se indica su significancia)
Marcado y datos
§ Las construcciones como etiquetas, referencias
de entidad y declaraciones se denominan
“marcas” (mark-up). Estas son las partes del
documento 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.
Marcado y datos
§ Marcas en un documento XML son aquellas que
comienzan por el caracter “<“ y terminan con “>”.
§ En el caso de las referencias de entidad, el
caracter inicial es “&” y el final es “;”
El prólogo
§ 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, ISO-8859-7, etc.), y
algunas otras cosas.
§ La segunda línea define el tipo de documento,
especificando que DTD valida y define los datos
que contiene.
Ejemplos de prólogos
<?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"?>
Elementos
Los elementos XML pueden tener contenido (más elementos,
caracteres, o ambos a la vez), o bien ser elementos vacíos.
Un elemento con contenido es, por ejemplo:
<nombre>Fulano Mengánez</nombre>
<aviso tipo="emergencia" gravedad="mortal">
Que no cunda el pánico</aviso>
Elementos
Siempre empieza con una <etiqueta> que puede contener
atributos o no, y termina con una </etiqueta> que debe tener
el mismo nombre. Al contrario que HTML, en XML siempre
se debe "cerrar" un elemento.
Hay que tener en cuenta que el símbolo "<" siempre se
interpreta como inicio de una etiqueta XML. Si no es el
caso, el documento no estará bien-formado. Para usar
ciertos símbolos se usan las entidades predefinidas, que
se explican más adelante.
Elementos vacíos
Un elemento vacío, es el que no tiene contenido (claro).
<identificador referencia="23123244"/>
<linea-horizontal/>
Al no tener una etiqueta de "cierre" que delimite un
contenido, se utiliza la forma <etiqueta/>, que puede
contener atributos o no. La sintaxis de HTML permite
etiquetas vacías tipo <hr> o <img src="...">. En HTML
reformulado para que sea un documento XML bien-
formado, se debería usar <hr/> o <img src="..."/>
Atributos
Como se ha mencionado antes, los elementos pueden tener
atributos, que son una manera de incorporar características
o propiedades a los elementos de un documento.
<gato raza="Persa">Micifú</gato>
Atributos
Al igual que en otras cadenas literales de XML, los atributos
pueden estar marcados entre comillas verticales ( ' ) o
dobles ( " ). Cuando se usa uno para delimitar el valor del
atributo, el otro tipo se puede usar dentro.
<verdura clase="zanahoria" longitud='15" y media'>
<cita texto="'Hola buenos dias', dijo él">
Atributos
A veces, un elemento con contenido, puede modelarse
como un elemento vacío con atributos. Un concepto se
puede representar de muy diversas formas, pero una
vez elegida una, es aconsejable fijarla en el DTD, y usar
siempre la misma consistentemente dentro de un
documento XML.
<gato><nombre>Micifú</nombre><raza>Persa</raza>
</gato>
<gato raza="Persa">Micifú</gato>
<gato raza="Persa" nombre="Micifú"/>
Entidades Predefinidas
En XML 1.0, se definen cinco entidades para representar
caracteres especiales y que no se interpreten como
marcado por el procesador XML. Es decir, que así
podemos usar el carácter "<" sin que se interprete como
el comienzo de una etiqueta XML, por ejemplo.
Entidades Predefinidas
Secciones CDATA
Existe otra construcción en XML que permite especificar
datos, utilizando cualquier carácter, especial o no, sin que
se i
Comentarios de: Introducción a XML (0)
No hay comentarios