Escolar Documentos
Profissional Documentos
Cultura Documentos
Lenguajes de Marcas
(IES San Vicente)
Introduccin al XML
1 DAM
Lenguajes de Marcas
NDICE
1. XML
10
Introduccin al XML
Pgina 1
1 DAM
Lenguajes de Marcas
1. XML
XML (Extensible Markup Language, lenguaje de marcas extensible) es la ltima
palabra de moda en Internet. Tambin es una tecnologa que madura
Introduccin al XML
Pgina 2
1 DAM
Lenguajes de Marcas
Definicin
Desgraciadamente SGML, es un lenguaje tan complicado que no resulta adecuado
para el intercambio de datos en la web. Y, aunque HTML ha tenido un xito
enorme, tiene un mbito muy limitado: su objetivo es lograr la visualizacin de
documentos en el navegador. Esto significa que podemos crear un documento
HTML para visualizar la informacin de una persona, pero esto es todo lo que
podemos hacer con ese documento. No podramos relacionar ese documento con
la informacin relacionada con el nombre de la persona porque HTML no tiene
ninguna posibilidad de describir esta clase de informacin especializada.
El lenguaje de marcas XML se cre para resolver este problema. XML es un
subconjunto de SGML, con los mismos objetivos, pero sin el grado de complejidad
del lenguaje original. XML, fue diseado para que sea totalmente compatible con
SGML, lo que implica que cualquier documento que sigue las reglas de sintaxis de
XML es tambin por definicin un documento SGML. Ojo, porque el caso contrario
puede no ser cierto. No todos los documentos SGML son documentos XML.
Es importante tener en cuenta que XML no es un lenguaje, sino un estndar para
crear lenguajes que cumplen los criterios XML. En otras palabras, XML describe una
sintaxis que se utiliza para crear nuestros propios lenguajes. Por ejemplo,
supongamos que tenemos datos acerca de un nombre y queremos compartir esa
informacin con otros. Pero tambin queremos utilizar esa informacin en un
programa informtico. En vez de crear un archivo de texto con el siguiente
contenido:
<HTML>
<HEAD><TITLE>Name</TITLE></HEAD>
<BODY>
<P>John Doe</P>
</BODY>
</HTML>
Pgina 3
1 DAM
Lenguajes de Marcas
los datos se puede ver que la informacin est relacionada con un nombre. Un
dato denominado first (nombre) y otro last (apellido). Aunque podramos haberles
asignado nombres arbitrarios, si se utiliza XML, la recomendacin es siempre
utilizar nombres con significado. Tambin se puede observar que la versin XML es
bastante ms larga que la versin de texto simple. El uso de XML para marcar la
informacin aadir bytes a los datos bsicos y en algunos casos aumentarn de
tamao de manera considerable. Pero cabe destacar que el tamao de los archivos
no es la preocupacin principal de XML, sino que busca dar una estructura a los
datos para simplificar el software que accede a los mismos. Al fin y al cabo, si el
tamao del archivo es importante a la hora de transmitir la informacin siempre
tenemos la alternativa de comprimir los archivos.
Pgina 4
1 DAM
Lenguajes de Marcas
HTML y XML
Lo que HTML hace para la fase de presentacin XML lo hace para el intercambio de
datos. Algunas tareas no pueden ser resueltas por medio de XML, as como
tambin sucede con HMTL que no puede resolver algunas de las situaciones de
presentacin de la informacin. Muchos utilizamos Adobe Acrobat en nuestros
equipos para visualizar documentos de una manera que HTML no puede. Pero, al
igual que podemos reconocer que la mayora de las veces HTML logra una buena
visualizacin, la gente que trabaja con XML opina que este hace bien su trabajo a
la hora de intercambiar datos entre aplicaciones.
Por supuesto existe una diferencia fundamental entre XML y HTML:
HTML est diseado para una aplicacin especfica; para transmitir la
informacin hacia los seres humanos, usualmente, de manera visual y por
medio de una navegador Web.
Introduccin al XML
Pgina 5
1 DAM
Lenguajes de Marcas
XML no tiene una aplicacin especfica; est diseado para el uso que se
precise.
HTML tiene un conjunto finito de estructuras de marcas (<P>, <UL>, <H2>, etc.),
que se utilizan para crear un documento HTML correcto. En teora, podemos estar
seguros que cualquier navegador nos mostrar un documento HTML correcto
porque lo nico que tiene que hacer, es conocer este conjunto limitado de
etiquetas. Aunque en la prctica nos encontramos con documentos WEB que son
bien visualizados correctamente en un navegador e incorrectamente en otros,
porque difieren en la utilizacin de algunas de las marcas que se utilizan en HTML.
Por otra parte, si creamos un documento XML podemos estar seguros que
cualquier analizador (parser) podr extraer informacin del documento, pero lo que
no podemos garantizar es que todas las aplicaciones comprendan el significado de
esa informacin. Por lo que, podemos crear documentos XML para describir
informacin que necesitamos, pero antes de que pueda considerarse til, debe
haber aplicaciones escritas para que los comprendan. Adems de las capacidades
suministradas por la especificacin XML bsica existen varias tecnologas
relacionadas algunas de las cuales sern analizadas en este curso. Estas
tecnologas nos brindan capacidades adicionales, haciendo que XML sea an ms
til. Desgraciadamente algunas de estas tecnologas an no son suficientemente
maduras, lo que implica que el verdadero poder de las mismas est an por verse.
Jerarquas en XML
En este punto vamos a analizar cmo se estructuran los datos en un documento
XML. Cuando debemos tratar con grandes cantidades de informacin, o incluso
cantidades no tan grandes.
Usualmente es mejor agruparlas en subtemas relacionados en lugar de tener toda
la informacin en un nico gran grupo. Por ejemplo, este captulo est dividido en
subtemas que a su vez se subdividen en prrafos. Un formulario de impuestos se
divide en subsecciones, a lo largo de pginas mltiples. Esto hace que la
informacin resulte ms comprensible y tambin ms accesible.
Los desarrolladores de software han utilizado este paradigma durante muchos
aos, usando una estructura denominada modelo de objeto. En este modelo de
objeto toda la informacin que est siendo modelada se subdivide en varios
objetos y estos, por su parte se agrupan en una jerarqua.
Introduccin al XML
Pgina 6
1 DAM
Lenguajes de Marcas
Estamos utilizando una funcin alert() para producir un mensaje que indica el ttulo
de un documento HTML. Esto se realiza accediendo a un objeto denominado
document, este incluye entre otras muchas cosas una propiedad denominada title
que devuelve el ttulo del documento HMTL vigente.
XML tambin agrupa la informacin en jerarquas. Los elementos de nuestros
documentos se ordenan por medio de relacin padre/hijo o hermano/hermano.
Estos componentes se denominan (tal y como veremos en el prximo tema)
elementos.
Consideremos nuestro ejemplo <name>, mostrado jerrquicamente:
<name>
<first>
John
<midle>
Fitzjerald Johansen
<last>
Doe
<parent>this
is
some
<em>text</em>
in
my
element</parent></doc>.
Introduccin al XML
Pgina 7
1 DAM
Lenguajes de Marcas
Consorcio W3C
Una de las razones por las que HTML y XML han resultado ser tan buenas ideas es
porque son estndares. Esto significa que todos pueden seguir esos estndares y
las soluciones que se desarrollen permitirn la interoperabilidad. Por lo tanto,
quin crea los estndares?
En 1994 se form W3C (World Wide Web Consortium), con el objetivo, tal y como
se expresa en su sitio http: //www.w3c.org, de lograr que la web desarrolle todo
su potencial por medio de la creacin de protocolos comunes que promuevan su
evolucin y que aseguren la interoperabilidad.
Al reconocer la necesidad de los estndares, W3C produce recomendaciones que
construyen la estructura bsica de la web. W3C las denomina recomendaciones, en
lugar de estndares, porque los desarrolladores y fabricantes tienen la libertad de
seguir esas recomendaciones que brindan esa interoperabilidad.
Su contribucin ms conocida para la web es, por supuesto, la recomendacin
HTML; cuando un navegador web seala que se cumple con la versin 3.2 o 4.01
de las recomendaciones HTML, se estn refiriendo a la recomendacin desarrollada
bajo la autoridad de W3C.
La razn por la que las especificaciones de W3C se implementan de manera tan
extendida se debe a que la creacin de estos estndares es un proceso abierto:
cualquier empresa o individuo puede ser miembro de W3C, y ser miembro significa
que esas empresas o individuos pueden formar parte del proceso de creacin de
los estndares.
Introduccin al XML
Pgina 8
1 DAM
Lenguajes de Marcas
Componentes XML
La comunicacin de la informacin es un tema muy amplio, y por lo tanto, no es
posible que una nica especificacin pueda abarcar toda la materia. Por esta razn,
existen varias especificaciones interrelacionadas, que funcionan en conjunto para
formar la familia de tecnologa XML, y cada especificacin cubre un aspecto
diferente de la comunicacin de la informacin. Aqu presento una lista de las ms
importantes:
XML 1.0 y 1.1: son las especificaciones base a partir de las que se
construye la familia XML. Describe la sintaxis que deben seguir los
documentos XML, las reglas que los analizadores XML tienen que cumplir y
todo lo que haga falta para leer o escribir un documento XML (tambin
define DTD, aunque a veces se trata como una tecnologa diferente.
Para poder componer nuestras propias estructuras y nombres de elementos
para nuestros documentos, las DTD y los esquemas nos brindan diferentes
mtodos para crear plantillas para nuestros tipos de documentos. Podemos
lograr que otros documentos, producidos por otros desarrolladores, utilicen
estas plantillas y obtener as documentos compatibles con nuestra
definicin.
Espacios de nombres, Namespaces, es un medio para distinguir entre un
vocabulario XML y otro, lo que nos permite crear documentos ms
consistentes mediante el uso de mltiples vocabularios dentro de un mismo
documento.
XPath describe un lenguaje de consulta para el direccionamiento de partes
de un documento XML. Esto permite que las aplicaciones puedan requerir
una parte especfica de un documento XML, en lugar de tener que tratar
siempre con todo el documento completo. Por ejemplo, podemos utilizar
XPath para obtener todos los apellidos que aparezcan en un documento.
Tal y como vimos anteriormente, en algunos casos nos puede interesar
visualizar nuestros documentos XML. En los casos ms simples, podemos
usar CSS (Cascading Style Sheets) para definir la presentacin de nuestros
documentos. En los casos ms complejos podemos utilizar XSL (Extensible
Introduccin al XML
Pgina 9
1 DAM
Lenguajes de Marcas
Style Sheet Languaje) que est compuesto por XSLT que puede
transformar nuestros documentos de un tipo a otro, y Formating Objects
(Objetos de formateo), que se responsabilizan de la informacin.
Para suministrar un medio para que las aplicaciones ms tradicionales
puedan tener un interfaz con los documentos XML, existe un modelo de
objeto documento DOM. Existe un medio alternativo para tener una
interfaz con documentos XML desde el cdigo de un programa: la API para
XML de SAX.
2. Documentos XML
Como ya hemos visto en el punto anterior, un documento XML no es ms que un
fichero de texto donde la informacin viene etiquetada. Este fichero est
compuesto por una serie de elementos definidos en la recomendacin XML de
W3C. Estos documentos pueden ser ledos por personas (en un bloc de notas o en
un navegador) o por sistemas que sacan informacin del documento XML.
Normalmente, para que lo lea un ordenador el fichero deber cumplir una serie de
reglas para que la aplicacin que lo lea, sea capaz de interpretarlo, los documentos
XML que cumplen estas reglas se dice que son documentos bien formados.
Introduccin al XML
Pgina 10
1 DAM
Lenguajes de Marcas
autnomo
(standalone)
del
documento.
Indica
si
hay
Pgina 11
1 DAM
Lenguajes de Marcas
los caracteres especiales de las lenguas europeas occidentales en un solo byte. Sin
embargo, el estndar XML no requiere que un procesador sepa interpretar esta
representacin, siendo necesario, adems indicarlo el principio del documento en la
declaracin XML.
En cualquier caso, siempre se puede incluir cualquier carcter del juego definido
por ISO 10646, aunque sea indirectamente, mediante el mecanismo denominado
referencias a carcter. Una referencia a carcter especifica el valor numrico del
carcter ISO 10646 deseado. A continuacin, se muestra el formato de esta
referencia a carcter, para el caso que el nmero sea decimal o hexadecimal
respectivamente:
&#cdigo_decimal;
Íigo_hexadecimal;
Elementos
Un documento XML est formado por una jerarqua de elementos a partir de un
elemento raz nico. Se podra definir el elemento como el componente semntico
bsico de un documento. Un elemento consta de una etiqueta de inicio, un
contenido y una etiqueta de fin. Es importante resaltar que cada dato de un
documento tiene que formar parte del contenido de algn elemento. La sintaxis de
la etiqueta de inicio es <NombreElemento> y la de fin es </NombreElemento>.
El nombre de un elemento debe empezar por una letra o el carcter subrayado,
seguido por letras, dgitos, el carcter punto, el carcter guin o el carcter
subrayado. Adems, el nombre no deber comenzar por la cadena XML, ya sea en
maysculas o en minsculas. Estas son las caractersticas de un nombre XML vlido
que tambin se aplican a atributos y entidades como veremos ms adelante. Como
ya vimos en el primer tema los elementos se pueden clasificar segn el contenido
en:
Introduccin al XML
Pgina 12
1 DAM
Lenguajes de Marcas
Atributos
Un atributo representa una informacin complementaria asociada a un elemento.
Aparece en la etiqueta de inicio o en la de elemento vaco. Cada elemento puede
tener una lista de atributos asociada, en la que el orden es intrascendente pero no
pueden aparecer atributos repetidos. Un atributo consiste en una pareja de nombre
y valor, donde el valor debe aparecer encerrado entre comillas simples o dobles,
siguiendo la siguiente sintaxis:
<elemento atrubuto1=valor1 atributo2=valor2>
Por ejemplo:
<peso unidad=gramos precision=0,01>5,73</peso>
El nombre del atributo al igual que el del elemento debe tratarse de un nombre
XML vlido.
Pgina 13
1 DAM
Lenguajes de Marcas
<segundo_apellido>Moreno de la Vega</segundo_apellido>
</nombre>
</transparencia>
Introduccin al XML
Pgina 14
1 DAM
Lenguajes de Marcas
O
<transparencia titulo=Uso de elementos o atributos></transparencia>
Aunque no se puede dar un criterio vlido para todos los casos, si podemos dar
algunas pautas que ayuden a tomar una decisin:
Si la informacin tiene una estructura interna debe ser un elemento
Si contiene una gran cantidad de informacin, parece ms adecuado, un
elemento
Podemos hacer el smil que un elemento es un sustantivo y un atributo un
adjetivo
Los mecanismos de procesamiento y presentacin de documentos,
permiten tener mejor control sobre los elementos. Por tanto, aquella
informacin que tenga un procesamiento o presentacin complejos debe
ser un elemento.
Aplicando estas pautas podemos concluir que el ttulo de la transparencia debe ser
un elemento, tiene carcter sustantivo y debe ser presentado al usuario. Como
contra-ejemplo imaginemos que queremos incluir para cada transparencia
informacin sobre el tiempo que le debemos dedicar (poco, medio, mucho). Esta
informacin no tiene carcter sustantivo y no tiene porqu ser presentada, por
tanto, puede ser perfectamente un atributo.
Como consejo final, en caso de duda, se debe utilizar un elemento.
Caracteres especiales
Si observamos el siguiente ejemplo:
<comparacion>6 es < 7 & 7 > 6</comparacion>
Pgina 15
1 DAM
Lenguajes de Marcas
<nombre>John Doe</nombre>
<correo><![CDATA[<jdoe@server.com>]]</correo>
</lista>
Introduccin al XML
Pgina 16
1 DAM
Lenguajes de Marcas
<?aplicacin datos?>
Ejercicios
Ejercicio 1. Coches.
Imaginemos un concesionario de coches que peridicamente debe enviar
Pgina 17
1 DAM
Lenguajes de Marcas
Matrcula
Kilmetros
Precio original
Precio oferta
Extras
fotos
Crea un documento bien formado que contenga esta informacin.
Solucin
Un documento XML bien formado que contenga esta informacin puede ser el
siguiente:
<?xml version="1.0" encoding="ISO-8859-1"?>
<oferta>
<vehiculo>
<marca>ford</marca>
<modelo color="gris">focus</modelo>
<motor combustible="gasolina">duratorc 1.4</motor>
<matricula>1234AAA</matricula>
<kilometros>12500</kilometros>
<precio_inicial>12000</precio_inicial>
<precio_oferta>10000</precio_oferta>
<extra valor="250">pintura metalizada</extra>
<extra valor="300">llantas</extra>
<foto>11325.jpg</foto>
<foto>11326.jpg</foto>
</vehiculo>
<vehiculo>
<marca>ford</marca>
<modelo color="gris">focus</modelo>
<motor combustible="diesel">duratorc 2.0</motor>
<matricula>1235AAA</matricula>
<kilometros>125000</kilometros>
<precio_inicial>10000</precio_inicial>
<precio_oferta>9000</precio_oferta>
<extra valor="250">pintura metalizada</extra>
<extra valor="200">spoiler trasero</extra>
<extra valor="500">climatizador</extra>
<foto>11327.jpg</foto>
<foto>11328.jpg</foto>
</vehiculo>
</oferta>
Introduccin al XML
Pgina 18
1 DAM
Lenguajes de Marcas
Pgina 19
1 DAM
Lenguajes de Marcas
Introduccin al XML
Pgina 20