
En esta página:
Preparándonos para trabajar
A lo largo de este capítulo, vamos a ver las herramientas y aplicaciones que son necesarias para poder trabajar con los ejemplos de este tutorial.
En principio, y para los primeros capítulos, sólo nos hará falta:
Más adelante, a medida que vayamos profundizando en el XML y tecnologías asociadas, seguro que nos irán haciendo falta nuevas aplicaciones que ya iremos describiendo en su momento.
A continuación vamos a ver que herramientas existen hoy en día para trabajar con XML, aunque de una forma muy superficial. A lo largo de 1998 ha sido increíble la gran cantidad de aplicaciones que han aparecido y, sin duda, a lo largo del 1999 esta evolución va a continuar de forma más notable. Por tanto, no me parece práctico profundizar en el tema si tenemos en cuenta que esta información será caduca en unas cuantas semanas. Por lo tanto, sólo describiré brevemente las herramientas que estoy utilizando para elaborar este tutorial y sus ejemplos.
Para estar al día sobre este tema os recomiendo que visitéis las direcciones que recomiendo al final del capítulo y la sección Recursos de HTML en castellano.
Editores XML
Un editor XML es una aplicación que nos ofrece facilidades para crear y editar documentos XML.
Para empezar, es recomendable que utilicéis un simple editor de texto y, una vez que estéis familiarizados con la sintaxis y características del XML, podremos pasar a editores que nos hagan la vida un poco más fácil (¡o más difícil!).
Podemos diferenciar dos tipos de editores XML:
Los del primer tipo presentan la estructura del documento XML en forma de árbol, y nos permiten construir nuestro documento trabajando sobre este árbol y formularios adicionales.
Algunos de este tipo son:
XML Notepad. Es un editor de XML desarrollado por Microsoft. Para su utilización es necesario tener instalado, como mínimo, la versión 4.01 del Explorer, aunque sólo podremos aprovecharlo en su totalidad con la versión 5.
Visual XML. Es un editor de XML escrito en Java con JFC (Swing). Su autor es Pierre Morel.
Los del segundo tipo son editores normales de ficheros de texto, pero con facilidades de edición enfocadas al XML.
De los que conozco os recomiendo:
XED, es un editor de XML desarrollado por Henry Thompson. Permite garantizar que el autor no va a escribir documentos que no estén bien formados y puede leer la DTD para sugerir la introducción de elementos validos.
PSGML para Emacs. Es un modo superior de Emacs para trabajar con SGML que se ha modificado para soportar XML. Lee la DTD, puede utilizar un analizador externo para validar documentos, realiza coloración de sintaxis y otras muchas cosas.
En ambos tipos hay que diferenciar los que trabajan contra una DTD y, por lo tanto, validan el contenido de lo que escribimos, y los que simplemente nos aseguran que el documento XML es bien formado, es decir, sintácticamente correcto respecto de las especificaciones del XML.
La elección de uno u otro dependerá del tipo de documento que estemos escribiendo. Si queremos escribir un documento XML como el ejemplo del capítulo anterior (tipo la información que introducimos en una base de datos) nos vendrá bien uno del primer tipo. En cambio, si queremos escribir un documento con gran cantidad de texto (por ejemplo un manual) nos vendrá mejor uno del segundo tipo. En cualquiera de los dos casos es recomendable que permita trabajar sobre una DTD.
Hay que aclarar que simplemente estoy hablando de editores sencillos y al alcance de la mayoría de nosotros al ser gratuitos o muy baratos. Por supuesto existen editores muchos más complejos, que nos permiten editar nuestros documentos XML/SGML como si lo hiciésemos en un procesador de texto. Es el caso del ADEPT de ArborText o de las facilidades para trabajar sobre SGML/XML de la última versión de WordPerfect, y FrameMaker+SGML.
Pero para empezar, lo que os decía en un principio, el editor de textos de toda la vida.
Editor DTD
En una DTD se define como es la estructura de un documento XML, es decir, los elementos que formarán ese tipo de documento y cómo están relacionados. Recordad, que al contrario que en SGML, no son obligatorias en XML, aunque si recomendable utilizarlas al menos durante el periodo de diseño y validación de los documentos.
Para empezar, os recomiendo que como editor de DTD utilicéis también vuestro editor de textos habitual. Además, en este caso, nos encontramos con el problema de que resulta bastante complicado encontrar un editor gratuito de DTDs.
De los que conozco y he probado os recomiendo:
EZDTD. Además de permitirnos crear la DTD de forma visual, tiene dos funcionalidades muy interesantes:
Nos permite guardar la DTD diferenciando si va a ser para documentos XML o SGML, por lo que resulta una herramienta muy útil para estudiar las diferencias entre ambos estándares.
Nos permite guardar la DTD en formato HTML colocando enlaces de forma automática entre los elementos que define.
TDTD para Emacs, que es un modo superior de Emacs para la edición de DTD. Realiza coloración de sintaxis e incluye algunas macros que facilitan la edición de construcciones comunes.
También son interesantes las aplicaciones que dado un documento XML te generan una DTD. Es el caso de:
DTDGenerator. Desde su Web podemos hacer un upload de un fichero XML, del cual nos generara una DTD.
Lo he probado con el ejemplo del capítulo anterior, en el que os comentaba como podría ser un documento XML que describiese un libro con los datos que se presentan en Amazón y me ha generado la siguiente DTD:
<!ELEMENT autor ( #PCDATA ) >
<!ELEMENT descuento EMPTY >
<!ATTLIST descuento cantidad CDATA #REQUIRED >
<!ELEMENT disponible EMPTY >
<!ATTLIST disponible tiempo CDATA #REQUIRED >
<!ATTLIST disponible unidad CDATA #REQUIRED >
<!ELEMENT enlacelibro EMPTY >
<!ATTLIST enlacelibro href CDATA #REQUIRED >
<!ELEMENT formato ( #PCDATA ) >
<!ELEMENT libro ( titulo | disponible | autor | formato
| publicacion | precio | descuento | enlacelibro )* >
<!ELEMENT precio EMPTY >
<!ATTLIST precio cantidad CDATA #REQUIRED >
<!ATTLIST precio moneda CDATA #REQUIRED >
<!ELEMENT publicacion ( #PCDATA ) >
<!ELEMENT titulo ( #PCDATA ) >
Pero para empezar, lo dicho, nuestro editor de textos habitual.
Parsers XML
Un parser o procesador de XML es la herramienta principal de cualquier aplicación XML. Mediante este parser no sólo podremos comprobar si nuestros documentos están bien formados o válidos, sino que también podremos incorporarlos a nuestras aplicaciones, de manera que estas puedan manipular y trabajar con documentos XML.
Actualmente hay muchos y para todos los lenguajes y plataformas: Java, C, Phyton, Visual Basic, Perl, Tcl, Delphi, etc., aunque los parsers en Java son mayoría. Y es que el Java y el XML son la pareja perfecta porque ambos se complementan muy bien. El XML contribuye con datos independientes de la plataforma (documentos y datos portables). Java contribuye con el procesamiento independiente de la plataforma (soluciones de software portátiles orientadas a objetos). Como dijo Jon Bosak [1] en su conocido artículo, XML, Java y el futuro de la Web: "XML dará trabajo al Java".
Todas las grandes compañías ya han elaborado sus propios procesadores de XML:
Y existen muchos más completamente gratis.
La utilización de uno u otro dependerá de vuestras necesidades, aunque es importante que siempre tengáis en cuenta la diferencia entre los que simplemente comprueban que el documento está bien formado, o el que valida respecto de una DTD.
Aunque si tenéis una buena conexión a Internet, también os pueden resultar útiles las siguientes direcciones desde las que podréis validar vuestros documentos XML.
RUWF, desde la cual podemos comprobar que nuestros documentos XML están bien formados. Simplemente hay que introducir la URL del documento XML.
STG, desde donde podemos comprobar que nuestros documentos XML son válidos. Podemos introducir la URL, escribirlo en la caja de texto de un formulario o hacer un upload del fichero desde nuestro disco duro.
Yo por el momento estoy utilizando el parser de IBM en su versión 1_1_14. Para poderlo utilizar tenéis que seguir los siguientes pasos:
Está realizado en Java, por lo que en tendríais que tener vuestra máquina preparada para trabajar con este lenguaje. Yo tengo instalado el JDK 1.1.5 y por ahora me funciona perfectamente.
Una vez instalado el JDK y comprobado que funciona, nos bajamos el parser desde la Web de IBM. Ocupa 1324 KB.
Descomprimimos el ZIP, y nos creará la carpeta XML4J. Dentro nos encontramos más carpetas con ejemplos y documentación, aunque por el momento lo que más nos interesa son los dos ficheros JAR que cuelgan de la carpeta principal: xml4j_1_1_14.jar y xml4jSamples_1_1_14.jar
Para utilizarlo con comodidad he creado el fichero pxml.bat:
jre -cp d:\xml4j\xml4j_1_1_14.jar;d:\xml4j\xml4jSamples_1_1_14.jar samples.XJParse.XJParse -d %1 >tmp.txt
De esta manera, cada vez que quiera parsear un documento XML no tendré más que escribir:
pxml mifichero.xml
Fijaros que simplemente tenéis que indicar la dirección de los ficheros .jar.
La razón del fichero tmp.txt, es que el parser vuelve a generar en la salida el fichero XML, por lo que la reenvio hacia este fichero, obteniendo de esta manera simplemente los errores.
Y ahora ya estamos en condiciones de probarlo. Para ello si queréis os podéis bajar los siguientes ficheros XML:
libro.xml, que es el ejemplo de libro de Amazón en XML sin DTD.
libro1.xml, que es el mismo ejemplo pero con la DTD que nos ha generado el DTDGenerator.
Y si tenemos el pxml.bat y los ficheros XML en el mismo directorio, no tenemos más que escribir:
pxml libro.xml y pxml libro1.xml
Más adelante
Por el momento, con las herramientas descritas tenemos más que suficiente para empezar. Seguro que a lo largo del curso nos irán haciendo falta nuevas aplicaciones. Ya existen para trabajar con XSL, DSSSL, con Xlink, Xpointer, RDF, etc. y mi intención es irlas utilizando y explicando a lo largo de este manual.
Enlaces Recomendados
Robin Cover's XML Information
http://www.oasis-open.org/cover/
Sin duda alguna la guía más completa sobre SGML/XML que nos podemos encontrar en Internet.
Free XML software
http://www.stud.ifi.uio.no/~larsga/linker/XMLtools.html
Estupenda recopilación de software gratuito relacionado con XML. Esta página esta mantenida por Lars Marius Garshol.
XMLSOFTWARE
http://www.xmlsoftware.com/
Estupenda página sobre software XML mantenida por James Tauber.
Anotaciones:
[1]
Jon Bosak es el padre del XML. No sólo fue el que tuvo las ideas originales y seleccionó el equipo de trabajo, sino que organiza y dirige actualmente el grupo de trabajo de XML del W3C. Sin Bosak el XML no hubiera existido.