lenguajes de marcas y sistemas gestores de … · • no es un sistema gestor de bases de datos,...

32
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

Upload: hanhu

Post on 18-Aug-2018

235 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 2: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 3: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 4: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 5: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 6: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 7: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

<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

Page 8: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 9: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

<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

Page 10: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 11: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 12: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

</direccion>

<tel preferente="true"> 941201363</tel>

<correo-e href="[email protected]"></correo-e>

12

Page 13: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 14: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

• 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

Page 15: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

<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

Page 16: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 17: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 18: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 19: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 20: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 21: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 22: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 23: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

&lt; <

&gt; >

&amp; &

&apos; '

&quot; "

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 &#169, o &#xA9.

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

Page 24: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 25: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

</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

Page 26: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

</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

Page 27: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 28: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 29: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 30: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

<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

Page 31: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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

Page 32: Lenguajes de Marcas y Sistemas Gestores de … · • No es un sistema gestor de bases de datos, existen bases de datos XML nativas para almacenar documentos en formato XML. Pero

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