Sie sind auf Seite 1von 21

1 DAM

Lenguajes de Marcas
(IES San Vicente)
Introduccin al XML

1 DAM

Lenguajes de Marcas

(IES San Vicente)

NDICE
1. XML

BREVE HISTORIA DE LOS LENGUAJES DE MARCAS ..............................................................................2


DEFINICIN ............................................................................................................................3
ANALIZADORES XML (PARSERS) .................................................................................................4
HTML Y XML.........................................................................................................................5
JERARQUAS EN XML ................................................................................................................6
CONSORCIO W3C ....................................................................................................................8
COMPONENTES XML ................................................................................................................9
2. DOCUMENTOS XML

10

ESTRUCTURA DEL DOCUMENTO XML .......................................................................................... 10


CODIFICACIN DE LOS DOCUMENTOS .......................................................................................... 11
ELEMENTOS .......................................................................................................................... 12
ATRIBUTOS .......................................................................................................................... 13
IDENTIFICACIN DE LOS ELEMENTOS ........................................................................................... 13
USO DE ELEMENTOS O DE ATRIBUTOS .......................................................................................... 14
CARACTERES ESPECIALES .......................................................................................................... 15
COMENTARIOS E INSTRUCCIONES DE PROCESO .............................................................................. 16
DOCUMENTO BIEN FORMADO ................................................................................................... 17
EJERCICIOS ........................................................................................................................... 17
EJERCICIO 1. COCHES. ...................................................................................................................... 17
SOLUCIN ...................................................................................................................................... 18
EJERCICIO 2. LIBROS. ........................................................................................................................ 19

Introduccin al XML

Pgina 1

1 DAM

Lenguajes de Marcas

(IES San Vicente)

1. XML
XML (Extensible Markup Language, lenguaje de marcas extensible) es la ltima
palabra de moda en Internet. Tambin es una tecnologa que madura

rpidamente con mltiples aplicaciones en el mundo real, particularmente para


la gestin, visualizacin y organizacin de los datos. En conjunto, con su
lenguaje de visualizacin XSL y el modelo de objeto documento DOM, es una
tecnologa esencial para cualquier usuario de lenguajes de marcas en la red o
en la intranet.

Breve historia de los lenguajes de marcas


Se puede observar que el uso de los archivos binarios reporta muchas ventajas
(fcil de gestionar por el ordenador, ms compacto, etc.), pero los archivos de
texto tambin tienen sus ventajas (la principal es que es un formato de intercambio
universal). Quiz lo ideal sera tener un formato que combine la universalidad de
los archivos de texto con la eficiencia de almacenamiento y las capacidades de
formateo de los archivos binarios.
Esta idea de llegar a un formato de datos universal no es nueva. De hecho, desde
que existen los ordenadores, los programadores han intentado crear modos de
intercambio de informacin entre los diferentes programas informticos. SGML
(Standard Generalized Markup Language) fue uno de los primeros intentos en el
que se pretenda combinar un formato de dato universalmente intercambiable con
la posibilidad de almacenar los datos con informacin acerca de su presentacin y
formato. SGML fue creado para que se transformara en un estndar para el
marcaje de los datos y tuvo aceptacin en los grandes sistemas de gestin de
documentos. Pero cuando se debe tratar con gran cantidad de datos complejos
SGML se vuelve un lenguaje muy complicado.
La aplicacin ms conocida de SGML es HTML (HiperText Markup Language). La
idea era que cualquier documento HTML (o pgina web) deba poder ser
representada en cualquier aplicacin que fuera capaz de comprender HTML
(especficamente los navegadores Web). Adems HTML se basa en texto,
cualquiera puede crear una pgina HTML usando un editor de texto simple o
cualquiera de los editores de pginas web existentes en el mercado. Incluso

Introduccin al XML

Pgina 2

1 DAM

Lenguajes de Marcas

(IES San Vicente)

muchos procesadores de texto nos permite exportar nuestros documentos a


formato HTML.

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>

Podemos crear un archivo XML como este:


<name>
<first>John</first>
<last>Doe</last>
</name>

Incluso en estos ejemplos tan simples podemos comprender por qu a los


lenguajes de marcas SGML y XML se les denominan autodescriptivos. Analizando
Introduccin al XML

Pgina 3

1 DAM

Lenguajes de Marcas

(IES San Vicente)

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.

Analizadores XML (Parsers)


Pero qu nos ofrece XML. Por qu tenemos que complicarnos el trabajo creando
archivos de documentos XML?No sera ms sencillo indicar algunas reglas para un
fichero con nombres y apellidos, sealando por ejemplo donde comienzan los
nombres y que el apellido va tras un espacio en blanco? Adems los tamaos de
los archivos seran ms pequeos.
Pero ahora supongamos que nos encontramos ante un nombre compuesto y ahora
queremos aadir un segundo nombre: John Fitgerald Doe. Tendramos que
cambiar las reglas para indicar en el programa que en el fichero tras el primer
espacio en blanco va el segundo nombre y no el apellido en los casos que existan
dos espacios. En los dems aplicar la primera regla. Pero ahora llega una persona
con el siguiente nombre: John Fitgerald Johansen Doe. Para una persona es simple
identificar el nombre y apellido pero para el programa ser un cambio lgico
importante. Y an podemos encontrarnos nuevos casos como John Fitgerald
Johansen Doe Junior. Por desgracia en la mayora de las aplicaciones el
desarrollador toma una decisin, por ejemplo que las personas solo pueden tener a
lo sumo dos nombres y dos apellidos. Cualquier persona fuera de este estndar o
no podr guardarse su informacin o esta se guardar incompleta.
El ejemplo puesto es sencillo y fcil de resolver pero nos sirve para sealar uno de
los principales objetivos de XML. Cada vez que los desarrolladores cambian la
estructura de los datos deben cambiar tambin la tecnologa para extraerlos. Pero
con XML existe un modo estandarizado para que obtengamos la informacin que
Introduccin al XML

Pgina 4

1 DAM

Lenguajes de Marcas

(IES San Vicente)

necesitamos, no importa como est estructurada. El ejemplo visto es simple y es


difcil apreciar la necesidad de utilizar la tecnologa XML. Pero cuanto ms grandes
son las aplicaciones y ms compleja la informacin que se maneja ms fcilmente
se aprecian las ventajas y virtudes de XML.
Si seguimos las reglas especificadas por XML, podemos estar seguros que nos
resultar muy fcil acceder a nuestra informacin. Esto es as porque existen
programas denominados analizadores (parsers) que son capaces de leer la sintaxis
XML y obtener la informacin que necesitamos.
Podemos utilizar estos analizadores dentro de nuestros propios programas. De esta
forma nosotros no tenemos que acceder directamente a los ficheros XML lo que
nos libera de parte del trabajo.
Al ser tan flexible XML est orientado para ser la base de la definicin de lenguajes
de intercambio de datos, especialmente para la comunicacin en Internet. El
lenguaje simplifica el trabajo con los datos dentro de una aplicacin, como por
ejemplo, cuando en una aplicacin es necesario acceder a la informacin
almacenada bajo la etiqueta <name>, pero adems podemos compartir la
informacin por la red a cualquiera incluso sin nuestro programa, puede ver
nuestro archivo, o incluso ver la informacin con otra aplicacin si antes nos hemos
puesto de acuerdo en el formato del fichero XML.

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

(IES San Vicente)

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

(IES San Vicente)

Por ejemplo, cuando se trabaja con HTML dinmico (DHTML) se dispone de un


modelo de objetos para utilizar con documentos HTML, denominado DOM
(Document Object Model). Esto nos permite escribir cdigo en un documento
HTML como el siguiente:
alert(document.title);

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

<name> es padre de <first>, que, por su parte, es hijo de <name>. <first>,


<midle> y <last> son todos hermanos (es decir, son todos hijos de <name>).
Observar tambin que el texto es tambin hijo de un elemento. Por ejemplo,
John es hijo de <first>.
Esta estructura tambin se denomina rbol. Todas las partes del rbol que contiene
hijos se denominan ramas, mientras que las partes que no tienen hijos se
denominan hojas. Dependiendo del contenido de los elementos se pueden clasificar
en:
Elementos con contenido de elemento. Aquellos que poseen hijos que son
a su vez otros elementos. En nuestro ejemplo <name>
Elementos de contenido simple. Aquellos que solo contienen texto. En
nuestro ejemplo <first>, <midle> y <last>.
Elementos de contenido combinado. Cuando poseen tanto texto como otros
elementos. En nuestro ejemplo no hay ningn caso. Pero, por ejemplo:
<doc>

<parent>this

is

some

<em>text</em>

in

my

element</parent></doc>.

Introduccin al XML

Pgina 7

1 DAM

Lenguajes de Marcas

(IES San Vicente)

En este ejemplo <parent> tiene tres hijos:


o Un hijo de texto this is some
o Un hijo <em>
o Otro hijo de texto in my element
Las relaciones tambin se pueden definir haciendo la analoga del rbol un poco
ms compleja. <doc> es el ancestro de <em>; <em> es un descendiente de
<doc>.
Despus que se comprendan las relaciones jerrquicas entre los elementos (y el
texto que contiene), se tendr una idea ms completa de la naturaleza de XML.
Tambin estar mejor preparado para trabajar con algunas de las otras tecnologas
relacionadas con XML, que hacen amplio uso de este paradigma.

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

(IES San Vicente)

Debido a los objetivos de interoperabilidad de XML, W3C es un buen sitio para


desarrollar los estndares relacionados con esta tecnologa.

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

(IES San Vicente)

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.

Estructura del documento XML


Un documento XML est formado por una mezcla de datos e informacin de
etiquetado sobre los mismos. La informacin de etiquetado se corresponde con el
texto que aparece encerrado entre los caracteres < y > o entre & y ;. El juego
de caracteres usado en un documento XML se corresponde con el estndar ISO
10646, denominado Universal Character Set. Ms adelante, en el apartado
dedicado a la codificacin del documento, se estudian con ms detalle los aspectos
relacionados con este tema. Es importante resaltar que XML distingue entre
maysculas y minsculas, tanto en los datos como en el etiquetado. Por ejemplo,
las etiquetas <name> y <NAME> son completamente diferentes. Tambin es
conveniente aclarar que en XML, a diferencia de HTML, los espacios en blanco
usados en el documento son significativos, de hecho, en el estndar se especifica

Introduccin al XML

Pgina 10

1 DAM

Lenguajes de Marcas

(IES San Vicente)

que el parser debe entregarlos a la aplicacin. Por lo que se refiere a la estructura


lgica, el documento puede incluir un prlogo con la siguiente informacin.
La declaracin XML, que es de carcter opcional. Pero muy conveniente.
Una declaracin de tipo de documento (DTD). Es opcional. Ms adelante
veremos en detalle los DTD. Solo anticipar que sirven para validar
documentos XML.
En la declaracin XML a su vez debe aparecer:
La versin XML, usada en el documento. Normalmente la 1.0. este atributo
es obligatorio.
El tipo de codificacin utilizada (encoding). Si no aparece esta informacin
se supone la codificacin por defecto.
Carcter

autnomo

(standalone)

del

documento.

Indica

si

hay

declaraciones de etiquetado externas al documento (standalone = no). O


si el documento es autocontenido (standalone =yes). No es obligatorio.
Un ejemplo de declaracin XML completa:
<?xml versin=1.0 encoding=UTF-8 standalone=yes?>

Codificacin de los documentos


Como se acaba de comentar, XML usa el estndar de representacin ISO 10646.
Se trata de un estndar que engloba a todos los anteriores (como, por ejemplo,
UNICODE) y que gracias al uso de 31 bits para la codificacin de cada carcter,
permite representar cualquier lenguaje humano conocido. Este estndar est en
continua revisin y contiene ms de setenta mil caracteres diferentes. Pero, el uso
directo de este estndar conlleva consigo la incompatibilidad con las herramientas
actuales y la produccin de archivos de gran tamao. Por ello, en vez de usar la
codificacin directa usando 4 bytes (denominado UCS-4) se han definido
representaciones alternativas como UTF-8. Esta codificacin representa los
caracteres ASCII con un solo byte, lo que asegura compatibilidad y un tamao
reducido en los documentos que contengan slo informacin tipo ASCII.
Hay que resaltar que en UTF-8 los caracteres del castellano no incluidos en ASCII
(vocales acentuadas, ee, etc.) ocupan 2 bytes. Debido a ello, en muchos entornos
de edicin en castellano se usa por defecto la codificacin ISO-8859-1 o Latn 1. Se
trata de una extensin de ASCII englobada tambin en la ISO 10646, que codifica
Introduccin al XML

Pgina 11

1 DAM

Lenguajes de Marcas

(IES San Vicente)

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;
&#xcdigo_hexadecimal;

La preferencia siempre ser utilizar un editor convencional para crear los


documentos XML en formato ISO-8859-1 (tambin conocido como ISO-latin-1).
Aunque en este caso ser obligatorio incluir el atributo encoding en el
encabezamiento del documento. Con este formato podremos utiliza los caracteres
especiales como las vocales acentuadas o las ees. Tambin existe el ISO-8859-15
(ISO-latin-15) que es igual que el ISO-8859-1 pero incluye adems con el smbolo
.

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

(IES San Vicente)

Elementos vacos. Como <BR/> o <HR/> de HTML.


Elementos que solo contienen texto.
Elementos que contienen otros elementos.
Elementos que contiene texto y otros elementos.

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.

Identificacin de los elementos


Cuando se confecciona un documento, hay que empezar identificando cules son
los elementos que aparecern en el mismo. Esta descomposicin en elementos no
es algo que se pueda hacer de forma automtica, sin que tenga una nica solucin
vlida. Una determinada solucin puede ser, ms o menos, adecuada dependiendo
del uso que se vaya a hacer del documento. Para aclarar estas consideraciones, se
plantea a continuacin un ejemplo sencillo pero que permite observa la dimensin
del problema.
Supngase que se pretende incluir el nombre de una persona en un documento. Se
plantean varias alternativas:
<nombre>Juan Martn Fernndez Moreno de la Vega </nombre>
<nombre>
<nombre_pila>Juan Martn</nombre_pila>
<apellidos>Fernndez Moreno de la Vega</apellidos>
</nombre>
<nombre>
<nombre_pila>Juan Martn</nombre_pila>
<primer_apellido>Fernndez</primer_apellido>
Introduccin al XML

Pgina 13

1 DAM

Lenguajes de Marcas

(IES San Vicente)

<segundo_apellido>Moreno de la Vega</segundo_apellido>
</nombre>

Revisando las alternativas, se observa que se ha ido ganando en contenido


semntico, pero tambin en complejidad, dado que hay que incluir ms etiquetas.
Cul es la mejor solucin? Esta pregunta no tiene una respuesta directa. Depende
de lo que luego tengamos que hacer con el documento. Si posteriormente en el
tratamiento del documento siempre vamos a trabajar con el nombre como un todo
(sin diferenciar partes), obviamente, la primera solucin es la ptima, pero, si
necesitamos procesar apellidos y nombre por separado, la primera solucin es la
peor de las tres. Por lo tanto, para determinar los elementos que van a formar
parte del documento XML debemos tener una idea preestablecida de los tipos de
procesamiento que se van a realizar sobre el documento.
Debemos tener presente una cosa: si vamos a procesar el nombre entero
efectivamente la primera solucin es la mejor de las tres, pero, y si en un futuro
nos piden un nuevo procesamiento donde es necesario separar nombre y
apellidos? Seguramente, nos vamos a encontrar con problemas ya que hay muchos
nombres como el del ejemplo, donde es difcil determinar dnde comienza y dnde
termina cada elemento. Pero si aunque en un principio no era necesario que
hubiramos elegido la tercera opcin, ahora separar en el procesamiento el
nombre y los apellidos es muy sencillo (es ms ya lo tenemos).
Por lo tanto, a la hora de escoger los elementos, no solo hay que ver las
necesidades presentes de procesamiento, sino intentar anticiparse a posibles
necesidades futuras dotando de la mayor semntica posible a nuestro documento.
Un consejo es, que siempre que dudemos, debemos asignar un elemento diferente
a la informacin en cuestin.

Uso de elementos o de atributos


Otra pregunta que surge cuando se disea un documento XML es cundo usar
elementos y cundo atributos. Supngase por ejemplo, un documento que
contiene las transparencias de una presentacin. Parece lgico que cada
transparencia incluya un ttulo, Se debe crear como elemento o como atributo?
<transparencia>
<ttulo>Uso de elementos o atributos</ttulo>

</transparencia>
Introduccin al XML

Pgina 14

1 DAM

Lenguajes de Marcas

(IES San Vicente)

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>

Si visualizamos el texto anterior con un navegador nos dar un error, ya que, al


encontrarse con el carcter < espera una etiqueta y no un carcter en blanco.
Existen varios caracteres que tienen un significado especial (< & > ) Qu
ocurre si se requiere incluir uno de estos caracteres dentro del documento XML? En
el caso que pueda existir algn tipo de ambigedad, ser necesario establecer un
mecanismo que permita distinguir si el carcter debe interpretarse como especial o
no.
Veamos una primera manera de indicar que no se interprete como especiales
ninguno de los caracteres de un texto: las secciones CDATA.
<lista>
Introduccin al XML

Pgina 15

1 DAM

Lenguajes de Marcas

(IES San Vicente)

<nombre>John Doe</nombre>
<correo><![CDATA[<jdoe@server.com>]]</correo>
</lista>

En el ejemplo, la seccin CDATA, que se inicia con la cadena <![CDATA[ y termina


con ]], hace que no se interprete como etiquetas el texto que contiene.
En general, nos podemos encontrar con los siguientes casos:
Los caracteres < y & siempre se interpretan como especiales, excepto en
secciones especiales CDATA y comentarios. Si se quiere que tengan un
significado especial se deben utilizar referencias a carcter.
No se puede incluir la secuencia ]]> excepto como indicacin de final de
una seccin CDATA. Si se quiere utilizar dicha secuencia habr que utilizar
la referencia a carcter correspondiente a >.
Los caracteres y no pueden aparecer en valores y atributos que usen
como delimitador el mismo tipo de comillas. Para resolverlo utilizaremos
como delimitador el carcter contrario al que necesitamos incluir en el
texto. Si necesitamos los dos tipos de comillas tendremos que recurrir a las
referencias a carcter.
Aunque en caso de conflicto se puede utilizar la referencia a carcter (&#cdigodecimal;), es recomendable usar las entidades predefinidas que representan a
estos caracteres:

En siguiente enlace de wikipedia:


http://en.wikipedia.org/wiki/List_of_XML_and_HTML_character_entity_references

podemos encontrar las referencias a carcter ms habituales en nuestro idioma.

Comentarios e instrucciones de proceso


Los comentarios en XML siguen la misma sintaxis que en HTML:
<!-- esto es un comentario -->

Por lo que se refiere a instrucciones de proceso, estas permiten especificar en un


documento el nombre de una aplicacin, as como los datos que se le pretenden
pasar como argumentos a la aplicacin.

Introduccin al XML

Pgina 16

1 DAM

Lenguajes de Marcas

(IES San Vicente)

<?aplicacin datos?>

El parser proporciona esta informacin al programa que procesa el documento que


la tratar como considere oportuno, por ejemplo, arrancando dicha aplicacin y
pasndole los parmetros indicados.
El uso de PI (Process Instructions) es muy poco frecuente y, en general, en la
comunidad XML se suele evitar su uso. Pero si existe una buena razn se puede
utilizar. Por ejemplo, podemos utilizar las PI para colocar la clase de informacin
que colocamos en los comentarios de HTML, como cdigo de javascript. De esta
forma, nos aseguramos que esta informacin se la pasa el parser a la aplicacin.
La declaracin XML (<?xml .?>), aunque por su sintaxis pueda parecerlo, no es
una PI. Pero hay que tener en cuenta que si incluimos esta declaracin en otro
lugar que no sea al principio del fichero XML est puede ser tomada como una PI.

Documento bien formado


Sin la presencia de un DTD, no se puede comprobar la validez de un documento,
slo se puede comprobar si est bien formado. A continuacin, se enumeran
algunas reglas que deben cumplir un documento para que se le considere bien
formado:
Los elementos deben esta anidados adecuadamente.
Los valores de los atributos deben encerrarse entre comillas simples o
dobles.
Todo elemento debe tener una etiqueta de fin o utilizar la etiqueta de
elemento vaco.
El elemento debe tener un nico elemento raz.
Todo texto debe estar incluido en un elemento.

Ejercicios
Ejercicio 1. Coches.
Imaginemos un concesionario de coches que peridicamente debe enviar

informacin sobre los vehculos que tiene en oferta a un portal publicitario de


compra-venta de coches. La informacin que debe enviar es:
La marca
El modelo
Motor
Introduccin al XML

Pgina 17

1 DAM

Lenguajes de Marcas

(IES San Vicente)

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>

Este documento podemos abrirlo con un navegador, por ejemplo Firefox, y


veramos la siguiente imagen.

Introduccin al XML

Pgina 18

1 DAM

Lenguajes de Marcas

(IES San Vicente)

Los navegadores actuales traen implementados parsers de XML por lo tanto


podemos utilizarlos para ver que los XML estn bien formados. Si por ejemplo en el
documento anterior, hubiramos cometido algn error como puede ser no cerrar
una etiqueta o escribir errneamente el nombre de una etiqueta el navegador nos
hubiera informado con un error.
Ejercicio 2. Libros.
Tenemos que mostrar informacin sobre libros en nuestra pgina web. Nos ofrecen

un servicio, donde a partir de un tema, nos devolvern un fichero XML con


informacin de los libros encontrados en diferentes libreras electrnicas
relacionados con esa temtica. Nos piden que escribamos un documento XML bien
formado como ejemplo. Para lo cual, se pide escribir un documento XML con
Introduccin al XML

Pgina 19

1 DAM

Lenguajes de Marcas

(IES San Vicente)

informacin de libros encontrados en varias libreras electrnicas (amazon, y la


casa del libro, por ejemplo) sobre la temtica 'XML'. Como mnimo sobre cada libro
necesitaremos:
Su cdigo ISBN
Su ttulo
El nivel de profundidad en el tratamiento de la materia (bsico, intermedio
avanzado)
Los autores
En el documento XML, pondremos informacin de al menos dos libreras, y para
cada librera al menos informacin de 3 libros.

Introduccin al XML

Pgina 20