Manual Introduccion a XML

Embed Size (px)

Citation preview

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Introduccin a XMLUna 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 AlvarezDirector de DesarrolloWeb.comhttp://www.desarrolloweb.com (10 captulos)

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

    Juanjo PalaciosConsultor de Marketinghttp://www.valdecantos.com/kinks (1 captulo)

    Luis Villahttp://www.alzado.org (1 captulo)

    Javier M CriadoIngeniero Tc. en Informtica (3 captulos)

    Roberto Canales MoraDirector General de Autentiahttp://www.adictosaltrabajo.com (2 captulos)

    Juan Edgardo Jorquera UribeAnalista Programadorhttp://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.

    1

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Qu es XMLVemos 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 XMLDesde 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.

    2

  • Tu mejor ayuda para aprender a hacer webswww.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 , , , etc... Esto es una mala gestin de la informacin y el XML la soluciona.

    Artculo por Miguel Angel Alvarez

    Componentes de un documento XMLComenzamos 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 . Pueden contener cualquier cadena de texto excepto el literal --. Pueden colocarse en cualquier parte del documento. 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.

    3

  • Tu mejor ayuda para aprender a hacer webswww.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.

    *p=&q->campo; a=(x

    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 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 ). OJO!! En XML los atributos siempre deben ir encerrados entre comillas dobles.

    Ejs:

    Perez

    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; donde xxx es el nombre de la entidad, y , &xxx; es la manera de referirse a la entidad.

    Ej: ----> 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: &

    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.

    4

  • Tu mejor ayuda para aprender a hacer webswww.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:

    Artculo por Javier M Criado

    Sintaxis del XMLTiene 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

    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.

    .........

    Cualquier etiqueta puede tener atributos. Le podemos poner los atributos que queramos.

    Los comentarios de XML se escriben igual que los de HTML.

    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.

    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.

    5

  • Tu mejor ayuda para aprender a hacer webswww.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: Juan Sin embargo, "B" puede hacerlo as:

    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:

    Las DTD's. Los XML Schemas.

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

    1. Declaraciones de tipo de elemento (Element Type Declarations). 2. Declaraciones de listas de atributos (Attribute List Declarations). 3. Declaraciones de Entidades (Entity Declarations). 4. Declaraciones de notacin (Notation Declarations).

    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 webswww.desarrolloweb.com

    encerrados entre parntesis y precedidos de la etiqueta 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

    Empty que el elemento est vaco.Estos elementos NO tienen etiqueta de cierre.

    Any Cualquier contenido es vlido. Yo no recomiendo su uso.

    #PCDATA que el contenido de la cadena puede ser una cadena de texto.

    Ejs:

    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: .....

    Adems de esto, tambien podemos indicar que existen varias alternativas; para ello se usa el smbolo | (relacin OR). 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.

    7

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    indica q se puede elejir entre teclear los 2 apellidos juntos o por separado:

    Perez Lpez Perez Lpez

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

    CDATA

    El atributo ser una cadena de caracteres. No todos los caracteres son vlidos. Usaremos secciones PCDATA cuando queramos incluir los carcteres no vlidos.

    ID El atributo sirve para identificar al elemento dentro del documento. Slo puede haber un atributo de tipo ID por elemento.

    IDREF/S Este atributo se emplear para referenciar a otros elementos del documento a partir de su ID.

    ENTITY/S Contiene nombres de entidades. Ver siguiente apdo.

    NMTOKEN/S Contiene una nica cadena de texto (ed, una sola palabra).

    ()

    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.

    8

  • Tu mejor ayuda para aprender a hacer webswww.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 SIGNIFICADO

    #REQUIRED Con esto indicamos que es obligatorio darle un valor al atributo.

    #IMPLIED 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.

    #FIXED >

    Con esto obligamos a q el atributo tome necesariamente el valor especificado en

    EJ:

    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 XMLPasamos 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:

    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 webswww.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:

    < Es sustitdo por el smbolo < > Es sustitdo por el smbolo > & Es sustitdo por el smbolo & ' Es sustitdo por el smbolo ' " 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.

    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:

    Esto se podra referenciar as: ....

    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:

    Despus de saber manejar entidades con parmetros:

    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 webswww.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:

    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.

    . . . ]>

    . . . . .

    b)

    Definicin externa de una DTD.

    . . . . .

    Las referencias (a DTD's externas) te las puedes encontrar de 2 fomas: SYSTEM:

    Ej:

    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 webswww.desarrolloweb.com

    Ej:

    "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 XMLAunque 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 .

    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 webswww.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 XMLCmo 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 webswww.desarrolloweb.com

    Tecnologas relacionadas con XMLVeremos 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 SchemaTecnologas 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 webswww.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 XSLTecnologas 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 webswww.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 DOMTecnologas 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 webswww.desarrolloweb.com

    Introduccin a JAXB con NetBeansCmo 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 webswww.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 webswww.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 webswww.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 webswww.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 webswww.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

    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 webswww.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 webswww.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 webswww.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)

    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 webswww.desarrolloweb.com

    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 webswww.desarrolloweb.com

    El fin de una odisea Desconocido Un lugar en la mente de Kerz Desconocido

    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 webswww.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 webswww.desarrolloweb.com

    Vemos es aspecto de nuestro proyecto

    Y ya solo nos queda escribir el cdigo especfico.

    package adictosjaxb;

    import com.adictosaltrabajo.esquemas.libro.*; import com.adictosaltrabajo.esquemas.libro.impl.*; import javax.xml.bind.*; import java.io.*; import 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 webswww.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 webswww.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 XMLLibros 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 webswww.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 XMLUna 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

    Que es XML?

    XML es un acrnimo que significa Lenguaje eXtensible de Marcas (en sajn)

    el cual posee unas ciertas caractersticas bastante curiosas

    ( Xtensible Markup Language

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    Magaly_: el origen de las pginas hipertextuales era aprovechar de alguna manera la comunicacion entre redes, para compartir informacin

    o sea, dicho en plata

    Una pagina web no es HTML, pero HTML crea pginas web

    con permiso

    html es simplemente un formato de documento

    trukulo: eso hay que matizarlo (ahora mismo)

    una pagina web es la interpretacion de un documento por un parser (navegador)

    matiza pues

    lo que venia a decir: HTML es un 'formateador' de textos

    ahora bien, un agente computacional, solo es capaz de, como mucho, traducir esas marcas para formatear el texto

    nunca puede, a priori, extraer el significado del texto.

    pongo un ejemplo:

    en un documento HTML encontramos:

    Titulares

    y en otro cualquiera podemos encontrar

    Trukulo, a que huelen las nubes

    a coo

    el computador slo sera capaz de 'formatear' el texto

    preguntan por aqui q es un agente computacional

    un ordenador con un programa determinado y que usa estructuras de datos

    ahora bien

    vamos a hacer un pequeo anlisis que nos acerca a la filosofa de XML

    tomamos 3 portales

    por ejemplo www.terra.es www.wanadoo.es y www.ya.com

    si analizamos la estructura de los documentos, sin hacer caso del formato (negrita, cursiva, alineacion, parrafos)

    obtenemos una estructura 'semntica' del portal

    por ejemplo, podemos observar:

    un portal tiene cuatro partes principales

    la primera es el anagrama/logotipo y la imagen de empresa

    otra parte es el men de contenidos

    otra es la tabla de contenidos importantes/novedades

    y por ltimo crditos y disclaimers

    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 webswww.desarrolloweb.com

    hasta llegar a un nivel en que se obtengan conceptos como 'valor de'

    por ejemplo : el valor de una entrada del menu del portal es 'Economa'

    Si os fijais... TODOS los portales tienen la misma estructura semntica (que no formato)

    --> sibannac ([email protected]) has joined #dtd

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    regeWork: se crea por el usuario. T mismo decides el nombre de las marcas

    de ahi la potencia. Nos sirve para crear descripciones de portales, de una agenda, de un acta notarial, etc....

    justamente en eso entraremos ahora

    resuelto?

    no

    espera

    --- Macoa gives voice to regeWork

    regeWork: habla

    thx

    aver lo de las marcas lo tengo claro

    si

    yo me referia a que ba dentro de las marcas

    ok

    pondr un ejemplo ms clarificador:

    o xml solo aze estrukturas por llamarlo asi?

    Macoa

    Jan

    http://dardhal.tiopaco.net

    qued claro?

    oks

    si

    vale

    continuamos

    Macoa: las etiquetas las explicas luego no ?

    --- Macoa removes voice from regeWork

    trukulo: ahora mismo.. un inciso antes

    el q tu quieras

    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

    ahora vamos a pasar al tema de las marcas

    al hilo de la cuestin anterior, todo el mundo podra hacerse sus marcas

    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 webswww.desarrolloweb.com

    vamos a poner otro ejemplo

    imaginemos que un servidor web tiene 100 documentos XML 'tarjetavisita' como el anterior

    con 100 contactos de empresa

    ahora desarrollamos un programa cliente que obtiene esos 100 documentos

    y busca por ejemplo la url de todos para despues procesarla

    como observais, cliente y servidor tienen que ponerse de acuerdo en una sola cosa

    en el nombre de las marcas y en que significa cada una

    De ah que exista una necesidad de 'normalizar' u obligar a un programa que utilice tecnologa XML a utilizar un lenguaje determinado

    1 seg

    ya

    o sea: el cliente ha de ver si lo que ha recibido es 'correcto'

    y se ajusta a las etiquetas que el conoce

    para ello estn las DTD

    Document Type Definition

    Definicion de Tipo de Documento

    son unos documentos que definen, de manera inequvoca las marcas que se utilizarn.

    por ejemplo, en lenguaje natural, el DTD de nuestra tarjeta de visita sera el siguiente:

    Tenemos un documento llamado tarjetavisita. Este se compone de tres elemenos, los cuales aparecen uno detras de otro

    Estos elementos son: nombre, apellidos y url

    un inciso

    a su vez, cada elemento, en su interior, no posee ninguna marca

    esto para el q sepa C , es una estructura

    sino el texto que representa

    correcto, pero prefiero no comparar con estructuras de programacion

    es para hacerlo mas visual, perdona

    una primera aproximacin formal sera:

    Documento tarjetavisita -> nombre, apellidos, url

    nombre -> texto_plano

    apellidos -> texto_plano

    url -> texto_plano

    es como definir una tabla de una base de datos, no ?

    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 webswww.desarrolloweb.com

    cada momento que significa cada cosa, y podrn detectar errores

    trukulo: tambien es una aproximacion matizable

    eso es el ultimo punto

    hay que tener en cuenta que XML no pone lmite a la profundidad de marcas

    o sea, que podemos definir el lenguaje que nos venga en gana

    La sintaxis de la DTD sera la siguiente:

    con esas lineas, se define el vocabulario

    ahora bien

    Quin lee esa definicin y qu software/libreras existen para manejar XML?

    La respuesta es 'el parser'

    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

    normalmente est incluido en los navegadores de hoy en da y como libreras separadas

    bueno

    antes de entrar en el parser

    descansito y dudas

    alguien tiene alguna duda ?

    hay alguna duda trukulo?

    bueno, yo queria decir algo de todas formas

    el XML es un estandar adoptado por la w3c

    asi q sera el estandar de facto

    hay una duda de fale

    --- Macoa gives voice to ^fale

    habla ^fale

    duda:el xml pa k vale?

    joder truku

    no se te pue haser una broma

    xDDD

    ehh, io.... gora vallekas!

    --- Macoa removes voice from ^fale

    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 webswww.desarrolloweb.com

    bueno

    en serio

    entonces entramos en el parser, y as encajo con ^fale

    vale, un seg

    antes rege

    venga

    --- trukulo gives voice to regeWork

    aver

    el server tb necesita un modulo para manejar XML?

    umm, a ver

    regeWork: en principio no. el parser lo necesita aquel que tenga que extraer informacion del documento

    osea el navegadr

    en este caso

    navegador

    ok

    a veces el server tambien necesita manejar info

    todo eso viene ahora ;)

    continuo

    --- Macoa removes voice from regeWork

    cualquiera que haya mantenido una pgina web sabr lo costoso que es mantenerla de forma eficaz

    estatica, se refiere

    imaginense la pgina frontal de terra actualizarla a pelo en HTML

    claro

    sera un lo

    sin embargo, volviendo al portal

    manipular documentos XML es mas sencillo

    ya que no estamos viendo etc...

    sino

    ahora bien

    hemos dicho que XML no tiene formato

    pero nosotros podemos (y vamos) a agregrselo

    de que modo?

    utilizando un 'transformador'

    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 webswww.desarrolloweb.com

    este transformador, tomar como entrada un documento XML con su DTD, y nos dar una salida HTML

    para ello, tomar como datos, tambin, una serie de reglas de transformacin

    no entrar en la sintaxis, pero s en la idea bsica:

    vamos a imaginar las tarjetas de visita

    recordemos:

    [00:46:10]

    [00:46:18] Macoa

    [00:46:31] Jan

    [00:46:49] http://dardhal.tiopaco.net

    [00:46:53]

    ahora la DTD

    [00:59:34]

    [00:59:42]

    [00:59:52]

    [00:59:59]

    y ahora las reglas de transformacion

    elemento tarjetavisita=>

    elemento nombre=>Nombre:$valordenombre

    (se me olvid

    elemento apellido=>Apellido:$valordeapellido>/TD>

    elemento url=>Url:$valor de apellido/TD>

    convierte los elementos a html, vamos, con tablas, formatos, fuentes, etc...

    justamente

    obtendramos un bonito cdigo HTML

    estas transformaciones que puedan ser triviales en el ejemplo

    a la hora del proceso de un archivo de unos 50 KB con unas 20 etiquetas, son ms que poderosas

    una actualizacin en HTML sera costosa, mientras que en XML solo consiste en cambiar el valor actualizado, encontrandose el documento perfectamente organizado

    este es uno de los muchos usos de XML

    otro uso: imaginense una BBDD remota

    se pide una informacion determinada, y se devuelven estas 'tarjetasvisita'

    el programa cliente, con ayuda del parser, es capaz, mediante unas funciones bsicas de acceso al documento, obtener la informacion

    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 webswww.desarrolloweb.com

    mismo modo

    Estas funciones estn definidas desde dos puntos de vista, los cuales difieren de la implementacin

    estos son DOM y SAX (las interfaces o conjunto de funciones)

    esto se ve perfectamente con programas como Kougar )

    q es un parser cliente de XML para KDE )

    por ejemplo. un programador puede acceder a la tarjeta de visita de la siguiente forma

    perdon, kugar

    print etiqueta-tarjeta->nombre

    de forma transparente

    descanso

    alguna duda?

    yo tengo un inciso q hacer

    respecto a la generacion de webs com xml

    adelante

    que ventajas tiene eso contra un php+mysql o un asp+sql server ? bien, es sencillo

    el codigo html siempre es mucho menos costoso para un servidor que un codigo dinamico

    por lo cual, una vez generado los html con el xml tenemos las ventajas de los dos sistemas, y el inconveniente de ninguno

    velocidad y facilidad de creacion de contenido

    esto es para grandes portales que tienen muchas visitas diarias

    hay un pequeo problema trukulo, pero que no suele darse

    o para servidores con poca potencia

    cual?

    y es cuando el origen de datos XML es un documento extenso (20-40 megas)

    pero no suele ser el caso comn

    as que no tocaremos eso XD

    bueno

    continuamos

    espera

    si

    --- trukulo gives voice to regeWork

    lestaba diciendo a truku

    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 webswww.desarrolloweb.com

    si

    el k interpereta es el server

    pero en XML si interpreta el cliente

    veamos

    a ver

    no exactamente

    regeWork:

    pasas la karga de procesamiento a este no?

    regeWork: en XML existen las dos posibilidades

    el xml ya se ha pasado a html

    regeWork: t explicitamente puedes

    asi q no haria falta ningun proceso , ni en cliente, ni en servidor

    a) indicar al servidor que transforme a XML

    b) enviar el XML y las reglas de transformacion al cliente y que se las apae el

    incluso ...

    c) Hacer las transformaciones en la linea de ordenes, y salvar los HTML

    a esa ultima me referia yo

    para grandes servidores web

    aja

    pero macoa lo explica mejor

    ;)

    cual es el metodo ams usado para por ej, hacer un portal?

    bueno

    mas*

    regeWork: la transformacion en el servidor

    terra esta hecho as

    Macoa: depende del portal

    ok

    elpais por ejemplo

    produce html a partir de paginas dinamicas con php+mysql

    ColdFusion utiliza un lenguaje propio XML (CFM => ColdFusion Markup Language)

    es un caso raro, pero aumenta muchisimo la productividad

    no es sino un XML con sus palabras definidas

    truku puedes esplikar un poko eso?

    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 webswww.desarrolloweb.com

    (y algunas cosas mas ;) )

    a ver

    las webs dinamicas generan en tiempo real html para el cliente

    sin embargo, hay un pequeo truco

    si php por ej

    generar el html y guardarlo en el servidor

    asi accedes no a php, sino a htm

    regeWork: consiste en 'pre' procesar las transformaciones y alojarlas

    un php-caching

    aja

    eso

    bueno

    que nos salimos XD

    si, sigamos

    venga xD

    --- Macoa removes voice from regeWork

    a ver por donde iba

    un seg

    si

    2 el caso a) no requiere de un navegador con soporte xml y el resto si, no?

    siette: IE 4.0 con Service Pack de ese ya soporta XML

    Netscape 6 /mozilla tambin

    opera tambin

    solo los pequeines no ;)

    y en todo caso, serian los casos a y c los soportados por cualquier navegador html

    siette: de ahi que mayormente se preprocese en el servidor

    de modo que el cliente solo vea XML

    perdon HTML

    xD

    bueno

    continuamos

    esta charla se ha orientado mayormente a XML como soporte de informacin transformable a HTML

    pero no solo se puede transformar a HTML

    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 webswww.desarrolloweb.com

    y pdf

    otro punto importante es el sistema de almacenamiento

    Son altamente conocidos los SGBD (BBDD) relacionales, tipo mysql, postgresql, oracle rdbms

    sin embargo, con XML, como podemos ver, las estructuras no tienen una forma tabular

    las estructuras tabulares son un caso particular de XML

    ejemplo:

    perdon

    macoa

    jan

    dardhal.tiopaco.net

    seria como hacer un SELECT * from fichas , donde devuelve la fila citada

    pero como vemos, XML puede anidar etiquetas

    formando Objetos

    camas

    etc....

    umm

    digamos tiene una estructura de arbol ?

    esto, a aquellos que conozcan sistemas de gestion de base de datos orientadas a objetos les ser familiar

    justamente. XML ES un ARBOL

    que tiene una hoja final cuyo valor es el texto a buscar

    es q recuerda sobremanera a un directorio Novell

    como antes dije, DOM permite recorrer ese arbol de nodos

    hasta encontrrar un nodo determinado

    y obtener informacion de el

    (esto para los programadores)

    bueno

    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 webswww.desarrolloweb.com

    hay muchas muchas cosas

    cosas ms modernas. Por ejemplo, la DTD que antes nombr no se utiliza ya.

    ahora se utiliza otro tipo de definicion de lenguaje llamado XML Schema

    pero la idea bsica es la misma

    es similar a las CSS

    cascade style sheets del html

    hay que decir que XML crece dia a dia de manera agigantada

    y que se est convirtiendo en el estandar de facto en la intercomunicacion de aplicaciones

    ejemplos son XML-RPC

    llamadas RPC utilizando como flujo de datos documentos XML (KDE utiliza esto para intercomunicarse)

    la mayoria de sistemas de mensajera estn adoptando este tipo de documento

    rpc : remote procedure call )

    de este modo se obtiene mayor independencia con SO, aplicaciones, etc...

    llamada de procedimiento remoto )

    bueno

    de hecho

    ya esta ;)

    una cosa a comentar sobre las ventajas de xml

    venga

    es q aparte de poder ser multiplataforma facilmente

    es multiaplicacion

    claro

    lo mismo da que se use Lyx, que Openoffice, q Wordf

    por ejemplo

    si leen XML los documentos son todos compatibles entre si

    Word > 97 utiliza XML para generar las Tablas de contenidos

    HP utiliza XML para definir el contenido de los archivos cab/zip de sus drivers

    el docbook de linux se esta pasando ahora de sgml a xml

    dmoz.org open directory utiliza XML para 'toda' la informacin

    de hecho es descargable el documento

    para bajarte el buscador a casa XD

    y no solo eso

    sino que MacOS X lo utiliza para TODAS (q yo sepa) sus configuraciones

    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 webswww.desarrolloweb.com

    etc...)

    bueno

    trukulo:

    creo que ya esta bien ;)

    si, creo que por hoy es bastante

    [00:22:23] Buenas noches tengan vds.

    Me falta decir que los atributos XML van SIEMPRE entrecomillados

    Artculo por Trukulo

    XBRL. El lenguaje de los NegociosDescripcin 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 webswww.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.orgxbrl.softwareag.es

    Artculo por Juanjo Palacios

    RSS y SindicacinQu 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 webswww.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 Sistema

    Bloglines Web

    Amphetadesk 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.

    47

  • Tu mejor ayuda para aprender a hacer webswww.desarrolloweb.com

    NetNewsWire Mac OS X

    News Fire Mac OS X

    Sharp Reader Windows

    Feed Demon Windows

    NewsGator Windows (Outlook)

    Straw Linux

    Artculo por Luis Villa

    Uso de XML y XSL en JSPsExplicaremos 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 webswww.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 webswww.desarrolloweb.com

    Asignamos un nombre

    Vamos a utilizar este documento como base:

    [email protected] JSP 2.0 jspel Nuevas caracteristicas de JSPs 2.0 [email protected] Struts y Eclipse struts Configuracin del entorno Struts en Eclipse

    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 webswww.desarrolloweb.com

    Repetimos pero ahora seleccionamos un documento XSL

    Escribimos nuestro XSL

    Autor Nombre Enlace Descripcin

    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 webswww.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 webswww.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 webswww.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:

    AutorNombre EnlaceDescripcin

    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 webswww.desarrolloweb.com

    [email protected] 2.0jspelNuevas caracteristicas de JSPs 2.0 [email protected] y EclipsestrutsConfiguracin del entorno Structs en Eclipse 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 = "[email protected]

    JSP 2.0jspelNuevas caracteristicas de JSPs 2.0

    [email protected] y Eclipse

    strutsConfiguracin del entorno Structs en Eclipse

    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 webswww.desarrolloweb.com

    ";

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

    EL JSP

    JSP Page

    JSP, transformando XML con XSL

    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 webswww.desarrolloweb.com

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

    Artculo por Roberto Canales Mora

    SiteMaps de Google en PHPCmo 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 webswww.desarrolloweb.com

    http://www.tusitio.com/ 2006-03-23 monthly 0.8

    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

    Introduccin a XMLQu es XMLHistoria del XMLComponentes de un documento XMLSintaxis del XMLDeclaraciones de tipo de documento (DTD's)Declaracin de entidades en XMLDiferencias entre HTML y XMLObjetivos y usos del XMLTecnologas relacionadas con XMLContenidos: DTD o XML SchemaDiseo: CSS o XSLProgramacin: SAX o DOMIntroduccin a JAXB con NetBeansBibliografa de XMLApendice: Charla XMLXBRL. El lenguaje de los NegociosRSS y SindicacinUso de XML y XSL en JSPsSiteMaps de Google en PHP