Ciclo Formativo de Grado Superior en Administración y de Sistemas Informáticos en Red
IES Valle del Cidacos – Calahorra
Lenguajes de Marcas y Sistemas Gestores de Información
© Enrique Rivas Marco
Usted es libre de:
Compartir — copiar y redistribuir el material en cualquier medio o formato
Adaptar — remezclar, transformar y crear a partir del material
El licenciador no puede revocar estas libertades mientras cumpla con los términos de la licencia.
Bajo las condiciones siguientes:
Reconocimiento — Debe reconocer adecuadamente la autoría, proporcionar un enlace a la licencia e indicar si se han realizado cambios<. Puede hacerlo de cualquier manera razonable, pero no de una manera que sugiera que tiene el apoyo del licenciador o lo recibe por el uso que hace. NoComercial — No puede utilizar el material para una finalidad comercial. CompartirIgual — Si remezcla, transforma o crea a partir del material, deberá difundir sus contribuciones bajo la misma licencia que el original.
No hay restricciones adicionales — No puede aplicar términos legales o medidas tecnológicas que legalmente restrinjan realizar aquello que la licencia permite.
1
Lenguajes para el almacenamiento y transmisión de la información
Índice
1. ¿Qué es XML? .......................................................................................................................... 3
2. ¿Qué no es XML? .................................................................................................................... 4
3. Diferencias entre XML y HTML ............................................................................................. 4
4. Usos de XML ............................................................................................................................. 5
5. ¿Cómo construir documentos XML? ................................................................................. 6
6. Estructura jerárquica de un documento XML .................................................................. 8
7. Estructura de un documento XML .................................................................................... 10
8. Documentos bien formados. .............................................................................................. 13
9. Documentos válidos ............................................................................................................. 18
10. Elementos y Atributos ...................................................................................................... 19
a. Elementos vacios ........................................................................................................... 19
b. Atributos ........................................................................................................................... 20
11. Instrucciones de procesamiento ................................................................................... 21
12. Entidades ............................................................................................................................. 23
13. Comentarios y secciones CDATA ................................................................................. 24
14. Hojas de estilos y XML ..................................................................................................... 27
a. Hojas de estilo según el medio................................................................................... 27
15. Espacios de nombres ....................................................................................................... 29
16. Bibliografía ....................................................................................................................... 32
2
1. ¿Qué es XML?
El XML fue creado por el W3C a finales de los 90. El W3C se creó en 1994 para tutelar el
crecimiento y organización de la web. Su primer trabajo fue normalizar HTML, el lenguaje
de marcas con el que se escriben las páginas web. Al crecer el uso de la web, crecieron
las presiones para ampliar el HTML. El W3C decidió que la solución no era ampliar el
HTML, sino crear unas reglas para que cualquiera pudiera crear lenguajes de marcas
adecuados a sus necesidades, pero manteniendo unas estructuras y sintaxis comunes
que permitieran compatibilizarlos y tratarlos con las mismas herramientas. Ese conjunto
de reglas es el XML, cuya primera versión se publicó en 1998.
Lógicamente, el HTML no cumple las normas del XML ya que el HTML es anterior al XML.
El creador del HTML, Tim Berners-Lee, se basó en el SGML, otro conjunto de reglas para
la creación de lenguajes de marcas creado en los años 80 y más complejo que el XML.
Una vez creado el XML, el W3C aprobó en el año 2000 el XHTML, una versión del HTML
que sí que cumple las reglas del XML. El W3C pretendió sin éxito que el HTML dejara de
utilizarse y sólo se utilizara XHTML. Al no conseguirlo, el W3C decidió retomar el
desarrollo del HTML (incluyendo en él una versión XHTML). Actualmente, encontramos ya
diseños con la versión 5 de HTML, la cual sigue sin seguir los estándares de XML.
• XML eXtensible Markup Languaje (Lenguaje de Marcado Extensible).
• Es un lenguaje abierto, que sigue el estándar (W3 Consortium) derivado de SGML y
optimizado para su uso en la WWW.
• Permite describir el sentido o la semántica de los datos.
• A diferencia de HTML, separa el contenido de la presentación.
• Es un Meta-Lenguaje, que permite la definición de lenguajes concretos de
representación de documentos.
• Fácil de implantar en todo tipo de sistemas. XML nace con una vocación
multiplataforma, como base de intercambio de información entre sistemas de toda
índole.
• Fácil de leer por los humanos y fácil crear procesadores XML software (llamados
parsers).
• Formato adecuado para el almacenamiento y la transmisión. XML es texto plano,
los archivos son relativamente ligeros para ser almacenados y enviados.
3
2. ¿Qué no es XML?
• No es un lenguaje de programación.
• No es una "versión mejorada de HTML".
• No es un lenguaje para hacer mejores páginas web.
• No es un lenguaje sustituto de HTML.
• No es un sistema gestor de bases de datos, existen bases de datos XML nativas
para almacenar documentos en formato XML. Pero XML en sí mismo no es una
base de datos.
• No es propietario, no pertenece a ninguna compañía, como sucede con otros
formatos.
• No es difícil.
3. Diferencias entre XML y HTML
• Html no indica lo que está representando.
• XML describe el contenido de lo que etiqueta.
Un Ejemplo de HTML:
<b>Elizabeth Castro</b>
<b><i>XML Guía de Aprendizaje</i></b>
<b>precio: 30 €</b>
El mismo Ejemplo en XML:
<libro>
<autor>Elizabeth Castro</autor>
<titulo>XML Guía de Aprendizaje</titulo>
<precio moneda=“euros”>30</precio>
</libro>
Observamos como HTML se centra en colocar etiquetas para presentar la información.
XML utiliza etiquetas para definir el contenido y el significado de la información.
4
4. Usos de XML
Todos los usos de XML se basan en el almacenamiento y distribución de información.
• Intercambio de información entre aplicaciones: El hecho de que XML almacene
información mediante documentos de texto plano, facilita que se utilice como
estándar, ya que no se requiere software especial para leer su contenido, es texto y
es entendible por cualquier software.
• Computación distribuida: Se trata de la posibilidad de utilizar XML para
intercambiar información entre diferentes computadoras a través de las redes. Las
ventajas de XML están relacionadas con el hecho de que con él se crean
documentos inocuos (no pueden contener código maligno como virus o espías),
con lo que la seguridad de esos sistemas es total.
• Información empresarial: XML es un formato que tiene cada vez más importancia
para generar documentos empresariales por la facilidad de estructurar los datos de
la forma más apropiada para la empresa. Un documento XML se parece mucho a
una pequeña base de datos, con la ventaja de que es muy fácil darle formato de
salida por pantalla o impresión.
5
5. ¿Cómo construir documentos XML?
En principio XML se puede escribir desde cualquier editor de texto plano (como el bloc de
notas de Windows o el editor vi de Linux). Pero es más interesante hacerlo con un editor
que reconozca el lenguaje y que además marque los errores en el mismo.
De hecho el software necesario es el siguiente:
1. Un editor de texto plano para escribir el código XML. Bastaría un editor como el
bloc de notas de Windows o el clásico vi de Linux; o las opciones de editores
capaces de colorear el código como emacs, gedit, Notepad++ o SublimeText.
2. Un analizador sintáctico o parser, programa capaz de entender y validar el lenguaje
XML. (Explorer, FireFox, Chrome, XML Copy Editor, XMLWriter, Oxygen, etc)
3. Un procesador XML que sea capaz de producir un resultado visual sobre el
documento XML. Un simple navegador puede hacer esta función, pero cuando se
aplican formatos visuales sobre el documento XML (como los creados mediante
XSL) entonces hace falta un software especial que convierta los datos a la forma
final visible por el usuario. Apache Xalan y Saxon son los dos procesadores más
conocidos
Imagen 1. Proceso productivo de un documento XML
Actividad 1. Observar un documento XML
Dado el siguiente documento XML
<libreria>
<libro>
<autor>Elizabeth Castro</autor>
<titulo>XML Guía de Aprendizaje</titulo>
<precio moneda=“euros”>30</precio>
</libro>
6
<libro>
<autor>Benoit Marchal</autor>
<titulo>XML con ejemplos</titulo>
<precio moneda=“euros”>45</precio>
</libro>
</libreria>
• Observar las etiquetas
• ¿Cuál es la etiqueta principal?
• ¿Cuáles son las secundarias?
Actividad 2. Crear un documento XML
Crear un nuevo documento en notepad++ y escribir el siguiente texto:
<libro>
<autor>Elizabeth Castro</autor>
<titulo>XML Guía de Aprendizaje</titulo>
<precio moneda=”euros”>30</precio>
</libro>
Salvar el documento como libro1.xml
Abrir el documento en algún navegador y observar cómo se muestra.
Si hay algún error corrígelo.
7
6. Estructura jerárquica de un documento XML
• Los elementos de un documento XML deben seguir una estructura de “árbol”
(estrictamente jerárquica).
• 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.
De forma gráfica:
Imagen 2. Estructura jerárquica de un documento XML
Antes de acometer un documento XML debemos disponer de las estructura jerárquica
respeto a la información que deseamos manejar en el documento XML.
Actividad 1. Estructura jerárquica de un documento XML
Observar el siguiente documento XML y generar de forma gráfica el árbol que representa
su estructura:
<?xml version="1.0"?>
<libro>
8
<titulo>El Ingenioso Hidalgo Don Quixote de la Mancha</titulo><autor>Miguel de
Cervantes Saavedra</autor><fecha><publicacion>1605</publicacion>
<edicion>2009</edicion></fecha>
<localizacion><estanteria>B</estanteria>
<fila>7</fila>
</localizacion>
</libro>
Actividad 2. Crear un documento XML a partir de la estructura jerárquica
1. Crear la estructura jerárquica para recoger la descripción de un CD de música
que contenga la siguiente información:
• Nombre del artista, título del CD, fecha de creación, género musical, así
como la información de cada canción: su título y su duración.
• Del artista también queremos recoger su fecha y lugar de nacimiento.
Como elemento raíz poner <CD>
2. Crear el documento XML correspondiente con datos de un CD cualquiera (con
dos canciones es suficiente), guardarlo con el nombre cd.xml.
3. Observar el documento en el navegador.
9
7. Estructura de un documento XML
Un documento XML consta de un prólogo y un elemento raíz. El prólogo contiene la
información (meta información) sobre el resto del documento, como son la versión de XML
y el código de caracteres utilizados. También en él se incluye la descripción de estructura
del resto del documento, generalmente recogida en un DTD (Document Type Definition) o
en un Schema XML.
En la especificación formal de un documento XML, los datos constan de un simple
elemento que a su vez contiene otros elementos y atributos, denominado elemento raíz.
Ejemplo de prólogo y elemento raíz:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE agenda SYSTEM "agenda.dtd">
<!--documento de ejemplo inspirado en vCard 3.0 -->
<agenda>
<entrada>
<nombre-completo>Nombre Apellidos </nombre-completo>
<direccion>
<calle> Calle de la Basconia</calle>
<ciudad>Calahorra</ciudad>
<codigo-postal>26500</codigo-postal>
<region>La Rioja</region>
<pais>España</pais>
</direccion>
<tel preferente="true"> 941201363</tel>
<correo-e href="[email protected]"></correo-e>
</entrada>
</agenda>
En este ejemplo, el documento sigue la versión 1.0 de XML, el código de caracteres
UTF-8 y utiliza un DTD definido en el fichero agenda.dtd. El elemento agenda es el
elemento raíz.
Un documento XML debe cumplir con los siguientes requisitos para que el procesador
pueda interpretarlo. Estos son:
1. El documento debe tener un único elemento raíz.
2. Todas las etiquetas (tags) abiertas deben tener su respectivas etiquetas de
cierre.
10
3. Elementos sin contenido, aunque puede tener atributos, se abre y se cierra con
una sola etiqueta.
4. XML distingue mayúsculas de minúsculas por lo que todos los elementos y
atributos deben seguir la definición.
5. Todos los elementos deben estar correctamente anidados.
6. Atributos, Son pares nombre – valor que permiten especificar datos adicionales
de un elemento. Se ubican en la etiqueta de apertura de un elemento, para
asignar un valor a un atributo se utiliza el símbolo =, los valores de los atributos
deben ir entre comas simples o dobles y se tratarán como texto,
independientemente del valor que representen.
7. No se pueden repetir atributos en un mismo elemento. Por ejemplo, si se quiere
representar múltiples autores para un libro, se debe definir el autor como un
elemento y no como un atributo. Como norma general, se definirán elementos
para los datos que van a ser leídos por las personas y atributos para aquellos
que van a ser procesados por las máquinas.
Actividad1. Estructura de un documento XML Los siguientes documentos XML están mal estructurados. ¿Sabrías decir por que? A) <?xml versión="1.0" encoding="UTF-8"?>
<agenda>
<entrada>
<nombre-completo>Nombre Apellidos
</entrada>
</agenda>
B) <?xml versión="1.0" encoding="UTF-8"?>
<nombre-completo>Nombre Apellidos</nombre-completo>
<direccion>
<calle> Calle de la Basconia</calle>
<ciudad>Calahorra</ciudad>
<codigo-postal>26500</codigo-postal>
<region>La Rioja</region>
<pais>España</pais>
11
</direccion>
<tel preferente="true"> 941201363</tel>
<correo-e href="[email protected]"></correo-e>
12
8. Documentos bien formados.
Un documento XML se dice "bien formado" cuando cumple una serie de reglas descritas
en la especificación oficial de XML v1.0.
Podemos resumirlas en:
1. El documento puede (el W3C lo recomienda) empezar por una instrucción de
procesamiento xml, que indica la versión del XML y, opcionalmente, la
codificación de caracteres, y si está listo para procesarse independientemente o
requiere de otros archivos externos para dicha tarea.
<?xml version="1.0" encoding="UTF-8" standalone=”yes”?>
2. El documento debe tener un solo elemento raíz.
3. Todas las etiquetas (tags) abiertas deben tener su respectivas etiquetas de
cierre.
4. XML distingue mayúsculas de minúsculas por lo que todos los elementos y
atributos deben seguir la definición.
5. Todos los elementos deben estar correctamente anidados.
6. Los nombres de las etiquetas y de sus atributos comenzarán con una letra,
pudiendo utilizarse a continuación más letras, números, guiones altos (-),
guiones bajos (_), puntos, pero nunca contendrán espacios en blanco.
7. Los valores de los atributos deben ir entre comillas simples o dobles.
8. Cualquier elemento vacío debe terminar con /> o debe hacerlo no vacío
añadiendo una etiqueta de cierre.
9. No se pueden repetir atributos en un mismo elemento. Por ejemplo, si se quiere
representar múltiples autores para un libro, se debe definir el autor como un
elemento y no como un atributo. Como norma general, se definirán elementos
para los datos que van a ser leídos por las personas y atributos para aquellos
que van a ser procesados por las máquinas.
Para probar si un documento XML está bien formado utilizaremos un analizador
sintáctico (parser)
Por ejemplo:
• Internet Explorer
• Aplicación para editar XML (por ejemplo XML Spy, Oxygen, XML Copy Editor, Notepad++, etc.)
13
• Analizadores en línea (w3c)
Ejercicios de documentos bien formados con soluciones:
http://www.mclibre.org/consultar/xml/ejercicios/documentos_bien_formados.html
http://www.mclibre.org/consultar/xml/ejercicios/documentos_bien_formados_solucion
es.html
Actividad 1. Descargar XML Copy Editor Descargar XML Copy Editor en este enlace. guardalo e instalalo en tu equipo.
Actividad 2. Documentos XML bien formados
Corrige los errores de los siguientes documentos XML y comprueba que están bien
formados utilizando XML Copy Editor, también puedes utilizar el analizador sintáctico de
Internet Explorer o el de Notepad++ con el plugin XML Tools.
Cada documento contiene dos errores (dos errores del mismo tipo cuentan como uno
sólo).
Si lo necesitas, puedes crear nuevas etiquetas o atributos relacionados con la
información contenida en el documento para corregir algún error.
A) Agenda
<?xml versión="1.0" encoding="UTF-8" standalone=”yes”>
<agenda>
<entrada>
<nombre-completo>Nombre Apellidos
</entrada>
</agenda>
B) Escritora
<?html versión="1.0" encoding="UTF-8"?>
<nombre-completo>Nombre Apellidos
</nombre-completo>>
<direccion>
<calle> Calle de la Basconia</calle>
14
<ciudad>Calahorra</ciudad>
<codigo-postal>26500</codigo-postal>
<region>La Rioja</region>
<pais>España</pais>
</direccion>
<tel preferente="true"> 941201363</tel>
<correo-e href="[email protected]"></correo-e>
C) Películas
<?xml version="1.0" encoding="UTF-8"?>
<pelicula>
<titulo>Con faldas y a lo loco</titulo>
<director>Billy Wilder</director>
</pelicula>
<pelicula>
<director>Leo McCarey</director>
<titulo>Sopa de ganso</titulo>
</pelicula>
<autor />barto</autor>
D) Deportistas
<?xml version="1.0" encoding="UTF-8"?>
<deportistas>
<deportista>
<deporte Atletismo />
<nombre>Jesse Owens</nombre>
<deportista>
<deporte Natación />
<nombre>Mark Spitz</nombre>
</deportista>
</deportistas>
15
E) Texto
<?xml version="1.0" encoding="UTF-8"?>
<texto>
<Titulo>XML explicado a los niños</titulo>
<párrafo>El <abreviatura>XML</abreviatura>define cómo crear
lenguajes de marcas.</párrafo>
<párrafo>Las marcas se añaden a un documento de texto
para añadir información.</párrafo>
<http://>www.example.org</http://>
</texto>
F) Información Geográfica
<?xml version="1.0" encoding="UTF-8"?>
<geografia mundial>
<pais>
<pais>España</pais>
<continente>Europa</continente>
<capital>Madrid</capital>
</pais>
</geografia mundial>
G) Programas
<?xml version="1.0" encoding="UTF-8"?>
<programas>
<programa nombre="Firefox" licencia="GPL" licencia="MPL" />
<programa nombre="OpenOffice.org" licencia=LGPL />
<programa nombre="Inkscape" licencia="GPL" />
</programas>
16
H) Mundiales de fútbol
<?xml version="1.0" encoding="UTF-8"?>
<mundiales-de-futbol>
<mundial>
<pais="España" />
<1982 />
</mundial>
</mundiales-de-futbol>
I) Medios de transporte
<?xml version="1.0" encoding="UTF-8"?>
<mediosDeTransporte>
<bicicleta velocidad="v<100km/h" />
<patinete velocidad maxima="50 km/h"
</mediosDeTransporte>
17
9. Documentos válidos
Para saber si un documento XML es válido, lo primero que tenemos que conocer es el
concepto de esquema.
Esquema (schema): Un esquema es un documento XML que define una gramática con
los elementos y atributos que pueden aparecer en el documento XML que la utilice. Esta
gramática indicará la secuencia y número de repeticiones de dichos elementos, así como
el tipo de contenido que puedan tener esos elementos. Por ejemplo, el esquema de
HTML indica que todo documento debe contener un elemento principal <html> y que en
su interior existirá un único elemento <head> y a continuación un único elemento
<body>.
Por tanto, un documento XML bien formado (condición indispensable) puede ser válido
sólo si:
• Incluye una referencia a un esquema (schema).
• Incluye únicamente elementos y atributos definidos en el esquema.
• Cumple las reglas gramaticales definidas en el esquema.
Existen varias formas de definir un esquema (gramática) para documentos XML, las más
empleadas son:
• DTD (Document Type Definition = Definición de Tipo de Documento). Es el modelo
más antiguo, heredado del SGML.
• XML Schema. Es un modelo creado por el W3C como sucesor de las DTDs.
• Relax NG. Es un modelo creado por OASIS, más sencillo que XML Schema.
La mayoría de los programas de tratamiento de lenguajes XML incluyen su propio
validador de documentos, también existen validadores online que realizan la misma
función: http://validator.w3.org
18
10. Elementos y Atributos
Un documento XML es un fichero que solo contiene texto. En él se distinguen caracteres
de información y caracteres de marcado. El marcado se reconoce porque va encerrado
entre paréntesis angulares (<>).
La unidad básica de información en XML es el elemento, que se definirá con su etiqueta
de apertura y de cierre, siempre obligatorias. Los elementos también pueden ser
anidados.
Ejemplo de elemento y atributo
Los nombres del elemento deben comenzar con letra o con subrayado y después le
puede seguir cualquier carácter a excepción del espacio en blanco y los dos puntos. Los
nombres no pueden comenzar con las letras xml. En XML se distinguen las mayúsculas
de las minúsculas, por lo que generalmente se trabaja con minúsculas.
A través de los atributos se puede añadir información adicional a los elementos, éstos
tienen nombre y valor. El valor va entre comillas dobles o simples en función del
contenido (si en la información hay comillas dobles, se enmarcarán con simples y
viceversa).
a. Elementos vacios
• Los elementos pueden ser vacíos, es decir sin contenido
Por ejemplo:<telefono preferente="si"> </telefono>
En estos casos la sintaxis es <nombre_etiqueta />
Ejemplo: <telefono preferente="si" />
• Este es el único caso donde una etiqueta de inicio no requiere una etiqueta de
final por separado, porque ambas etiquetas están contenida en una única etiqueta.
• La etiqueta puede contener atributos o no
19
b. Atributos
Los distintos elementos de un documento XML pueden incluir atributos que describen al
elemento en cuestión (tipo de datos, dominio de valores permitidos, etc.). Dichos atributos
han de aparecer en la etiqueta de comienzo del elemento y el valor del atributo debe
especificarse entre comillas dobles (") o simples ('):
<etiqueta atributo="valor"> ... </etiqueta>
Ejemplo de atributo
En este ejemplo el atributo es moneda y su valor es "euros"
20
11. Instrucciones de procesamiento
En su prólogo, un documento XML puede incluir una serie de instrucciones de
procesamiento, delimitadas por: <? ... ?>, en las que se puede indicar el sistema de
codificación empleado (Unicode por defecto: UTF-8. ), especificar la hoja de estilo XSLT
que se empleará para visualizar el documento, declarar espacios de nombres y definir el
esquema del documento, etc. Solo se requiere, obligatoriamente, especificar que se trata
de un documento XML:
<?xml version="1.0"?>
Un ejemplo más detallado en el que se especifica la hoja de estilo que se aplica al
documento para su presentación es el siguiente:
Ejemplo de Instrucción de procesamiento:
<?xml versión="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="template.xsl"?>
<agenda>
<entrada>
<nombre-completo>Nombre Apellidos
</nombre-completo>
<direccion>
<calle> Calle de la Basconia</calle>
<ciudad>Calahorra</ciudad>
<codigo-postal>26500</codigo-postal>
<region>La Rioja</region>
<pais>España</pais>
</direccion>
<tel preferente="true"> 941201363</tel>
<correo-e href="[email protected]"></correo-e>
</entrada>
</agenda>
Actividad 1. Elementos vacíos, declaración XML, instrucciones de procesamiento
Abrir el documento cd.xml y modificarlo de la siguiente manera:
Añadir la declaración de documento xml indicando los atributos de versión, encoding y
standalone.
21
Añadir la etiqueta vacía <comentarios> que la dejaremos pendiente para añadir
información en otra actividad.
Guardar el documento con el nombre cd1.xml y visualizar en el navegador.
22
12. Entidades
Existen algunos caracteres reservados que no podemos utilizar en nuestros documentos
XML, pues se usan en la sintaxis de XML.
Por ejemplo, los caracteres "<", ">", "&", etc.
Para solucionar estos podemos utilizar las referencias de entidad.
Las referencias de entidad en XML proporcionan un mecanismo de substitución textual.
En XML se definen las siguientes referencias de entidad:
Entidad Sustitución
< <
> >
& &
' '
" "
XML también soporta referencia de carácter en donde una letra se reemplaza con un
carácter equivalente en Unicode. Se trata de cadenas de la forma &#nnn donde nnn es el
número decimal Unicode del carácter a insertar o &#xnnn donde nnn sería el número
hexadecima Unicode.
Por ejemplo para incluir el símbolo de copyrigt "©" en un documento XML debemos
utilizar ©, o ©.
XML permite que se puedan definir nuevas entidades. Algunas (parsed entities) pueden
contener texto y etiquetas XML, mientras que otras (unparsed entities) sirven para
almacenar cualquier tipo de datos (imágenes, sonidos...). Este tipo de entidades se
deben definir en una DTD.
23
13. Comentarios y secciones CDATA
Un documento XML también puede incluir comentarios, delimitados por las
construcciones <!-- y --> (exactamente igual que en HTML) y secciones CDATA que
sirven para incluir cualquier cosa (contenido textual) en el documento XML, delimitadas
por las construcciones <![CDATA[ y ]]> (como <PRE> ... </PRE> en HTML), no pueden
aparecer antes del elemento raíz ni después de su cierre.
Ejemplo de comentario:
<?xml versión="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="template.xsl"?>
<agenda>
<!-- Esto es un comentario -->
<!-- Este codigo XML no usa CDATA -->
<entrada>
<nombre-completo>Nombre Apellidos
</nombre-completo>
<direccion>
<calle> Calle de la Basconia</calle>
<ciudad>Calahorra</ciudad>
<codigo-postal>26500</codigo-postal>
<region>La Rioja</region>
<pais>España</pais>
</direccion>
<tel preferente="true"> 941201363</tel>
<correo-e href="[email protected]"></correo-e>
</entrada>
</agenda>
Ejemplo de CDATA:
<?xml versión="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" href="template.xsl"?>
<agenda>
<![CDATA[
<html>
<head>
<title>IES Valle del Cidacos</title>
24
</head>
</html>
]]>
<entrada>
<nombre-completo>Nombre Apellidos
</nombre-completo>
<direccion>
<calle> Calle de la Basconia</calle>
<ciudad>Calahorra</ciudad>
<codigo-postal>26500</codigo-postal>
<region>La Rioja</region>
<pais>España</pais>
</direccion>
<tel preferente="true"> 941201363</tel>
<correo-e href="[email protected]"></correo-e>
</entrada>
</agenda>
Actividad 1. Reglas para Elementos, Espacios en blanco, Atributos y Comentarios
Abrir el documento cd1.xml y modificarlo de la siguiente manera:
1. Añadir al elemento raíz <CD> los atributos isbn y duración-disco con sus valores
correspondientes
2. Añadir al final del documento el comentario "Este cd contiene 12 canciones, pero
sólo he escrito 2 canciones"
3. Para asegurar que los comentarios se visualizan no sólo en el código fuente sino
también en el navegador, añadir bajo el elemento raíz la etiqueta <canciones>
4. Guardar el documento con el nombre cd2.xml y visualizar en el navegador.
Actividad 2. Secciones CDATA
Crear un documento xml llamado html-doc.xml que integre el siguiente documento HTML
<HTML>
<HEAD> <TITLE> HTML de ejemplo</TITLE></HEAD>
<BODY>
<P> Este documento HTML se ve correctamente en el navegador </P>
25
</BODY>
</HTML>
Visualizar en el navegador
Ejercicios de repaso
1. Construir un documento XML sobre libros de una biblioteca donde aparezca el
titulo, autor, ISBN, editorial, año de publicación, breve descripción del libro. (Debe
contener información de 2 libros al menos).Preservar espacios en blanco en alguna
parte. Comprobar que está bien formado.
2. Construir un documento XML con información sobre una tienda de deportes:
ARTÍCULOS, COLOR, TALLA, PRECIO, CANTIDAD, etc.
3. Haz un documento xml sobre hoteles, donde tengas: nombre, teléfono, dirección
(calle y número), ciudad, país, número de estrellas, descripción del hotel, número
habitaciones individuales, habitaciones dobles, habitaciones triples, suites.
26
14. Hojas de estilos y XML
Existe una pequeña diferencia entre CSS en XHTML y CSS en XML
• Los atributos style, class y los elementos <STYLE> O <LINK> no tienen significado
en XML
• La instrucción de procesamiento para asignar estilos:
<?xml-stylesheet type=tipomime href=urlhojaestilo?>
• En XML no se precisa el atributo class, los objetos ya estan definidos por medio de
las propias etiquetas
En el siguiente ejemplo al fichero clase-con-estilo.xml le hemos añadido la instrucción
<?xml-stylesheet type="text/css" href="clase.css"?>
que contiene los estilos que aplicaremos a cada etiqueta.
Ejemplo de css y XML
Fichero xml sin formato clase-sin-estilo.xml
Fichero xml con formato clase-con-estilo.xml
Fichero css clase.css
a. Hojas de estilo según el medio
• En función del medio que vayamos a utilizar para mostrar el documento, podemos
indicar varias hojas de estilo para un mismo fichero XML, especificando qué estilos
se aplicarán al visualizarlo en la pantalla, cuáles si se desea imprimir, etc., como en
el siguiente ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/css" href="hoja1.css" media="print"?>
<?xml-stylesheet type="text/css" href="hoja2.css" media="screen"?>
• Valores del atributo media: all, braille, embossed, handheld, print, projection,
screen, speech, tty y tv
Actividad 1. Estilos para Imprimir
Utilizando el fichero delta-mtas.xml, asóciale dos hojas de estilo una llamada pantalla.css
y otra imprimir.css de modo que en la primera aparezca todo el texto en color azul y en la
segunda en color rojo.
Para ello debes poner en los ficheros css lo siguiente:
27
pantalla.css
============
* {color: blue;}
imprimir.css
============
* { color: red; }
Puedes comprobar que funciona con la opción Vista Preliminar de tu navegador, o bien
imprimiéndolo a PDF.
28
15. Espacios de nombres
Puede ocurrir que cuando se manejan documentos XML puede ocurrir que diferentes XML
que tengamos, utilicen las mismas etiquetas. Aunque el contexto sería distinto,
tendríamos un problema si manejamos ambos documentos con el mismo software, ya que
el analizador, no sabría cómo manejar ambas etiquetas iguales.
Los espacios de nombres (namespacing) evitan el problema indicando en cada etiqueta
una código que sirve para indicar el contexto de cada etiqueta y así diferenciar las que
son iguales. Ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<document>
<title>Documento de prueba</title>
<content>
<html>
<head>
<title>Titulo HTML</title>
</head>
<body>
Texto del documento
</body>
</html>
</content>
<author>Jorge</author>
</document>
En el ejemplo anterior se usan etiquetas en inglés para el documento (algo muy habitual
en el mundo empresarial) y eso hace que la etiqueta "title" se repita en contextos distintos,
el primero es para poner un título genérico al documento (y es una etiqueta de la empresa
en cuestión) y la segunda se corresponde a la etiqueta "title" del lenguaje HTML (o mejor
XHTML).
La solución es anteponer al nombre de la etiqueta un nombre que indique el propietario de
la misma por ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<ticarte.document>
<ticarte.title>Documento de prueba</ticarte.title>
29
<ticarte.content>
<html>
<head>
<title>Titulo HTML</title>
</head>
<body>
Texto del documento
</body>
</html>
</ticarte.content>
<ticarte.author>Jorge</ticarte.author>
</ticarte.document>
Aunque la mejor solución es incluir en las etiquetas XML el atributo xmlns (xml
namespacing) que permite asignar un espacio de nombres a un prefijo en el documento
dentro del elemento en el que se usa el espacio de nombres. Ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns:ticarte="http://www.ticarte.com/esquema.xsd"
xmlns:html="htp://www.w3c.org/html">
<ticarte:title>
Documento de prueba
</ticarte:title>
<ticarte:content>
</ticarte:content>
<ticarte:author>
Jorge
</ticarte:author>
</document>
En el ejemplo se usa el prefijo "ticarte" para indicar etiquetas del espacio de nombres
"http://www.ticarte.com/esquema.xsd" y "html" para el espacio de nombres de HTML.
En el caso de que las etiquetas, mayoritariamente, en un documento pertenezcan a un
mismo espacio de nombres, lo lógico es indicar el espacio de nombres por defecto. Eso
se hace sin indicar prefijo en el atributo xmlns. Ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://www.ticarte.com/esquema.xsd"
30
xmlns:html="htp://www.w3c.org/html">
El atributo "xmlns" no tiene por qué utilizarse en el elemento raíz, se puede posponer su
declaración en el primer elemento que pertenezca al espacio de nombres deseado. Por
ejemplo:
<?xml version="1.0" encoding="UTF-8"?>
<document xmlns="http://www.ticarte.com/esquema.xsd">
<document>
<title>Documento de prueba</title>
<content>
<html:html xmlns:html="htp://www.w3c.org/html">
<html:head>
<html:title>Titulo HTML</html:title>
</html:head>
<html:body>
Texto del documento
</html:body>
</html:html>
</content>
<author>Jorge</author>
</document>
31
16. Bibliografía
• Taboada Léon, Juan José. “CURSO DE XML PARA ALUMNOS DE FORMACIÓN
PROFESIONAL Módulo: Lenguajes de Marcas y SGI”. Licencia CC BY-CN-SA.
http://roble.pntic.mec.es/jtal0007/xmlfp/
• Castro Ramos, Juan Manuel y Rodríguez Sánchez, José Ramón. “Lenguajes de Marcas y
Sistemas de Gestión de Información”. Editorial Garceta. Madrid 2012. ISBN 978-84-1545-
217-1
• Sintes Marco, Bartolomé. "Qué es el XML" y "XPath" del curso "XML: Lenguaje de
Marcas Extensible Licencia". Licencia CC BY-CN-SA. http://www.mclibre.org/
• Sánchez Asenjo, Jorge. Unidad 1 de Lenguajes de Marcas, XML. Versión 2.1 - 2012.
Licencia CC BY-CN-SA. http://www.jorgesanchez.net.
32