El API JAXP

Esta p�gina cubre la parte b�sica de XML. El objetivo es ofrecernos la suficiente informaci�n para empezar, por eso que entendamos que es XML es importante. (Aprenderemos m�s sobre XML en secciones posteriores de este tutor). Describiremos las mayores caracter�sticas que hacen de XML un gran sistema de almacenamiento e intercambio de informaci�n, y nos ofrece una idea general de c�mo se puede usar XML. Esta secci�n del tutorial cubre.

.��Qu� es XML?

XML es un lenguaje de marcas basado en texto que se est� convirtiendo r�pidamente en el est�ndar 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 c�mo se mostrar�n. Donde las etiquetas HTML dicen algo como "muestra este dato en negrita" (<b>...</b>), una etiqueta XML act�a 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 aplicaci�n dada. Aunque, naturalmente, para que m�ltiples 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 podr�amos usar para una aplicaci�n 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 atenci�n. �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 tambi�n, que el contenido de la etiqueta <to> est�n 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 todav�a poder procesarlos f�cilmente con un programa. Sin embargo, al contrario que en HTML, en XML podr�amos buscar f�cilmente 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 representaci�n.

.�Etiquetas y Atributos

Las etiquetas tambi�n pueden contener atributos -- informaci�n 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 est�n presentes, generan un error.

Como podr�amos dise�ar una estructura de datos como <message> igualmente bien usando atributos o etiquetas, puede tomar una gran cantidad de tiempo imaginarnos cual es el mejor dise�o para nuestros prop�sitos. La �ltima parte de este tutorial, Dise�ar una Estructura de Datos XML, incluye ideas para ayudarnos a decidir cuando usar atributos y cuando etiquetas.

.�Etiquetas Vac�as

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 m�s 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 est�n 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, podr�amos querer a�adir una etiqueta "flag" que marque un mensaje como importante. Una etiqueta que no encierra ning�n contenido, por eso es contenida como una "etiqueta vac�a". Podemos crear una etiqueta vac�a termin�ndola 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 vac�a nos evita tener que codificar <flag></flag> para poder tener un documeto bien-formateado. Podemos controlar qu� etiquetas est�n permitidas creando una Definici�n 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 Pr�logo XML

Para completar este viaje introductorio a XML, observa que un fichero XML siempre empieza con un pr�logo. El pr�logo m�nimo contiene una declaraci�n que identifica el documento como un documento XML, como esta.

<?xml version="1.0"?>

La declaraci�n tambi�n podr�a contener informaci�n adicional, como esta:

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

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

version
Identifica la versi�n 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 Ingl�s. (El valor por defecto es compresi�n Unicode.UTF-8.)

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

El pr�logo tambi�n puede contener definiciones de entidades (�tems que son insertados cuando los referenciamos dentro del documento) y especificaciones que dicen qu� etiquetas son v�lidas en el documentos, ambas declaradas en una Definici�n de Tipo de Documento (DTD) que puede ser definido directamente dentro del pr�logo, as� como con punteros a ficheros de especificaci�n externos.

Nota:

La declaraci�n es realmente opcional. Pero es una buena idea incluirla simpre que creemos un fichero XML. La declaraci�n deber�a tener un n�mero de versi�n, como m�nimo, e idealmente tambi�n la codificaci�n. Este est�ndard simplifica las cosas si en el futuro se extiende el est�ndard XML, y si los datos siempre necesitan ser localizados en diferentes regiones geogr�ficas.

.�Instrucciones de Procesamiento

Un fichero XML tambi�n puede contener instruciones de procesamiento que ofrecen comandos o informaci�n para una aplicaci�n que est� procesando los datos XML. Estas instrucciones tienen el siguiente formato.

� <?fuente instrucciones?>

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

Como las instrucciones son espec�ficas de la aplicaci�n, un fichero XML podr�a incluir m�ltiples instrucciones de procesamiento que le digan a diferentes aplicaciones que hagan cosas similares, aunque de diferente forma. El fichero XML para una presentaci�n, por ejemplo, podr�a tener instrucciones de procesamiento que permitieran al orador especificar una versi�n t�cnica o de nivel exclusivo de la presentaci�n. Si se utilizaran varios programas de presentaci�n, el programa podr�a necesitar m�ltiples versiones de las instrucciones de precesamiento (aunque ser�a mejor si dichas aplicacioens reconocieran instrucciones est�ndard).

Nota:

El nombre de fuente "xml" (en cualquier combinaci�n de letras may�sculas o min�sculas) est� reservado por los est�ndards XML. En un sentido, la declaraci�n es una instrucci�n de procesamiento que fija este est�ndard. (Sin embargo, cuando trabajemos m�s adelante con el analizador, veremos que el m�todo para manejar instrucciones de procesamiento nunca ve la declaraci�n.)

.��Por qu� es importante el XML?

Hay un gran n�mero de razones para aceptar el uso de XML. Esta secci�n lista unos pocos de los m�s prominentes.

.�Texto Plano

Como XML no est� en formato binario, podemos crear y editar ficheros con cualquiera de los editores de texto est�ndard a un entorno de desarrollo visual. Esto hace f�cil la depuraci�n de nuestros programas, y hace �til el almacenamiento de peque�as 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 peque�os ficheros de configuraci�n a repositorios de datos de grandes compa�ias.

.�Identificaci�n de Datos

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

.�Estilismo

Cuando el estilo es importante, la hoja de estilos est�ndad, XSL, nos dicta c�mo portar los datos. Por ejemplo, la hoja de estilo para.

<to>[email protected]</to>

se puede decir:

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

Lo que produce:

To: you@yourAddress

Por supuesto, podr�amos haber hecho lo mismo con HTML, pero no podr�amos procesar los datos con programas de b�squeda y programas de extracci�n de direcciones o parecidos. M�s importante, como XML est� libre de estilo, podemos usar una hoja de estilo completamente diferente para producir salida en postcript, TEXT, PDF, o alg�n nuevo formato que no haya sido inventado todav�a.

.�Reutilizaci�n en L�nea

Uno de los aspectos m�s bonitos de los documentos XML es que pueden estar compuestos por entidades separadas. Podemos hacer esto con HTML, pero s�lo enlazando a otros documentos. Al contrario que HTML, las entidades XML pueden ser incluidas "en l�nea" 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 secci�n de este tutorial, XML y Aspectos Relacionados, describe la iniciativa de especificaci�n 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 informaci�n fuente aparezca en l�nea), y enlaces entre dos documentos existentes que est�n definidos en un tercero.

.�F�cilmente Procesable

Como se mencion� antes, la notaci�n normal y consistente hace f�cil 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 programaci�n algo dif�cil. Pero en XML, la etiqueta <dt> siempre debe tener un terminador </dt>, o ser� definida como una etiqueta <dt/>. Esta restricci�n es una parte cr�tica 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 est�ndard 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, r�pidas de acceder porque podemos trasladrar la parte que necesitemos, como pasando a trav�s de una tabla de contenidos. Tambi�n es f�cil redistribruir, porque cada pieza est� delimitada. Por ejemplo, en un documento, podr�amos mover una cabecera a una nueva localizaci�n y arrastrar todo lo que tenga debajo junto con ella, en lugar de tener que bajar por la pagina para hacer una nueva selecci�n, cortarla, y pegar la selecci�n en una nueva posici�n.

.��C�mo Podemos usar XML?

Hay varias formas b�sicas para hacer uso del XML:

  • Proceso de datos tradicionales, donde XML codifica los datos para que los procese un programa.
  • Programaci�n dirigida a documento, donde los documentos XML son contenedores que construyen interfaces y aplicaciones para componentes existentes.
  • Archivo -- el fundamento para la programaci�n dirigida a documento, donde la versi�n personalizada de un componente es grabada (archivada) para que pueda ser usar m�s tarde.
  • Union, donde el DTD o esquema que define una extructura de datos XML se usa para generar autom�ticamente una porci�n importante de la aplicaci�n que eventualmente procesa esos datos.

.�Proceso Tradicional de Datos

XML se convierte r�pidamente en una elecci�n de representaci�n para la red. Es terror�fico cuando se usa en conjunci�n con programas de la plataforma Java centrados en red que env�an y recuperan informaci�n. Por ejemplo, una aplicaci�n cliente/servidor, podr�a 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 est�n de acuerdo con las marcas a usar. (Por ejemplo, �un programa de e-mail deber�a esperar ver etiquetas llamadas <FIRST> y <LAST>, o <FIRSTNAME> y <LASTNAME>?) La necesidad de est�ndares comunes generar� muchos esfuerzos de estandarizaci�n especificos de la industria en los a�os 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 especificaci�n XSL, que nos permite traducir etiquetas XML en otras etiquetas XML.

.�Programaci�n Dirigida a Documento(DDP)

La m�s nueva aproximaci�n a usar XML es para construir un documento que describe c�mo deber�a verse la p�gina de una aplicaci�n. El documento, en vez de ser mostrado simplemente, consiste en referencias a componentes del interface de usuario y componentes de la l�gica de negocio que son "enganchados juntos" para crear una aplicaci�n 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 l�gica del negocio puede usarse para construir dichas aplicaciones. Aunque ninguno de los esfuerzos hechos hasta ahora ha dado un resultado comercial, la mayor�a del trabajo preliminiar ya est� hecho.

Nota:

El lenguaje Java tambi�n 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 p�gina SGML/XML Web Page.

.�Uni�n

Una vez que hemos definido la estructura de datos XML usando un DTD o uno de los esquemas est�ndars, 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 validaci�n para los datos -- s�lo queda escribir el c�digo. Aunque una especificacion DTD no puede ir al mismo nivel de detalle, un DTD (igual que un esquema) proporciona una gram�tica que le dice qu� estructuras de datos pueden ocurrir, en que secuencia. Estas especificaciones nos dicen c�mo escribir c�digo de alto nivel que procese los elementos de datos.

Pero cuando la estructura de datos (y posiblemente el formato) est� completamente especifiaco, el c�digo que necesitamos para procesarlo puede f�cilmente ser generado de forma autom�tica. Este proceso es conocido como uni�n -- crear clases que reconocen y precesan diferentes elementos de datos mediante el procesamiento de la especificaci�n que define dichos elementos. Como el tiempo se va, deberiamos encontrar que estamos usando la especificaci�n de datos para generan cantidades importantes de c�digo, por eso podemos enfocarnos en la programaci�n que es �nica para nuestra aplicaci�n.

.�Archivo

El mecanismo b�sico para grabar informaic�n se llama archivo. Archivamos un componente escribi�ndolo en un canal de salida de forma que podamos reutilizarlo m�s tarde. Entonces podemos leerlo y ejemplarizarlo usando los par�metros grabados. (Por ejemplo, si grabamos un componente tabla, sus par�metros podr�an ser el n�mero de filas y columnas a mostrar). Los componentes archivados tamb�en pueden ser pasados a trav�s 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 pr�viamente. Si pudieramos modificar la versi�n archivada para reflejar el cambio, se solucionar�a el problema. Pero esto es d�ficil de hacer con un objeto binario. Dichas consideraciones han lanzado un gran n�mero 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 f�cilmente como decir: "Busca y Reemplaza".

El formato XML basado en texto tambi�n 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 -- s�lo estamos empezando a ara�ar la superficie de su potencial. Es el fundamento para una gran cantidad de est�ndards, proporcionando un lenguaje com�n que diferentes sistemas de ordenadores puedan usar para intercambiar datos unos con otros.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO