Tarea de Investigación XML

 

 

 

 

Introducción.

Durante el último año, y sobre todo estos últimos meses se ha estado hablando del Lenguaje Extensible de "Etiquetado", eXtensible Markup Language, o XML, y en todos los foros de Internet que se precien de estar a la última no se puede tratar n ingún tema sin hacer mención a este nuevo estándar. Pero muchas veces se habla de él con poco o nigún conocimiento de causa, y son demasiados los que alaban sus virtudes sin entenderlas ni alcanzarlas por completo. Antes de nada conviene repasar su historia y precedentes. La versión 1.0 del lenguaje XML es una recomendación del W3C desde Febrero de 1998, pero se ha trabajado en ella desde un par de años antes. Está basado en el anterior estándar SGML (Standard Gene ralized Markup Language, ISO 8879), que data de 1986, pero que empezó a gestarse desde principios de los años 70, y a su vez basado en el GML creado por IBM en 1969. Esto significa que aunque XML pueda parecer moderno, sus conceptos están más que asentado s y aceptados de forma amplia. Está además asociado a la recomendación del W3C DOM (Document Object Model), aprobado también en 1998. Éste no es más que un modelo de objetos (en forma de API) que permite acceder a las diferentes partes que pueden componer un documento XML o HTML.

Desde su creación, XML ha despertado encontradas pasiones, y como para cualquier tema en Internet, hay gente que desde el principio se ha dejado iluminar por sus expectativas, mientras que otras muchas lo han denostado o simplemente ignorado. Debo recono cer que soy de las primeras personas :-), pero espero que esto no afecte al contenido del tutorial, que pretende ser objetivo y sencillo. Durante el año 1998 XML ha tenido un crecimiento exponencial, y con ello me refiero sobre todo a sus apariciones en los medios de comunicación de todo tipo, menciones en páginas web, soporte software, tutoriales, etc. Para dar una idea, mientras mi fiche ro de bookmarks sobre el tema en septiembre de 1998 tenia unas 5-7 entradas, ahora se me ha hecho imposible el poder controlar todo lo que aparece sobre él, y tengo del orden de 25-30 entradas que debo cambiar y revisar continuamente. De este modo se ha entrado en 1999 como si se hubiera llegado al final de una pista de despegue; y ahora XML por fin ha despegado.

Y esto significa simplemente que desde noviembre del año pasado hasta hoy ha pasado de mera especulación a ser una realidad empresarial palpable y mesurable: los programas que lo soportan han crecido del mismo modo exponencial, y a día de hoy no hay empresa de software que se precie que no anuncie la compatibilidad de sus productos más vendidos con este nuevo estándar: Micros oft (Office 2000), Oracle (Oracle 8i, Web Application Server) o Lotus (Notes) son tres claros ejemplos de ello. Aún más increíble es pensar que hay empresas que se han creado entorno a él, u otras que han movido su actividad hacia su ámbito (de SGML a XML , por ejemplo, como ArborText). Una pregunta que ha acudido a muchos de nosotros es: ¿será XML el sustituto de HTML, que tan bien conocemos, dominamos, amamos y odiamos? No. Esa es la respuesta, e intentaré explicar porqué: básicamente XML no ha nacido sólo para su aplicación en Inter net, sino que se propone como lenguaje de bajo nivel (a nivel de aplicación, no de programación) para intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo, y casi cualqu ier cosa que podamos pensar. Sin ir más lejos, algunos lenguajes de los que hablaremos, definidos en XML, recorren areas como la química y la física, las matemáticas, el dibujo, tratamiento del habla, y otras muchas.

Pues bien, no lo sustituirá, pero, aplicado en Internet, sí va a mejorar algo de lo que HTML empezaba a adolecer desde hace un tiempo: establece un estándar fijo al que atenerse, y separa el contenido de su presentación. Esto significa que a partir de ah ora, o mejor desde el momento que se aplique definitivamente, para ver un documento web no estaremos sujetos a la parte del estándar de hojas de estilo (CSS) que soporte el Navigator de Netscape o el IExplorer de Microsoft, ni al lenguaje de script del se rvidor y al modelo de objetos definido por MS, Nestcape, etc. Además tampoco estaremos atados a la plataforma: podremos ver la misma información desde nuestro PC o desde un Hand-HeldPC, un navegador textual, una lavadora, un microondas o un reloj con acce so a Internet, con presentaciones adecuadas a cada entorno. Ya veremos más adelante el porqué de estas afirmaciones. Se puede suponer de este modo que XML constituye la capa más baja dentro del nivel de aplicación, sobre el que se puede montar cualquier estructura de tratamiento de documentos, hasta llegar a la presentación.

Pasemos a una definición de XML

¿Qué es XML?

(Extensible Mark-up Lenguage)

  • XML es un Meta-Lenguaje que nos permite definir lenguajes de marcado adecuados a usos determinados.

  • Es un subconjunto de SGML (Standard Generalised Mark-up Language). simplificado y adaptado a Internet.

Características de un documento XML

  • Un documeto XML contiene datos que se autodefinen.

  • En XML el contenido se separa de la presentación de forma total.

  • Puede usar varias hojas de estilo.

  • Se puede mostrar en diferentes formatos.

Documentos XML "Bien-formados"

  • Son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintácticas, sin estar sujetos a unos elementos fijados en un DTD.

  • Los documentos XML deben tener una estructura jerárquica muy estricta y los documentos bien formados deben ampliarla.

Documentos XML Válidos

  • Además de estar bien formados, siguen una estructura y una semántica determinada por un DTD: sus elementos y sobre todo la estructura jerárquica que define el DTD, además de los atributos, deben ajustarse a lo que el DTD dicte.

DTD

  • Los DTD definen los tipos de elementos, atributos, y entidades permitidas y pueden expresar algunas limitaciones para combinarlos.

  • Pueden residir en un fichero externo y quizas compartido por varios datos o bien, puede estar contenida en el propio documento XML, como parte de su declaración de tipo de documento.

Schemas

  • Un "Schema XML" es algo similar a un DTD, es decir, que define que elementos puede contener un documento XML, como estan organizados, y que atributos y de que tipo pueden tener sus elementos.

Parsers

  • Son Análizadores sintácticos.

  • Hay muchos y variados con funcionamientos muy diferentes.

  • Pueden incluir validaciones o no.

  • Pueden realizar transformaciones o no.

  • Pueden exponer la información de diferentes formas (DOM, SAX, etc).

  • Existen para la mayoria de los lenguajes y plataformas de desarrollo (VB,ASP,VC++,PHP,etc).

XSL

  • Es un lenguaje que nos permite definir una presentación o formato para un documento XML. Un mismo documento XML puede tener varias hojas de estilo XSL que lo muestren en diferentes formatos.

  • Basicamente es un lenguaje que define una transformación entre un documento XML de entrada y otro XML de salida.

  • Una hoja de estilo es una serie de reglas que determinan como va a ocurrir la transformación.

  • Cada regla se compone de un patrón (pattern) y una acción o plantilla (template).

W3C (World Wide Web Consortium)

  • Consorcio constituido en 1994 para desarrollar protocolos comunes.

  • Consorcio de industrias internacionales (MIT, INRIA, KEIO University).

  • Cuenta con soporte oficial de DARPA y la comisión Europea.

Ejemplos:

Ejemplo 1

<?xml version="1.0"?>
<!DOCTYPE MENSAJE SYSTEM "mensaje.dtd">
<mensaje>
<remite>
<nombre>Alfredo Reino</nombre>
<email>[email protected]</email>
</remite>
<destinatario>
<nombre>Bill Clinton</nombre>
<email>[email protected]</email>
</destinatario>
<asunto>Hola Bill</asunto>
<texto>
<parrafo>¿Hola qué tal? Hace <enfasis>mucho</enfasis> que
no escribes. A ver si llamas y quedamos para tomar algo.</parrafo>
</texto>
</mensaje>

Ejemplo 2

<?xml version="1.0"?>
<!DOCTYPE listin SYSTEM "LISTIN.DTD">
<listin>
<persona sexo="hombre" id="ricky">
<nombre>Ricky Martin</nombre>
<email>[email protected]</email>
<relacion amigo-de="laetitia">
</persona>
<persona sexo="mujer" id="laetitia">
<nombre>Laetitia Casta</nombre>
<email>[email protected]</email>
</persona>
</listin>


© Derechos Reservados 2000

Emmanuel Sánchez Ramírez.

Colima, Col. México.