|
|
XML
significa eXtensible Markup Language, o lenguaje de anotación extensible.
XML no es sólo un lenguaje, es una forma de especificar lenguajes,
de ahí lo de extensible, por lo tanto, no es un lenguaje para hacer
mejores páginas web, sino un lenguaje para información auto-descrita,
o al menos, auto-descrita si las etiquetas están bien puestas.
Se
inició como un subconjunto de SGML (Standard Generalized
Markup Language), un standard ISO para documentos estructurados que es
sumamente complejo para poder servir documentos en la web, definido por
el World Wide Web Consortium (W3C). XML es algo así como SGML simplificado,
de forma que una aplicación no necesita comprender SGML completo
para interpretar un documento, sino sólo el subconjunto que se
defina. Los editores SGML, sin embargo, pueden comprender XML.
Por
lo tanto, XML es para crear páginas web, o algo parecido a las
página web. XML es un lenguaje que cambia el paradigma de publicación
basado en el programa a programación a uno basado en el documento.
Se puede usar para cambiar totalmente el paradigma de publicación;
de un programa que recibe unas entradas y produce unas salidas, se pasa
a un documento que genera otro documento, o bien programas que toman documentos
y producen otros documentos. Por eso, en general, lo normal es que el
XML se use en el servidor, y se sirva de otro tipo de documentos (HTML,
por ejemplo) que se obtienen con base en una serie de transformaciones.
Precisamente, esto hace que los documentos XML se usen dentro de entornos
de aplicaciones. Este entorno de aplicaciones permite publicar documentos
XML, que, antes de ser enviados al cliente, sufrirán una serie
de transformaciones para adaptarlo a los requisitos del mismo.
XML
ofrece una representación estructural de los datos que se puede
implementar ampliamente y es fácil de distribuir, garantiza que
los datos estructurados sean uniformes e independientes de aplicaciones
o fabricantes. La interoperabilidad resultante está creando rápidamente
una nueva generación de aplicaciones de comercio electrónico
en la Web.
XML,
que proporciona un estándar de datos que puede codificar el contenido,
la semántica y los esquemas de una gran variedad de casos, desde
los más simples a los más complejos. Cuando los datos llegan
al escritorio del cliente, se pueden manipular, editar y presentar en
varias vistas, sin tener que regresar al servidor. Ahora los servidores
pueden ser más escalables, gracias a la reducción de las
cargas de ancho de banda y computación. Además, dado que
los datos se intercambian en el formato XML, se pueden combinar fácilmente
desde distintas fuentes.
XML
es muy valioso para Internet, así como para los entornos de intranets
corporativas de gran tamaño, pues proporciona interoperabilidad
mediante un formato basado en estándares flexible y abierto, con
nuevas formas de acceso a las bases de datos existentes y de entregar
datos a clientes de Web. Las aplicaciones se pueden generar más
rápidamente, su mantenimiento es más sencillo y pueden ofrecer
fácilmente varias vistas de los datos estructurados.
En
un principio, no rivalizarán HTML y XML, estos se complementarán
el uno al otro, anidándose ambas gramáticas.

|
|
El
XML proviene de un lenguaje que inventó IBM alrededor de los años
70. El lenguaje de IBM se llama GML (General Markup Language) y surgió
por la necesidad que tenían en la empresa de almacenar grandes
cantidades de información de temas diversos. GML era un lenguaje
con el que poder clasificarlo todo y escribir cualquier documento para
que luego se pudiera procesar adecuadamente.
Este lenguaje
gustó mucho a la gente de ISO, quienes alrededor del año
1986, trabajaron en la normalización del mismo, con lo cual surgió
el SGML. 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 información.
Por el año
89, se creó un nuevo lenguaje llamado HTML (HyperText Markup
Language) , que fue utilizado para un nuevo servicio de Internet, la
Web. Este lenguaje fue adoptado rápidamente por la comunidad
y varias organizaciones comerciales crearon sus propios navegadores
de HTML y riñeron entre ellos para hacer el navegador más
avanzado, inventándose etiquetas como su propia voluntad les
decía. 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 estándar. 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 continúa, en el desarrollo de XML
(eXtended Markup Language)con este lenguaje se pretendían solucionar
las carencias del HTML en lo que se respecta al tratamiento de la información,
tales como:
El contenido se mezcla con los estilos que se le quieren aplicar.
No permite compartir
información con todos los dispositivos, como pueden ser computadores
o teléfonos móviles.
La presentación
en pantalla depende del navegador que se utilice.

DIFERENCIAS
ENTRE XML Y HTML
A continuación
se presentan las principales diferencias entre el lenguaje HTML y XML:
El HTML se preocupa por formatear datos y para ello son las etiquetas
que tiene el lenguaje, para formatear la información que se desea
mostrar.
El XML se preocupa por estructurar la información que pretende
almacenar. La estructura la marca la lógica propia de la información.
El desarrollo del HTML estuvo enmarcado la competencia entre los distintos
navegadores del mercado. Cada uno quería ser el mejor e inventaba
etiquetas nuevas que a la larga entraban a formar parte del estándar
del W3C, como la etiqueta <FRAME>.
El desarrollo del XML se ha llevado a cabo rigurosamente, siempre ajustado
a lo que marca el estándar que desarrolla el W3C, entidad que
está desarrollando el XML con más diligencia que las empresas
con intereses particulares.
Procesar la información en HTML es inviable, por estar mezclada
con los estilos y las etiquetas que formatean la información.
En XML se puede procesar la información con mucha facilidad,
porque todo está ordenado de una manera lógica, así
mismo el formateo de la información para que se pueda entender
bien por el usuario es viable a través de un pequeño procesamiento,
a través de hojas de estilos o similares.
ALGUNAS
APLICACIONES Y VENTAJAS DE XML
Entre
las aplicaciones del XML, se pueden mencionar las siguientes:
Ofrecer mecanismos más versátiles de mostrar datos. Actualmente,
bajo el nombre de DOM (Document Object Model) se está desarrollando
una API que sea soportada por todos los procesadores de XML y HTML.
La idea detrás de esta API es que podamos representar (a través
de javascripts o JavaApplets) documentos XML en los navegadores Web,
pero de una forma más sofisticada que los documentos HTML, ya
que XML no solo proporciona una sintaxis, sino también una semántica.
Buscadores
inteligentes. Debido a que la información en los documentos
XML está etiquetada por su significado de forma precisa, podemos
localizarla de forma mucho más clara que en documentos HTML.
Con DTDs estandarizados para distintas aplicaciones (librerías,
tiendas de deporte, catálogos de componentes,…) podríamos
programar buscadores Web que recuperasen información sobre un
producto de cualquier website en el mundo sabiendo que todos tendrán
el mismo formato de datos (gracias al DTD), aunque no tengan necesariamente
la misma representación gráfica (gracias al XML/XSL).
Intercambio
de información entre sistemas heterogéneos. El
fundamento es el mismo que para los buscadores inteligentes. Debido
a que el DTD proporciona un formato estándar para representar
la información de un tema específico, puede usarse para
simplificar el intercambio de información entre distintas fuentes
(actualmente existen ya dos DTD estandarizados uno para fabricantes
de chips y otro para industrias químicas, llamado CML).
Entre las
implantaciones/aplicaciones más importantes que se han desarrollado
con XML se pueden mencionar las siguientes:
CDF
(Channel Definition Format): Los
canales creado por Microsoft en el explorador IE4 con tecnología
push.
RDF
(Resource Description Framework): Esquema de descripción
de recursos. Una de las aplicaciones más importantes que permitirá
describir los datos de cada documento y definir las relaciones que
hay entre los datos XML. Tratará de los metadatos (metadata).
Se les podría considerar como "los META del XML".
Muchas compañías en Internet se están adhiriendo
a esta aplicación. RDF Posee las siguientes virtudes:
Mejores
motores de búsqueda. Se han adherido a esta especificación
Yahoo!, Altavista, Excite, Lycos, WebCrawler, Amazon, etc.
La capacidad de describir los contenidos y sus relaciones en una biblioteca
digital o sede Web. Permitirá el acceso a una parte concreta
del documento y se facilitará el intercambio de los datos.
Se pueden calificar los contenidos para establecer la protección
infantil y de la propia intimidad, desarrollado a través de
las marcas (tags) de PICS (Platform for Internet Content Selection).
Establece los derechos de propiedad intelectual en las propias páginas
Web.
OSD (Open Software Description Format): Formato abierto
de descripción de software. Desarrollo de software en múltiples
plataformas. Describe el reparto de software a través de la Red.
Las etiquetas XML con las que está descrito definen los componentes,
la versión que es, la plataforma en la que ha sido creado, la
relación con otros componentes, etc. Esto hará que se
simplifique el proceso de instalación para el usuario y permitir
también un fácil uso de las actualizaciones.
CML
(Chemical Markup Language): Lenguaje de marcas para química.
Describe, entre otras formulas, las estructuras moleculares y cristalinas,
los análisis de espectros y otros objetos de interés
para los químicos.
MathML
(Mathematical Markup Language): Lenguaje de marcas para matemáticas.
Apto para codificar signos matemáticos, símbolos científicos,
etc. El MathML es un lenguaje de bajo nivel que tiene en cuenta la comunicación
maquina a maquina de datos estructurados como información de
bases de datos. El lenguaje MathML utiliza dos series de códigos
progresivos: el primero presenta los signos matemáticos en series
crecientes, y el segundo transmite el significado semántico de
las expresiones matemáticas, lo que posibilita la codificación
de símbolos y signos tanto matemáticos como científicos.
EDI
(Electronic Document Interchange): Intercambio electrónico
de datos. Lleva un tiempo en proceso de estudio, pero finalmente dará
un espaldarazo con el estándar XML. InfoVía Plus lo
integra en uno de sus servicios (InfoEDI).
OFX
(Open Financial Exchange): Intercambio financiero abierto.
Marco de trabajo enunciado actualmente en SGML, aunque Microsoft dice
que pronto será enunciado en XML. A través de software
de gestión financiera (Quicken, Microsoft Money, etc.) se podrá
conectar con el banco para gestionar las cuentas y extraer información
de la cuenta bancaria. Esto se hará a través de unos protocolos
seguros.
TEI
(Text Encoding Initiative): Iniciativa que partió
de diversas asociaciones profesionales en los campos de humanidades.
Trata de establecer etiquetas que propicien la descripción
de textos científicos y literarios. En principio solo está
disponible para SGML(6).
El uso de
XML puede proporcionar ciertas ventajas, entre las cuales se mencionan
las siguientes:
Los autores y proveedores pueden diseñar sus propios tipos de
documentos usando XML, en vez de limitarse a HTML. Los tipos de documentos
pueden ser explícitamente 'hechos a la medida de una audiencia',
por lo que las difíciles manipulaciones que se deben hacer con
HTML para conseguir efectos especiales serán cosa del pasado:
autores y diseñadores serán libres de inventar sus propias
etiquetas;
La información contenida puede ser más 'rica' y fácil
de usar, porque las habilidades hipertextuales de XML son mayores que
las de HTML.
XML puede dar más y mejores facilidades para la representación
en los navegadores.
Elimina muchas de las complejidades de SGML, en favor de la flexibilidad
del modelo, con lo que la escritura de programas para manejar XML será
más sencilla que haciendo el mismo trabajo en SGML.
La información
será más accesible y reutilizable, porque la flexibilidad
de las etiquetas de XML pueden utilizarse sin tener que amoldarse a
reglas específicas de un fabricante, como es el caso de HTML.
Los archivos XML válidos son válidos también en
SGML, luego pueden utilizarse también fuera de la Web, en un
entorno SGML (una vez la especificación sea estable y el software
SGML la adopte).

|
OBJETIVOS
Y USOS DE XML |
El
desarrollo del lenguaje XML, ha estado orientado básicamente a
los siguientes objetivos:
Mantener la misma base del HTML para servir, recibir y procesar la información,
con la finalidad de aprovechar toda la tecnología implantada para
este último.
Ser formal y conciso desde el punto de vista de los datos y la manera
de guardarlos.
Ser extensible,
para que lo puedan utilizar en todos los campos del conocimiento.
Facilitar la lectura y edición de los datos.
Ser fácil de implantar, programar y aplicar a los distintos sistemas.
Algunos
de los usos que se le pueden dar al desarrollo con XML son los siguientes:
Comunicación
de datos:
Si la información se transfiere en XML, cualquier aplicación
podría escribir un documento de texto plano con los datos que estaba
manejando en formato XML y otra aplicación recibir esta información
y trabajar con ella.
Migración de datos:
Si se tienen que mover los datos de una base de datos a otra sería
muy sencillo si ambas trabajasen en formato XML.
Aplicaciones
Web:
Hasta ahora cada navegador interpreta la información a su manera
y los programadores del web deben hacer unas cosas u otras en función
del navegador del usuario. Con XML se tiene una sola aplicación
que maneja los datos y para cada navegador o soporte se podrá tener
una hoja de estilo o similar para aplicarle el estilo adecuado. Si mañana
la aplicación debe correr en WAP solo tenemos que crear una nueva
hoja de estilo o similar.

|
FUNDAMENTOS
BÁSICOS DE XML |
1.
Contenido:Elementos - Atributos
Los documentos
XML están formados por elementos; la información que puede
contener cada elemento se define en la DTD del documento (la gramática
que describe de forma precisa el tipo de documento).
Los
elementos pueden dividirse en:
Elementos
con Contenido: incluirán una etiqueta de inicio y una
etiqueta de fin, que delimitan el contenido del elemento; la etiqueta
de inicio sería el nombre del elemento entre ángulos (<...>)
y la de fin tendría además un barra inclinada (</...>).
Ejemplo:
<título>Esto es un título.</título>
Elementos
sin Contenido (o vacíos): (normalmente serán
elementos con atributos asociados), se pueden incluir con la notación
anterior, pero sin especificar contenido, o
usando una etiqueta de elemento vacío que no requiere ni contenido
ni etiqueta de fin de elemento.
<ElementoVacio/>.
Los elementos,
además de contenido pueden tener atributos. Los atributos sirven
para recoger características o propiedades de los elementos. Los
atributos tendrán un nombre que los identifica dentro del elemento,
y un valor asociado en cada ocurrencia de un elemento concreto. Los atributos
que tiene un elemento, y los tipos de valores que pueden tomar, se especifican
dentro de la DTD del documento.
Ejemplo de
elemento con atributos:
<Persona
altura="1.72" peso="70">Mariano</Persona>
Los
valores de los atributos deben ir entre comillas (con comillas simples
', o con comillas dobles ", cuando se utiliza un tipo de comillas,
el otro puede utilizarse dentro del valor del atributo).
2.
Prólogo-cabecera:
Los documentos de XML deben empezar con un prólogo que describa
la versión de XML utilizada, el tipo de documento y otras características;
el prólogo se compondrá de:
Una
declaración XML , que incluye: información de
versión (1), declaración de codificación (2) (que
indica el tipo de codificación de caracteres utilizado), y una
declaración de documento autónomo (3) (en ella se indica
que componentes de la declaración de tipo de documento son necesarios
para completar el procesamiento del documento).
Ejemplos:
Declaración
mínima XML: <?xml version="1.0"?> .
Declaración
XML más amplia: <?xml version="1.0"(1) encoding="UTF-8"(2)
standalone="yes"(3) ?>
Una
declaración de tipo de documento ( DTD ): que es la
base del concepto de validez estructural de un documento: en la DTD
se describen los elementos disponibles, se imponen restricciones en
la coincidencia y contenido de los elementos, ... así se consigue
un sistema de información mas robusto (se entiende que todos
los documentos que compartan una DTD serán consistentes).
Los documentos
que satisfagan su DTD se dirá que son válidos (en contraposición
a los que únicamente satisfagan la sintaxis básica de XML,
que se llamarán bien formados ), de esta forma un documento puede:
Estar
mal formado ( ni siquiera es válido desde el punto de
vista de la sintaxis de XML); (ej. <Persona>Hombre ), (un documento
nunca podría ser válido y estar mal formado).
Estar
bien formado, pero no ser válido (es sintácticamente
válido desde el punto de vista de XML, pero no satisface las
restricciones impuestas por su DTD), también podría estar
bien formado y no tener asociada ninguna DTD;
Estar
bien formado y ser válido.
Hay dos tipos de DTD :
Internas:
la DTD se incluye en el propio documento. La declaración de tipo
de documento se introduce con "<! DOCTYPE ", a continuación
el nombre del elemento raíz del documento, después las
declaraciones de tipo de elemento entre corchetes "[...]"
y se cierra la declaración con ">".
Ejemplo:
<!DOCTYPE Clase[
<!ELEMENT
Clase (Profesor,Alumno+)>
<!ELEMENT
Profesor (Nombre, Asignatura)>
<!ELEMENT
Alumno (Nombre)>>]>
Externas:
la DTD está en otro fichero, (es mas útil de esta forma,
así múltiples documentos pueden compartir la definición
de su tipo); en este caso tendremos: "<!DOCTYPE" seguido
del elemento raíz del documento, después "SYSTEM",
el nombre ó URL del fichero que contiene la DTD, y por último
">".
Ejemplo:
<!DOCTYPE Clase SYSTEM "http://www.pepito.com/Clase.dtd">
3.
Declaración de tipo de elemento:
Las declaraciones de tipo de elemento son partes de la DTD en las que
se especifica que contenido van a poder tener los elementos dentro del
documento.
Las declaraciones
de elemento empezarán con "<!ELEMENT, seguidas del nombre
del elemento, una especificación de contenido, y acaban con ">".
En cuanto a las especificaciones de contenido , hay 4 posibilidades:
Contenido
EMPTY: el elemento será siempre vacío, (se usará
cuando sólo interesan los atributos del elemento).
Ejemplo:
<!ELEMENT ElementoVacio EMPTY>
Contenido
ANY: dentro del elemento podemos tener cualquier cosa, (se
suele utilizar muy pocas veces, porque hace que todo su contenido esté
desectructurado).
Ejemplo:
<!ELEMENT CualquierCosa ANY>
Contenido
" mixed ": cuando el elemento puede contener caracteres,
ó una mezcla de caracteres y subelementos, (para especificar
que elementos puede contener y en que orden se utiliza un modelo de
contenido).
Ejemplo:
<!ELEMENT SoloCaracteres (#PCDATA)>
Ejemplo:
<!ELEMENT MezclaCaracteresSubElementos (#PCDATA | SubElemento)*>
Contenido
" element ": cuando sólo se introducen subelementos
en la especificación de contenido.
Ejemplo:
<!ELEMENT Alumno (Nombre, Apellidos, Curso)>
Para los elementos
con contenido mixed y element, la especificación de que subelementos
pueden contener y en que orden, se realiza mediante un modelo de contenido
. El modelo de contenido sigue al nombre del elemento en la declaración
de elemento, y va encerrada entre paréntesis, los subelementos
podrán ir separados por:
Comas
(","):
indica secuencia de subelementos, de tal forma que si tenemos:
<!ELEMENT
Alumno (Nombre, Apellidos, Curso)>
estamos
especificando que el elemento Alumno estará formado por la secuencia
de 3 elementos (Nombre, Apellidos y Curso), que además deberán
aparecer en ese orden.
Barras
("|"): indica opción de subelementos , de
tal forma que si tenemos:
<!ELEMENT
TecnicoInformatica (Gestion | Sistemas)>
decimos
que dentro de la marca "TecnicoInformatica" puede aparecer
o el subelemento "Gestion" o el subelemento "Sistemas",
(debe aparecer uno y sólo uno de los dos).
También
es posible combinar opciones y secuencias usando paréntesis:
Ejemplo:
<!ELEMENT TecnicoInformatica ((Gestion | Sistemas), FechaFinalizacion)>,
ahora
el elemento "TecnicoInformatica" contendrá dos subelementos:
primero un subelemento "Gestion" o "Sistemas", y
un segundo subelemento: "FechaFinalizacion".
También
es posible usar en los modelos de contenido indicadores de frecuencia
para subelementos o grupos de subelementos:
"?"
: opcional (0 ó 1 vez),
"*"
: opcional y repetible (0 ó mas veces),
"+"
: necesario y repetible (1 ó mas veces).
Ejemplo:
<!ELEMENT TecnicoInformatica ((Gestion | Sistemas), FechaFinalizacion?)>
(ahora es posible que no tengamos el subelemento FechaFinalizacion).
Ejemplo:
<!ELEMENT Texto (Titulo , Capitulos+)> (tenemos un elemento texto
con un título y 1 ó mas capítulos).
Ejemplo:
<!ELEMENT Encuesta (Presentacion, (Pregunta, Respuesta)+, Resultado?)>(el
elemento encuesta estaría formado por una presentación,
seguida de una secuencia de 1 ó mas pregunta-respuesta, y quizas
un resultado).
4.
Declaración de lista de atributos:
A
la hora de decidirse entre incluir un atributo o un subelemento , tenemos
que tener en cuenta las diferencias entre ambos:
Los
atributos no pueden contener elementos, y no existen "subatributos".
Los
atributos sólo recibirán valor una vez para un elemento,
y el orden en el que se especifiquen resulta irrelevante.
Los atributos se especifican para un determinado tipo de elemento usando
una declaración de lista de atributos: empieza con "<!ATTLIST
", luego el nombre de un tipo de elemento, y después una lista
de declaración de atributos, cada una de las cuales llevará
el nombre del atributo, su tipo y su valorpor defecto. La declaración
acaba con ">".
Ejemplo:
<!ATTLIST TarjetaDeVisita Nombre CDATA #REQUIRED
Direccion
CDATA #REQUIRED
Telefono
CDATA #REQUIRED
EMail
CDATA #IMPLIED>
Tipos de atributos:
CDATA: ("character data"), cualquier cadena de caracteres.
NMTOKEN:
cadena de caracteres, con las restricciones típicas de los identificadores
(secuencia de letras y dígitos más algún otro carácter
"." "-" "_" ":", que empieza
por letra).
Atributos
enumerados: atributos que sólo pueden tomar valores
de una lista dada.
Ejemplo:
<!ATTLIST Informatico NivelesInteligencia (MuyListo, Listo, Tonto,
MuyTonto, Mariano) #REQUIRED>
Atributos
de anotación: atributos que permiten declarar que el
contenido de un elemento se ajusta a una determinada anotación
declarada.
Ejemplo:
(modos de presentar fechas). <!ATTLIST Fecha NOTATION (EUROPEAN-DATE
| USA-DATE | ISO-DATE) #REQUIRED> (las notaciones deben haberse declarado
previamente).
Atributos
ID: (identificador de elemento), indica que ese atributo "es
una clave", lo que significa que no podremos tener dos elementos
en un documento con el mismo valor en un atributo ID;
Atributos
IDREF: (referencia a identificador de elemento), indica que
ese atributo es "referencia a una clave": el valor que contenga
ese atributo deberá ser igual al de algún atributo ID
de algún elemento que esté en el documento;
Atributos
ENTITY: suelen utilizarse para hacer referencia a objetos externos
que no deberán analizarse sintácticamente en XML (imagenes,
videos, ...).
Valores por defecto:
Se
incluyen después de la especificación de tipo de atributo,
entre comillas dobles:
Ejemplo:
<!ATTLIST Zapatos Talla CDATA "40">
Ejemplo:
<!ATTLIST Informatico NivelesInteligencia (MuyListo, Listo, Tonto,
MuyTonto, Mariano) "Listo">
Hay
veces en las que se puede permitir que el valor de un atributo quede
sin especificar, y sin darle un valor por defecto, (por ejemplo hay
camisetas que no tienen una talla determinada, son talla única);
en este caso se especificará que el atributo es IMPLIED .
Ejemplo:
<!ATTLIST Camiseta Talla CDATA #IMPLIED>
para
atributos del tipo anterior, el usuario no está obligado a darles
valor, sería correcto poner: <Camiseta>...</Camiseta>.
La
situación contraria a la anterior se da cuando queremos que al
atributo se le de un valor, en ese caso se especificará como
REQUIRED el atributo.
Ejemplo:
<!ATTLIST Imagen URL CDATA #REQUIRED>
5.
Entidades
Las entidades
permiten dividir el documento en varios ficheros, son muy útiles
para mantener y reutilizar fragmentos de documentos.
Las entidades pueden verse como abreviaturas (en la que la abreviatura
sería la entidad y la forma larga sería el contenido de
la entidad - que puede ser desde un solo carácter, hasta un texto
entero -).
También pueden verse como una caja con una etiqueta: la etiqueta
sería el nombre de la entidad, el contenido de la caja es algun
tipo de texto o dato. La declaración de la entidad crea el cuadro
y le asocia la etiqueta. Y luego en el resto del documento podemos usar
la etiqueta para referirnos a toda la caja, (a su contenido).
La declaración de las entidades se lleva a cabo en la declaración
del tipo de documento, para ello se incluye primero "<!ENTITY",
después el nombre de la entidad, despues entre comillas el contenido
de la entidad y se acaba con ">". (Esta sintaxis tiene algunas
variaciones segun el tipo de entidad, como ya veremos).
Ejemplo:
<!ENTITY DTD "Definicion de tipo de documento">.
Las referencias a entidades se realizan con "&" y el nombre
de la entidad; o con "%" y el nombre de la entidad (si es una
entidad parametro).
Tipos de entidades :
En funcion de su situación física:
Internas:
el contenido de la entidad se encuentra definido en la propia declaración
de la entidad (el ejemplo anterior sería un una entidad interna).
Externas:
el contenido de la entidad esta en otro fichero distinto al
del documento; la especificación de este tipo de documento se
hace con: "<!ENTITY", el nombre de la entidad, "SYSTEM",
y el nombre del fichero (su URL) entre comillas, se acaba la declaración
con ">".
En función de su contenido:
No
analizadas: el contenido al que hace referencia la entidad
no es contenido XML, y por lo tanto no debe analizarse, (p.e. imagenes,
videos, ...); hay veces en las que tambien resulta útil incluir
contenido XML como entidades externas no analizadas (p.e. si tenemos
un tipo de documento "ejemplo", y queremos incluir estos documentos
en otros documentos: "libro",en lugar de extender el tipo
de documento con etiquetas para ejemplo, lo podríamos incluir
como entidad externa no analizada).
Analizadas:
cuando el contenido de la entidad es texto XML que debe analizarse;
Ejemplo:
<!ENTITY Titulo "<Title>Capitulo 1</Title>">]
En función del lugar donde vayan a utilizarse:
Generales:
si pueden referenciarse en cualquier parte del documento,(tanto
en la cabecera como en el cuerpo del documento XML).
Parámetro:
si solo pueden referenciarse en la cabecera del documento,
(el contenido de la entidad será una - o un conjunto de-, declaración
de entidad, declaración de lista de atributos, ..., - esto es
útil para reutilizar partes de la declaraciones en varios tipos
de documentos -); la declaración de este tipo de entidades se
hace con: "<!ENTITY", seguido de "%", y el resto
igual que siempre; las referencias a este tipo de entidades se hacen
con "%" mas el nombre de la entidad.

|
|
Un
documento XML tiene dos estructuras, una lógica y otra física:
Físicamente, el documento está compuesto por unidades
llamadas entidades. Una entidad puede hacer referencia a otra entidad,
causando que esta se incluya en el documento. Cada documento comienza
con una entidad documento, también llamada raíz.
Lógicamente,
el documento está compuesto de declaraciones, elementos,
comentarios, referencias a caracteres e instrucciones de procesamiento,
todos los cuales están indicados por una marca explícita.
Las estructuras lógica y física deben encajar de manera
adecuada:
Los
documentos XML se dividen en dos grupos, documentos bien formados y documentos
válidos.
Un
objeto textual o documento XML se dice que está bien formado si,
considerándolo como conjunto, encaja con las especificaciones XML
de producción, lo que implica:
Contiene uno o más elementos:
Hay exactamente
un elemento, llamado raíz o elemento documento, de forma que
ninguna parte del mismo aparece en el contenido de ningún otro
elemento.
Para
todos los demás elementos, están delimitados por una etiqueta
de inicio y otra de final, se encuentran anidados correctamente.
Cumple todas las restricciones que proporciona su especificación
a través del DTD. Si no se utiliza DTD, el documento debe comenzar
con un Declaración de Documento único (SDD, Standalone
Document Declaration) que indique:
<?XML
version="1.0" standalone="yes"?>
Cada una de sus partes procesadas esta bien formada:
Todas las
etiquetas deben estar balanceadas: esto es, todos los elementos que
contengan datos de tipo carácter deben tener etiquetas de principio
y fin (no está permitida la omisión excepto para los elementos
vacíos.).
Todos los
valores de los atributos deben ir entrecomillados (el carácter
comilla simple [el apóstrofe] puede utilizarse si el valor contiene
caracteres comillas dobles, y viceversa): si necesitas ambos, utiliza
' y ".
Cualquier
elemento VACÍO (p.e. aquellos que no tienen etiqueta final como
<IMG>, <HR>, y <BR> y otros de HTML) deben terminar
con '/>' o debes hacerlos no VACÍOS añadiéndoles
una etiqueta de fin.
Ejemplo: <BR> se convertirá
en <BR/> o en <BR></BR>.
No
debe haber etiquetas aisladas (< ó &) en el texto (p.e.
debe darse como < y &), y la secuencia ]]> debe darse
como ]]> si no ocurre esto como final de una sección marcada
como CDATA.
Los elementos
deben anidar dentro de sí sus propiedades (no se deben sobreponer
etiquetas, como en el resto de SGML).
Los Archivos
bien-formados sin-DTD pueden utilizar atributos en sus elementos, pero
éstos deben ser todos del tipo CDATA, por defecto.
De un documento bien formado,
se dice además que es válido, si tiene DTD como el resto
de aplicaciones SGML. Un archivo XML válido comienza como cualquier
otro archivo SGML, con una Declaración de Tipo de Documento:
<?xml
version="1.0"?>
<!DOCTYPE anuncio SYSTEM "http://www.foo.org/ad.dtd">
<anuncio>
<titulo>...<foto/>...</titulo>
<texto>...</texto>
</anuncio>
Dado
que XML está diseñado para ser un subconjunto de SGML,
cualquier documento XML válido debe ser también un documento
SGML válido.
Estructuras lógicas:
Cada documento XML contiene
uno o más elementos, cuyos limites están delimitados por
etiquetas de comienzo y de final o, en el caso de elementos vacíos,
por una etiqueta de elemento vacío.
Cada
elemento tiene un tipo, identificado por un nombre, denominado identificador
genérico, y puede tener un conjunto de especificaciones de atributos.
Cada
especificación de atributo tiene un nombre y un valor. Estas especificaciones
no restringen la semántica, el uso o (mas allá de la sintaxis)
los nombres de los tipos de los elementos y los atributos, excepto de
los nombres que comienzan por XML, que se reservan para estandarizar etiquetas
o atributos en versiones posteriores del estándar.
Estructuras físicas:
Un documento XML puede consistir
en una o más unidades de almacenamiento virtual, llamadas entidades.
Todas estas unidades tienen contenido y todas ellas (excepto la entidad
documento y el subconjunto externo del DTD) están identificadas
por un nombre. Cada documento XML contiene una entidad, llamada entidad
documento, que sirve como punto de comienzo para el procesador XML y puede
contener el documento completo.
Como
hemos comentado, las entidades pueden ser analizadas o sin analizar (también
llamadas procesadas o sin procesar). El contenido de una entidad analizada
se conoce también como texto de reemplazo, y es parte integrante
del documento. Las entidades no analizadas son recursos (tales como enlaces)
cuyo contenido puede o no ser texto, o en caso de que sea texto que no
sea XML. Cada entidad no asociada tiene una notación asociada,
identificada por un nombre. Aparte de obligar al procesador XML a haga
accesible a la aplicación el nombre de esta notación y sus
identificadores asociados, XML no proporciona ninguna otra restricción
sobre el contenido de estas entidades. La forma de invocar ambos tipos
de entidades es a través de su nombre, en el caso de las analizadas
a través de su referencia a entidad y en el de las no analizadas
a través de sus atributos de entidad.
Las
entidades generales, son entidades analizadas que se usan en el interior
del documento. Las entidades parametrizadas son entidades analizadas que
se usan en el ámbito del DTD. Estos dos tipos de entidades usan
distintos tipos de referencias y se reconocen en contextos distintos.
XML
consta de cuatro especificaciones (el propio XML sienta las bases sintácticas
y el alcance de su implementación):
DTD
(Document Type Definition): Definición
del tipo de documento. Es, en general, un archivo(s) que encierra una
definición formal de un tipo de documento y, a la vez, especifica
la estructura lógica de cada documento. Define tanto los elementos
de una página como sus atributos. El DTD del XML es opcional. En
tareas sencillas no es necesario construir una DTD, entonces se trataría
de un documento "bien formado" (well-formed) y si lleva DTD
será un documento "validado" (valid).
XSL (eXtensible Stylesheet
Language): Define o implementa el lenguaje de estilo de los documentos
escritos para XML. Desde el verano de 1997 varias empresas informáticas
como Arbortext, Microsoft e Inso vienen trabajando en una propuesta de
XSL (antes llamado "xml-style") que presentaron a W3C. Permite
modificar el aspecto de un documento. Se puede lograr múltiple
columnas, texto girado, orden de visualización de los datos de
una tabla, múltiples tipos de letra con amplia variedad en los
tamaños. Este estándar está basado en el lenguaje
de semántica y especificación de estilo de documento (DSSSL,
Document Style Semantics and Specification Language, ISO/IEC 10179) y,
por otro lado, se considera más potente que las hojas de estilo
en cascada (CSS, Cascading Style Sheets), usado en un principio con el
lenguaje DHTML. "Se espera que el CSS sea usado para visualizar simples
estructuras de documentos XML (actualmente se ha conseguido mayor integración
en XML con el protocolo CSS2 (Cascading Style Sheets, level 2) ofreciendo
nuevas formas de composición y una más rápida visualización)
y, por otra parte, XSL pueda ser utilizado donde se requiera más
potencia de diseño como documentos XML que encierran datos estructurados
(tablas, organigramas, etc.)(2)".
XLL (eXtensible Linking
Language): Define el modo de enlace entre diferentes enlaces.
Se considera que es un subconjunto de HyTime (Hipermedia/Timed-based structuring
Language o Lenguaje de estructuración Hipermedia/basado en el tiempo,
ISO 10744) y sigue algunas especificaciones del TEI (Text Encoding Initiative
o Iniciativa de codificación de texto). Desde marzo de 1998 el
W3C trabajo en los enlaces y direccionamientos del XML. Provisionalmente
se le renombró como Xlink y a partir de junio se le nombra como
XLL. Este lenguaje de enlaces extensible tiene dos importantes componentes:
Xlink y el Xpointer. Va más allá de los enlaces simples
que sólo soporta el HTML. Se podrá implementar con enlaces
extendidos. Jon Bosak establece los siguientes mecanismos hipertextuales
que soportará esta especificación:
Denominación independiente de la ubicación.
Enlaces que pueden
ser también bidirecccionales.
Enlaces que pueden
especificarse y gestionarse desde fuera del documento a los que se apliquen
(Esto permitirá crear en un entorno intranet/extranet un banco
de datos de enlaces en los que se puede gestionar y actualizar automáticamente.
No habrá más errores del tipo "404 Not Found").
Hiperenlaces
múltiples (anillos, múltiples ventanas, etc.).
Enlaces agrupados
(múltiples orígenes).
Transclusión
(el documento destino al que apunta el enlace aparece como parte integrante
del documento origen del enlace).
Se pueden aplicar
atributos a los enlaces (tipos de enlaces).
XUA
(XML User Agent): Estandarización de navegadores XML.
Todavía está en proceso de creación de borradores
de trabajo. Se aplicará a los navegadores para que compartan todos
las especificaciones XML.

|
SINTAXIS
XML
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
<?xml version="1.0"?>
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.
<ETIQ1>...<ETIQ2>...</ETIQ2>...</ETIQ1>
Cualquier
etiqueta puede tener atributos. Le podemos poner los atributos que queramos.
<ETIQ
atributo1="valor1" atributo2="valor2"...>
Los
comentarios de XML se escriben igual que los de HTML.
<!--
Comentario -->
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 tecnologías
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 información
de una forma estructurada y ordenada. Por ejemplo, si deseamos guardar
la información relacionada con una película en un documento
XML podríamos utilizar un esquema con las siguientes etiquetas.
<?xml
version="1.0"?>
<PELICULA nombre="El Padrino" año=1985>
<PERSONAL>
</DIRECTOR nombre="Georgie Lucar">
</INTERPRETE nombre="Marlon Brando" interpreta-a="Don
Corleone">
</INTERPRETE nombre="Al Pacino" interpreta-a="Michael
Corleone">
</PERSONAL>
</ARGUMENTO descripción="Pelicula de mafias sicilianas
en Estados Unidos">
</PELICULA>
Como
se puede observar, se han inventado etiquetas para poner este ejemplo
y se han anidado de manera que la etiqueta más grande es la PELICULA
y dentro de ella se tienen el PRESONAL y el ARGUMENTO. A su vez, dentro
de PERSONAL se incluye tanto al DIRECTOR como a los actores (INTERPRETE).
|
HERRAMIENTAS
Y TECNOLOGÍAS RELACIONADAS CON XML
|
Algunas
herramientas XML:
Hay una gran variedad de herramientas relacionadas con XML, que suelen
estar especializadas en alguna tarea en concreto:
Editores:
permiten la creación de documentos xml, dtds ,... algunos
son visuales y permiten trabajar sobre documentos marcados a personas
que no conocen bien la sintaxis del lenguaje.
Parsers:
analizadores de documentos de la familia XML, los hay que siguen
distintas filosofías (DOM-SAX), según nos interese la
flexibilidad o la eficiencia.
"Transformadores":
permiten la transformación de documentos XML a otros
documentos (XML o en cualquier otro formato).
Herramientas
para obtener información estructurada a partir de información
no estructurada.
Navegadores:
actualmente Internet Explorer (desde su version 4), soporta
ya XML y es de esperar próximamente otros navegadores también
lo hagan.
Tecnologías
relacionadas con XML
Se
ha mostrado lo sencillo que es XML y las pocas normas que se tienen para
su sintaxis. Simplemente se utilizan las etiquetas necesarias, abriendo
y cerrando cada epígrafe de manera parecida a como se hace en HTML.
Toda
esta sencillez es gracias a que XML tiene muchas otras tecnologías
relacionadas que son las encargadas de manejar importantes procesos dentro
del ámbito de una aplicación XML. La sintaxis, la manera
de aplicar estilos, programar o acceder a bases de datos, va por su parte,
es decir, son tecnologías relacionadas con el XML.
Entre
las tecnologías relacionadas con XML, se describen tres de las
más importantes:
Contenidos:
DTD o XML Schema
Un
documento XML puede contener muchos tipos de información. Es decir,
pueden haber muchos lenguajes escritos en XML para cualquier colectivo
de usuarios. Por ejemplo:
Si lo utiliza el colectivo de médicos podría crear un
lenguaje en XML específico para almacenar diagnósticos
de los pacientes. Este lenguaje se podría llama PacientesML.
Si los distribuidores
de películas utilizan XML podrán crear sus propios lenguajes
para guardar la información de las películas. Este lenguaje
se podría llamar PeliculasML.
Si se están
escribiendo aplicaciones para móviles, se podría utilizar
un lenguaje para aplicaciones inalámbricas (Wireless), que se
llama WML.
Como
se observa, 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. Se definen especificando qué etiquetas podemos o
debemos encontrarnos en los documentos HTML, en qué orden, dentro
de qué otras, además de especificar los atributos que pueden
o deben tener cada una de las etiquetas.
Hay
dos metalenguajes con los que definir los lenguajes que se pueden 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 sencilla, aunque un poco rara si nunca se ha visto
un documento similar.
Para
evitar el DTD, que tiene una sintaxis muy especial, se intentó
encontrar una manera de escribir en XML la definición de otro lenguaje
XML. Se definió entonces el lenguaje XML Schema
y funciona bien, aunque puede llegar a ser un poco más complicado
que especificarlo en DTD. Simplemente ahorra la necesidad de aprender
un nuevo lenguaje con su sintaxis particular.
Un
detalle importante de señalar a la hora de hablar de los DTD o
XML Schema es que estos lenguajes también permiten comprobar la
integridad de los datos en cualquier momento. Se calcula que un 70% de
las líneas de código que escribe un programador están
orientadas a comprobar la integridad de los datos, es decir, comprobar
si donde se supone que hay un número efectivamente lo hay, si el
número es entero o cualquier otra comprobación. Los metalenguajes
de XML sirven para tomar un documento XML y comprobar que los datos que
él incluye son válidos, comprobando si lo que se tiene en
el XML concuerda con lo que debería tener. Eso se puede hacer al
leer el documento, si no son validos se saca un mensaje de error y se
detiene el proceso del documento. Si son válidos se hacen las acciones
subsecuentes sin tener que tener que preocuparse por la integridad de
los datos.
Diseño:
CSS o XSL
Para
cada documento XML que se desee presentar en pantalla formateado de la
manera que se desee es necesario escribir una hoja de estilos o similar.
También
se tienen dos posibles lenguajes con los que formatear los textos de un
documento XML para poder verlo por pantalla. La primera posibilidad es
el CSS . La segunda opción es el XSL, bastante más avanzada.
CSS
(Cascading Style Sheets o hojas de estilo en cascada) no es nada
nuevo, ya se podía utilizar con HTML y se creó en un intento
de separar la forma del contenido en HTML. En XML también se pueden
utilizar las CSS, y se utilizan de una manera muy similar a cómo
se utilizan en HTML, por lo menos los atributos de estilo que se pueden
aplicar son los mismos y sus posibles valores también.
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. Además
se pueden realizar pequeñas instrucciones típicas de los
lenguajes de programación y la salida no tiene porque ser un documento
HTML, sino que además podría ser de otros tipos, cualquiera
que se puedan necesitar como un documento escrito en WML (para WAP), un
documento de texto plano u otro documento XML.
XSL
resulta mucho más potente que CSS y de hecho es mucho más
adecuado utilizarlo. Una de sus principales ventajas se muestra a continuación:
Si se triene un documento XML que es necesario visualizar en múltiples
dispositivos distintos será imprescindible utilizar XSL. En este
esquema se tendría un solo documento XML y un documento XSL para
cada dispositivo que se desee incluir, por ejemplo para un navegador Netscape,
otro para Internet Explorer, otro para un móvil Ericson y otro
para un móvil Nokia. Si mañana aparece un nuevo dispositivo,
por muy particular que sea, sólo será necesario crear un
documento XSL para que los XML se puedan visualizar en él.
Programación:
SAX o DOM
Si
se quieren realizar acciones con los datos escritos en XML se tiene también
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 jerarquía de objetos que
tienen unos métodos y atributos con los que se debe trabajar y
que simplificarán 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 creación de un árbol en
memoria que contiene el documento XML, y con él en memoria se puede
hacer cualquier tipo de recorrido y acciones con los elementos.
Se
puede programar con el lenguaje de programación 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 típico 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.
El
trabajo con bases de datos y XML se está desarrollando con un lenguaje
que se llama XQL (XML Query Language).

|
DESARROLLO
DE APLICACIONES CON XML
Existen
cuatro tipos de aplicaciones que impulsarán el desarrollo del XML:
Aplicaciones
que exijan que el cliente Web medie entre dos o más bases de
datos. Se hará posible la integración de bases
de datos distribuidas en los navegadores que admitan XML, pudiéndose
modificar el contenido y la estructura de esta. Actualmente implantado
en amplias redes nacionales, sin embargo, se limitan las posibilidades
al establecerse una intranet/extranet y con amplias bases de datos que
sólo permiten la visualización de los datos en el navegador.
XML establecerá una arquitectura de 3 niveles (three-tier), se
irá pareciendo cada vez más a una arquitectura cliente-servidor.
Aplicaciones que intentan transferir una parte significativa
de la carga del proceso del servidor al cliente Web. Funcionará
con un subprograma Java que se insertará en el PC del cliente.
Esta carga hará que muchas de las funciones de modificación
puedan desarrollarse desde el mismo navegador Web del cliente. Por ejemplo,
dentro de una intranet con una aplicación de gestión bibliotecaria
sobre los documentos disponibles en el centro bibliotecario. Se establecerán
categorías específicas como los datos de la ficha catalográfica,
fecha de préstamo, fecha de devolución, nombre del usuario,
número de registro, etc. Todos estos ítems se pueden agrupar
por categorías y estarán descritos externamente desde
los "esquemas" (schemas) o los RDF del XML. Permite actualizarse
en el acto y con la posibilidad interactiva por parte del usuario en
el pedido, gestión y modificación de documentos desde
su lejano navegador. El lado más negativo es que se necesitará
mayor ancho de banda y mayor potencia del procesador del equipo para
poder soportar esta arquitectura de tres-niveles.
Aplicaciones que precisen que el cliente Web presente diferentes
versiones de los mismos datos a diferentes usuarios. Se podría
aplicar un manual de diferentes grados (iniciación, intermedio
y avanzado) con sus diferentes idiomas, etcétera. Esto hará
que este manual se pueda personalizar por los usuarios y extraer la
información requerida de un capítulo determinado, con
una ordenación y formatos concretos.
Aplicaciones en las que agentes Web inteligentes intentan adaptar
la búsqueda de información a las necesidades de los usuarios
individuales. Habrá una interacción entre la
información requerida y las preferencias del usuario de la aplicación.
Con el XML vendrá una segunda generación de robots que
permitirá una mayor precisión de la búsqueda requerida.
Actualmente podemos encontrar aplicaciones de medios de comunicación
como los periódicos personalizados. Por otro lado, el impulso
de los motores de búsqueda con XML y la creación de buscadores
de lenguaje natural.
Otras
aplicaciones que se desarrollarán son las operaciones para comercio
electrónico con la normativa EDI. Se puede hacer ya comparación
de precios entre los distintos tiendas virtuales.
Además
de esto es importante destacar que XML aporta mucha potencia y flexibilidad
a las aplicaciones basadas en la Web, proporcionando numerosas ventajas
a los programadores y usuarios, como lo son:
Búsquedas
con más significado: Los datos se pueden etiquetar de
forma exclusiva con XML, lo que permite que un cliente especifique libros
escritos por Winston Churchill, en lugar de sobre Winston Churchill.
Las búsquedas que utilizan los métodos actuales, por el
contrario, probablemente mezclarían ambos tipos de libros. Sin
XML, es necesario que la aplicación de búsqueda comprenda
el esquema de cada base de datos, en el que se describe cómo
se ha generado. Esto es prácticamente imposible, pues cada base
de datos describe sus datos de una forma distinta. Sin embargo, con
XML los libros se pueden clasificar fácilmente en categorías
estándar por autor, título, ISBN u otros criterios. De
esta forma, los agentes podrían buscar libros sobre Winston Churchill
en estos sitios de librerías de una forma coherente.
Programación de aplicaciones Web flexibles: Una vez
encontrados los datos, el XML se puede distribuir a otras aplicaciones,
objetos y servidores de nivel medio para continuar su procesamiento,
o bien se puede entregar al escritorio para su visualización
en un explorador. XML, junto con HTML para la presentación, las
secuencias de comandos para la lógica y un modelo de objeto común
para la interacción con los datos y la presentación, ofrece
todas las tecnologías necesarias para el desarrollo de flexibles
aplicaciones Web de tres niveles.
Integración de datos procedentes de fuentes dispares: La
capacidad de buscar en varias bases de datos no compatibles entre sí
es, hoy en día, prácticamente imposible. XML permite combinar
fácilmente los datos estructurados procedentes de fuentes distintas.
Se pueden utilizar agentes de software para integrar los datos en un
servidor de nivel medio desde bases de datos de fondo y otras aplicaciones.
A continuación, dichos datos se pueden entregar a clientes u
otros servidores para su agregación, procesamiento y distribución.
La capacidad de ampliación y la flexibilidad de XML le permiten
describir los datos contenidos en una gran variedad de aplicaciones
muy diversas, desde las recopilaciones descriptivas de páginas
Web hasta los registros de datos. Además, dado que los datos
basados en XML son autodescriptivos, se pueden intercambiar y procesar
sin necesidad de una descripción incorporada de los datos entrantes.
Computación y manipulación locales: Después
de entregarlos al cliente, los datos en formato XML se pueden analizar,
editar y manipular de forma local, siendo las aplicaciones clientes
quienes realizan los cálculos. Los usuarios pueden manipular
los datos de diversas formas, y no limitarse a presentarlos. El Modelo
de objeto de documento (DOM) de XML también permite manipular
datos con secuencias de comandos u otros lenguajes de programación.
Los cálculos relativos a los datos se pueden realizar sin volver
al servidor. La separación entre la interfaz de usuario que ve
los datos y los propios datos permite crear, de forma natural, potentes
aplicaciones para el Web que antes sólo se encontraban en bases
de datos avanzadas, todo con un formato simple, flexible y abierto.
Varias vistas de los datos: Una vez entregados los datos al
escritorio, se pueden ver de varias formas. Al describir los datos estructurados
de una forma simple, abierta y extensible, XML sirve de complemento
para el HTML, que se utiliza ampliamente para describir las interfaces
de usuario. Una vez más, mientras que el lenguaje HTML describe
el aspecto de los datos, XML describe los propios datos. Dado que la
presentación está separada de los datos, la definición
de dichos datos en XML permite especificar varias vistas, lo que significa
que los datos se pueden representar de la forma adecuada. Los datos
locales se pueden presentar de una forma dinámica determinada
por la configuración del cliente, las preferencias del usuario
u otros criterios. CSS y XSL proporcionan mecanismos declarativos para
describir una vista de los datos en particular.
Actualizaciones granulares: Los datos se pueden actualizar
de forma granular con XML, por lo que no es necesario volver a enviar
un conjunto completo de datos estructurados cada vez que cambia parte
de dichos datos. Sólo es preciso enviar el elemento modificado
del servidor al cliente, y los datos modificados se pueden presentar
sin necesidad de actualizar toda la interfaz de usuario. En la actualidad,
aunque sólo cambie un elemento de los datos, es preciso volver
a construir toda la página, incluso si la vista permanece igual,
lo que reduce drásticamente la escalabilidad del servidor.
Asimismo,
XML permite agregar otros datos, como las temperaturas máximas
y mínimas previstas, la pluviosidad prevista y su probabilidad
(expresada en porcentaje). Esta información adicional se puede
trasladar a la vista del usuario sin que el explorador tenga que enviar
una vista nueva. Si se solicitan datos adicionales, como la presión
atmosférica, se pueden enviar sin volver a generar la vista.
Utilidades Futuras
En
su calidad de estándar del sector para expresar datos estructurados,
XML ofrece muchas ventajas a las organizaciones, desarrolladores de software,
sitios Web y usuarios finales. Las oportunidades aumentarán cuantos
más formatos de datos de mercado vertical se creen para mercados
claves, como el mercado de búsqueda avanzada en bases de datos,
banca en línea, médico, legal, comercio electrónico,
etc. Cuando los sitios ofrezcan datos, en lugar de limitarse a las vistas
de datos, las oportunidades serán extraordinarias.
Hoy
en día, los servicios de atención al cliente están
migrando de centros de llamadas y sedes físicas a sitios Web, por
lo que se beneficiarán de la sólida funcionalidad de XML.
Dado que la mayoría de estas aplicaciones empresariales implican
la manipulación o la transferencia de datos y registros de base
de datos, como pedidos de compra, facturas, información del cliente,
citas, mapas, etc., XML va a revolucionar las posibilidades de los usuarios
finales en Internet, permitiendo la implementación de un amplio
abanico de aplicaciones empresariales. Además, la información
que ya esté almacenada en sitios Web, tanto si está guardada
en documentos como en bases de datos, puede marcarse con vocabularios
basados en XML y orientados a intranets. Dichos vocabularios también
ayudan a las pequeñas y medianas empresas que necesiten intercambiar
información entre clientes y proveedores.
Un
mercado vital y todavía por descubrir es el de las herramientas
de desarrollo que simplifican a los usuarios finales la creación
de sus propios sitios Web cooperativos, lo que incluye las herramientas
para generar datos XML heredados de información de bases de datos
e interfaces de usuario ya existentes. Además, se pueden desarrollar
esquemas estándar para describir portafolios u otros datos que
podrían utilizar, por ejemplo, el diseño, los gráficos
y otras funciones de Excel o de otras hojas de cálculo existentes.
Las herramientas declarativas y visuales para describir XML generadas
a partir de bases de datos heredadas constituyen una oportunidad muy potente.
Las herramientas personalizadas para ver datos XML se pueden escribir
en el sistema de programación de Visual Basic®, en Java y en
C++.
XML
va a necesitar herramientas nuevas y potentes para la presentación
de datos XML ricos y complejos dentro de un documento. Esto se consigue
asignando una capa de presentación fácil de usar por encima
de un conjunto complejo de datos jerárquicos que pueden cambiar
de forma dinámica. Entre los diseños que se podrán
utilizar para los datos XML se incluyen los esquemas contraíbles,
las vistas dinámicas de tablas dinámicas y una sencilla
hoja para cada portafolio.
Los
sitios Web pueden ofrecer cotizaciones de bolsa, artículos de prensa
o datos sobre el tráfico en tiempo real, los cuales se pueden conseguir
a través de un filtro de difusiones del Web o mediante un sondeo
inteligente de un árbol de servidores que repliquen dichos sitios.
Con XML se puede evitar la sobrecarga de información con sólo
redactar normas personalizadas sobre el envejecimiento de la información,
igual que en el correo electrónico. Las herramientas basadas en
XML para que los usuarios creen dichas normas, así como el software
de cliente y servidor para ejecutarlas, constituyen una gran oportunidad.
Un modelo de objeto estándar no podría habilitar dichas
funciones, normalmente escritas en secuencias de comandos, para filtrar
los mensajes entrantes, examinar los mensajes almacenados, crear mensajes
salientes, obtener acceso a bases de datos, etc. Dichos agentes se pueden
redactar de forma que se ejecuten en cualquier lugar de forma automática.

|
REQUERIMIENTOS
DE HARDWARE Y SOFTWARE
Software:
Para
desarrollar aplicaciones basadas en XML es suficiente con un editor de
textos ASCII (el Bloc de notas, por ejemplo) y con un visualizador que
incluya un parser adaptado a XML (Microsoft Internet Explorer 5, por ejemplo),
se pueden crear y ver documentos XML.
No obstante,
existen muchas nuevas herramientas que facilitan un poco la labor del
diseñador, algunas de ellas gratuitas, como el "Microsoft
XML Notepad", que aprovecha los motores internos del Explorer para
trabajar.
La versión
4.x del Netscape Navigator no soporta XML, y aunque se supone que la versión
5 sí lo permitirá, la política comercial actual de
Netscape no permite asegurar cuándo ni cómo será.
Existen otros
varios visualizadores/navegadores que admiten XML, como Amaya, HotMetal
o HyBrick, aunque casi cada día están saliendo nuevos productos
(analizadores, visualizadores, motores, editores, DTDs, etc.).
Aunque la versión
1.0 de XML es ya definitiva, no pasa lo mismo con las demás normativas
que le acompañan, que poco a poco van pasando del estado de "borrador
de trabajo" al de "recomendación" (http://www.w3c.org).
Este es otro de los motivos por los que XML no termina de generalizarse,
ya que las empresas se piensan mucho invertir en productos que no están
soportados por estándares definitivos.
Hardware:
Ya están
empezando a aparecer servidores de Internet especialmente diseñados
para satisfacer los requerimientos de XML. Entre sus funciones destacan
el almacenamiento y manipulación de datos XML, características
mejoradas en la búsqueda de datos, integración de fuentes
diversas de información en bases de datos XML unificadas.
Un ejemplo de este tipo de servidor será el BizTalk Server de Microsoft,
especialmente diseñado para el comercio electrónico. Empresas
como Bluestone Software (www.bluestone.com), Object Design Inc ( www.objectdesign.com
) , o webMethods (www.webmethods.com ), disponen ya de soluciones XML
Server.
Microsoft
pretende establecer por medio de BizTalk un marco para el comercio electrónico
de empresa a consumidor. El objetivo de BizTalk es el de desarrollar una
red dentro de su portal Microsoft Network, que permita poner en contacto
a empresas y consumidores.

|
|
http://www.monografias.com
http://geneura.ugr.es/~jmerelo/xml/
http://www.dat.etsit.upm.es/~abarbero/curso/xml/xmltutorial.html
http://www.desarrolloweb.com/manuales/27/

|