Está en la página 1de 58

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.

com

Introduccin a XML
Una breve intruduccin al mundo XML que explica qu es este lenguaje y sus tecnologas relacionadas.

Autores del manual Este manual ha sido realizado por los siguientes colaboradores de DesarrolloWeb.com:
Miguel Angel Alvarez Trukulo Juanjo Palacios

Director de DesarrolloWeb.com http://www.desarrolloweb.com (10 captulos)

http://trukulo.cjb.net/ (1 captulo)

Consultor de Marketing http://www.valdecantos.com/kinks (1 captulo)

Luis Villa

http://www.alzado.org (1 captulo)

Javier M Criado

Ingeniero Tc. en Informtica (3 captulos)

Roberto Canales Mora

Director General de Autentia http://www.adictosaltrabajo.com (2 captulos)

Juan Edgardo Jorquera Uribe


Analista Programador http://www.aplicacionesweb.cl (1 captulo)

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Qu es XML
Vemos muy rpidamente lo que es el mundo XML y algunos destellos de sus posibilidades. XML es una tecnologa en realidad muy sencilla que tiene a su alrededor otras tecnologas que la complementan y la hacen mucho ms grande y con unas posibilidades enormes y bsicas para la sociedad de la informacin. Vamos a ver a lo largo de varios captulos una introduccin al mundo XML, es decir, al lenguaje as como a las tecnologas que trabajan con l, sus usos, ventajas y modos de llevar a cabo las tareas. XML, con todas las tecnologas relacionadas, representa una manera distinta de hacer las cosas, ms avanzada, cuya principal novedad consiste en permitir compartir los datos con los que se trabaja a todos los niveles, por todas las aplicaciones y soportes. As pues, el XML juega un papel importantsimo en este mundo actual, que tiende a la globalizacin y la compatibilidad entre los sistemas, ya que es la tecnologa que permitir compartir la informacin de una manera segura, fiable, fcil. Adems, XML permite al programador y los soportes dedicar sus esfuerzos a las tareas importantes cuando trabaja con los datos, ya que algunas tareas tediosas como la validacin de estos o el recorrido de las estructuras corre a cargo del lenguaje y est especificado por el estndar, de modo que el programador no tiene que preocuparse por ello. Vemos que XML no est slo, sino que hay un mundo de tecnologas alrededor de l, de posibilidades, maneras ms fciles e interesantes de trabajar con los datos y, en definitiva, un avance a la hora de tratar la informacin, que es en realidad el objetivo de la informtica en general. XML, o mejor dicho, el mundo XML no es un lenguaje, sino varios lenguajes, no es una sintaxis, sino varias y no es una manera totalmente nueva de trabajar, sino una manera ms refinada que permitir que todas las anteriores se puedan comunicar entre si sin problemas, ya que los datos cobran sentido. Todo esto lo veremos con calma en la Introduccin a XML. XML es interesante en el mundo de Internet y el e-bussiness, ya que existen muchos sistemas distintos que tienen que comunicarse entre si, pero como se ha podido imaginar, interesa por igual a todas las ramas de la informtica y el tratamiento de datos, ya que permite muchos avances a la hora de trabajar con ellos. As pues, os recomendamos seguir esta lectura en la introduccin a XML. A lo largo de los siguientes captulos, vamos a ver algunas caractersticas importantes de la tecnologa que nos permitirn comprender mejor el mundo XML y cmo soluciona nuestros problemas a la hora de trabajar con los datos.

Artculo por Miguel Angel Alvarez

Historia del XML


Desde que IBM invent el GML hasta que se cre el XML. El XML proviene de un lenguaje que invent IBM all por los aos 70. El lenguaje de IBM se llama GML (General Markup Language) y surgi por la necesidad que tenan en la empresa de almacenar grandes cantidades de informacin de temas diversos. Imaginar por un momento la cantidad de documentacin que generara IBM sobre todas las reas en las que trabajaba e investigaba, y la cantidad de informacin que habr generado

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

hasta hoy. As pues, necesitaban una manera de guardar la informacin y los expertos de IBM se inventaron GML, un lenguaje con el que poder clasificarlo todo y escribir cualquier documento para que se pueda luego procesar adecuadamente. Este lenguaje gust mucho a la gente de ISO, una entidad que se encarga de normalizar cuantas cosas podis imaginar para los procesos del mundo actual, de modo que all por el 86 trabajaron para normalizar el lenguaje, creando el SGML, que no era ms que el GML pero estndar (Standar en ingls). SGML es un lenguaje muy trabajado, capaz de adaptarse a un gran abanico de problemas y a partir de l se han creado los siguientes sistemas para almacenar informacin. Por el ao 89, para el mbito de la red Internet, un usuario que haba conocido el lenguaje de etiquetas (Markup) y los hiperenlaces creo un nuevo lenguaje llamado HTML, que fue utilizado para un nuevo servicio de Internet, la Web. Este lenguaje fue adoptado rpidamente por la comunidad y varias organizaciones comerciales crearon sus propios visores de HTML y rieron entre ellos para hacer el visor ms avanzado, inventndose etiquetas como su propia voluntad les deca. Desde el 96 hasta hoy una entidad llamada W3C ha tratado de poner orden en el HTML y establecer sus reglas y etiquetas para que sea un estndar. Sin embargo el HTML creci de una manera descontrolada y no cumpli todos los problemas que planteaba la sociedad global de Internet. El mismo W3C en el 98 empez y contina, en el desarrollo de XML (Extended Markup Language). En este lenguaje se ha pensado mucho ms y muchas personas con grandes conocimientos en la materia estn trabajando todava en su gestacin. Pretendan solucionar los carencias del HTML en lo que se respecta al tratamiento de la informacin. Problemas del HTML como: El contenido se mezcla con los estilos que se le quieren aplicar. No permite compartir informacin con todos los dispositivos, como pueden ser ordenadores o telfonos mviles. La presentacin en pantalla depende del visor que se utilice.

Imagnese, una persona que conoce el HTML y lo difcil que puede llegar a ser entender su cdigo, que tuviese que procesarlo para extraer datos que necesite en otras aplicaciones. Sera muy difcil saber dnde est realmente la informacin que busca, siempre mezclada entre etiquetas <FONT>, <TABLE>, <TD>, etc... Esto es una mala gestin de la informacin y el XML la soluciona.

Artculo por Miguel Angel Alvarez

Componentes de un documento XML


Comenzamos explicando los comentarios, las secciones CData, los elementos y las referencias a entidades de un documento XML. Comentarios Los comentarios en los documentos XML empiezan por <!-- y acaban por -->. Pueden contener cualquier cadena de texto excepto el literal --. Pueden colocarse en cualquier parte del documento. Ej: <!-- Esto es comentario <-d#dd -->
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 3

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Secciones CData Le indican al parser que ignore todos los caracteres de marcas que se encuentren en el interior de esta/s seccin/es. (ed, son como comentarios a lo bestia) Son muy tiles cuando queremos (x ej. a modo de tutorial) visualizar cdigo XML como parte del texto. Todos los caracteres que existan entre son pasados directamente a la aplicacin sin interpretacin. El nico literal q no puede ser utilizado dentro de la seccin es, lgicamente, el ]]>. Ej.
<![CDATA[ <!ENTITY amp "&"> <!-- &= ampersand --> <CODIGO> *p=&q->campo; a=(x<y)?33:44; </CODIGO> ]]>

Elementos Son las etiquetas ms frecuentemente utilizadas dentro de un documento XML. Estn delimitadas por los smbolos < y >, sintaxis de todos conocida, puesto q era la usada en HTML. Si el contenido de la etiqueta es vaco (al igual q <BR> <IMG> en HTML), entonces se delimitan por los smbolos < y />. Las etiquetas de apertura (las que empiezan por >) pueden incluir atributos, los cuales son pares nombre/valor al estilo color="verde". (x ej, en HTML <font color="green">). OJO!! En XML los atributos siempre deben ir encerrados entre comillas dobles. Ejs:
<nombre id="surname">Perez</nombre> <vacia color="verde"/>

Referencias a entidades Las entidades(entity) se usan en XML bsicamente como representacin alternativa de los caracteres especiales (como por ejemplo las comillas dobles la marca de apertura en un elemento), aunque tambin pueden emplearse para incluir el contenido de otros documentos para hacer referencia a trozos de texto repetitivos. Sintaxis: &xxx; la entidad. Ej:
&eacute;

donde xxx es el nombre de la entidad, y , &xxx; es la manera de referirse a

----> Representa al smbolo .

Existe una referencia a entidades "especial", denominada referencia a caracteres. sta se usa para representar caracteres que no pueden ser escritos desde el teclado. No tienen un nombre de cadena (como eacute x ej) sino q su nombre es, un n decimal, un n hexadecimal. Ej: &#38; <!-- Ampersand -->

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Tambien se pueden crear constantes ( macros) para que no nos tengamos q acordar de los numeross. Para ello usamos la definicin "real" de entidad: Ej:
<!ENTITY amp "&#38;"&ampgt;

Para referenciarlo: &ampamp;

Artculo por Javier M Criado

Sintaxis del XML


Tiene una sintaxis extremadamente sencilla. Dicen que el XML es un 10% del SGML y de verdad lo es, porque en realidad las normas que tiene son muy simples. Se escribe en un documento de texto ASCII, igual que el HTML y en la cabecera del documento se tiene que poner el texto <?xml version="1.0"?> En el resto del documento se deben escribir etiquetas como las de HTML, las etiquetas que nosotros queramos, por eso el lenguaje se llama XML, lenguaje de etiquetas extendido. Las etiquetas se escriben anidas, unas dentro de otras. <ETIQ1>...<ETIQ2>...</ETIQ2>...</ETIQ1> Cualquier etiqueta puede tener atributos. Le podemos poner los atributos que queramos. <ETIQ atributo1="valor1" atributo2="valor2"...> Los comentarios de XML se escriben igual que los de HTML. <!-- Comentario --> Y esto es todo lo que es el lenguaje XML en si, aunque tenemos que tener en cuenta que el XML tiene muchos otros lenguajes y tecnologas trabajando alrededor de l. Sin embargo, no cabe duda que la sintaxis XML es realmente reducida y sencilla. Para definir qu etiquetas y atributos debemos utilizar al escribir en XML tenemos que fijarnos en la manera de guardar la informacin de una forma estructurada y ordenada. Por ejemplo, si deseamos guardar la informacin relacionada con una pelcula en un documento XML podramos utilizar un esquema con las siguientes etiquetas. <?xml version="1.0"?> <PELICULA nombre="El Padrino" ao=1985> <PERSONAL> </DIRECTOR nombre="Georgie Lucar"> </INTERPRETE nombre="Marlon Brando" interpreta-a="Don Corleone"> </INTERPRETE nombre="Al Pacino" interpreta-a="Michael Corleone"> </PERSONAL> </ARGUMENTO descripcin="Pelicula de mafias sicilianas en Estados Unidos"> </PELICULA> Como podis ver, nos hemos inventado las etiquetas que nos venan en gana para poner este ejemplo y las hemos anidado de manera que la etiqueta ms grande es la PELICULA y dentro

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

de ella tenemos el PRESONAL y el ARGUMENTO. A su vez, dentro de PERSONAL tenemos tanto al DIRECTOR como a los actores (INTERPRETE).

Artculo por Miguel Angel Alvarez

Declaraciones de tipo de documento (DTD's)


Xml tiene una ventaja que se puede convertir en un inconveniente: cada persona/autor puede crear sus propias etiquetas. XML tiene una ventaja que se puede convertir en un inconveniente: cada persona/autor puede crear sus propias etiquetas. Esto no trae problemas si trabajamos solos; pero, y si trabajamos en equipo?, y si queremos exportar nuestros documentos? qu estndar seguiremos? Ej: "A" puede escribir el nombre como sigue: <nombre>Juan</nombre> Sin embargo, "B" puede hacerlo as: <nombre id="Juan"/> Las 2 versiones son igual de correctas pero son diferentes; si extrapolamos esto a muchas marcas, entonces la lectura y/o modificacin de documentos por diferentes personas puede ser un caos.
Nota: Como me ensearon en la universidad, "no es plan" que hagas una aplicacin que slo entiendas t, de forma que, si se quiere modificar, la empresa tenga que pedirte de rodillas que lo hagas.

Para resolver estos problemas, proporcionando un pequeo estandar acerca de la sintaxis a utilizar, XML ofrece dos posibles soluciones: 1. 2. 3. 4. Las DTD's. Los XML Schemas. Declaraciones Declaraciones Declaraciones Declaraciones de de de de tipo de elemento (Element Type Declarations). listas de atributos (Attribute List Declarations). Entidades (Entity Declarations). notacin (Notation Declarations).

En las DTD's podemos hacer 4 tipos de declaraciones:

Las tratar una a una en los siguientes apartados. Declaraciones de tipo de elemento Estas declaraciones establecen qu elementos pueden formar parte del documento y cules pueden formar parte de su interior (los elementos se anidan unos dentro de otros). Sintaxis: Los elementos que puede contener cada elemento (valga la redundancia) van siempre
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 6

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

encerrados entre parntesis y precedidos de la etiqueta <!ELEMENT. Dentro de las etiquetas, cada elemento (atributo) podr llevar uno de los siguientes smbolos detrs de su nombre: SMBOLO , ? * + SIGNIFICADO (Indica...) Secuencia de elementos 0 o 1 ocurrencias 0 o ms ocurrencias 1 o ms ocurrencias que el elemento est vaco. Estos elementos NO tienen etiqueta de cierre. Cualquier contenido es vlido. Yo no recomiendo su uso. que el contenido de la cadena puede ser una cadena de texto.

Empty

Any

#PCDATA

Ejs:
<!ELEMENT nombre (#PCDATA)> <!ELEMENT nombre EMPTY> <!ELEMENT cliente (nombre,apellidos,nif?,tlf*,direccion+)>

Este ltimo ej. quiere expresar lo siguiente: El elemento cliente debe contener a nombre y apellidos, puede contener a nif y tlf - a este incluso ms de una vez- y debe contener al menos una vez la direccin del cliente (para poder enviarle el pedido a casa).
Nota: Luego podemos hacer una redefinicin de los subelementos si queremos.

EJ:
<!ELEMENT cliente (nombre,apellidos,nif?,tlf*,direccion+)> <!ELEMENT nombre (#PCDATA)> <!ELEMENT apellidos(ape1,ape2?)> .....

Adems de esto, tambien podemos indicar que existen varias alternativas; para ello se usa el smbolo | (relacin OR). Ej:
<!ELEMENT apellidos (#PCDATA|(ape1,ape2))>>

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<!ELEMENT ape1 (#PCDATA)> <!ELEMENT ape2 (#PCDATA)>

indica q se puede elejir entre teclear los 2 apellidos juntos o por separado: <apellidos> Perez Lpez </apellidos> <apellidos> <ape1> Perez </ape1> <ape2> Lpez </ape2> </apellidos>

Declaraciones de listas de atributos Ya hemos visto como denotar los elementos que puede tener el documento. Pero, qu pasa con los atributos (si es que tienen) de todos y acada uno de los elementos? Para definirlos se usan las declaraciones de listas de atributos, cuya sintaxis es la siguiente: Sintaxis: Todas las definiciones de atributos empezarn por: <!ATTLIST Cada atributo est formado por 3 partes: Nombre Tipo del atributo Valor por defecto Las posibilidades para describir el tipo de un atributo (campo) y el valor por defecto del mismo las podeis ver en las siguientes tablas: Tipo del atributo VALOR SIGNIFICADO El atributo ser una cadena de caracteres. No todos los caracteres son vlidos. Usaremos secciones PCDATA cuando queramos incluir los carcteres no vlidos. El atributo sirve para identificar al elemento dentro del documento. Slo puede haber un atributo de tipo ID por elemento. Este atributo se emplear para referenciar a otros elementos del documento a partir de su ID. Contiene nombres de entidades. Ver siguiente apdo. Contiene una nica cadena de texto (ed, una sola palabra).

CDATA

ID

IDREF/S

ENTITY/S NMTOKEN/S

(<<enumerados Aqu especificamos EL conjunto de valores q puede tomar el atributo; >>) esto lo hacemos separandolos con |.

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Nota: El valor para los atributos acabados en S (ej. IDEREFS) ser una lista de valores separados por espacios en blanco.

Valores por defecto VALOR #REQUIRED #IMPLIED SIGNIFICADO Con esto indicamos que es obligatorio darle un valor al atributo. Con esto indicamos que es opcional darle un valor al atributo. Podemos poner un valor (NO lista de valores) opcional directamente; entonces, si no se le otorga un nuevo valor posteriormente, asumir el dado (ed, es el valor x por defecto). No es obligatorio darle un valor en el doc. Con esto obligamos a q el atributo tome necesariamente el valor especificado en <<valor>>

<<valor>>

#FIXED <<valor>>> EJ:

<!ATTLIST cliente numcli ID #REQUIRED edad ("Menos de 18" | "entre 18 y 65" | "Ms de 65") #IMPLIED >

Al ser numcli de tipo ID indicamos q no puede haber 2 clientes con idntico numcli. Edad es un atributo no obligatorio q slo puede tomar los valores de la lista enumerada.

Artculo por Javier M Criado

Declaracin de entidades en XML


Pasamos a explicar los diferentes tipos de entidades que podemos definir para nuestras DTD's. Existen 3 tipos de entidades q podemos definir en nuestras DTD's: 1. Entidades internas Tambien llamadas macros constantes de texto, las entidades internas son las q se asocian a una cadena de caracteres. Se referencian nica y exclusvamente desde el fichero. Ej:
<!ENTITY nom "Juan Prez Lpez">

As, si escribo en mi documento (en el cdigo fuente, si estas dentro de un editor wysiwyg): &nom; es como si estuviera escribiendo Juan Prez Lpez. NOTAS:
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 9

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Las entidades internas pueden incluir referencias a otras entidades internas, con la salvedad de q se forme un ciclo entre ellas. XML tiene 5 entidades internas predefinidas: &lt; Es sustitdo por el smbolo < &gt; Es sustitdo por el smbolo > &amp; Es sustitdo por el smbolo & &apos; Es sustitdo por el smbolo ' &quot; Es sustitdo por el smbolo " 2. Entidades externas Sirven para referenciar su contenido valor desde otros ficheros, los cuales pueden ser binarios (ej,, una imagen jpg) o de texto( ej. fichero xml). Si el contenido del fichero que hace la referencia es de texto, entonces se sustituye tal y como si de una entidad interna se tratara. Ej.
<!ENTITY arch System "arch.txt">

Inserta el contenido del fichero arch.txt en lugar en la q se hace la referencia. Si fuera binario, la referencia se sustituira por el texto siempre y cuando ste forme parte de un atributo cualquiera del fichero. Ej:
<!ENTITY NDATA miurl="http://tttttt.com">

Esto se podra referenciar as: <A href="&miurl;"...> .... </A> 3. Entidades de parmetros Son especiales xq slo pueden aparecer en las DTD's. Son prcticamente igual q las entidades anteriores.Por ello su sintaxis es distinta: Se usa % para preceder al nombre de la entidad tanto en su definicin como en su referencia. Ej: Antes de saber manejar entidades con parmetros:
<!ELEMENT motos EMPTY> <!ATTLIST motos a CDATA #REQUIRED b CDATA #REQUIRED c CDATA #REQUIRED>

Despus de saber manejar entidades con parmetros:


<!ENTITY %items "a CDATA #REQUIRED b CDATA #REQUIRED c CDATA #REQUIRED"> <!ELEMENT motos EMPTY> <!ATTLIST motos %items>

Declaraciones de notacin Se usan para indicar el tipo de los ficheros binarios referenciados mediante las referencias a
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 10

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

entidades externas . OJO! este dato no se analiza por el Parser! La propia aplicacin ser, x tanto, la encargada de manejar la informacin. Ej:
<!NOTATION GIF87A SYSTEM "GIF">

Uso de las Dtd's Recordad que el uso de DTD's no es obligatorio pero si necesario(al menos, desde mi punto de vista). A la hora de usar una DTD, podemos elegir (del mismo modo que en JavaScript ASP) bien incrustarla dentro del propio documento, bien vincularla a un archivo externo. Esto es lo primero q deberamos de indicar en el documento. Ejs: a) Definicin interna de una DTD.
<?XML version="1.0" standalone="yes"?> <! DOCTYPE cars SYSTEM "cars.dtd " [ <!ELEMENT cars (...)*> <!ATTLIST cars ...> ]> . . .

<cars> . . . . . </cars>

b) Definicin externa de una DTD.


<?XML version="1.0" standalone="yes"?> <! DOCTYPE cars SYSTEM "www.javieryjorge.com/lengs/cars.dtd " > <cars> . . . . . </cars>

Las referencias (a DTD's externas) te las puedes encontrar de 2 fomas: SYSTEM: Ej:
<! DOCTYPE cars SYSTEM "javieryjorge.com/lengs/cars.dtd " >

Este tipo de notacin la usan los desarrolladores cuando la DTD slo va a tener mbito local u interno dentro de una organizacin, asi como cuando se va a emplear para uso particular. Bsicamente es como si pusieramos private (privado) PUBLIC:

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

11

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Ej:
<!DOCTYPE CONTACTS PUBLIC "ISO//Autor//Descripcin//Idioma"> "http://www.../pepito.dtd" >

Este tipo

es utilizado por estandares u organismos. En la declaracin se suelen indicar 4 campos normalmente: 1. El nombre del organismo. (ISO indica estandar ISO; + indica estandar NO ISO) 2. Cadena de caracteres en la q se suele poner el nombre del autor de la DTD. 3. Descripcin breve de lo que hace. 4. Idioma: ES espaol; EN ingls. Acerca del uso de uno u otro formato, yo os recomiendo que useis las externas de sistema, pues son las mejores tanto en usabilidad (modificas una y te vale para todos los archivos referenciados a ella) como en visibilidad (en el doc .xml slo se observa una lnea). Por otra parte es importante que sepas que ya hay estandares definidos por empresas, colectivos, equipos de investigacin, etc... As, por ejemplo, estan el Chemical Markup Language(CML), el Mathematical Markup Language (MathML), etc... Documentos XML vlidos bien formados. Un documento bien formado es el que sigue las reglas bsicas de XML para diseo de documentos. Un documento vlido es un documento bien formado que adems respeta las normas dictadas por su DTD. Todos los documentos XML han de estar bien formados, si bien no es obligatorio q sean vlidos (aunq si es recomendable).

Artculo por Javier M Criado

Diferencias entre HTML y XML


Aunque sabemos de sobra que son distintos, los que conozcan HTML pueden encontrar aqu unas referencias para conocer mejor XML. Para los que conozcan tambin el lenguaje HTML, que espero que seis muchos, he compilado aqu una serie de diferencias entre HTML y XML que sirven de muestra para ver hasta dnde llegan estos dos lenguajes. El HTML se preocupa por formatear datos y para ello son las etiquetas que tiene el lenguaje, para formatear la informacin que se desea mostrar. El XML se preocupa por estructurar la informacin que pretende almacenar. La estructura la marca la lgica propia de la informacin. El desarrollo del HTML estuvo marcado la competencia entre los distintos visores del mercado. Cada uno quera ser el mejor e inventaba etiquetas nuevas que a la larga entraban a formar parte del estndar del W3C, como la etiqueta <FRAME>.
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 12

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

El desarrollo del XML est siendo llevado a cabo con rigor, siempre ajustado a lo que marca el estndar que desarrolla el W3C, entidad que est desarrollando el XML con ms diligencia que las empresas con intereses particulares. Procesar la informacin en HTML es inviable, por estar mezclada con los estilos y las etiquetas que formatean la informacin. En XML se puede procesar la informacin con mucha facilidad, porque todo est ordenado de una manera lgica, as mismo el formateo de la informacin para que se pueda entender bien por el usuario es viable a travs de un pequeo procesamiento, a travs de hojas de estilos o similares.

Artculo por Miguel Angel Alvarez

Objetivos y usos del XML


Cmo y para qu se cre el XML y una breve descripcin de sus usos. Objetivos y usos del XML El XML se cre para que cumpliera varios objetivos. Que fuera idntico a la hora de servir, recibir y procesar la informacin que el HTML, para aprovechar toda la tecnologa implantada para este ltimo. Que fuera formal y conciso desde el punto de vista de los datos y la manera de guardarlos. Que fuera extensible, para que lo puedan utilizar en todos los campos del conocimiento. Que fuese fcil de leer y editar. Que fuese fcil de implantar, programar y aplicar a los distintos sistemas.

El XML se puede usar para infinidad de trabajos y aporta muchas ventajas en amplios escenarios. Veamos algunas ventajas del XML en algunos campos prcticos. Comunicacin de datos. Si la informacin se transfiere en XML, cualquier aplicacin podra escribir un documento de texto plano con los datos que estaba manejando en formato XML y otra aplicacin recibir esta informacin y trabajar con ella. Migracin de datos. Si tenemos que mover los datos de una base de datos a otra sera muy sencillo si las dos trabajasen en formato XML. Aplicaciones web. Hasta ahora cada navegador interpreta la informacin a su manera y los programadores del web tenemos que hacer unas cosas u otras en funcin del navegador del usuario. Con XML tenemos una sola aplicacin que maneja los datos y para cada navegador o soporte podremos tener una hoja de estilo o similar para aplicarle el estilo adecuado. Si maana nuestra aplicacin debe correr en WAP solo tenemos que crear una nueva hoja de estilo o similar.

Son slo unos ejemplos que esperamos que comprendas aunque sea por encima ya que todava hay muchas cosas que no sabes sobre XML y las tecnologas relacionadas.

Artculo por Miguel Angel Alvarez

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

13

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Tecnologas relacionadas con XML


Veremos algunas tecnologas utilizadas para desarrollar cada uno de los procesos en los que XML est implicado. Hemos visto lo sencillo que es XML y las pocas normas que tenemos para su sintaxis. Simplemente utilizamos las etiquetas que necesitamos, abriendo y cerrando cada epgrafe de manera parecida a como lo hacemos en HTML. Toda esta sencillez es gracias a que XML tiene muchas otras tecnologas relacionadas que son las encargadas de manejar importantes procesos dentro del mbito de una aplicacin XML. La sintaxis, la manera de aplicar estilos, programar o acceder a bases de datos, va por su parte, es decir, son tecnologas relacionadas con el XML. En siguientes captulos vamos a ver un montn de nuevas tecnologas, cada una para llevar a cabo un aspecto de la aplicacin XML. En esta introduccin a XML no pretendemos entrar mucho en la discusin de cada tecnologa sino presentarlas y conocer sus usos. Veremos tecnologas relacionadas con los procesos de: Contenidos: DTD o XML Schema. Diseo: CSS o XSL. Programacin: SAX o DOM.

Artculo por Miguel Angel Alvarez

Contenidos: DTD o XML Schema


Tecnologas XML relacionadas con los contenidos. Un documento XML puede contener muchos tipos de informacin. Es decir, pueden haber muchos lenguajes escritos en XML para cualquier colectivo de usuarios. Por ejemplo, Si lo utiliza el colectivo de mdicos podra crear un lenguaje en XML especfico para almacenar diagnsticos de los pacientes. Este lenguaje se podra llama PacientesML. Si los distribuidores de pelculas utilizan XML podrn crear sus propios lenguajes para guardar la informacin de las pelculas. Este lenguaje se podra llamar PeliculasML. Si estamos escribiendo aplicaciones para mviles podremos utilizar un lenguaje para aplicaciones inalmbricas (Wireless), que se llama WML.

Como vemos, se pueden crear infinitos lenguajes a partir del XML. Para especificar cada uno de los usos de XML, o lo que es lo mismo, para especificar cada uno de los sublenguajes que podemos crear a partir de XML, se utilizan unos lenguajes propios. Son unos lenguajes que sirven para definir otros lenguajes, es decir, son metalenguajes. Los definen especificando qu etiquetas podemos o debemos encontrarnos en los documentos HTML, en qu orden, dentro de qu otras, adems de especificar los atributos que pueden o deben tener cada una de las etiquetas. Hay dos metalenguajes con los que definir los lenguajes que podemos obtener a partir de XML, el DTD y el XML Schema. El DTD, Definition Type Document, tiene una sintaxis especial, distinta de la de XML, que es
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 14

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

sencilla, aunque un poco rara si nunca hemos visto un documento similar. Para evitar el DTD, que tiene una sintaxis muy especial, se intent encontrar una manera de escribir en XML la definicin de otro lenguaje XML. Se defini entonces el lenguaje XML Schema y funciona bien, aunque puede llegar a ser un poco ms complicado que especificarlo en DTD. Simplemente nos ahorramos de aprender un nuevo lenguaje con su sintaxis particular. Un detalle importante de sealar a la hora de hablar de los DTD o XML Schema es que estos lenguajes tambin permiten comprobar la integridad de los datos en cualquier momento. Se calcula que un 70% de las lneas de cdigo que escribe un programador estn orientadas a comprobar la integridad de los datos, es decir, comprobar si donde se supone que hay un nmero efectivamente lo hay, si el nmero es entero o cualquier otra comprobacin. Nuestros metalenguajes de XML nos sirven para tomar un documento XML y comprobar que los datos que l incluye son vlidos, comprobando si lo que tenemos en el XML concuerda con lo que tendramos que tener. Eso lo podemos hacer al leer el documento, si no son validos se saca un mensaje de error y se detiene el proceso del documento. Si son vlidos hacemos lo que toque sin tener que preocuparnos por la integridad de los datos.

Artculo por Miguel Angel Alvarez

Diseo: CSS o XSL


Tecnologas utilizadas para aplicar diseo o forma a los contenidos. Para cada documento XML que se desee presentar en pantalla formateado de la manera que deseemos se tiene que escribir una hoja de estilos o similar. Hemos utilizado esa frase en otras partes de la introduccin a XML, veamos ahora que significa. Tambin tenemos dos posibles lenguajes con los que formatear los textos de un documento XML para poder verlo por pantalla. La primera posibilidad es el CSS, que muchos ya conocern. La segunda opcin es el XSL, bastante ms avanzada. CSS (Cascading Style Sheets o hojas de estilo en cascada)no es nada nuevo, ya se poda utilizar con HTML y se cre en un intento de separar la forma del contenido en HTML. En XML tambin podemos utilizar las CSS, y se utilizan de una manera muy similar a cmo se utilizan en HTML, por lo menos los atributos de estilo que podemos aplicar son los mismos y sus posibles valores tambin. XSL, que son las siglas de XML Style Language, es el segundo lenguaje con el que trabajar en XML. Este lenguaje no se limita a definir qu estilo aplicar a cada elemento del documento XML. Adems se pueden realizar pequeas instrucciones tpicas de los lenguajes de programacin y la salida no tiene porque ser un documento HTML, sino que adems podra ser de otros tipos, cualquiera que podamos necesitar como un documento escrito en WML (para WAP), un documento de texto plano u otro documento XML. XSL resulta mucho ms potente que CSS y de hecho es mucho ms adecuado utilizarlo. Una de sus principales ventajas la vemos a continuacin. Si tenemos un documento XML que queremos que se visualice en mltiples dispositivos distintos ser imprescindible utilizar XSL. En este esquema tendramos un solo documento XML y un documento XSL para cada dispositivo que queramos incluir, por ejemplo para un navegador Netscape, otro para Internet Explorer, otro para un mvil Ericson y otro para un mvil Nokia. Si maana aparece un nuevo
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 15

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

dispositivo, por muy particular que sea, slo necesitaremos crear un documento XSL para que nuestros XML se puedan visualizar en l.

Artculo por Miguel Angel Alvarez

Programacin: SAX o DOM


Tecnologas relacionadas con la programacin de sistemas XML. Si queremos realizar acciones con nuestros datos escritos en XML tenemos tambin mucho camino ya implementado. El W3C ha especificado dos mecanismos para acceder a documentos XML y trabajar con ellos. Se tratan simplemente de unas normas que indican a los desarrolladores la manera de acceder a los documentos. Estas normas incluyen una jerarqua de objetos que tienen unos mtodos y atributos con los que tendremos que trabajar y que nos simplificarn las tareas relativas al recorrido y acceso a las partes del documento. Estos dos mecanismos se denominan SAX y DOM. SAX se utiliza para hacer un recorrido secuencial de los elementos del documento XLM y DOM implica la creacin de un rbol en memoria que contiene el documento XML, y con l en memoria podemos hacer cualquier tipo de recorrido y acciones con los elementos que queramos. Se puede programar con el lenguaje de programacin que se desee para acceder a un documento XML. Los creadores del lenguaje son los responsables de crear unas API que cumplan las especificaciones de XML para que luego los desarrolladores de cada lenguaje las encuentren y puedan trabajar con ellas. Un lenguaje tpico para trabajar con XML es Java y en este caso es SUN Microsystems la encargada de proveer el API que ha especificado el W3C y por lo tanto,.los desarrolladores en Java cuentan con unas clases especiales que ha creado SUN para programar con XML. Por su parte, los creadores de algunos lenguajes han implementado una tercera manera de programar con XML que se llama XSLT. Empresas como por ejemplo la organizacin Apache, SUN o Microsoft, ya la estn apoyando, aunque en el W3C no han dicho que sea un estndar. Es importante sealar que la W3C es un organismo muy lento y que mucho de lo que se hace en XML actualmente slo est en la W3C contemplado como una "nota" en la que los gurs estn pensando. El trabajo con bases de datos y XML se est desarrollando con un lenguaje que se llama XQL (XML Query Language), que es uno de los ejemplos de lenguaje que slo est publicado en el W3C como una "nota".

Artculo por Miguel Angel Alvarez

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

16

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Introduccin a JAXB con NetBeans


Cmo manipular un fichero XML con JAXB (Java Architecture for XML Binding ) de Java. Hay muchas tcnicas de manipular ficheros XML en el mundo Java, y vamos a ver una muy buena opcin con JAXB (Java Architecture for XML Binding ) Antes de hacer un ejemplo con esta tecnologa, vamos a montar el Kit de desarrollo de Web Services, donde viene incluido (utilizaremos este tutorial como base para otros relacionados con Web Services) Descarga de WSDP Lo descargamos del Web de Sun

Y arrancamos el ejecutable

Nos aparece el asistente

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

17

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Elegimos la mquina virtual (un consejo, evitad los espacios en los trayectos de instalacin)

Elegimos la opcin de utilizar un Tomcat como contenedor para nuestra aplicaciones y servicios Web

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

18

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Nos descargamos el Tomcat para WSDP

Lo descomprimimos un directorio

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

19

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Ahora seleccionamos el producto recin instalado

Elegimos el directorio del resto de componentes

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

20

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Realizamos la instalacin tpica

Aunque os muestro las opciones en la personalizada..... que ya tenemos tema para un montn de tutoriales sobre las ltimas especificaciones relacionadas con los servicios web (sobre todo debemos estar atentos a la evolucin de la seguridad)

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

21

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Definimos el usuario que usuremos para manejar remotamente el Tomcat

No olvidis que este usuario hay que darlo de alta en el TOMCAT


<!-NOTE: By default, no user is included in the "manager" role required to operate the "/manager" web application. If you wish to use this app, you must define such a user - the username and password are arbitrary. --> <tomcat-users> <user name="tomcat" password="tomcat" roles="tomcat" /> <user name="role1" password="tomcat" roles="role1" /> <user name="both" password="tomcat" roles="tomcat,role1" /> <user name="admin" password="admin" roles="manager,admin" /> </tomcat-users>

No se os olvide leer las instrucciones finales (lo digo porque al final hacemos ok, ok, ok y no

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

22

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

nos funcionan las cosas)

Copiamos los jar al directorio propuesto

Y ahora acabamos

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

23

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Y al arrancar sobre los iconos creados ..... no podra dar este pequeo error... solo tenemos que ir al directorio de binarios de tomcat y localizar el fichero catalina.bat (actualizando as el acceso directo)

Primer ejemplo de JAXB Creamos un proyecto dentro de NetBeans 4.1. Ser una aplicacin Web bsica

Elegimos el nombre y trayecto

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

24

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

La gracia est en que a partir de un Schema (esquema) XML podemos crear una estructura de clases que nos permitan un acceso cmodo y seguro (verificacin de que hacemos lo que debemos en compilacin y no en ejecucin) Creamos el esquema

Le damos un nombre (libros.xsd)

<?xml version="1.0" encoding="ISO-8859-1"?>

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

25

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.adictosaltrabajo.com/esquemas/libro" xmlns="http://www.adictosaltrabajo.com/esquemas/libro" elementFormDefault="qualified"> <xsd:element name="libro"> <xsd:complexType> <xsd:sequence> <xsd:element name="titulo" type="xsd:token"/> <xsd:element name="autor" type="xsd:token"/> </xsd:sequence> </xsd:complexType> </xsd:element> <xsd:element name="libros" > <xsd:complexType> <xsd:sequence> <xsd:element ref="libro" maxOccurs="unbounded" /> </xsd:sequence> </xsd:complexType> </xsd:element> </xsd:schema>

Creamos un fichero XML que use ese esquema

Decimos que se valide contra un esquema

Y le damos los detalles (el fichero lo llamamos libros.xml)

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

26

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<?xml version="1.0" encoding="ISO-8859-1"?> <libros xmlns='http://www.adictosaltrabajo.com/esquemas/libro' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://www.adictosaltrabajo.com/esquemas/libro file:/C:/xml/libros.xsd'> <libro> <titulo>El fin de una odisea</titulo> <autor>Desconocido</autor> </libro> <libro> <titulo>Un lugar en la mente de Kerz</titulo> <autor>Desconocido</autor> </libro> </libros>

Bueno, hasta ahora no hemos realizado nada raro .... vamos con la parte especfica Invocamos fichero xjc.bat pasando como parmetro el trayecto del fichero xml. Tambin podemos especificar el directorio donde se generarn las clases xjc.bat -d directoriofinal ficheros.xsd

Ahora, en nuestro proyecto le vamos a incorporar los JAR de JAXB

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

27

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Las elegimos

Y pinchando sobre las propiedades del proyecto, aadimos el trayecto de los ficheros generados automticamente.

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

28

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Vemos es aspecto de nuestro proyecto

Y ya solo nos queda escribir el cdigo especfico.


package adictosjaxb; import import import import import com.adictosaltrabajo.esquemas.libro.*; com.adictosaltrabajo.esquemas.libro.impl.*; javax.xml.bind.*; java.io.*; java.util.*;

/** * * @author Roberto Canales */ public class Main { public static void depura(String cadena) { System.out.println("adictosjaxb: " + cadena); } public static void main(String[] args) { depura("Empezamos la operacin"); try { JAXBContext jc = JAXBContext.newInstance( "com.adictosaltrabajo.esquemas.libro" ); Unmarshaller u = jc.createUnmarshaller(); // es una chapuza pero para el ejemplo nos vale InputStream in = new FileInputStream("c:/xml/libros.xml"); if(in == null) { depura("No encuentro el fichero"); return; } // construimos el modelo a partir el stream de entrada Libros mifichero = (Libros)u.unmarshal( in ); // recuperamos la lista de libros List mislibros = mifichero.getLibro(); int numero = mislibros.size(); depura("El numero de libros es " +numero ); for (int i = 0; i < numero; i++) {

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

29

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Libro libroconcreto = (Libro)mislibros.get(i); depura(libroconcreto.getTitulo() + " - de - " + libroconcreto.getAutor());

// ahora aadimos un libro nuevo LibroTypeImpl nuevoLibro = new LibroTypeImpl(); // establecemos los elementos nuevoLibro.setTitulo("Domina tu proyecto"); nuevoLibro.setAutor("Annimo"); // aadimos a la lista mislibros.add(nuevoLibro); // vamos a pintar ahora el arbol XML generado para asegurarnos que se ha aadido Marshaller formateador = jc.createMarshaller(); formateador.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); formateador.marshal( mifichero, System.out ); // ahora escribimos a un fichero, en el correcto juego de caracteres formateador.setProperty(Marshaller.JAXB_ENCODING, "ISO-8859-1"); FileOutputStream salida = new FileOutputStream("c:/xml/salida.xml"); formateador.marshal( mifichero, salida); } catch(Exception e) // esto es otra chapucilla, no me copieis { depura("el error es " + e.toString()); }

} }

Analizamos el cdigo Si lo analizamos, veremos que con 4 lneas, hacemos operaciones comunes... Recuperar el contenido de un fichero:
JAXBContext jc = JAXBContext.newInstance( "com.adictosaltrabajo.esquemas.libro" ); Unmarshaller u = jc.createUnmarshaller(); // es una chapuza pero para el ejemplo nos vale InputStream in = new FileInputStream("c:/xml/libros.xml"); if(in == null) { depura("No encuentro el fichero"); return; } // construimos el modelo a partir el stream de entrada Libros mifichero = (Libros)u.unmarshal( in ); // recuperamos la lista de libros List mislibros = mifichero.getLibro(); int numero = mislibros.size(); depura("El numero de libros es " +numero ); for (int i = 0; i < numero; i++) { Libro libroconcreto = (Libro)mislibros.get(i); depura(libroconcreto.getTitulo() + " - de - " + libroconcreto.getAutor()); }

Insertar un nuevo nodo


// ahora aadimos un libro nuevo LibroTypeImpl nuevoLibro = new LibroTypeImpl(); // establecemos los elementos Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 30

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

nuevoLibro.setTitulo("Domina tu proyecto"); nuevoLibro.setAutor("Annimo"); // aadimos a la lista mislibros.add(nuevoLibro);

Volcar el contenido a la pantalla


// vamos a pintar ahora el arbol XML generado para asegurarnos que se ha aadido Marshaller formateador = jc.createMarshaller(); formateador.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE); formateador.marshal( mifichero, System.out );

Y escribir el contenido en un fichero


// ahora escribimos a un fichero, en el correcto juego de caracteres formateador.setProperty(Marshaller.JAXB_ENCODING, "ISO-8859-1"); FileOutputStream salida = new FileOutputStream("c:/xml/salida.xml"); formateador.marshal( mifichero, salida);

Conclusiones La opcin de JAXB, junto con JDOM, es una de mis preferidas para manipular de un modo rpido y sencillo ficheros XML. De todos modos podemos sacar algunas conclusiones importantes: Cada vez hay ms tcnicas para hacer lo mismo. Los conocimientos (aparentemente) cada vez tienen un ciclo de vida ms corto No es tan importante el manipular el fichero XML como definir bien su esquema desde un principio (lo que requiere saber analizar).

Artculo por Roberto Canales Mora

Bibliografa de XML
Libros y fuentes interesantes para la consulta y aprendizaje de XML. Hasta aqu llega nuestra breve introduccin a XML. Como se ha podido ver, XML es muy mplio y para tratar bien el tema ser necesario contar con muchas ms ayudas. Nuestro objetivo era ofrecer una buena introduccin para que aquellos que no conocan el mundo XML puedan ahora entender un poco en qu consiste y qu ventajas trae con l. Ahora proponemos un par de libros de XML que pueden servir para que las personas que han encontrado el tema interesante puedan continuar con su estudio. "XML al descubierto" Michael Morrison Ed. Prentice Hall, 2000 "eJava y XML&quote; Brett McLaughlin Ed. Anaya Multimedia, 2001

Estos libros han sido ledos y recomendados a nosotros por personas expertas en la materia. Hay otros muchos libros, pero hay que tener cuidado con lo que compramos acerca de XML pues hay posibilidades de adquirir libros que no nos ayudarn en nuestro aprendizaje, libros

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

31

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

incomestibles, hechos por marcianos, o libros que no se ajustan a la filosofa que trae consigo el XML. Tambin recomendamos aqu pasarse por la categora XML de nuestro buscador, donde se podrn encontrar enlaces que pueden completar tambin esta informacin. Muchas gracias por tu atencin y hasta pronto.

Artculo por Miguel Angel Alvarez

Apendice: Charla XML


Una charla sobre XML que se produjo en un chat. Trata temas interesantes que pueden complementar otros contenidos. El Miercoles por la noche en el canal #dtd del irc-hispano tuvimos la suerte de asistir a una magnifica charla de explicacion sobre el formato XML. Macoa nos deleito con su sapiencia y los asistentes pudieron aclarar sus dudas sobre el tema, menos mal que logramos rescatar el log del evento en cuestion. Curso sobre XML por Macoa, en el canal #dtd del IRC-Hispano 09-01-2002 Patrocinado por Macoa: http://dardhal.tiopaco.net y Trukulo: http://trukulo.cjb.net <Macoa> Que es XML? <Macoa> XML es un acrnimo que significa Lenguaje eXtensible de Marcas (en sajn) <Macoa> el cual posee unas ciertas caractersticas bastante curiosas <trukulo> ( Xtensible Markup Language <- esto es sajn ) <Macoa> bien <Macoa> A todos os sonar el lenguaje de Marcas por excelencia , HTML <trukulo> ( html - Hipertext Marking Language ) <Macoa> con ese lenguaje descriptivo, se crean pginas hipertextuales (que no pginas web) <Macoa> las cuales intentan, mediante una codificacin sencilla y comprensible por el ser humano, formatear una informacin dada, de manera visual <trukulo> macoa, una duda <Macoa> precisamente, el xito que HTML posee viene de aqui: al ser una sintaxis 'legible' y en cierto modo 'aprehensible' sin manual de instrucciones <trukulo> interesante q viene al caso <Macoa> dime <trukulo> <Magaly_> se crean pginas hipertextuales (que no pginas web)......................cual es la diferencia? ??
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 32

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<Macoa> Magaly_: el origen de las pginas hipertextuales era aprovechar de alguna manera la comunicacion entre redes, para compartir informacin <Macoa> o sea, dicho en plata <Macoa> Una pagina web no es HTML, pero HTML crea pginas web <trukulo> con permiso <trukulo> html es simplemente un formato de documento <Macoa> trukulo: eso hay que matizarlo (ahora mismo) <trukulo> una pagina web es la interpretacion de un documento por un parser (navegador) <trukulo> matiza pues <Macoa> lo que venia a decir: HTML es un 'formateador' de textos <Macoa> ahora bien, un agente computacional, solo es capaz de, como mucho, traducir esas marcas para formatear el texto <Macoa> nunca puede, a priori, extraer el significado del texto. <Macoa> pongo un ejemplo: <Macoa> en un documento HTML encontramos: <Macoa> <H1> Titulares </H1> <Macoa> y en otro cualquiera podemos encontrar <Macoa> <H1> Trukulo, a que huelen las nubes </H1> <trukulo> <i>a coo</i> <Macoa> el computador slo sera capaz de 'formatear' el texto <trukulo> preguntan por aqui q es un agente computacional <Macoa> un ordenador con un programa determinado y que usa estructuras de datos <Macoa> ahora bien <Macoa> vamos a hacer un pequeo anlisis que nos acerca a la filosofa de XML <Macoa> tomamos 3 portales <Macoa> por ejemplo www.terra.es www.wanadoo.es y www.ya.com <Macoa> si analizamos la estructura de los documentos, sin hacer caso del formato (negrita, cursiva, alineacion, parrafos) <Macoa> obtenemos una estructura 'semntica' del portal <Macoa> por ejemplo, podemos observar: <Macoa> un portal tiene cuatro partes principales <Macoa> la primera es el anagrama/logotipo y la imagen de empresa <Macoa> otra parte es el men de contenidos <Macoa> otra es la tabla de contenidos importantes/novedades <Macoa> y por ltimo crditos y disclaimers <Macoa> a su vez, podemos ir descomponiendo cada parte en ms subpartes

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

33

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<Macoa> hasta llegar a un nivel en que se obtengan conceptos como 'valor de' <Macoa> por ejemplo : el valor de una entrada del menu del portal es 'Economa' <Macoa> Si os fijais... TODOS los portales tienen la misma estructura semntica (que no formato) --> sibannac (Druida@D8yplk.DWYC79.virtual) has joined #dtd <-- slack has quit (Signed off) <Macoa> justamente es aqui donde aparece el concepto de XML como contrapartida a HTML <Macoa> HTML describe formatos. XML describe estructuras de informacin (a partir de ahora semntica) <Macoa> Cmo se consigue esto? <Macoa> para ello voy a hacer una pequea comparacin estilo Pimpinela entre HTML y XML <Macoa> HTML es un lenguaje de marcas. XML tambin lo es <Macoa> las marcas tienen la misma gramtica de formacin: <elemento> </elemento> <Macoa> sin embargo, en XML estricto, no se permiten maysculas <Macoa> HTML posee un conjunto de vocablos que describen el formato: td table br input form etc.... <Macoa> XML deja al usuario la creacin de dicho vocabulario (!) <Macoa> por ejemplo <Macoa> nuestro portal se vera as <Macoa> <portal> <Macoa> <anagrama> blah blah blah </anagrama> <Macoa> <menu> blah blah blah </menu> <Macoa> <novedades> blah blah blah </novedades> --- trukulo has changed the topic to: Curso de XML por Macoa y patrocinado por http://dardhal.tiopaco.net (dudas a trukulo en privado) <Macoa> <creditos> blah blah blah </creditos> <Macoa> </portal> <Macoa> si os fijais, no aparece NADA de informacin de formato.. pero queda totalmente descrito nuestro portal <Macoa> otra caracterstica importante que difiere entre HTML y XML son las etiquetas de cierre <Macoa> HTML permite 'omitir' ciertas etiquetas (por ejemplo </html> </tr>)..... <Macoa> XML NUNCA admite esta licencia <trukulo> Macoa: una duda de regeWork <Macoa> si <trukulo> rege pregunta: dentro de las marcas XML que lenguaje usa? <Macoa> (descasito uf.... sponsored by http://dardhal.tiopaco.net)

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

34

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<Macoa> regeWork: se crea por el usuario. T mismo decides el nombre de las marcas <Macoa> de ahi la potencia. Nos sirve para crear descripciones de portales, de una agenda, de un acta notarial, etc.... <Macoa> justamente en eso entraremos ahora <Macoa> resuelto? <trukulo> no <trukulo> espera --- Macoa gives voice to regeWork <Macoa> regeWork: habla <regeWork> thx <regeWork> aver lo de las marcas lo tengo claro <Macoa> si <regeWork> yo me referia a que ba dentro de las marcas <Macoa> ok <Macoa> pondr un ejemplo ms clarificador: <Macoa> <tarjetavisita> <regeWork> o xml solo aze estrukturas por llamarlo asi? <Macoa> <nombre>Macoa</nombre> <Macoa> <apellidos>Jan</apellidos> <Macoa> <url>http://dardhal.tiopaco.net</url> <Macoa> </tarjetavisita> <Macoa> qued claro? <regeWork> oks <regeWork> si <Macoa> vale <Macoa> continuamos <trukulo> Macoa: las etiquetas las explicas luego no ? --- Macoa removes voice from regeWork <Macoa> trukulo: ahora mismo.. un inciso antes <trukulo> el q tu quieras <Macoa> como observais, no se describe formato... Esto no quiere decir que el documento XML final no tenga formato, todo lo contrario. Ms adelante veremos como obtiene formato un XML <Macoa> ahora vamos a pasar al tema de las marcas <Macoa> al hilo de la cuestin anterior, todo el mundo podra hacerse sus marcas <Macoa> imagnense que desbarajuste

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

35

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<Macoa> vamos a poner otro ejemplo <Macoa> imaginemos que un servidor web tiene 100 documentos XML 'tarjetavisita' como el anterior <Macoa> con 100 contactos de empresa <Macoa> ahora desarrollamos un programa cliente que obtiene esos 100 documentos <Macoa> y busca por ejemplo la url de todos para despues procesarla <Macoa> como observais, cliente y servidor tienen que ponerse de acuerdo en una sola cosa <Macoa> en el nombre de las marcas y en que significa cada una <Macoa> De ah que exista una necesidad de 'normalizar' u obligar a un programa que utilice tecnologa XML a utilizar un lenguaje determinado <Macoa> 1 seg <Macoa> ya <Macoa> o sea: el cliente ha de ver si lo que ha recibido es 'correcto' <Macoa> y se ajusta a las etiquetas que el conoce <Macoa> para ello estn las DTD <Macoa> Document Type Definition <Macoa> Definicion de Tipo de Documento <Macoa> son unos documentos que definen, de manera inequvoca las marcas que se utilizarn. <Macoa> por ejemplo, en lenguaje natural, el DTD de nuestra tarjeta de visita sera el siguiente: <Macoa> Tenemos un documento llamado tarjetavisita. Este se compone de tres elemenos, los cuales aparecen uno detras de otro <Macoa> Estos elementos son: nombre, apellidos y url <trukulo> un inciso <Macoa> a su vez, cada elemento, en su interior, no posee ninguna marca <trukulo> esto para el q sepa C , es una estructura <Macoa> sino el texto que representa <Macoa> correcto, pero prefiero no comparar con estructuras de programacion <trukulo> es para hacerlo mas visual, perdona <Macoa> una primera aproximacin formal sera: <Macoa> Documento tarjetavisita -> nombre, apellidos, url <Macoa> nombre -> texto_plano <Macoa> apellidos -> texto_plano <Macoa> url -> texto_plano <trukulo> es como definir una tabla de una base de datos, no ? <Macoa> Si ambos elementos (cliente y servidor) manejan la misma especificacin, sabrn en
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 36

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

cada momento que significa cada cosa, y podrn detectar errores <Macoa> trukulo: tambien es una aproximacion matizable <Macoa> eso es el ultimo punto <Macoa> hay que tener en cuenta que XML no pone lmite a la profundidad de marcas <Macoa> o sea, que podemos definir el lenguaje que nos venga en gana <Macoa> La sintaxis de la DTD sera la siguiente: <Macoa> <!ELEMENT tarjetavisita (nombre,apellido,url)> <Macoa> <!ELEMENT nombre #PCDATA> <Macoa> <!ELEMENT apellido #PCDATA> <Macoa> <!ELEMENT url #PCDATA> <Macoa> con esas lineas, se define el vocabulario <Macoa> ahora bien <Macoa> Quin lee esa definicin y qu software/libreras existen para manejar XML? <Macoa> La respuesta es 'el parser' <Macoa> El parser XML es un pequeo programa/libreria/modulo que se encarga de toda la validacin y anlisis de XML de forma transparente al usuario <Macoa> normalmente est incluido en los navegadores de hoy en da y como libreras separadas <Macoa> bueno <Macoa> antes de entrar en el parser <Macoa> descansito y dudas <trukulo> alguien tiene alguna duda ? <Macoa> hay alguna duda trukulo? <trukulo> bueno, yo queria decir algo de todas formas <trukulo> el XML es un estandar adoptado por la w3c <trukulo> asi q sera el estandar de facto <trukulo> hay una duda de fale --- Macoa gives voice to ^fale <Macoa> habla ^fale <trukulo> <^fale> duda:el xml pa k vale? <^fale> joder truku <^fale> no se te pue haser una broma <Macoa> xDDD <^fale> ehh, io.... gora vallekas! --- Macoa removes voice from ^fale <trukulo> es q esa duda es interesante
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 37

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<Macoa> bueno <trukulo> en serio <Macoa> entonces entramos en el parser, y as encajo con ^fale <trukulo> vale, un seg <trukulo> antes rege <Macoa> venga --- trukulo gives voice to regeWork <regeWork> aver <regeWork> el server tb necesita un modulo para manejar XML? <trukulo> umm, a ver <Macoa> regeWork: en principio no. el parser lo necesita aquel que tenga que extraer informacion del documento <regeWork> osea el navegadr <Macoa> en este caso <regeWork> navegador <regeWork> ok <Macoa> a veces el server tambien necesita manejar info <Macoa> todo eso viene ahora ;) <Macoa> continuo --- Macoa removes voice from regeWork <Macoa> cualquiera que haya mantenido una pgina web sabr lo costoso que es mantenerla de forma eficaz <trukulo> estatica, se refiere <Macoa> imaginense la pgina frontal de terra actualizarla a pelo en HTML <Macoa> claro <Macoa> sera un lo <Macoa> sin embargo, volviendo al portal <Macoa> manipular documentos XML es mas sencillo <Macoa> ya que no estamos viendo <TD> <FONT> etc... <Macoa> sino <noticia> <titular> <menu> <creditos> <Macoa> ahora bien <Macoa> hemos dicho que XML no tiene formato <Macoa> pero nosotros podemos (y vamos) a agregrselo <Macoa> de que modo? <Macoa> utilizando un 'transformador' <Macoa> llamado XSLT
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 38

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<Macoa> este transformador, tomar como entrada un documento XML con su DTD, y nos dar una salida HTML <Macoa> para ello, tomar como datos, tambin, una serie de reglas de transformacin <Macoa> no entrar en la sintaxis, pero s en la idea bsica: <Macoa> vamos a imaginar las tarjetas de visita <Macoa> recordemos: <Macoa> [00:46:10] <Macoa> <tarjetavisita> <Macoa> [00:46:18] <Macoa> <nombre>Macoa</nombre> <Macoa> [00:46:31] <Macoa> <apellidos>Jan</apellidos> <Macoa> [00:46:49] <Macoa> <url>http://dardhal.tiopaco.net</url> <Macoa> [00:46:53] <Macoa> </tarjetavisita> <Macoa> ahora la DTD <Macoa> [00:59:34] <Macoa> <!ELEMENT tarjetavisita (nombre,apellido,url)> <Macoa> [00:59:42] <Macoa> <!ELEMENT nombre #PCDATA> <Macoa> [00:59:52] <Macoa> <!ELEMENT apellido #PCDATA> <Macoa> [00:59:59] <Macoa> <!ELEMENT url #PCDATA> <Macoa> y ahora las reglas de transformacion <Macoa> elemento tarjetavisita=><TABLE BGCOLOR=............> <Macoa> elemento nombre=><TR><TD>Nombre:</TD><TD>$valordenombre <Macoa> </td></tr> (se me olvid <Macoa> elemento apellido=><TR><TD>Apellido:</TD><TD>$valordeapellido>/TD></TR> <Macoa> elemento url=><TR><TD>Url:</TD><TD><a href=$valordeapellido>$valor de apellido</a>/TD></TR> <trukulo> convierte los elementos a html, vamos, con tablas, formatos, fuentes, etc... <Macoa> justamente <Macoa> obtendramos un bonito cdigo HTML <Macoa> estas transformaciones que puedan ser triviales en el ejemplo <Macoa> a la hora del proceso de un archivo de unos 50 KB con unas 20 etiquetas, son ms que poderosas <Macoa> una actualizacin en HTML sera costosa, mientras que en XML solo consiste en cambiar el valor actualizado, encontrandose el documento perfectamente organizado <Macoa> este es uno de los muchos usos de XML <Macoa> otro uso: imaginense una BBDD remota <Macoa> se pide una informacion determinada, y se devuelven estas 'tarjetasvisita' <Macoa> el programa cliente, con ayuda del parser, es capaz, mediante unas funciones bsicas de acceso al documento, obtener la informacion <Macoa> independientemente sea la BBDD origen de un tipo u otro (SO, etc..) y el cliente del
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 39

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

mismo modo <Macoa> Estas funciones estn definidas desde dos puntos de vista, los cuales difieren de la implementacin <Macoa> estos son DOM y SAX (las interfaces o conjunto de funciones) <trukulo> esto se ve perfectamente con programas como Kougar ) <trukulo> q es un parser cliente de XML para KDE ) <Macoa> por ejemplo. un programador puede acceder a la tarjeta de visita de la siguiente forma <trukulo> perdon, kugar <Macoa> print etiqueta-tarjeta->nombre <Macoa> de forma transparente <Macoa> descanso <Macoa> alguna duda? <trukulo> yo tengo un inciso q hacer <trukulo> respecto a la generacion de webs com xml <Macoa> adelante <trukulo> que ventajas tiene eso contra un php+mysql o un asp+sql server ? bien, es sencillo <trukulo> el codigo html siempre es mucho menos costoso para un servidor que un codigo dinamico <trukulo> por lo cual, una vez generado los html con el xml tenemos las ventajas de los dos sistemas, y el inconveniente de ninguno <trukulo> velocidad y facilidad de creacion de contenido <trukulo> esto es para grandes portales que tienen muchas visitas diarias <Macoa> hay un pequeo problema trukulo, pero que no suele darse <trukulo> o para servidores con poca potencia <trukulo> cual? <Macoa> y es cuando el origen de datos XML es un documento extenso (20-40 megas) <Macoa> pero no suele ser el caso comn <Macoa> as que no tocaremos eso XD <Macoa> bueno <Macoa> continuamos <trukulo> espera <Macoa> si --- trukulo gives voice to regeWork <regeWork> lestaba diciendo a truku <regeWork> k en asp por ej

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

40

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<Macoa> si <regeWork> el k interpereta es el server <regeWork> pero en XML si interpreta el cliente <trukulo> veamos <Macoa> a ver <trukulo> no exactamente <Macoa> regeWork: <regeWork> pasas la karga de procesamiento a este no? <Macoa> regeWork: en XML existen las dos posibilidades <trukulo> el xml ya se ha pasado a html <Macoa> regeWork: t explicitamente puedes <trukulo> asi q no haria falta ningun proceso , ni en cliente, ni en servidor <Macoa> a) indicar al servidor que transforme a XML <Macoa> b) enviar el XML y las reglas de transformacion al cliente y que se las apae el <Macoa> incluso ... <Macoa> c) Hacer las transformaciones en la linea de ordenes, y salvar los HTML <trukulo> a esa ultima me referia yo <trukulo> para grandes servidores web <regeWork> aja <trukulo> pero macoa lo explica mejor <trukulo> ;) <regeWork> cual es el metodo ams usado para por ej, hacer un portal? <Macoa> bueno <regeWork> mas* <Macoa> regeWork: la transformacion en el servidor <Macoa> terra esta hecho as <trukulo> Macoa: depende del portal <regeWork> ok <trukulo> elpais por ejemplo <trukulo> produce html a partir de paginas dinamicas con php+mysql <Macoa> ColdFusion utiliza un lenguaje propio XML (CFM => ColdFusion Markup Language) <trukulo> es un caso raro, pero aumenta muchisimo la productividad <Macoa> no es sino un XML con sus palabras definidas <regeWork> truku puedes esplikar un poko eso? <trukulo> si

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

41

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<Macoa> (y algunas cosas mas ;) ) <trukulo> a ver <trukulo> las webs dinamicas generan en tiempo real html para el cliente <trukulo> sin embargo, hay un pequeo truco <regeWork> si php por ej <trukulo> generar el html y guardarlo en el servidor <trukulo> asi accedes no a php, sino a htm <Macoa> regeWork: consiste en 'pre' procesar las transformaciones y alojarlas <Macoa> un php-caching <regeWork> aja <trukulo> eso <Macoa> bueno <Macoa> que nos salimos XD <trukulo> si, sigamos <regeWork> venga xD --- Macoa removes voice from regeWork <Macoa> a ver por donde iba <trukulo> un seg <Macoa> si <trukulo> 2<siette> el caso a) no requiere de un navegador con soporte xml y el resto si, no? <Macoa> siette: IE 4.0 con Service Pack de ese ya soporta XML <Macoa> Netscape 6 /mozilla tambin <Macoa> opera tambin <Macoa> solo los pequeines no ;) <trukulo> y en todo caso, serian los casos a y c los soportados por cualquier navegador html <Macoa> siette: de ahi que mayormente se preprocese en el servidor <Macoa> de modo que el cliente solo vea XML <Macoa> perdon HTML <Macoa> xD <Macoa> bueno <Macoa> continuamos <Macoa> esta charla se ha orientado mayormente a XML como soporte de informacin transformable a HTML <Macoa> pero no solo se puede transformar a HTML <Macoa> con las reglas adecuadas, hasta podemos obtener un PS!

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

42

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<trukulo> y pdf <Macoa> otro punto importante es el sistema de almacenamiento <Macoa> Son altamente conocidos los SGBD (BBDD) relacionales, tipo mysql, postgresql, oracle rdbms <Macoa> sin embargo, con XML, como podemos ver, las estructuras no tienen una forma tabular <Macoa> las estructuras tabulares son un caso particular de XML <Macoa> ejemplo: <Macoa> <row 1> <Macoa> perdon <Macoa> <row id=1> <Macoa> <col id='nombre'>macoa</col> <Macoa> <col id='apellidos'>jan</col> <Macoa> <col id='url'>dardhal.tiopaco.net</col> <Macoa> </row> <Macoa> seria como hacer un SELECT * from fichas , donde devuelve la fila citada <Macoa> pero como vemos, XML puede anidar etiquetas <Macoa> formando Objetos <Macoa> <object id=casa> <Macoa> <element id=habitacion>camas</element> <Macoa> <element id=salon> <Macoa> <part id=electrodomesticos> <Macoa> etc.... <trukulo> umm <trukulo> digamos tiene una estructura de arbol ? <Macoa> esto, a aquellos que conozcan sistemas de gestion de base de datos orientadas a objetos les ser familiar <Macoa> justamente. XML ES un ARBOL <Macoa> que tiene una hoja final cuyo valor es el texto a buscar <trukulo> es q recuerda sobremanera a un directorio Novell <Macoa> como antes dije, DOM permite recorrer ese arbol de nodos <Macoa> hasta encontrrar un nodo determinado <Macoa> y obtener informacion de el <Macoa> (esto para los programadores) <Macoa> bueno <Macoa> creo que ya he acabado con la vision general de XML que pretenda dar. Sobre esto

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

43

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

hay muchas muchas cosas <Macoa> cosas ms modernas. Por ejemplo, la DTD que antes nombr no se utiliza ya. <Macoa> ahora se utiliza otro tipo de definicion de lenguaje llamado XML Schema <Macoa> pero la idea bsica es la misma <trukulo> es similar a las CSS <trukulo> cascade style sheets del html <Macoa> hay que decir que XML crece dia a dia de manera agigantada <Macoa> y que se est convirtiendo en el estandar de facto en la intercomunicacion de aplicaciones <Macoa> ejemplos son XML-RPC <Macoa> llamadas RPC utilizando como flujo de datos documentos XML (KDE utiliza esto para intercomunicarse) <Macoa> la mayoria de sistemas de mensajera estn adoptando este tipo de documento <trukulo> rpc : remote procedure call ) <Macoa> de este modo se obtiene mayor independencia con SO, aplicaciones, etc... <trukulo> llamada de procedimiento remoto ) <Macoa> bueno <trukulo> de hecho <Macoa> ya esta ;) <trukulo> una cosa a comentar sobre las ventajas de xml <Macoa> venga <trukulo> es q aparte de poder ser multiplataforma facilmente <trukulo> es multiaplicacion <Macoa> claro <trukulo> lo mismo da que se use Lyx, que Openoffice, q Wordf <Macoa> por ejemplo <trukulo> si leen XML los documentos son todos compatibles entre si <Macoa> Word > 97 utiliza XML para generar las Tablas de contenidos <Macoa> HP utiliza XML para definir el contenido de los archivos cab/zip de sus drivers <trukulo> el docbook de linux se esta pasando ahora de sgml a xml <Macoa> dmoz.org open directory utiliza XML para 'toda' la informacin <Macoa> de hecho es descargable el documento <Macoa> para bajarte el buscador a casa XD <trukulo> y no solo eso <trukulo> sino que MacOS X lo utiliza para TODAS (q yo sepa) sus configuraciones <Macoa> se pueden definir lenguajes en XML que describen interfaces (qt-designer, mozilla,
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 44

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

etc...) <Macoa> bueno <Macoa> trukulo: <Macoa> creo que ya esta bien ;) <trukulo> si, creo que por hoy es bastante <Macoa> [00:22:23] <Macoa> Buenas noches tengan vds. <Macoa> Me falta decir que los atributos XML van SIEMPRE entrecomillados

Artculo por Trukulo

XBRL. El lenguaje de los Negocios


Descripcin no tcnica del lenguaje XBRL, que es un derivado de XML. Si la asimilacin de un estndar por parte de la industria es siempre un proceso largo y tortuoso, la adopcin de un estndar abierto es una buena noticia para todos. Si adems el consenso se produce en un sector tan complejo como el de las finanzas y a escala mundial, el logro nos hace recuperar la fe en el mundo de la informtica. Quiz an no est todo perdido. eXtensible Business Reporting Language permite crear taxonomas XML de intercambio de datos para el sector financiero; es un lenguaje universal y de carcter abierto no propietario, y por tanto, libre de licencias por uso y codificacin. El creador de XBRL es un norteamericano, ex auditor de PriceWaterhouse, llamado Charles Hoffman, que es ahora Director de innovacin de la empresa UBMatrix. Su idea inicial consista en aprovechar el potencial de un lenguaje emergente, flexible y abierto, llamado XML, al mundo del reporte financiero. Desde entonces, el uso de XBRL est creciendo de manera exponencial. En Espaa, Software AG -the XML Company- ha sido la primera empresa en reportar sus estados financieros en XBRL, pero otras muchas como PriceWaterhouse, Telefnica, El Corte Ingls o BBVA han apostado con fuerza y estn arrastrando a miles de otras compaas en nuestro pas. De este modo, el Banco de Espaa ha asumido su papel regulador y lidera un proyecto para impulsar la utilizacin de XBRL en Espaa (Jurisdiccin Espaola XBRL), de la cual participan tambin organizaciones como la CNMV, Registradores de Espaa o AECA. En otras partes del mundo est ocurriendo exactamente lo mismo y hasta empresas como Microsoft se tienen que rendir a la evidencia y se suman al nutrido grupo de empresas que elaboran desarrollos en XBRL. De hecho, existen ya mdulos de exportacin XBRL para Excel. Las principales ventajas de XBRL son: - Inmediatez en la transmisin de la informacin a los accionistas, los analistas y al mercado en general, lo que redunda en una mayor transparencia. - Reduccin de errores, al no tenerse que reintroducir la informacin. - Reduccin de costes. - Automatizacin de procesos. - Flexibilidad, al poderse exportar la informacin en cualquier formato existente.
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 45

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

- Interoperabilidad entre los distintos sistemas informticos. Al igual que en otros sectores importantes de la industria, con el HL7 o el XrML; XBRL nos muestra la potencia y flexibilidad del lenguaje XML, que en el futuro prximo a buen seguro seguir dando que hablar. Ms informacin en: www.xbrl.org xbrl.softwareag.es

Artculo por Juanjo Palacios

RSS y Sindicacin
Qu es, cmo se utiliza y ventajas del RSS, as como lectores RSS recomendados. Qu es RSS "RSS" es un acrnimo que significa Really Simple Syndication (Sindicacin Realmente Simple). Es un formato XML indicado especialmente para sitios de noticias que cambien con relativa frecuencia, cuyos documentos estn estructurados en canales que a su vez se componen de artculos. Se ha popularizado especialmente como un formato alternativo de difusin de weblogs. (es.wikipedia.org/wiki/RSS) Otros significados de RSS son RDF Site Summary o Rich Site Summary. Este sencillo formato permite que cualquier sitio web comparta sus contenidos a travs de un archivo RSS (sindicacin). Cada uno de estos archivos se denomina frecuentemente como Feed (ingls). El RSS fue un formato utilizado para compartir las novedades de sus canales temticos por portales de contenidos como Netscape.com. Actualmente, el RSS se ha popularizado mucho con la aparicin de los Weblogs. Estos diarios personales online suelen incluir un archivo RSS para que los lectores se suscriban y se mantengan al da de las novedades publicadas. Otros sitios ms grandes como portales, diarios on line, sitios corporativos se han unido al RSS para compartir sus contenidos y novedades. (Yahoo!, El Mundo, BBC, ... etc.) Un mismo sitio puede generar tantos feeds como desee. Los contenidos sindicados pueden incluir titulares de artculos o noticias, descripciones, eventos, enlaces. Su uso est abierto a la imaginacin. RSS en alzado En alzado.org compartimos en este formato (RSS) los titulares de artculos, las ofertas de empleo y los eventos de la agenda . Ventajas del RSS

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

46

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Spam o correos no solicitados, cuentas de email saturadas de boletines... El RSS est desbancando a otros medios como las suscripciones a boletines de novedades de estar al da sobre sitios web. Precio: tanto los contenidos como los programas para leer RSS son gratis. Variedad: Weblogs, portales, diarios online, sitios corporativos, sitios especializados, catlogos y novedades de sitios de ecommerce. Se pueden encontrar archivos RSS de cualquier tema imaginable. Actualizacin: Te permite estar al da de tus temas de inters. Ahorro de tiempo: olvdate de navegar buscando novedades, los contenidos "vienen a t". Personalizacin: t decides a qu contenidos te suscribes. Protege tu cuenta de email: Para suscribirte no es necesario dar tu cuenta de correo evitando que tu direccin quede registrada en bases de datos fuera de tu control. Cmo utilizar RSS Como usuario puedes suscribirte gratuitamente a tantos RSS como desees y estar al da de las novedades en tus sitios preferidos sin necesidad de tener que acudir a ellos cada da ni registrarse en boletines de email. Todo lo que necesitas es un lector de RSS y tendrs tu espacio personal de informacin. Si quieres buscar RSS por temas, palabras clave, puedes utilizar servicios de bsqueda como Feedster o Daypop. Lectores RSS Los lectores de RSS son programas que facilitan la gestin de suscripciones a RSS y la recepcin de contenidos. Existe gran cantidad de programas lectores de RSS que se instalan en diferentes sistemas operativos o incluso desde un navegador web mediante suscripciones personalizadas. Si no quieres o no puedes instalarte un programa en tu ordenador te recomendamos esta opcin. Existe multitud de programas para la suscripcin y lectura de RSS: busca en About.com o en el Directorio de Google. Lectores RSS recomendados Nombre Bloglines Sistema Web

Amphetade Web sk

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

47

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

NetNewsWir Mac OS X e News Fire Sharp Reader Feed Demon Mac OS X

Windows

Windows

NewsGator Windows (Outlook) Straw Linux

Artculo por Luis Villa

Uso de XML y XSL en JSPs


Explicaremos cmo combinar XML y XSL para formatear un documento XML en el servidor con versiones antiguas de JSP . Utilizando JSP 2.0, podemos combinar JSP y XSL para formatear documentos XML en el servidor No siempre es posible (ni conveniente) utilizar lo ltimo de lo ltimo. Si os fijis en las grandes organizaciones, normalmente estandarizan una versin de Java, JSP, EJB, etc... y hasta que no pasa un tiempo y se consolidan las tecnologas (y aparecen parches) no se cambia de versin. Entonces, es posible que tengis que apaaros para hacer lo mismo ..... con versiones anteriores de JSP. Veris que es bastante sencillo y os vamos a mostrar como se hace paso a paso.... utilizando el patrn MVC. Pondremos los ejemplos con NetBeans. Mucha gente me pregunta por qu lo uso..... La razn es sencilla, me parece muy intuitivo... aunque hay otras opciones ms potentes. Crear el Proyecto Creamos en NetBeans un proyecto

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

48

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Vamos a crear unos documento XML y XSL con los generadores de cdigo.

Seleccionamos dentro del grupo XML

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

49

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Asignamos un nombre

Vamos a utilizar este documento como base:


<?xml version="1.0" encoding="UTF-8"?> <tutoriales> <tutorial> <autor>rcanales@autentia.com</autor> <nombre>JSP 2.0</nombre> <enlace>jspel</enlace> <descripcion>Nuevas caracteristicas de JSPs 2.0</descripcion> </tutorial> <tutorial> <autor>alejandropg@autentia.com</autor> <nombre>Struts y Eclipse</nombre> <enlace>struts</enlace> <descripcion>Configuracin del entorno Struts en Eclipse</descripcion> </tutorial> </tutoriales>

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

50

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Repetimos pero ahora seleccionamos un documento XSL

Escribimos nuestro XSL


<?xml version="1.0" encoding="UTF-8" ?> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="html"/> <xsl:template match="/"> <table border="1"> <tr> <td><b>Autor</b></td> <td><b>Nombre</b></td> <td><b>Enlace</b></td> <td><b>Descripcin</b></td> </tr> <xsl:for-each select="//tutorial"> <tr> <td><xsl:value-of select="autor"/></td> <td><xsl:value-of select="nombre"/></td> <td><xsl:value-of select="enlace"/></td> <td><xsl:value-of select="descripcion"/></td> </tr> </xsl:for-each> </table> </xsl:template> </xsl:stylesheet>

Probar la transformacin en NetBeans Vamos a usar las caractersticas de NetBeans para probar como quedara.... Seleccionamos, pinchando el botn derecho sobre el XML o XSL

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

51

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Seleccionamos los ficheros

Y vemos el resultado

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

52

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Activamos nuestro directorio como una WebApp

Introducir el cdigo Java Ahora, vamos a escribir una clase Java que sea capaz de hacer una transformacin y retornrnosla como una cadena.

Escribir la clase Java de prueba En este caso, vamos a utilizar un interfaz para motores de transformacin denominado JAXP
Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 53

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

(ver documentacin en SUN) No tenemos que incluir nada extraordinario por la versin de Java que estamos usando.
import java.io.*; import javax.xml.transform.*; import javax.xml.transform.sax.*; import javax.xml.transform.stream.*; import org.xml.sax.*; /** * * @author Roberto Canales */ public class transformador { void depura (String pCadena) { System.out.println("Mensaje: " + pCadena); } public static void main(String [] args) { transformador p = new transformador(); { try p.depura("Comenzamos transformacin"); p.depura(p.transformar()); p.depura("Terminamos");

} catch(Exception e) { p.depura("Errores en aplicacin"); e.printStackTrace(); }

public String transformar() throws Exception { String xmlOrigen = "C:\\ejemplos\\jaxpjsp\\xmlbase.xml"; String xslOrigen = "C:\\ejemplos\\jaxpjsp\\xslbase.xsl"; Source xmlSource = new StreamSource(new File(xmlOrigen)); Source xsltSource = new StreamSource(new File(xslOrigen)); StringWriter cadenaSalida = new StringWriter(); Result bufferResultado = new StreamResult(cadenaSalida); TransformerFactory factoriaTrans = TransformerFactory.newInstance(); Transformer transformador = factoriaTrans.newTransformer(xsltSource); transformador.transform(xmlSource, bufferResultado); } } return cadenaSalida.toString();

Si ejecutamos este cdigo, veremos en la pantalla de salida: Mensaje: Comenzamos transformacin Mensaje: <table border="1"> <br> <tr> <td><b>Autor</b></td><td><b>Nombre</b> </td><td><b>Enlace</b></td><td><b>Descripcin</b></td>

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

54

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

</tr> <tr> <td>rcanales@autentia.com</td><td>JSP 2.0</td><td>jspel</td><td>Nuevas caracteristicas de JSPs 2.0</td> </tr> <tr> <td>alejandropg@autentia.com</td><td>Struts y Eclipse</td><td>struts</td><td>Configuracin del entorno Structs en Eclipse</td> </tr> </table> Mensaje: Terminamos Es decir, funciona...... Crear el MVC Ahora, vamos a crear un servlet, que generar un XML y lo pasar (en MVC) a un JSP. Vamos a introducir directamente el XML en una cadena de caracteres.... dando por supuesto que se obtendra de otro modo (por ejemplo usando una Base de Datos XML) Este JSP, puede ejecutar el cdigo de la transformacin con distintas tcnicas: Scriplet (Cdigo Java en el JSP) Un Java Bean Un TAG de usuario Usando JSTL de JSP 2.0

Los distintos mtodos de comunicacin entre estos elementos (Servlets, Beans, JSPs y Tags los podis ver en otro de loa tutoriales de adictosaltrabajo) Os mostramos como hacerlo con un JSP con Scriplet... el resto de los mtodos es muy sencillo . El servlet
import java.io.*; import java.net.*; import javax.servlet.*; import javax.servlet.http.*; public class controlador extends HttpServlet { protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException { try { String elXML = "<tutoriales><tutorial><autor>rcanales@autentia.com</autor> <nombre>JSP 2.0</nombre><enlace>jspel</enlace><descripcion>Nuevas caracteristicas de JSPs 2.0</descripcion> </tutorial><tutorial><autor>alejandropg@autentia.com</autor><nombre>Struts y Eclipse</nombre> <enlace>struts</enlace><descripcion>Configuracin del entorno Structs en Eclipse</descripcion> Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin. 55

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

</tutorial></tutoriales>"; request.setAttribute ("xml",elXML); getServletConfig().getServletContext().getRequestDispatcher("/presentacion.jsp").forward(request, response); } catch (Exception ex) { ex.printStackTrace (); } } }

EL JSP
<%@page contentType="text/html" import="java.io.*,javax.xml.transform.*,javax.xml.transform.sax.*, javax.xml.transform.stream.*,org.xml.sax.*"%> <html> <head><title>JSP Page</title></head> <body> <center> <H1>JSP, transformando XML con XSL</h1> <br> <% String xmlOrigen = (String)request.getAttribute("xml"); String xslOrigen = "C:\\ejemplos\\jaxpjsp\\xslbase.xsl"; Source xmlSource = new StreamSource(new StringBufferInputStream(xmlOrigen)); Source xsltSource = new StreamSource(new File(xslOrigen)); StringWriter cadenaSalida = new StringWriter(); Result bufferResultado = new StreamResult(cadenaSalida); TransformerFactory factoriaTrans = TransformerFactory.newInstance(); Transformer transformador = factoriaTrans.newTransformer(xsltSource); transformador.transform(xmlSource, bufferResultado); out.print(cadenaSalida.toString()); %> </center> </body> </html>

La salida es:

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

56

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

Bueno, ya sabis como hacerlo ..... y con Struts.... sera igual de sencillo.

Artculo por Roberto Canales Mora

SiteMaps de Google en PHP


Cmo crear un archivo xml para nuestro "San Google" usando PHP y no morir en el intento. Antes de poner manos a la obra vamos a hablar un poco de Google SiteMaps. Google Sitemaps permite a los webmasters aadir en un XML las pginas que quieren que estn en el index de Google. La participacin en el programa es gratuita, la inclusin no est garantizada, pero Google piensa que de este modo podr llegar a indexar un mayor nmero de pginas que con el simple rastreo tradicional. El XML tambin dejar que los webmasters indiquen cada cuanto se actualiza su pgina o cada cuanto tiempo quiere que sea revisitado. Como funciona el nuevo programa? Los webmasters crean un archivo XML con las URLs que quiere sean rastreadas, as como una pequea anotacin por URL indicando la ltima actualizacin y el ritmo de actualizacin de la pgina. Google alojar el Sitemap en sus servidores indicandote exactamente donde se encuentra. Solo es necesatio utilizar una cuenta de Google y registrarte de manera gratuita. Este script toma el directorio raz de nuestro sitio web, lo lee y lista todos aquellos archivos cuya extensin sea .php, pero ustedes pueden cambiarlo para que liste lo que ustedes deseen, en base a sus necesidades, esto es slo un ejemplo. Pero basta de palabras y vamos a ver el codigo

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

57

Tu mejor ayuda para aprender a hacer webs www.desarrolloweb.com

<?php if ($gestor = opendir('.')) { //Abrimos el directorio donde estamos parados, aca pueden darle el directorio que deseen echo "<" . "?xml version=\"1.0\" encoding=\"UTF-8\"" . "?" . ">"; //etiqueta de inicio de un archivo XML, parseado para no tener problemas con las etiquetas /* Datos para el sitemaps de Google, chequea esta parte en https://www.google.com/webmasters/sitemaps/docs/es/overview.html */ ?> <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"> <url> <loc>http://www.tusitio.com/</loc> <lastmod>2006-03-23</lastmod> <changefreq>monthly</changefreq> <priority>0.8</priority> </url> <? // empezamos a generar la iteracion while (false !== ($archivo = readdir($gestor))) { $p = explode(".",$archivo); if(strtolower($p[count($p)-1]) == "php") { echo " <url> <loc>http://www.tusitio.com/$archivo</loc> <lastmod>2006-03-23</lastmod> <changefreq>yearly</changefreq> </url>"; } } //cerramos closedir($gestor); echo " </urlset>";

} ?>

Demasiado Fcil no? claro que si queremos darle datos desde la base de datos, cosas como contenido.php?id=1 se empieza a complicar un poco la cosa, pero ni tanto, de todas maneras, eso lo desarrollas tu en base, como ya dije, a tus necesidades.

Artculo por Juan Edgardo Jorquera Uribe

Manual de Introduccin a XML: http://www.desarrolloweb.com/manuales/18/ Los manuales de DesarrolloWeb.com tienen el copyright de sus autores. No reproducir sin autorizacin.

58