jueves, 24 de junio de 2010
7.1 ANTECEDENTES


El XML proviene de un lenguaje que inventó IBM allá por 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.
Este lenguaje gustó mucho a la gente de ISO, una entidad que se encarga de
normalizar cuantas cosas puedas imaginar para los procesos del mundo actual, de modo que en 1986 trabajaron para normalizar el lenguaje, creando el SGML, que no era más que el GML pero estándar.
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.
Los objetivos de diseño del XML eran que:
*Debería ser directamente utilizable en Internet.
*Debería soportar una amplia variedad de aplicaciones.
*Debería ser compatible con SGML.
*Debería ser sencillo escribir programas que procesaran el XML.
*El número de capacidades opcionales de XML debería ser el mínimo, a ser posible cero.
*Los documentos XML deberían ser legibles para las personas y razonablemente claros.
*El diseño del XML debería finalizar de forma rápida.
Este lenguaje gustó mucho a la gente de ISO, una entidad que se encarga de
normalizar cuantas cosas puedas imaginar para los procesos del mundo actual, de modo que en 1986 trabajaron para normalizar el lenguaje, creando el SGML, que no era más que el GML pero estándar.
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.
Los objetivos de diseño del XML eran que:
*Debería ser directamente utilizable en Internet.
*Debería soportar una amplia variedad de aplicaciones.
*Debería ser compatible con SGML.
*Debería ser sencillo escribir programas que procesaran el XML.
*El número de capacidades opcionales de XML debería ser el mínimo, a ser posible cero.
*Los documentos XML deberían ser legibles para las personas y razonablemente claros.
*El diseño del XML debería finalizar de forma rápida.
7.2 Estructura de los Datos XML
La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de pedazos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez con notas. Estas partes se llaman elementos, y se las señala mediante etiquetas.
Como con otras características de XML, esta libertad tiene más sentido en un contexto de procesamiento de documentos que en el contexto de procesamiento de datos y no es particularmente útil para representar en XML datos más estructurados como son el contenido de las bases de datos. La capacidad de anidar elementos con otros elementos proporciona una forma alternativa de representar información.
Como con otras características de XML, esta libertad tiene más sentido en un contexto de procesamiento de documentos que en el contexto de procesamiento de datos y no es particularmente útil para representar en XML datos más estructurados como son el contenido de las bases de datos. La capacidad de anidar elementos con otros elementos proporciona una forma alternativa de representar información.
7.3 Esquema de los Documentos XML
Las bases de datos tienen esquemas que se usan para restringir qué información se puede almacenar en la base de datos y para restringir los tipos de datos de la información almacenada. En cambio, los documentos XML se pueden crear de forma predeterminada sin un esquema asociado. Un elemento puede tener entonces cualquier subelemento o atributo. Aunque dicha libertad puede ser aceptable algunas veces, dada la naturaleza auto descriptiva del formato de datos, no es útil generalmente cuando los documentos XML se deben procesar automáticamente como parte de una aplicación o incluso cuando se van a dar formato en XML a grandes cantidades de datos relacionados.
el esquema de XML se puede utilizar para expresar un esquema, un sistema de las reglas con las cuales un documento de XML debe conformarse para ser considerado ‘válido ‘según ese esquema. Sin embargo, desemejante de la mayoría de los otros lenguajes del esquema, el esquema de XML también fue diseñado con el intento de la validación dando por resultado una colección de información que adhiriéndose a los datatypes específicos, que pueden ser útiles en el desarrollo del documento de XML que procesa el software, pero que también ha provocado crítica.
el esquema de XML se puede utilizar para expresar un esquema, un sistema de las reglas con las cuales un documento de XML debe conformarse para ser considerado ‘válido ‘según ese esquema. Sin embargo, desemejante de la mayoría de los otros lenguajes del esquema, el esquema de XML también fue diseñado con el intento de la validación dando por resultado una colección de información que adhiriéndose a los datatypes específicos, que pueden ser útiles en el desarrollo del documento de XML que procesa el software, pero que también ha provocado crítica.
7.3.1definiciòn de tipos de documentos (dtd)
Una definición de tipo de documento o DTD es una descripción de estructura y sintaxis de un documento XML o SGML.
Su función es la descripción del formato de datos, para usar un formato común y mantener la consistencia entre todos los documentos que utilicen la misma DTD. De esta forma, dichos documentos, pueden ser validados, conocen la estructura de los elementos y la descripción de los datos que trae consigo cada documento, y pueden además compartir la misma descripción y forma de validación dentro de un grupo de trabajo que usa el mismo tipo de información.
Las DTD se emplean generalmente para determinar la estructura de un documento mediante etiquetas XML o SGML.
Una DTD describe:
*Elementos: indican qué etiquetas son permitidas y el contenido de dichas etiquetas.
*Estructura: indica el orden en que van las etiquetas en el documento.
*Anidamiento: indica qué etiquetas van dentro de otras.
Su función es la descripción del formato de datos, para usar un formato común y mantener la consistencia entre todos los documentos que utilicen la misma DTD. De esta forma, dichos documentos, pueden ser validados, conocen la estructura de los elementos y la descripción de los datos que trae consigo cada documento, y pueden además compartir la misma descripción y forma de validación dentro de un grupo de trabajo que usa el mismo tipo de información.
Las DTD se emplean generalmente para determinar la estructura de un documento mediante etiquetas XML o SGML.
Una DTD describe:
*Elementos: indican qué etiquetas son permitidas y el contenido de dichas etiquetas.
*Estructura: indica el orden en que van las etiquetas en el documento.
*Anidamiento: indica qué etiquetas van dentro de otras.
7.3.2 ESQUEMAS XML
El esquema XML es un lenguaje de esquema más sofisticado. Soluciona alguno de los inconvenientes de las DTD.
En otras palabras, un esquema XML es un documento XML. Esto significa que se puede procesar un esquema igual que cualquier otro documento. Por ejemplo, se puede escribir una hoja de estilo XSLT que invierta un esquema XML en un formulario Web completo con código java script generado automáticamente que valide los datos conforme se vayan introduciendo.
Los esquemas XML Soportan:
*Declaración de tipos de valores.
*Enteros, cadenas, etc.
*Restricciones de valores mínimos/máximos.
*Tipos definidos por el usuario.
*Tipos específicos mediante la restricción de otros tipos.
*Extensión de tipos complejos mediante una especie de “herencia”.
*Restricciones de unicidad y claves ajenas.
En otras palabras, un esquema XML es un documento XML. Esto significa que se puede procesar un esquema igual que cualquier otro documento. Por ejemplo, se puede escribir una hoja de estilo XSLT que invierta un esquema XML en un formulario Web completo con código java script generado automáticamente que valide los datos conforme se vayan introduciendo.
Los esquemas XML Soportan:
*Declaración de tipos de valores.
*Enteros, cadenas, etc.
*Restricciones de valores mínimos/máximos.
*Tipos definidos por el usuario.
*Tipos específicos mediante la restricción de otros tipos.
*Extensión de tipos complejos mediante una especie de “herencia”.
*Restricciones de unicidad y claves ajenas.
7.4 consulta y transformación

Debido al número de aplicaciones que usan XML para intercambiar, transmitir y almacenar datos, las herramientas para una gestión efectiva de datos XML están siendo cada vez más importantes.
En particular las herramientas para consultar y transformar los datos XML son esenciales para extraer información de grandes cuerpos de datos XML y para convertir los datos entre distintas representaciones (esquemas) en XML. Al igual que la salida de una consulta relacional es una relación, la salida de una consulta XML puede ser un documento XML.
En particular las herramientas para consultar y transformar los datos XML son esenciales para extraer información de grandes cuerpos de datos XML y para convertir los datos entre distintas representaciones (esquemas) en XML. Al igual que la salida de una consulta relacional es una relación, la salida de una consulta XML puede ser un documento XML.
7.4.1 XPATH
XPATH es un lenguaje que permite construir expresiones que recorren y procesan un documento XML. La idea es parecida a las expresiones regulares para seleccionar partes de un texto sin atributos. X Path permite buscar y seleccionar teniendo en cuenta la estructura jerárquica del XML. X Path fue creado para su uso en el estándar XSLT, en el que se usa para seleccionar y examinar la estructura del documento de entrada de la transformación.
X Path en sí es un lenguaje sofisticado y complejo, pero distinto de los lenguajes que usamos (C, C++, Basic, Java…). Además, como casi todo en el mundo de XML, aún está en estado de desarrollo, por lo que no es fácil encontrar herramientas que incorporen todas sus funcionalidades. X Path es la base sobre la que se han especificado nuevas herramientas que aprovechar, para el tratamiento de documentos XML.
MODELADO DE DATOS XPATH
Un documento XML es procesado por un analizador construyendo un árbol de nodos. Este árbol comienza con un elemento raíz, que se diversifica a lo largo de los elementos que cuelgan de él y acaba en nodos hoja, que contienen solo texto, comentarios, instrucciones de proceso o incluso que están vacíos y solo tienen atributos.
La forma en que X Path selecciona partes del documento XML se basa precisamente en la representación arbórea que se genera del documento.
X Path en sí es un lenguaje sofisticado y complejo, pero distinto de los lenguajes que usamos (C, C++, Basic, Java…). Además, como casi todo en el mundo de XML, aún está en estado de desarrollo, por lo que no es fácil encontrar herramientas que incorporen todas sus funcionalidades. X Path es la base sobre la que se han especificado nuevas herramientas que aprovechar, para el tratamiento de documentos XML.
MODELADO DE DATOS XPATH
Un documento XML es procesado por un analizador construyendo un árbol de nodos. Este árbol comienza con un elemento raíz, que se diversifica a lo largo de los elementos que cuelgan de él y acaba en nodos hoja, que contienen solo texto, comentarios, instrucciones de proceso o incluso que están vacíos y solo tienen atributos.
La forma en que X Path selecciona partes del documento XML se basa precisamente en la representación arbórea que se genera del documento.
7.4.2 XQUERY
XQuery es un lenguaje de consulta diseñado para consultar colecciones de datos XML. Es semánticamente similar a SQL, pero incluye algunas capacidades de programación. El XQuery 1.0 fue desarrollado por el grupo de trabajo de Consulta XML del W3C. El XQuery 1.0 es una Recomendación del W3C desde el 23 de enero de 2007.
XQuery 1.0 no incluye capacidad de actualizar los documentos XML. Tampoco puede realizar búsquedas textuales. Estas dos capacidades están siendo objeto de desarrollo para su posible incorporación en la siguiente versión del lenguaje. XQuery es un lenguaje de programación funcional que consta en su totalidad de expresiones. No hay sentencias, aun cuando algunas de las palabras claves utilizadas pueden sugerir un comportamiento similar al de una sentencia. Para ejecutar una función, la expresión dentro del cuerpo de la misma se evalúa y se retorna el resultado obtenido.
CARÁCTERÌSTICAS DE XQUERY
Proporciona los medios para extraer y manipular información de documentos XML, o de cualquier fuente de datos que pueda ser representada mediante XML, como por ejemplo Bases de Datos Relacionales o documentos ofimáticos.
XQuery utiliza expresiones XPath para acceder a determinadas partes del documento XML. Añade además unas expresiones similares a las usadas en SQL, conocidas como expresiones FLWOR. Las expresiones FLWOR toman su nombre de los 5 tipos de sentencias de las que pueden estar compuestas: FOR, LET, WHERE, ORDER BY y RETURN.
También incluye la posibilidad de construir nuevos documentos XML a partir de los resultados de la consulta.
APLICACIONES
*Extraer información de una base de datos para usarla en un Servicio Web.
XQuery 1.0 no incluye capacidad de actualizar los documentos XML. Tampoco puede realizar búsquedas textuales. Estas dos capacidades están siendo objeto de desarrollo para su posible incorporación en la siguiente versión del lenguaje. XQuery es un lenguaje de programación funcional que consta en su totalidad de expresiones. No hay sentencias, aun cuando algunas de las palabras claves utilizadas pueden sugerir un comportamiento similar al de una sentencia. Para ejecutar una función, la expresión dentro del cuerpo de la misma se evalúa y se retorna el resultado obtenido.
CARÁCTERÌSTICAS DE XQUERY
Proporciona los medios para extraer y manipular información de documentos XML, o de cualquier fuente de datos que pueda ser representada mediante XML, como por ejemplo Bases de Datos Relacionales o documentos ofimáticos.
XQuery utiliza expresiones XPath para acceder a determinadas partes del documento XML. Añade además unas expresiones similares a las usadas en SQL, conocidas como expresiones FLWOR. Las expresiones FLWOR toman su nombre de los 5 tipos de sentencias de las que pueden estar compuestas: FOR, LET, WHERE, ORDER BY y RETURN.
También incluye la posibilidad de construir nuevos documentos XML a partir de los resultados de la consulta.
APLICACIONES
*Extraer información de una base de datos para usarla en un Servicio Web.
*Generar un resumen de la información almacenada en una base de datos XML.
Realizar búsquedas textuales en la web y compilar los resultados de la misma.
*Seleccionar y transformar datos de XML a XHTML de forma que se puedan publicar en la Web.
*Obtener datos desde diferentes fuentes con vistas a ser integradas por la aplicación.
*Dividir un documento XML que representa una serie de múltiples transacciones en varios documentos XML, uno por cada transacción.
7.4 XLST

XLST (lenguaje extensible de hojas de estilo) es una familia de lenguajes basados en el estándar XML que permite describir cómo la información contenida en un documento XML cualquiera debe ser transformada o formateada para su presentación en un medio.
Esta familia está formada por tres lenguajes:
XSLT (lenguaje de hojas extensibles de transformación),que permite convertir documentos XML de una sintaxis a otra (por ejemplo, de un XML a otro o a un documento HTML).
XSL-FO (lenguaje de hojas extensibles de formateo de objetos), que permite especificar el formato visual con el cual se quiere presentar un documento XML, es usado principalmente para generar documentos PDF.
X Path, o XML Path Language (no basada en XML) para acceder o referirse a porciones de un documento XML.
Esta familia está formada por tres lenguajes:
XSLT (lenguaje de hojas extensibles de transformación),que permite convertir documentos XML de una sintaxis a otra (por ejemplo, de un XML a otro o a un documento HTML).
XSL-FO (lenguaje de hojas extensibles de formateo de objetos), que permite especificar el formato visual con el cual se quiere presentar un documento XML, es usado principalmente para generar documentos PDF.
X Path, o XML Path Language (no basada en XML) para acceder o referirse a porciones de un documento XML.
7.5 ALMACENAMIENTO DE DATOS XML
Los documentos y los requerimientos de almacenamiento de datos XML pueden ser pensados a menudo en dos categorías generales: centrados en los datos y centrados en los documentos. Las demandas centradas en los datos suelen incluir documentos menos estructurados, y es apropiada para ítemes.
Si el documento XML tiene una estructura bien definida y contiene datos actualizables usados en maneras diversas, el documento es típicamente centrado en los datos. Los datos centrados en el documento tienden a ser más impredecibles en tamaño y contenido que los centrados en los datos los cuales son altamente estructurados, con tipos de datos de tamaño limitado y reglas menos flexibles para campos opcionales y contenido.
Los sistemas de almacenamiento XML deben acomodarse eficientemente con ambos tipos de requerimientos de datos, dado que XML está siendo ampliamente usado en sistemas que administran ambos tipos de datos. Las bases de datos relacionales tradicionales son típicamente mejores al tratar con requerimientos centrados en los datos, mientras que los sistemas de administración de contenido y de documentos son típicamente mejores para almacenar datos centrados en el documento.
7.6 Aplicaciones
XLM puede tener tres posibles roles:
*DE CONTENEDOR DE INFORMACIÒN
Cuando el XML actúa de contenedor, ignora por completo la información que contiene. Esta información irá normalmente almacenada en un elemento del tipo CDATA, estos elementos no son analizados por el parser de XML.
Imaginemos que tenemos dos aplicaciones distintas en un proyecto, podemos establecer una gramática XML para encapsular los mensajes XML (añadiendo una cabecera al documento), y tener un programa que procese las cabeceras de los mensajes y direcciones a la aplicación correspondiente.
También nos puede servir para definir un flujo de datos en un workflow.
*PARA DEFINIR EL CONTENIDO DE LOS MENSAJES
Para que se puedan intercambiar información dos aplicaciones y puedan procesarla automáticamente.
*PARA DESCRIBIR EL CONTENIDO DE LOS MENSAJES
Si lo utilizamos con este rol, podemos describir el esquema de contenidos de los mensajes. Estamos definiendo recursos, lo utilizamos como metadatos. Podemos facilitar el acceso a la información a los agentes de software.
Estos son algunos roles y posibles aplicaciones del XML, pero se nos pueden ocurrir.
DESCARGAR TRABAJO EN EL SERVIDOR
*SOPORTE A CLIENTES.
Gracias a los enlaces extendidos (XLL), el cliente si tiene algún tipo de problema, pinchando sobre un enlace de este tipo le puede salir una lista con la persona concreta de contacto, partes de manuales concretos donde resolver esa duda, departamentos determinados, ect.
*PERSONALIZACIÒN DE LA WEB
Gracias al XSL/XSLT, podemos transformar y dar el formato que queramos a un mismo documento XML, por lo tanto si sabemos gracias a las cookies, o, los logins, quién es el usuario/cliente que accede podemos personalizar la vista de la información. El cliente/Usuario de esta forma se sentirá más a gusto, considerará que esa información es suya y que es reconocido en la Web. Muy útil para los Sites de Comercio Electrónico.
*BUSCADOR WEB
Si disponemos de un Site donde toda la información se encuentre etiquetada en documentos XML, las búsquedas serían mucho más efectivas, ya que se conjuga la potencia de la búsqueda indexada junto la búsqueda semántica.
*INTERCAMBIO DE INFORMACIÒN
Si contratamos a una empresa un servicio de noticias, y nos facilitan la estructura de los datos que vamos a recibir (DTD/Schema), sabremos en todo momento que tipos de documentos XML estamos recibiendo, y podremos tratarlos de la forma que deseemos.
*DE CONTENEDOR DE INFORMACIÒN
Cuando el XML actúa de contenedor, ignora por completo la información que contiene. Esta información irá normalmente almacenada en un elemento del tipo CDATA, estos elementos no son analizados por el parser de XML.
Imaginemos que tenemos dos aplicaciones distintas en un proyecto, podemos establecer una gramática XML para encapsular los mensajes XML (añadiendo una cabecera al documento), y tener un programa que procese las cabeceras de los mensajes y direcciones a la aplicación correspondiente.
También nos puede servir para definir un flujo de datos en un workflow.
*PARA DEFINIR EL CONTENIDO DE LOS MENSAJES
Para que se puedan intercambiar información dos aplicaciones y puedan procesarla automáticamente.
*PARA DESCRIBIR EL CONTENIDO DE LOS MENSAJES
Si lo utilizamos con este rol, podemos describir el esquema de contenidos de los mensajes. Estamos definiendo recursos, lo utilizamos como metadatos. Podemos facilitar el acceso a la información a los agentes de software.
Estos son algunos roles y posibles aplicaciones del XML, pero se nos pueden ocurrir.
DESCARGAR TRABAJO EN EL SERVIDOR
*SOPORTE A CLIENTES.
Gracias a los enlaces extendidos (XLL), el cliente si tiene algún tipo de problema, pinchando sobre un enlace de este tipo le puede salir una lista con la persona concreta de contacto, partes de manuales concretos donde resolver esa duda, departamentos determinados, ect.
*PERSONALIZACIÒN DE LA WEB
Gracias al XSL/XSLT, podemos transformar y dar el formato que queramos a un mismo documento XML, por lo tanto si sabemos gracias a las cookies, o, los logins, quién es el usuario/cliente que accede podemos personalizar la vista de la información. El cliente/Usuario de esta forma se sentirá más a gusto, considerará que esa información es suya y que es reconocido en la Web. Muy útil para los Sites de Comercio Electrónico.
*BUSCADOR WEB
Si disponemos de un Site donde toda la información se encuentre etiquetada en documentos XML, las búsquedas serían mucho más efectivas, ya que se conjuga la potencia de la búsqueda indexada junto la búsqueda semántica.
*INTERCAMBIO DE INFORMACIÒN
Si contratamos a una empresa un servicio de noticias, y nos facilitan la estructura de los datos que vamos a recibir (DTD/Schema), sabremos en todo momento que tipos de documentos XML estamos recibiendo, y podremos tratarlos de la forma que deseemos.
Suscribirse a:
Comentarios (Atom)