Академический Документы
Профессиональный Документы
Культура Документы
Diseñadora:
M. en A. N. ANA MARÍA TORRES JIMENO
Abril/2011
INDICE
1
Objetivo general del curso 3
Introducción 4
Glosario 44
2
OBJETIVO GENERAL DEL CURSO
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, adaptando HTML a los requerimientos del mercado. Sin embargo, esto
ha generado incompatibilidades de los documentos HTML en las distintas plataformas y
navegadores.
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 problemas. Así, cada vez son más frecuentes las páginas que contienen
tablas, estadísticas, formularios repletos de datos que proceden de alguna 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 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.
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.
6
Estructura de XML
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:
<concepto> … </concepto>
<documento>
Ejemplo de la Estructura de XML
<libro>
<autor>Isaac Asimov</autor>
</libro>
<libro>
<autor>Simson Garfinkel</autor>
<autor>Michael Mahoney</autor>
</libro>
7
</documento>
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
• 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í: <br />.
• 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:
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).
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.
<table>
<tr>
<td>John Doe</td>
<td>Software Analyst</td>
<td>2000</td>
</tr>
<tr>
<td>Jane Fletcher</td>
<td>Designer</td>
<td>2500</td>
</tr>
</table>
11
Si carga la página en el navegador, ésta tendrá el aspecto de una tabla HTLM clásica.
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.
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.
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 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 iso-
8859-1 (Latin-1/West European). La declaración XML no es un elemento y no se trata como
parte de un documento XML.
14
¿Se podría añadir un segundo elemento<department> al documento, como el que se
muestra a continuación?
<department> </department>
<department> </department>
No. En este caso, tendría que definir un nuevo elemento raíz: <company>. El nuevo elemento
raíz puede tener ahora todos los elementos hijo (departamentos) que se deseen:
<company>
<department>
<employee>
<name>John Doe</name>
<job>Software Analyst</job>
<salary>2000</salary>
</employee>
<employee>
<name>Jane Fletcher</name>
<job>Designer</job>
<salary>2500</salary>
</employee>
</department>
<department>
15
<employee>
</employee>
</department>
</company>
En HTML se pueden utilizar elementos con una única etiqueta como <hr> o <br>. 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:
<company>
<department>
<employees>
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,
<Department> es un elemento totalmente distinto a <department> o a <DEPARTMENT>.
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:
Como hemos visto antes, los elementos XML se relacionan mediante relaciones padre-hijo. En
el ejemplo anterior, <employee> es un hijo de <department>, el cual, a su vez, es un hijo del
elemento raíz único, <company>. 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.
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:
<employee>
<name>John Doe</name>
<job>Software Analyst</job>
<salary>2000</salary>
</employee>
<employee>
John Doe
<job>Software Analyst</job>
<salary>2000</salary>
</employee>
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".
<employee></employee>
John Doe
<salary>2000</salary>
</employee>
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:
<employee id="31">
<name>John Doe</name>
<job>Software Analyst</job>
<salary>2000</salary>
19
</employee>
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.
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:
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:
<employee>
<first_name>John</first_name>
<last_name>Doe</last_name>
<job>Software Analyst</job>
<salary>2000</salary>
</employee>
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.
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.
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.
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.
24
dicha DTD, o mediante un Identificador Universal de Recursos (URI) precedido por la palabra
SYSTEM.
Ejemplos:
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:
<nombre>Juan Pérez</nombre>
Siempre empieza con una <etiqueta> que puede contener atributos o no, y termina con
una </etiqueta> que debe tener el mismo nombre. Al contrario que HTML, en XML siempre
se debe "cerrar" un elemento.
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.
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):
<ejemplo>
<![CDATA[
<HTML>
<HEAD><TITLE>Rock & Roll</TITLE></HEAD>
]]>
</ejemplo>
Comentarios
Comentarios a modo informativo para el programador que han de ser ignorados por el
procesador. Los comentarios en XML tienen el siguiente formato:
Ejemplo:
<nombre>Ricardo</nombre>
27
El valor "yes" indica que no existen declaraciones de marcas externas a la entidad
documento. El valor "no" indica que existe o que pueden haber dichas declaraciones de
marcas. La declaración de un documento Standalone sólo denota la presencia de
declaraciones externas.
Ejercicios
Ejercicio 1: Hacer un documento standalone de XML sobre una base de datos de alumnos
usando sólo elementos con contenido (por ejemplo, nombre, apellidos, dirección, matricula,
e-mail). Prueba que esté bien formado en el Internet Explorer o en el Mozilla.
Ejercicio 2: Pasar el anterior documento XML a elementos sin contenido, usando atributos.
Prueba que esté bien formado en el Internet Explorer o en el Mozilla.
28
Document Type Definitions (DTDs)
La Definición de Tipo de Documento nos permitiría, por ejemplo, crear un DTD que defina una
tarjeta de visita A partir de ese DTD, tendríamos una serie de elementos XML que nos
permitirían definir tarjetas de visita. La DTD define los tipos de elementos, atributos y
entidades permitidas, y puede expresar algunas limitaciones para combinarlos.
La DTD puede residir en un fichero externo, y quizá compartido por varios documentos. O
bien, puede estar contenida en el propio documento XML, como parte de su declaración de
tipo de documento.
Eemplo:
29
<!ELEMENT pais (#PCDATA)>
<!ELEMENT codigo (#PCDATA)>
]>
<etiqueta>
<nombre>Fulano Mengánez</nombre>
<calle>c/ Mayor, 27</calle>
<ciudad>Valderredible</ciudad>
<pais>España</pais>
<codigo>39343</codigo>
</etiqueta>
La declaración del tipo de documento comienza en la primera línea y termina con "]>". Las
declaraciones DTD son las líneas que empiezan con "<!ELEMENT" y se denominan
declaraciones de tipo elemento. También se pueden declarar atributos, entidades y
anotaciones para una DTD.
En el ejemplo anterior, todas las declaraciones DTD que definen "etiqueta" residen dentro del
documento. Sin embargo, la DTD se puede definir parcial o completamente en otro lugar. Por
ejemplo:
<?xml version="1.0"?>
<!DOCTYPE coche SYSTEM "http://www.sitio.com/dtd/coche.dtd">
<coche>
<modelo>...</modelo>
...
</coche>
30
Por ejemplo:
Siguiendo la definición de elemento anterior, este ejemplo de documento XML sería válido:
<receta>
<titulo>...</titulo>
<ingredientes>...</ingredientes>
<procedimiento>...</procedimiento>
</receta>
Pero no este:
<receta>
<parrafo>Esto es un párrafo</parrafo>
<titulo>...</titulo>
<ingredientes>...</ingredientes>
<procedimiento>...</procedimiento>
</receta>
EMPTY
ANY
31
Mixed
Por ejemplo, el primer elemento definido en el ejemplo (<enfasis>) puede contener datos
de carácter (#PCDATA). Y el segundo (<parrafo>) puede contener tanto datos de
carácter (#PCDATA) como sub-elementos de tipo <enfasis>.
Element
Modelos de contenido
La coma, en este caso, denota una secuencia. Es decir, el elemento <aviso> debe
contener un <titulo> seguido de un <parrafo>.
32
La barra vertical "|" indica una opción. Es decir, <aviso> puede contener o bien un
<parrafo> o bien un <grafico>. El número de opciones no está limitado a dos, y se
pueden agrupar usando paréntesis.
En este caso, <aviso> puede tener <titulo>, o no (pero sólo uno), y puede tener cero o
más conjuntos <parrafo><grafico>, <parrafo><parrafo><grafico>, etc.
<mensaje prioridad="urgente">
<de>Alfredo Reino</de>
<a>Hans van Parijs</a>
33
<texto idioma="holandés">
Hallo Hans, hoe gaat het?
...
</texto>
</mensaje>
Otra diferencia entre los atributos y los elementos, es que cada uno de los atributos sólo se
puede especificar una vez, y en cualquier orden.
34
Extended Style Language (XSL)
Un mismo documento XML puede tener varias hojas de estilo XSL que lo muestren en
diferentes formatos (HTML, PDF, RTF, VRML, PostScript, sonido, etc.).
La aplicación de una hoja de estilo XSL a un documento XML puede ocurrir tanto en el
origen (por ejemplo, un servlet que convierta de XML a HTML para que sea mostrado a un
navegador conectado a un servidor de web), o en el mismo navegador (como es el caso del
MS IE5, y Netscape 5).
Básicamente, XSL es un lenguaje que define una transformación entre un documento XML
de entrada, y otro documento XML de salida.
Una hoja de estilo XSL es una serie de reglas que determinan cómo va a ocurrir la
transformación. Cada regla se compone de un patrón (pattern) y una acción o plantilla
(template). De este modo, cada regla afecta a uno o varios elementos del documento XML.
El efecto de las reglas es recursivo, para que un elemento situado dentro de otro elemento
pueda ser también transformado. La hoja de estilo tiene una regla raiz que, además de ser
procesada, llama a las reglas adecuadas para los elementos hijos.
Ejemplo:
<libro>
<titulo>Un título cualquiera</titulo>
<capitulos>
<capitulo>
<titulo>Capítulo 1</titulo>
<parrafo>....</parrafo>
<parrafo>....</parrafo>
35
</capitulo>
<capitulo>
<titulo>Capítulo 2</titulo>
...
</capitulo>
</capitulos>
</libro>
<HTML>
<HEAD>
<TITLE>Un título cualquiera</TITLE>
</HEAD>
<BODY>
<H1>Un título cualquiera</H1>
<HR>
<H2>Capítulo 1</H2>
<P>...</P>
<P>...</P>
<HR>
<H2>Capítulo 2</H2>
<P>...</P>
</BODY>
</HTML>
36
La hoja de estilo XSL necesaria sería algo parecido a lo siguiente:
<?xml version="1.0"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">
<xsl:template match="libro">
<HTML>
<HEAD>
<TITLE><xsl:process select="titulo"/></TITLE>
</HEAD>
<BODY>
<H1><xsl:process select="titulo"/></H1>
<xsl:process select="capitulos"/>
</BODY>
</HTML>
</xsl:template>
<xsl:template match="capitulos">
<xsl:process select="capitulo">
</xsl:template>
<xsl:template match="capitulo">
<HR/>
<H2><xsl:process select="titulo"/></H2>
<xsl:process select="parrafo"/>
</xsl:template>
<xsl:template match="parrafo">
<P><xsl:process-children/></P>
</xsl:template>
</xsl:stylesheet>
37
Ejercicios
<?xml version=" 1.0 " encoding=" UTF-8 " standalone= " yes "?>
<ficha>
<nombre> Gabriel </nombre>
<apellido> Molina </apellido>
<direccion> Alfredo Vargas #36 </direccion>
</ficha>
2. Considerando el ejemplo anterior, modifíquelo a fin de poder insertar una ficha más de
otra persona.
3. Realizar el análisis del siguiente documento XML, generando el árbol que representa su
estructura en un editor de XML:
<?xml version="1.0"?>
<libro>
<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>
38
Explotación de archivos XML a través de HTML
Para mostrar un archivo XML usando HTML no es posible hacerlo de forma directa, para eso
tenemos que usar otro lenguaje de programación, como por ejemplo, algo de JavaScript
Python, Perl, etc.
En este ejemplo mostraremos el Ejemplo de “Catálogo de CDs” en XML, en una página HTML
usando HTML y Javascript.
Documento XML:
<CATALOGO>
<CD>
<TITULO>Tinta roja</TITULO>
<ARTISTA>Andres Calamaro</ARTISTA>
<ORIGEN>AR</ORIGEN>
<PRECIO>5.90</PRECIO>
<ANO>2006</ANO>
</CD>
<CD>
<TITULO>La Lengua Popular</TITULO>
<ARTISTA>Andres Calamaro</ARTISTA>
<ORIGEN>AR</ORIGEN>
<PRECIO>9.90</PRECIO>
<ANO>2007</ANO>
</CD>
</CATALOGO>
39
Código JavaScript:
<html>
<body>
<script type="text/javascript">
var xmlDoc=null;
if (window.ActiveXObject)
{// code for IE
xmlDoc=new ActiveXObject("Microsoft.XMLDOM");
}
else if (document.implementation.createDocument)
{// code for Mozilla, Firefox, Opera, etc.
xmlDoc=document.implementation.createDocument("","",null);
}
else
{
alert('Tu navegador no soporta esta funcion');
}
if (xmlDoc!=null)
{
xmlDoc.async=false;
xmlDoc.load("catalogo.xml");
var x=xmlDoc.getElementsByTagName("CD");
document.write("<table border='1'>");
document.write("<thead>");
document.write("<tr><th>Artista</th><th>Album</th></tr>");
document.write("</thead>");
document.write("<tfoot>");
document.write("<tr><th colspan='2'>Esta es mi coleccion de
40
albums</th></tr>");
document.write("</tfoot>");
document.write("<td>");
document.write(x[i].getElementsByTagName("TITULO")
[0].childNodes[0].nodeValue);
document.write("</td>");
document.write("</tr>");
}
document.write("</table>");
}
</script>
</body>
</html>
Y con este codigo, nos mostraría una tabla, con el titulo ARTISTA, y ALBUM, y luego los
respectivos datos del XML. Podremos modificarlo, y agregar, editar, o eliminar, etc.
41
42
Como ya hemos podido suponer, el empleo de tecnología XML, al ser un estándar
internacional público, no nos ata a una plataforma o sistema de desarrollo concreto. Lo
mismo se puede usar Perl bajo UNIX para generar documentos XML a partir de una base de
datos, como usar Python en Windows NT para servir documentos HTML a navegadores web
a partir de un documento XML.
Dicho esto, hay que decir que JAVA se posiciona como una opción interesante a la hora de
desarrollar aplicaciones usando XML.
Por ejemplo, a partir de fuentes de datos en XML, podemos escribir un servlet que analice
sintácticamente el XML, y que genere un árbol DOM (Document Object Model). Una vez
generado el árbol DOM, podemos ir extrayendo la información que contiene e ir generando
un documento HTML de acuerdo con ciertas reglas de formato, de modo que pueda ser
visualizado por un navegador web.
43
GLOSARIO
44
REFERENCIAS
BIBLIOGRAFICAS/CIBERGRÁFICAS
2. Manual de XML
Alfredo Reino Romero
Ismael Zori
www.desarrolloweb.com/manuales/manual-introduccion-xml.html
3. http://flanagan.ugr.es/xml/
4. http://geneura.ugr.es/~jmerelo/XSLT/
5. A Byte of Python
v1.92 (for Python 3.0)
6. http://es.wikipedia.org
45