El API JAXP

Esta pgina cubre la parte bsica de XML. El objetivo es ofrecernos la suficiente informacin para empezar, por eso que entendamos que es XML es importante. (Aprenderemos ms sobre XML en secciones posteriores de este tutor). Describiremos las mayores caractersticas que hacen de XML un gran sistema de almacenamiento e intercambio de informacin, y nos ofrece una idea general de cmo se puede usar XML. Esta seccin del tutorial cubre.

.Qu es XML?

XML es un lenguaje de marcas basado en texto que se est convirtiendo rpidamente en el estndar para el intercambio de datos en la Web. Igual que en HMTL, identificamos los datos usando etiquetas (identificadores encerrados entre ngulos, como: <...>). Colectivamente, las etiquetas son conocidas como "marcas".

Al contrario que las etiquetas HTML, las etiquetas XML nos dicen lo que significan los datos, en vez de cmo se mostrarn. Donde las etiquetas HTML dicen algo como "muestra este dato en negrita" (<b>...</b>), una etiqueta XML acta como un nombre de campo en nuestro programa. Poner una etiqueta a un dato que lo identifica (por ejemplo: <message>...</message>).

De la misma forma que definimos los nombres de los campos para una estructura de datos, podemos usar cualquier etiqueta XML que tenga sentido para una aplicacin dada. Aunque, naturalmente, para que mltiples aplicaciones usen el mismo dato XML, tienen que estar de acuerdo con los nombres de etiquetas que intentan usar.

Aqu tenemos un ejemplo de algunos datos XML que podramos usar para una aplicacin de mensajes.

<message>
 <to>[email protected]</to>
 <from>[email protected]</from>
 <subject>XML Is Really Cool</subject>
 <text>
 How many ways is XML cool? Let me count the ways...
 </text>
</message>
Nota:

A lo largo de este tutorial usaremos texto en negrita para iluminar las cosas sobre las que queremos llamar tu atencin. XML no requiere que nada est en negrita!

Las etiquetas de este ejemplo identifican un mensaje completo, las direcciones origen y destino, el subject, y el texto del mensaje. Como en HTML, la etiqueta <to> tiene su correspondiente etiqueta final: </to>. Los datos entre la etiqueta y su correspondiente etiqueta final definen un elemento de los datos XML. Observa tambin, que el contenido de la etiqueta <to> estn enteramente contenido dentro del mbito de las etiquetas <message>..</message>. Es esta habilidad de que una etiqueta pueda conteneder otras etiquetas la que le da a XML la habilidad de representar estructuras de datos en forma de rbol.

De nuevo, como en HTML, los espacios en blanco son esencialmente irrelevantes, podemos formatear los datos para poder leerlos y todava poder procesarlos fcilmente con un programa. Sin embargo, al contrario que en HTML, en XML podramos buscar fcilmente un conjunto de datos para mensajes que contengan "cool" en el subject, porque las etiquetas XML identifican el contenido de los datos, en vez de especificar su representacin.

.Etiquetas y Atributos

Las etiquetas tambin pueden contener atributos -- informacin adicional incluida como parte de la propia etiqueta, dentro de los ngulos de la etiqueta. El siguiente ejemplo muestra una estructura de mensaje de e-mail que usa atributos para los campos "to", "from", y "subject".

<message to="[email protected]" from="[email protected]"
 subject="XML Is Really Cool">
 <text>
 How many ways is XML cool? Let me count the ways...
 </text>
</message>

Como en HTML, al nombre del atributo le sigue un signo igual y el valor del atributo, y varios atributos se separan por espacios. Sin embargo, al contrario que HTML, en XML las comas entre atributos no se ignoran -- si estn presentes, generan un error.

Como podramos disear una estructura de datos como <message> igualmente bien usando atributos o etiquetas, puede tomar una gran cantidad de tiempo imaginarnos cual es el mejor diseo para nuestros propsitos. La ltima parte de este tutorial, Disear una Estructura de Datos XML, incluye ideas para ayudarnos a decidir cuando usar atributos y cuando etiquetas.

.Etiquetas Vacas

Una diferencia realmente grande entre XML y HTML es que un documento XML siempre tiene que estar bien formateado. Hay muchas reglas que determinan cuando un documento est bien-formateado, pero una de las ms importantes es que cada etiqueta tiene una etiqueta de cierre. Por eso, en XML, la etiqueta </to> no es opcional. El elemento <to> nunca es terminado por una etiqueta distinta de </to>.

Nota:

Otro aspecto importante de un documento bien-formateado es que todas las etiquetas estn completamente anidadas. Por eso podemos tener <message>..<to>..</to>..</message>, pero nunca <message>..<to>..</message>..</to>.

Algunas veces, tiene sentido tener etiquetas que existen por s mismas. Por ejemplo, podramos querer aadir una etiqueta "flag" que marque un mensaje como importante. Una etiqueta que no encierra ningn contenido, por eso es contenida como una "etiqueta vaca". Podemos crear una etiqueta vaca terminndola con /> en lugar de >. Por ejemplo, el siguiente mensaje contiene dicha etiqueta.

<message to="[email protected]" from="[email protected]"
 subject="XML Is Really Cool">
 <flag/>
 <text>
 How many ways is XML cool? Let me count the ways...
 </text>
</message>
Nota:

La etiqueta vaca nos evita tener que codificar <flag></flag> para poder tener un documeto bien-formateado. Podemos controlar qu etiquetas estn permitidas creando una Definicin de Tipo de Documento DTD. Si existe un DTD, el documento puede contener cualquier clase de etiqueta que queramos, mientras que el documento est bien formateado.

.Comentarios en Ficheros XML

Los comentarios XML se parecen a los comentarios HTML.

<message to="[email protected]" from="[email protected]"
 subject="XML Is Really Cool">
 <!-- This is a comment -->
 <text>
 How many ways is XML cool? Let me count the ways...
 </text>
</message>

.El Prlogo XML

Para completar este viaje introductorio a XML, observa que un fichero XML siempre empieza con un prlogo. El prlogo mnimo contiene una declaracin que identifica el documento como un documento XML, como esta.

<?xml version="1.0"?>

La declaracin tambin podra contener informacin adicional, como esta:

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

La declaracacin XML es esencialmente la misma que la cabecera HTML, <html>, excepto en que usa <?..?> y contiene los siguientes atributos.

version
Identifica la versin del lenguaje de marcas XML usada en los datos. Este atributo no es opcional.

encoding
Identifica el juego de caracteres usado para codificar los datos. "ISO-8859-1" es "Latin-1" el conjunto de caracteres Western European y del lenguaje Ingls. (El valor por defecto es compresin Unicode.UTF-8.)

standalone
Dice si este documento referencia o no a una entidad externa o a una especificacin de datos externa. Si no hay referencias externas "yes" es el valor apropiado

El prlogo tambin puede contener definiciones de entidades (tems que son insertados cuando los referenciamos dentro del documento) y especificaciones que dicen qu etiquetas son vlidas en el documentos, ambas declaradas en una Definicin de Tipo de Documento (DTD) que puede ser definido directamente dentro del prlogo, as como con punteros a ficheros de especificacin externos.

Nota:

La declaracin es realmente opcional. Pero es una buena idea incluirla simpre que creemos un fichero XML. La declaracin debera tener un nmero de versin, como mnimo, e idealmente tambin la codificacin. Este estndard simplifica las cosas si en el futuro se extiende el estndard XML, y si los datos siempre necesitan ser localizados en diferentes regiones geogrficas.

.Instrucciones de Procesamiento

Un fichero XML tambin puede contener instruciones de procesamiento que ofrecen comandos o informacin para una aplicacin que est procesando los datos XML. Estas instrucciones tienen el siguiente formato.

 <?fuente instrucciones?>

donde fuente es el nombre de la aplicacin que se espera que haga el procesamiento, e instrucciones es una cadena de caracteres que incluye la informacin o comandos para que los precese la aplicacin.

Como las instrucciones son especficas de la aplicacin, un fichero XML podra incluir mltiples instrucciones de procesamiento que le digan a diferentes aplicaciones que hagan cosas similares, aunque de diferente forma. El fichero XML para una presentacin, por ejemplo, podra tener instrucciones de procesamiento que permitieran al orador especificar una versin tcnica o de nivel exclusivo de la presentacin. Si se utilizaran varios programas de presentacin, el programa podra necesitar mltiples versiones de las instrucciones de precesamiento (aunque sera mejor si dichas aplicacioens reconocieran instrucciones estndard).

Nota:

El nombre de fuente "xml" (en cualquier combinacin de letras maysculas o minsculas) est reservado por los estndards XML. En un sentido, la declaracin es una instruccin de procesamiento que fija este estndard. (Sin embargo, cuando trabajemos ms adelante con el analizador, veremos que el mtodo para manejar instrucciones de procesamiento nunca ve la declaracin.)

.Por qu es importante el XML?

Hay un gran nmero de razones para aceptar el uso de XML. Esta seccin lista unos pocos de los ms prominentes.

.Texto Plano

Como XML no est en formato binario, podemos crear y editar ficheros con cualquiera de los editores de texto estndard a un entorno de desarrollo visual. Esto hace fcil la depuracin de nuestros programas, y hace til el almacenamiento de pequeas cantidades de datos. En el otro lado del expectro, una parte del XML con bases de datos hace posible almacenar grandes cantidades de datos de forma eficiente. Por eso XML proporciona escalabilidad para cualquier cosa, desde pequeos ficheros de configuracin a repositorios de datos de grandes compaias.

.Identificacin de Datos

XML dice que clase de datos tenemos, no cmo se muestran. Como las etiquetas de marca identifican la informacin y dividen los datos en partes, un pograma de email puede procesarlo, un programa de bsqueda puede buscar los mensajes enviados a una persona particular, y un libro de direcciones puede extraer la informacin de la direccin del resto del mensaje. Brevemente, como las diferentes partes de la informacin han sido identificadas, pueden ser usadas de diferentes formas por diferentes aplicaciones.

.Estilismo

Cuando el estilo es importante, la hoja de estilos estndad, XSL, nos dicta cmo portar los datos. Por ejemplo, la hoja de estilo para.

<to>[email protected]</to>

se puede decir:

  1. Empieza una nueva lnea.
  2. Muestra "To:" en negrita, seguido por un espacio
  3. Muestra los datos de destino.

Lo que produce:

To: [email protected]

Por supuesto, podramos haber hecho lo mismo con HTML, pero no podramos procesar los datos con programas de bsqueda y programas de extraccin de direcciones o parecidos. Ms importante, como XML est libre de estilo, podemos usar una hoja de estilo completamente diferente para producir salida en postcript, TEXT, PDF, o algn nuevo formato que no haya sido inventado todava.

.Reutilizacin en Lnea

Uno de los aspectos ms bonitos de los documentos XML es que pueden estar compuestos por entidades separadas. Podemos hacer esto con HTML, pero slo enlazando a otros documentos. Al contrario que HTML, las entidades XML pueden ser incluidas "en lnea" en un documento. Las secciones incluidas parecen una parte normal del documento -- podemos buscar en el documento completo a la vez o descargarlo en una sola pieza. Esto nos permite modularizar nuestros documentos sin recurrir a los enlaces.

.Enlazabilidad

Gracias a HTML, la habilidad de definir enlaces entre documentos es ahora una necesidad. La siguiente seccin de este tutorial, XML y Aspectos Relacionados, describe la iniciativa de especificacin de enlace. Esta iniciativa nos permite definir dos formas de enlaces, enlaces de varias fuentes, enlaces "expandibles" (donde pulsar sobre un enlace hace que la informacin fuente aparezca en lnea), y enlaces entre dos documentos existentes que estn definidos en un tercero.

.Fcilmente Procesable

Como se mencion antes, la notacin normal y consistente hace fcil construir un programa y procesar datos XML. Por ejemplo, en HTML una etiqueta <dt> puede estar delimitada por </dt>, otra <dt>, <dd>, o </dl>. Esto hace la programacin algo difcil. Pero en XML, la etiqueta <dt> siempre debe tener un terminador </dt>, o ser definida como una etiqueta <dt/>. Esta restriccin es una parte crtica de las restricciones que crean un documento XML bien-formateado. (De otra forma, el analizador XML no podr leer los datos). Y como XML es un estndard neutral a los vendedores, podremos elegir entre varios analizadores XML, cualquiera de ellos hace el trabajo de procesar los datos XML.

.Herencia

Finalmente, los documentos XML se benefician de su estructura en forma de rbol. Estas estructuras son, en general, rpidas de acceder porque podemos trasladrar la parte que necesitemos, como pasando a travs de una tabla de contenidos. Tambin es fcil redistribruir, porque cada pieza est delimitada. Por ejemplo, en un documento, podramos mover una cabecera a una nueva localizacin y arrastrar todo lo que tenga debajo junto con ella, en lugar de tener que bajar por la pagina para hacer una nueva seleccin, cortarla, y pegar la seleccin en una nueva posicin.

.Cmo Podemos usar XML?

Hay varias formas bsicas para hacer uso del XML:

  • Proceso de datos tradicionales, donde XML codifica los datos para que los procese un programa.
  • Programacin dirigida a documento, donde los documentos XML son contenedores que construyen interfaces y aplicaciones para componentes existentes.
  • Archivo -- el fundamento para la programacin dirigida a documento, donde la versin personalizada de un componente es grabada (archivada) para que pueda ser usar ms tarde.
  • Union, donde el DTD o esquema que define una extructura de datos XML se usa para generar automticamente una porcin importante de la aplicacin que eventualmente procesa esos datos.

.Proceso Tradicional de Datos

XML se convierte rpidamente en una eleccin de representacin para la red. Es terrorfico cuando se usa en conjuncin con programas de la plataforma Java centrados en red que envan y recuperan informacin. Por ejemplo, una aplicacin cliente/servidor, podra transmitir datos XML codificados entre el cliente y el servidor.

En el futuro, XML es la respuesta potencial para el intercambio de datos en toda suerte de transaciones, siempre que ambos lados estn de acuerdo con las marcas a usar. (Por ejemplo, un programa de e-mail debera esperar ver etiquetas llamadas <FIRST> y <LAST>, o <FIRSTNAME> y <LASTNAME>?) La necesidad de estndares comunes generar muchos esfuerzos de estandarizacin especificos de la industria en los aos venideros. Mientras tanto, los mecanismos que nos permiten "traducir" las etiquetas en un documento XML son importantes. Dichos mecanismos incluyen proyectos como la iniciativa RDF, que define "meta etiequetas", y la especificacin XSL, que nos permite traducir etiquetas XML en otras etiquetas XML.

.Programacin Dirigida a Documento(DDP)

La ms nueva aproximacin a usar XML es para construir un documento que describe cmo debera verse la pgina de una aplicacin. El documento, en vez de ser mostrado simplemente, consiste en referencias a componentes del interface de usuario y componentes de la lgica de negocio que son "enganchados juntos" para crear una aplicacin al vuelo.

Por supuesto, tiene sentido utilizar la plataforma Java para dichos componentes. Tanto los Beans Java para interfaces como los JavaBeans Enterprise para la lgica del negocio puede usarse para construir dichas aplicaciones. Aunque ninguno de los esfuerzos hechos hasta ahora ha dado un resultado comercial, la mayora del trabajo preliminiar ya est hecho.

Nota:

El lenguaje Java tambin es excelente para escribir herramientas de procesamiento XML que sean tan portables como el propio XML. Varios editores visuales de XML han sido escritos usando la plataforma Java. Para ver una lista de estos editores, y otras herramientas puedes ir a la pgina SGML/XML Web Page.

.Unin

Una vez que hemos definido la estructura de datos XML usando un DTD o uno de los esquemas estndars, una gran parte del procesamiento que necesitamos ya ha sido definido. Por ejemplo, si el esquema dice que los datos de texto en un elemento <date> deben seguir uno de los formatos de datos reconocidos, se ha definido un aspecto del criterio de validacin para los datos -- slo queda escribir el cdigo. Aunque una especificacion DTD no puede ir al mismo nivel de detalle, un DTD (igual que un esquema) proporciona una gramtica que le dice qu estructuras de datos pueden ocurrir, en que secuencia. Estas especificaciones nos dicen cmo escribir cdigo de alto nivel que procese los elementos de datos.

Pero cuando la estructura de datos (y posiblemente el formato) est completamente especifiaco, el cdigo que necesitamos para procesarlo puede fcilmente ser generado de forma automtica. Este proceso es conocido como unin -- crear clases que reconocen y precesan diferentes elementos de datos mediante el procesamiento de la especificacin que define dichos elementos. Como el tiempo se va, deberiamos encontrar que estamos usando la especificacin de datos para generan cantidades importantes de cdigo, por eso podemos enfocarnos en la programacin que es nica para nuestra aplicacin.

.Archivo

El mecanismo bsico para grabar informaicn se llama archivo. Archivamos un componente escribindolo en un canal de salida de forma que podamos reutilizarlo ms tarde. Entonces podemos leerlo y ejemplarizarlo usando los parmetros grabados. (Por ejemplo, si grabamos un componente tabla, sus parmetros podran ser el nmero de filas y columnas a mostrar). Los componentes archivados tamben pueden ser pasados a travs de la Web y usados de muchas formas.

Sin embargo, cuando los componentes son archivados en forma binaria, hay algunas limitaciones sobre los tipos de cambos que podemos hacerle a las clases subyacentes si queremos retener la compatibilidad con versiones grabadas prviamente. Si pudieramos modificar la versin archivada para reflejar el cambio, se solucionara el problema. Pero esto es dficil de hacer con un objeto binario. Dichas consideraciones han lanzado un gran nmero de investigaciones sobre el uso de XML para el archivo. Pero si el estado de un objeto es grabado en formato texto usando XML, cualquier cosa en l puede modificarse tan fcilmente como decir: "Busca y Reemplaza".

El formato XML basado en texto tambin hace sencillo la transferencia de objetos entre aplicaciones escritas en diferentes lenguajes. Por todas estas razones, el archivo basado en XML se convertir en una fuerza importante en un futuro no muy lejano.

.Sumario

XML es muy sencillo y muy flexible. Tiene muchos usos por descubrir -- slo estamos empezando a araar la superficie de su potencial. Es el fundamento para una gran cantidad de estndards, proporcionando un lenguaje comn que diferentes sistemas de ordenadores puedan usar para intercambiar datos unos con otros.

COMPARTE ESTE ARTÍCULO

ENVIAR A UN AMIGO
COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN GOOGLE +
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO

HAY 1 COMENTARIOS
  • Anónimo dijo:

    Me ha aclarado muchas ideas

Conéctate o Regístrate para dejar tu comentario.