Title: D' Luis Alfonso Urea Lpez
1- D. Luis Alfonso Ureña López
- Departamento de Informática
- Universidad de Jaén
2Introducción Qué es XML?
- XML eXtensible Markup Language (Lenguaje
Extensible de Marcas) - Lenguaje abierto, estándar (W3 Consortium)
derivado de SGML, optimizado para su uso en la
WWW. - Permite describir el sentido o la semántica de
los datos. - El XML, a diferencia del HTML, separa el
contenido de la presentación. - XML es un Meta-Lenguaje, que permite la
definición de lenguajes concretos de
representación de documentos.
3Qué no es XML?
- XML no es una versión mejorada de HTML.
- XML no es un lenguaje para hacer mejores páginas
web. - XML no es difícil.
4Inconvenientes generales de HTML
- Está diseñado para presentar información
directamente a los humanos, y esto sin duda es
algo bueno, pero es un lenguaje complicado de
procesar para los programas informáticos. - No es bueno porque no indica lo que está
representando, se preocupa principalmente de que
eso tiene que ir en azul, o con un tipo de letra
determinada, pero no te dice que lo que está
mostrando es el título de un libro o el precio de
un artículo.
5Problemas de HTML
- Define más la presentación que el contenido.
- No es fácilmente procesable por máquinas.
- Su estructura es caótica.
- Su interpretación es ambigua según el software
utilizado. - Su uso es la web.
6Introducción
- La idea que subyace bajo el XML es la de crear un
lenguaje muy general que sirva para muchas cosas. - El XML describe el contenido de lo que etiqueta.
- Cualquier programa de informática puede trabajar
más eficientemente sobre XML que HTML.
7Por qué XML?
- Es un estándar.
- No pertenece a ninguna compañía y su utilización
es libre. - Permite la utilización efectiva de Internet.
8Diferencia entre el SGML, XML y HTML
9Características
- Utilizo mis propias etiquetas.
- La sintaxis es estricta. La especificación XML
determina claramente una serie de reglas que
especifican cuando un documento está bien
formado. - La utilización de una DTD (no es necesario, pero
sí recomendable). - Los elementos vacíos. La propia etiqueta de
inicio llevará una contrabarra al final que los
identificará.
10Ventajas de XML
- Un estándar libre.
- Un lenguaje extensible.
- Fácilmente procesable por humanos y software.
- Una tecnología ya implantada en el mercado.
- Diseñado para ser utilizado en cualquier lenguaje
o alfabeto. - Separa el contenido de su representación.
11Ventajas de XML
Un documento muchas formas de representacíón
HTML
WML
XML
RTF
PDF
12Ventajas de XML
- Formato ideal para transacciones B2B.
- Permite la aplicación de técnicas de extracción
de información y minería de datos. - Las estrictas reglas para la composición de un
documento XML permiten su fácil análisis
sintáctico.
13Reseña histórica
- Desarrollado a partir de 1996, como subconjunto
de SGML. - Adoptado como estándar en Febrero 1998 por el
World Wide Web Consortium (W3C)
14World 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.
15Terminología
- XML eXtended Mark-up Language
- SGML Standard Generalised Mark-up Language
- XML "bien-formado"
- Validación
- DTD Document Type Definition
- Schema
- XSL eXtended Stylesheet Language
- Parser Analizador sintáctico
16Terminología
- Elemento
- Atributo
- DOM Document Object Model
- RDF Resource Description Frarnework
- XLink, XPointer
- SML Simple Mark-up Language
- SMIL
- XHTML
17Tecnologías XML
- Especificación
- Definición de documentos
- Definición de estilos
- Enlazado de documentos
- Aplicaciones
- XML v1.0
- DTD o Schemas
- XSLXSLTXpath
- XLLXLinkXPointer
- RDF, SMIL, HTML, etc.
18Cómo construir documentos XML?
- Los fundamentos del XML son muy sencillos y en
principio, para ir empezando, las únicas
herramientas que nos harán falta son - Un editor de textos, con el que escribir nuestros
documentos XML (el notepad en Windows y el xemacs
en Linux) - Un procesador o parser XML (Explorer 5.X,
Mozilla, XMLWriter)
19Editor XML
20Estructura de un documento XML
- Aunque a primera vista, un documento XML puede
parecer similar a HTML, hay una diferencia
principal. - Un documento XML contiene datos que se
autodefinen, exclusivamente. - Un documento HTML contiene datos mal definidos,
mezclados con elementos de formato. - En XML se separa el contenido de la presentación
de forma total.
21Ejemplo
- Una forma rápida de entender la estructura de un
documento XML es viendo un ejemplo
ltpensamientosgt ltautorgt Gibran, Khalil
lt/autorgt ltcitagt Para entender el corazón y la
mente de una persona, no te fijes en lo que ha
hecho, no te fijes en lo que ha logrado, sino en
lo que aspira a hacer. lt/citagt lt/pensamientosgt
22Ejemplo
- lt?xml version'1.0'?gt
- ltalbumgt
- lttitulogtNos sobran los motivoslt/titulogt
- ltautor pais'ES'gtSABINAlt/autorgt
- ltformatogtMP3lt/formatogt
- ltlocalizaciongtVarios CD5 lt/localizaciongt
- lt/albumgt
23Estructura
- Cada documento XML posee una estructura lógica y
una física. - La estructura lógica del documento es una serie
de declaraciones, elementos, comentarios, etc.
que se indican en el documento mediante marcas
explícitas. - La estructura física del documento es una serie
de unidades llamadas entidades, es decir, indica
los datos que contendrá el documento. - Las estructuras lógica y física deben anidarse de
forma correcta.
24 Estructura jerárquica de los elementos
- Los elementos deben seguir una estructura de
árbol (estrictamente jerárquica). - Los elementos deben estar correctamente anidados.
- Los elementos no se pueden superponer entre
ellos.
25Ejemplo de XML
- Incorrecto
- lt?xml version'1.0'?gt
- lttitulogtNos sobran los motivos
- Correcto
- lt?xml version'1.0'?gt
- lttitulogtNos sobran los motivoslt/titulogt
26Estructura jerárquica
- Sólo puede haber un elemento raiz, en el que
estén contenidos todos los demás.
27Ejemplo incorrecto
- lt?xml version'1.0'?gt
- lttitulogtNos sobran los motivoslt/titulogt
- ltautor pais'ES'gtSABINAlt/autorgt
- ltformatogtMP3lt/formatogt
- ltlocalizaciongtVarios CD5 lt/localizaciongt
28Ejemplo correcto
- lt?xml version'1.0'?gt
- ltalbumgt
- lttitulogtNos sobran los motivoslt/titulogt
- ltautor pais'ES'gtSABINAlt/autorgt
- ltformatogtMP3lt/formatogt
- ltlocalizaciongtVarios CD5 lt/localizaciongt
- lt/albumgt
29Documentos XML bien-formados
- Se dice que un documento XML está bien-formado
cuando cumple una serie de reglas descritas en la
especificación oficial de XML v1.0
30Ejemplo
- lt?xml version"1.0"?gt
- lt!DOCTYPE MENSAJE SYSTEM "mensaje.dtd"gt
- ltmensajegt
- ltremitegt
- ltnombregtL. Alfonso Ureñalt/nombregt
- ltemailgtlaurena_at_ujaen.eslt/emailgt
- lt/remitegt
- ltdestinatariogt
- ltnombregtReyes Magoslt/nombregt
- ltemailgtreyesmagos_at_ilusion.comlt/emailgt
- lt/destinatariogt
- ltasuntogtPetición Reyeslt/asuntogt
- lttextogt
- ltparrafogtQueridos Reyes, bla, bla,
....lt/parrafogt - lt/textogt
- lt/mensajegt
31El elemento y sus atributos
Contenido del elemento
Nombre del atributo
- ltautor pais'ES'gtSABINAlt/autorgt
Etiqueta de fin
Nombre del elemento
Valor del atributo
32Etiquetas
- 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.
33Ejemplos de XML incorrecto
- ltautomovilgt Mercedes
- ltmodelo tipo"220 CDI"gt
-
- ltautomovilgt Alfa Romeo
- ltmodelo tipo"156 JTD"gt
-
- ltautomovilgt Volkswagen
- ltmodelo tipo"Golf"gt
34Ejemplos de XML incorrecto
- ltautomovilgt Mercedes lt/automovilgt
- ltmodelo tipo"220 CDI"gt
- ltautomovilgt Alfa Romeo lt/automovilgt
- ltmodelo tipo"156 JTD"gt
- ltautomovilgt Volkswagen lt/automovilgt
- ltmodelo tipo"Golf"gt
Las etiquetas siempre tienen que estar cerradas
35Versión más correcta
- ltautomovilgt Mercedes lt/automovilgt
-
- ltautomovilgt Alfa Romeo lt/automovilgt
-
- ltautomovilgt Volkswagen lt/automovilgt
-
ltmodelo tipo"220 CDI /gt
ltmodelo tipo156 JTD /gt
ltmodelo tipoGolf /gt
Las etiquetas sin contenido se cierran de la
forma mostrada
36Atributos
- Los valores de los atributos de los elementos
siempre deben estar marcados con las comillas
dobles () o sencillas () - ltmodelo tipo"220 CDI"gt Esto es correcto
lt/modelogt - ltmodelo tipo156 JTDgt Esto es correcto
lt/modelogt - ltmodelo tipoGolf TDIgt Esto es incorrecto
lt/modelogt
37Nombrando cosas
- Un nombre de elemento, atributo, entidad etc.
empieza por una letra, y continua con letras,
dígitos, guiones, rayas, punto o dos puntos. - El acrónimo XML (o xml o xMl, etc.) no
pueden usarse como caracteres iniciales de un
nombre de elemento, atributo, entidad, etc.
38Nombrando cosas
- Según la especificación XML 1.0
- Un nombre empieza con una letra o uno o más
signos de puntuación, y continúa con letras,
dígitos, guiones, rayas, dos puntos o puntos,
denominados de forma global como caracteres de
nombre. Los nombres que empiezan con la cadena
"xml", se reservan para la estandarización de
esta o de futuras versiones de esta
especificación.
39Tipo de letra y espacios en blanco
- El XML es sensible al tipo de letra utilizado
(case-sensitive), es decir, trata las
mayúsculas y minúsculas como caracteres
diferentes. - no es lo mismo ltautomovilgt que ltAutomovilgt
- La especificación XML 1.0 permite el uso de esos
espacios en blanco para hacer más legible el
código, y en general son ignorados por los
procesadores XML. - En otros casos, los espacios en blanco
resultan muy significativos, por ejemplo, para
separar las palabras en un texto, o separar
líneas de párrafos diferentes.
40Marcado 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.
41Marcado y datos
- Es sencillo reconocer las marcas en un documento
XML. - Son aquellas porciones que empiezan con lt y
acaban con gt - En el caso de las referencias de entidad,
empiezan por y acaban con .
42Ejercicio
- Realice un documento XML sobre libros de una
biblioteca, que tenga título, autor, ISBN,
editorial, año, número de ejemplares, biblioteca
de destino, breve descripción del libro (las
etiquetas las puede llamar como quiera).
43Estructura
44Prólogo
- Los documentos XML pueden empezar con unas línea
que describe - versión de XML (de momento sólo 1.0),
- la codificación de carácter (US-ASCII , UTF-8,
UCS-2, EUC-JP, Big5, ISO-8859-1 hasta ISO-
8859-7). En general, y para uso con lenguajes
europeos (incluyendo el juego de caracteres
especiales del castellano, usamos UTF-7 o
ISO-8859-1) - y algunas otras cosas
- Es opcional
45Prólogo
- La segunda línea, o declaración de tipo de
documento, define qué tipo de documento estamos
creando para ser procesado correctamente. - Definimos que Declaración de Tipo de Documento
(DTD Document Type Definition) valida y define
los datos que contiene nuestro documento XML.
46Prólogo
- En ella se define el tipo de documento, y dónde
encontrar la información sobre su Definición de
Tipo de Documento, mediante un identificador
público (PUBLIC) que hace referencia a dicha DTD,
o mediante un Identificador Universal de Recursos
(URI) precedido por la palabra SYSTEM.
47Ejemplos de Prólogos
- lt?xml version"1.0" encoding"UTF-7" ?gt
- lt?xml version"1.0" encoding" US-ASCII" ?gt
- lt?xml version"1.0" encoding"UTF-7" ?gt
- lt!DOCTYPE biblioteca SYSTEM mensaje.dtd gt
- lt?xml version"1.0" encoding"UTF-7" ?gt
- lt!DOCTYPE ejemplo SYSTEM "http//www.ejemplos.xml/
ejemplo.dtd"gt
48Validez de un documento XML
- Un documento XML es válido si tiene asociado una
DTD y el documento cumple las restricciones que
la DTD expresa.
49Elementos
- Son los objetos esenciales de un documento XML.
- 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
- ltvehiculogt J 8975 AF lt/vehiculogt
- ltcaracteristica marca"Alfa Romeo" gt
- Mal estacionadolt/caracteristicagt
50Elementos
- Siempre empieza con una ltetiquetagt que puede
contener atributos o no, y termina con una
lt/etiquetagt 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 "lt"
siempre se interpreta como inicio de una etiqueta
XML. Si no es el caso, el documento no estará
bien-formado.
51Elementos vacíos
- Un elemento vacío, es el que no tiene contenido
(claro). - ltcaracteristica marca"Alfa Romeo/gt
- ltparametro /gt
- Al no tener una etiqueta de "cierre" que delimite
un contenido, se utiliza la forma ltetiqueta/gt,
que puede contener atributos o no.
52Atributos
- Son la parte básica y el objeto más utilizado en
la definición de documentos XML. - 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. - El atributo consta de dos partes
- La propiedad del elemento
- El valor de la propiedad
- ltvehiculo marca"Alfa Romeo" modelo"156 JTD"
color"verde"gtMal estacionadolt/vehiculogt
53Atributos
- 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. - ltvehiculo marca"Alfa Romeo" modelo"156 JTD"
colorverdegtMal estacionadolt/vehiculogt -
54Atributos
- 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 dentro
de un documento XML.
55Atributos
- ltlibrogt lttitulogtSeguridad para Intranet e
Internetlt/titulogt ltautorgtE. Amoroso lt/autorgt
lt/librogt - ltlibro autor"E. Amoroso"gtSeguridad para Intranet
e Internetlt/librogt - ltlibro titulo"Seguridad para Intranet e
Internet" autor"E. Amoroso"/gt
56Entidades predefinidas
- En XML 1.0, se definen cinco entidades para
representar caracteres especiales y que no se
interpreten como marcado por el procesador XML. - Por ejemplo, podemos usar el carácter "lt" sin que
se interprete como el comienzo de una etiqueta
XML.
57Entidades predefinidas
58Ejemplo
- lt?xml version"1.0" encoding"UTF-7"
standalone'yes'?gt - ltejemplosgt
- ltdescripciongtLo siguiente es un ejemplo de
HTML.lt/descripciongt - ltejemplogt
- ltHTMLgt
- ltHEADgt
- ltTITLEgtRock amp
Rolllt/TITLEgt - lt/HEADgt
- lt/ejemplogt
- lt/ejemplosgt
59Secciones CDATA
- Las secciones CDATA (Character Data) permiten
especificar datos, utilizando cualquier carácter,
especial o no, sin que se interprete como marcado
XML. - La razón es que a veces es necesario para los
autores de documentos XML, poder leerlos
fácilmente sin tener que descifrar los códigos de
entidades. Especialmente cuando son muchas. - Las secciones CDATA empiezan por la cadena
"lt!CDATA" y terminan con la cadena "gt" y sólo
ésta última se reconoce como marca. - No se pueden anidar secciones CDATA.
60Ejemplo CDATA
Usando entidades predefinidas,
- ltejemplogt
- ltHTMLgt
- ltHEADgt
- ltTITLEgtRock amp
Rolllt/TITLEgt - lt/HEADgt
- lt/ejemplogt
61Ejemplo CDATA
Usando un bloque CDATA
- ltejemplogt
- lt!CDATA
- ltHTMLgt
- ltHEADgt
- ltTITLEgtRock Rolllt/TITLEgt
- lt/HEADgt
- gt
- lt/ejemplogt
62Comentarios
- A veces es conveniente insertar comentarios en el
documento XML, que sean ignorados por el
procesado de la información y las reproducciones
del documento. - Los comentarios tienen el mismo formato que los
comentarios de HTML. Es decir, comienzan por la
cadena "lt!--" y terminan con "--gt". - Se pueden introducir comentarios en cualquier
lugar de la instancia o del prólogo, pero nunca
dentro de las declaraciones, etiquetas, u otros
comentarios.
63Comentarios (ejemplo)
- ...
- lt!-- Esto es un ejemplo de comentario --gt
- ...
- lt!-- esto es el final del documento --gt
- ...
- lt!-- Este vehículo es sancionado --gt
- ltvehiculo marca"Alfa Romeo" modelo"156 JTD"
color"verde"gtMal estacionadolt/vehiculogt - ...
64Actualmente son dos los tipos de esquemas que
están liderando de el mercado, en un futuro no
muy lejano es posible que comiencen a surgir
nuevos tipos de definiciones.
65Aplicaciones XML
66Recapitulación
- Definición XML El formato universal para
documentos y datos estructurados en Internet.
67Características W3C (recapitulación)
- XML es un estándar para escribir datos
estructurados en un fichero de texto. - XML parece HTML pero no lo es.
- XML está en formato texto, pero no para ser
leído. - XML consta de una familia de tecnologías.
- XML es prolijo, pero eso no supone un problema.
- XML es nuevo, pero no tanto.
- XML no requiere licencias, es independiente de la
plataforma, y tiene un amplio soporte.
68Enlaces Recomendados
- Robin Cover's XML Information
- http//www.oasis-open.org/cover/
- Sin duda alguna la guía más completa sobre
SGML/XML que nos podemos encontrar en Internet. - Free XML software
- http//www.stud.ifi.uio.no/larsga/linker/XMLtools
.html - Estupenda recopilación de software gratuito
relacionado con XML. Esta página esta mantenida
por Lars Marius Garshol.
69Enlaces Recomendados
- XMLSOFTWARE
- http//www.xmlsoftware.com/
- Estupenda página sobre software XML mantenida por
James Tauber. - Introducción a XML en castellano
http//ibium.com/alf/xml/index.asp