CUADERNO DE TRABAJO
Diseñadora: M. en A. N. ANA MARÍA TORRES JIMENO Abril/2011
INDICE 1
Objetivo general del curso
3
Objetivos específicos del curso
3
Introducción
4
Tema 1. ¿Qué es XML?
6
Tema 2. Estructura de XML
7
Tema 3. Características de XML
8
Tema 4. Edición de archivos XML
9
1.
Tema 5. Sintaxis XML
14
Tema 6. Construcción de archivos XML
23
Tema 7. Explotación de archivos XML a través de HTML
39
Glosario
44
Referencias Bibliográficas y Cibergráficas
45
2
OBJETIVO GENERAL DEL CURSO Al final del curso el participante será capaz de crear documentos web en el lenguaje XML y explotarlos a través del lenguaje HTML.
OBJETIVOS ESPECÍFICOS DEL CURSO El participante identificará la diferencia entre XML y HTML, así como la aplicación de XML en el ambiente web.
•
•
Identificará la estructura de un documento XML.
Creará documentos correspondiente. •
XML
aplicando
la
sintaxis
Aplicará los recursos de XML para manipular un documento web en HTML. •
3
INTRODUCCIÓN El presente documento es el cuaderno de trabajo del participante, constituido por información teórica de los temas del curso, actividades de aprendizaje, ejemplos y las referencias bibliográficas que sirvieron de base para el desarrollo teórico del curso y la inclusión de los ejercicios. Su objetivo es servir como un material didáctico que apoya a los integrantes de este curso de capacitación para abordar los temas que permitirán alcanzar los objetivos de aprendizaje propuestos. Su finalidad principal es: apoyar para que el participante aprenda los contenidos. Tiene una intención claramente didáctica.
HTML es un lenguaje de diseño web con ciertas limitaciones, considerado como el estándar de Internet. El avance ha sido constante y se han ido añadiendo nuevos elementos conforme a las necesidades, necesidades, adaptando HTML a los requerimientos requerimientos del mercado. mercado. Sin embargo, embargo, esto ha generado incompatibilidades de los documentos HTML en las distintas plataformas y navegadores. Esta necesidad ha desembocado en el desarrollo de nuevos estándares que tratan de cubrir aquello a lo que no llega HTML. El aumento del número de usuarios que crean sus propias páginas HTML ha hecho que éstas aumenten también considerablemente, y con él, el número de soluciones distintas ante los más variados variados problemas. problemas. Así, cada vez son más frecuentes frecuentes las páginas que contienen contienen tablas tablas,, estadí estadísti sticas cas,, formul formulari arios os replet repletos os de datos datos que proced proceden en de alguna alguna fuente fuente de información estructurada. Hasta ahora, todo lo que ha tenido que ver con el tratamiento y la manipulación de datos se ha realizado en el servidor. Por lo general, éste busca, calcula, organiza y finalmente transforma en HTML para devolver al cliente una bonita página repleta de información que ya no es operativa porque el contenido de las mismas es solamente gráfico y no puede ser reprocesado para nuevos cálculos. Esta situación origina continuas llamadas al servidor, el
4
cual tiene que cargar con la mayor parte de las tareas relacionadas con el tratamiento de la información. El W3C (World Wide Web Consortium) hizo pública la propuesta de estándar XML en 1998. Este estándar nace con el propósito de dar respuesta a todas las cuestiones anteriormente planteadas. XML permite incluir datos dentro de los documentos web, de modo que los navegadores puedan realizar, en el mismo cliente, tareas de manipulación de los mismos, eliminando de esta forma las continuas conexiones al servidor. De este modo muchas aplicaciones web trabajan con HTML y XML de forma complementaria para conseguir mejores resultados que con las soluciones clásicas.
5
Tema 1. Qué es XML? XML
eXtensible Mark-up Language - Lenguaje de Marcado Extensible o Formato Ampliable
XML es un lenguaje de marcado, como el lenguaje HTML, lo cual significa que utiliza etiquetas. Pero, sorprendentemente XML no hace nada. Simplemente describe información y la distribuye en un formato independiente de la plataforma. XML es un sistema independiente de la plataforma porque no usa un lenguaje específico. Las etiquetas de XML no están predefinidas, lo cual significa que cada uno escribe sus propias etiquetas. La ventaja de esto es que XML no precisa ninguna explicación adicional. Por ser un lenguaje de marcado, XML sirve para modificar el significado de otros símbolos que se envían, para dotarlos de mayor significado. Es extensible debido a que el conjunto de símbolos no es fijo y puede ampliarse para que pueda abarcar prácticamente cualquier ámbito en el que sea preciso identificar —marcar— cualquier otro tipo de información.
XML no es un sustituto de HTML y su objetivo es totalmente distinto . XML fue diseñado para describir, almacenar e intercambiar datos , mientras que HTML fue diseñado para presentar datos en un formato legible para las personas.
No ta
En ningún caso XML es un sustituto de HTML. El primero es un lenguaje de descripción de datos y el segundo es un lenguaje utilizado para determinar y organizar la visualización de la información. Por lo tanto, ambos realizan tareas totalmente distintas, pero complementarias entre sí.
6
Estructura de XML
HTML utiliza un conjunto predefinido de elementos (llamados etiquetas y atributos) para definir aspectos visuales de un documento, como el diseño de la página o el formato del texto, y para incluir vínculos a documentos o imágenes. En HTML, está limitado a usar el conjunto de etiquetas de HTML. Por tanto, el tipo de información que puede mostrar es limitado. Por ejemplo, mostrar una fórmula matemática con HTML puede ser muy complicado. XML resuelve este tipo de problemas mediante la extensibilidad: puede "inventar" sus propias etiquetas y su propia estructura del documento. Se pueden añadir o eliminar elementos sin que esto afecte a la estructura global del documento. El aspecto de XML es muy parecido al de cualquier documento HTML. Los datos contenidos en las páginas XML están estructurados mediante etiquetas del tipo:
…
Ejemplo de la Estructura de XML
El fin de la Eternidad Isaac Asimov Building Cocoa Applications A Step-by-Step Guide Simson Garfinkel
Michael Mahoney
7
Como puede observar, XML también utiliza etiquetas, pero a diferencia de lo que ocurre con el lenguaje HTML, estas etiquetas permiten describir el contenido en lugar de representarlo. Puesto que se trata de describir los datos, y éstos pueden ser de la más diversa índole, XML le permite crear sus propias etiquetas, así como los atributos de las mismas. La única restricción que se debe atender es un conjunto de normas de sintaxis muy estrictas, que están pensadas para garantizar la consistencia de los datos representados.
Características de XML
En el ejemplo anterior, se pueden observar varias de las características de XML:
•
Se utilizan etiquetas, entre llaves angulares < >, para marcar, esto es, calificar, la
información a la que rodean. •
Hay dos tipos de etiquetas, las de apertura, < >, y las de cierre. En realidad, hay un tercer
tipo, las de autocierre, que no rodean a ninguna otra información, y que son, por ejemplo, así:
. •
Las etiquetas no se entrecruzan, esto es, la última en abrirse siempre ha de ser la
primera en cerrarse. •
El archivo XML es fácil de leer, no sólo para un ordenador, sino también para una
persona; en efecto, cualquiera puede entender que la información anterior se refiere a un par de libros, y que los títulos y autores estaban agrupados jerárquicamente. Uno de los libros sólo tenía título y autor, y el otro tenía título, subtítulo, e incluso un par de autores.
8
Edición de archivos XML
Puede escribir un documento XML nuevo en Dreamweaver y luego obtener una vista previa en un navegador. Para crear un documento XML nuevo en Dreamweaver, haga clic en el menú Archivo y seleccione Nuevo. En la ventana Nuevo documento, seleccione la categoría Página básica y luego seleccione XML en la lista de páginas básicas.
9
A continuación, haga clic en el botón Crear. Dreamweaver creará un documento que contiene una línea similar a la siguiente:
Esta línea es la declaración XML y debe incluirse al principio de cada documento XML. Esta línea indica la versión de XML y el juego de caracteres utilizado en el documento. Escriba el texto en el nuevo documento XML después de la primera línea. Podrá observar que Dreamweaver incluye color en la sintaxis para los documentos XML:
Figura. Color en la sintaxis del código XML
Guarde el documento XML y obtenga una vista previa en el navegador. Podrá observar que su navegador también colorea el código y muestra el documento XML como un árbol que puede contraerse (si su navegador admite XML).
Figura. Árbol XML que puede contraerse.
10
Nota: la mayoría de los navegadores admiten XML de forma predeterminada. Si hace clic en el signo menos al lado de cada etiqueta podrá contraer el elemento. Para expandir un elemento, haga clic en el signo más situado junto al elemento.
Figura. El árbol XML puede expandirse y contraerse haciendo clic en el signo más y en el signo
menos.
El mismo ejemplo se podría escribir en HTML de la siguiente forma:
John Doe | Software Analyst | 2000 |
Jane Fletcher | Designer | 2500 |
11
Si carga la página en el navegador, ésta tendrá el aspecto de una tabla HTLM clásica.
Figura. El mismo contenido mostrado ahora con marcas de HTML
Las etiquetas en el ejemplo anterior fueron diseñadas específicamente para describir la información relacionada con los empleados de una empresa. Si compara los dos ejemplos, apreciará que XML se basa en el contenido, mientras que HTML se basa en el formato: los nombres de las etiquetas XML describen los datos en las propias etiquetas, mientras que las etiquetas HTML describen la presentación de los datos en las etiquetas. El objetivo del ejemplo anterior es ilustrar algunas diferencias importantes entre XML y HTML. Sin embargo, debería tener en cuenta que XML no ha sido diseñado como un sustituto de HTML, y que no todos los documentos XML pueden convertirse en un documento HTML. La portabilidad de XML es consecuencia de que es el propio desarrollador el que define las etiquetas y los atributos. No se necesitan bibliotecas ni servidores de aplicaciones especiales para leer un documento XML ( aunque su entorno de desarrollo puede necesitar una configuración especial para ser sensible a XML ). Los documentos XML son archivos de
texto normal, por lo que no requieren un software propietario para interpretarlos, como ocurre con la mayoría de los archivos binarios. Esto significa que puede usar el Bloc de notas para abrir y editar un archivo XML. La portabilidad de XML también resulta útil en aplicaciones de comercio electrónico entre empresas, donde las empresas necesitan intercambiar una gran cantidad de información financiera
de
forma
independiente
de
la
plataforma.
Diversas
aplicaciones
utilizan SOAP*(Protocolo sencillo de acceso a objetos), un protocolo muy popular basado en XML, para intercambiar este tipo de información a través de Internet. Estas aplicaciones basadas en XML que se utilizan para compartir información se denominan servicios Web.
12
Debido a que XML separa el contenido de la presentación, es necesario usar otra aplicación para presentar datos, es decir, todos los requisitos de procesamiento o formato deben ser manejados por un documento XSL independiente (Lenguaje ampliable de hojas de estilos). Una hoja de estilos XSL especifica la presentación de los datos contenidos en un archivo XML. A la hora de mostrar los datos, XML y XSL se combinan y aplican el formato adecuado a los datos. Si tiene en cuenta las tres ventajas más destacadas de XML, entenderá inmediatamente en qué contextos debería usar XML: •
En aplicaciones que manejan gran cantidad de datos y, a la vez, necesitan ser flexibles y ampliables. Por ejemplo, sitios Web, listas de ofertas de empleo o aplicaciones financieras.
•
En aplicaciones donde la presencia de contenidos redundantes sea un peligro, como en sistemas de administración de contenido, bibliotecas de documentos o sistemas de seguimiento de sitios Web.
•
En aplicaciones donde es necesario intercambiar gran cantidad de datos a través de distintas plataformas, como las aplicaciones B2B, clientes de correo electrónico compatibles con servidores de noticias o dispositivos móviles.
•
En aquellas situaciones donde la información debe estar disponible para un gran número de clientes. Por ejemplo, titulares de noticias, comunicados de prensa de empresas, avisos y anuncios importantes, marcadores, listas de reproducción, calendarios de eventos o listas de correo. En la actualidad, XML se usa habitualmente para transferir datos entre diferentes aplicaciones de bases de datos.
13
Sintaxis de XML
La sintaxis es bastante simple y sus reglas son claras y sencillas. Un documento XML está formado por una declaración XML y un elemento raíz o una etiqueta que contiene varios elementos anidados. Para empezar, enumeraré las reglas de sintaxis más importantes: •
Todos los documentos XML deben tener un elemento raíz.
•
Todos los elementos XML deben tener una etiqueta de cierre.
•
Las etiquetas distinguen entre mayúsculas y minúsculas.
•
Todos los elementos XML deben estar anidados correctamente.
•
Los atributos deben estar incluidos en la etiqueta de apertura y deben ser escritos entre comillas.
Todos los documentos XML deben empezar con la declaración XML. Si utiliza Dreamweaver para crear sus propios documentos XML, la declaración XML se añade automáticamente. Las aplicaciones que llaman al documento XML utilizan la declaración XML con el fin de leer e interpretar correctamente la información. De forma predeterminada, Dreamweaver crea documentos XML que cumplen la especificación 1.0 y utilizan el juego de caracteres iso8859-1 (Latin-1/West European). La declaración XML no es un elemento y no se trata como parte de un documento XML. El siguiente aspecto a considerar es que el documento debería contener un único elemento raíz. En el ejemplo anterior , el elemento raíz es
. Imagínese, sin embargo, que la empresa tiene más de un departamento.
14
¿Se podría añadir un segundo elemento al documento, como el que se muestra a continuación?
No. En este caso, tendría que definir un nuevo elemento raíz: . El nuevo elemento raíz puede tener ahora todos los elementos hijo (departamentos) que se deseen: John Doe Software Analyst 2000 Jane Fletcher Designer 2500
15
El resto de los elementos hijo debe incluirse en el ámbito de la etiqueta raíz. En HTML se pueden utilizar elementos con una única etiqueta como
o
. Sin embargo, en XML, todos los elementos deben tener una etiqueta de cierre. Si se omite la etiqueta de cierre, el navegador devolverá un error similar a éste: The following tags were not closed: department. Error processing resource 'http://www.domain.org/company.xml'.
Una de las nuevas funciones de Dreamweaver es la terminación automática de código predeterminada, que también está disponible para los archivos XML. Si se escribe lo siguiente:
Dreamweaver cerrará automáticamente las etiquetas cuando se escriba
,
Dreamweaver insertará . La próxima vez
que se escriba , Dreamweaver insertará . La siguiente vez que se escriba
,
Dreamweaver insertará . Dreamweaver interpreta la posición en la que se encuentra en la página y cierra la etiqueta de forma correspondiente. La terminación automática de
16
código puede ayudarle enormemente a producir documentos XML bien escritos, especialmente si no es un experto en código. Además, los nombres de etiquetas distinguen entre mayúsculas y minúsculas. Por lo tanto,
es un elemento totalmente distinto a o a
.
Obviamente, las etiquetas de apertura y cierre de un mismo elemento deben escribirse con el mismo tipo de letras (mayúsculas o minúsculas). El siguiente ejemplo muestra un par de etiquetas no válidas en XML:
Software Analyst
Como hemos visto antes, los elementos XML se relacionan mediante relaciones padre-hijo. En el ejemplo anterior, es un hijo de , el cual, a su vez, es un hijo del elemento raíz único, . Para preservar estas relaciones, los elementos deben estar correctamente anidados. En HTML, las etiquetas pueden entrelazarse, como se muestra en el siguiente ejemplo. Sin embargo, esto no es posible en XML, ya que los elementos deben estar siempre anidados de forma jerárquica.
This text is emphasized and italic.
Esto es perfectamente válido en HTML y se muestra en un navegador del siguiente modo:
Figura . Un anidamiento de este tipo es válido en HTML pero no en XML
17
En XML, el contenido o la información real se almacena en los elementos y/o en sus atributos. Un elemento puede contener texto sencillo, otros elementos o ambos. Por ejemplo, el siguiente elemento:
John Doe Software Analyst 2000
se puede escribir también del siguiente modo:
John Doe Software Analyst 2000
Esto significa que el elemento employee tiene un contenido mixto: texto sencillo y otros elementos.
18
También se permite el uso de elementos vacíos. El siguiente elemento se podría interpretar como "tenemos una oferta de empleo, pero todavía estamos buscando a la persona adecuada".
El mismo elemento se podría escribir de otra forma utilizando atributos:
John Doe 2000
En XML, se llama atributos a las propiedades de un elemento. Los atributos describen sus características. Se pueden utilizar comillas sencillas (' ') o dobles (" ") para marcar los valores de los atributos. Como se puede ver en los ejemplos anteriores, los mismos datos se pueden almacenar como elementos hijo o como atributos. Entonces, ¿qué método es mejor? En teoría, los atributos se deberían utilizar sólo para proporcionar información adicional sobre los datos; es decir, cuando se necesitan metadatos. Por ejemplo:
John Doe Software Analyst 2000
19
El ID del empleado (employee id) no es relevante en este caso para los datos. Sin embargo, este ID puede ser usado por un software que procese XML para identificar al empleado con mayor rapidez. Este tipo de información se denomina metadatos, es decir, datos sobre los datos. Usar atributos en lugar de elementos tiene también ciertas desventajas. La estructura global del documento XML es menos clara y menos ampliable. Además, los atributos no pueden tener múltiples valores y resulta más complicado trabajar con ellos. Imagine por ejemplo que la información de un empleado se almacenara de la siguiente manera:
Esto iría totalmente en contra del propósito de un documento XML: mostrar la información bien estructurada y fácil de intercambiar.
¿Qué tipo de nombres se pueden utilizar? Es posible que se haga la siguiente pregunta: ¿puedo usar cualquier nombre para un elemento?" La respuesta es Sí y No. Se puede utilizar cualquier cosa como nombre de un elemento, puesto que no existen palabras reservadas en XML, PERO se deben seguir unas sencillas reglas de asignación de nombres: •
Los nombres pueden contener cualquier carácter alfanumérico, pero no pueden comenzar con un número o un carácter de puntuación.
•
Los nombres no pueden contener espacios. 20
•
Los nombres no pueden comenzar con las letras xml, ya que se podría confundir con una definición de un documento XML.
•
No se deben usar caracteres ":" en los nombres de elementos.
Aunque está permitido utilizar los caracteres "." y "-" en los nombres de elementos, yo no lo recomendaría. La aplicación que procesa el archivo XML podría interpretar estos signos como operadores. Si necesita usar un nombre largo, puede sustituir los símbolos anteriores por el carácter "_", como se muestra en el siguiente ejemplo:
John Doe Software Analyst 2000
¿Se puede usar cualquier cosa como contenido de un elemento? Sí, prácticamente cualquier cosa. También se pueden utilizar caracteres que no sean en inglés, pero asegúrese de que selecciona el juego de caracteres correcto y de que la aplicación cliente que procesa el documento XML admite contenido que no esté en inglés. Además, a diferencia de lo que ocurre en HTML, se conservan los espacios en blanco que aparecen dentro del contenido. Esto significa que se pueden escribir varios espacios seguidos sin que éstos sean eliminados.
21
Todos los lenguajes de programación o de formato permiten el uso de comentarios, así que XML también lo permite. La sintaxis es igual que en HTML:
22
Construcción de archivos XML
Cada documento XML posee una estructura lógica y una física. La estructura lógica del documento es una serie de declaraciones, elementos, comentarios, etc. que se indican en el documento mediante marcas explícitas. La estructura física del documento es una serie de unidades llamadas entidades, es decir, indica los datos que contendrá el documento. Las estructuras lógica y física deben anidarse de forma correcta.
Documentos XML bien formados Los documentos denominados como «bien formados» son aquellos que cumplen con todas las definiciones básicas de formato y pueden, por lo tanto, analizarse correctamente por cualquier analizador sintáctico ( parser ) que cumpla con la norma: Los documentos XML sólo permiten un elemento raíz del que todos los demás sean parte, es decir, solo pueden tener un elemento inicial.
Los valores atributos en XML siempre deben estar encerrados entre comillas simples o dobles.
El XML es sensible a mayúsculas y minúsculas. Existe un conjunto de caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos de línea) que los procesadores XML tratan de forma diferente en el marcado XML.
Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc.
Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan marcas; son partes del documento que el procesador XML espera entender. El resto del documento entre marcas son los datos «entendibles» por las personas.
23
Partes de un documento XML Un documento XML está formado por el prólogo y por el cuerpo del documento, así como texto de etiquetas que contiene la referencia opcional a la que se refiere el documento.
Prólogo Aunque no es obligatorio, los documentos XML pueden empezar con unas líneas que describen la versión XML, el tipo de documento y otras cosas. El prólogo de un documento XML contiene:
Una declaración XML. Es la sentencia que declara al documento como un documento XML, es decir, define la versión de XML usada. Hasta ahora sólo hay una, la "1.0" Además, en la "declaración XML" especificamos la codificación del documento, que puede ser, por ejemplo, US-ASCII (7 bits) o UTF-8 (código Unicode del que el ASCII es un subconjunto), UCS-2, EUC-JP, Shift_JIS, Big5, ISO-8859-1 hasta ISO- 8859-7. En general, y para uso con lenguajes europeos (incluyendo el juego de caracteres especiales del castellano,
usamos UTF-7 o ISO-8859-1) Además, se puede incluir una declaración de documento autónomo ( standalone), que controla qué componentes de la Declaración de Tipo de Documento (DTD – Document Type Definition) son necesarios para completar el procesamiento del documento.
Una declaración de tipo de documento. Enlaza el documento con su DTD (Document Type Definition/Definición de Tipo de Documento), o el DTD puede estar incluido en la propia declaración o ambas cosas al mismo tiempo.
Dicha declaración define qué tipo de documento estamos creando para ser procesado correctamente. Es decir, definimos que Declaración de Tipo de Documento valida y define los datos que contiene nuestro documento XML. En ella se define el tipo de documento, y dónde encontrar la información sobre su Definición de Tipo de Documento, mediante un identificador público (PUBLIC) que hace referencia a
24
dicha DTD, o mediante un Identificador Universal de Recursos (URI) precedido por la palabra SYSTEM. Ejemplos:
Uno o más comentarios e instrucciones de procesamiento.
Cuerpo A diferencia del prólogo, el cuerpo no es opcional en un documento XML, el cuerpo debe contener un y solo un elemento raíz, característica indispensable también para que el documento esté bien formado.
Elementos Los elementos XML pueden tener contenido (más elementos, caracteres o ambos), o bien ser elementos vacíos. Un elemento con contenido es, por ejemplo: Juan Pérez
Siempre empieza con una que puede contener atributos o no, y termina con una que debe tener el mismo nombre. Al contrario que HTML, en XML siempre se debe "cerrar" un elemento. Un elemento vacío es, por ejemplo:
Al no tener una etiqueta de "cierre" que delimite un contenido, se utiliza la forma , que puede contener atributos o no. La sintaxis de HTML permite etiquetas
vacías tipo
o . En HTML reformulado para que sea un documento XML bien-formado, se debería usar
o 25
Atributos Los elementos pueden tener atributos, que son una manera de incorporar características o propiedades a los elementos de un documento. Deben ir entre comillas. Por ejemplo, un elemento «estudiante» puede tener un atributo «Mario» y un atributo «tipo», con valores «toma helado» y «mexicano» respectivamente. Esto es un día que Mario va paseando…
Entidades predefinidas En XML 1.0, se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcado por el procesador XML. Es decir, que así podemos usar el carácter "<" sin que se interprete como el comienzo de una etiqueta XML, por ejemplo.
Secciones CDATA Existe otra construcción en XML que permite especificar datos, utilizando cualquier carácter, especial o no, sin que se interprete como marcado XML. La razón de esta construcción llamada CDATA (Character Data) es que a veces es necesario para los autores de 26
documentos XML, poder leerlo fácilmente sin tener que descifrar los códigos de entidades. Especialmente cuando son muchas. Como ejemplo, el siguiente (primero usando entidades predefinidas, y luego con un bloque CDATA): Lo siguiente es un ejemplo de HTML.