Está en la página 1de 16

7 XML . 7.1 ANTECEDENTES.

As como los sistemas de bases de datos evolucionaron desde el procesamiento fsico de archivos para proporcionar una vista lgica aislada, los lenguajes de marcas evolucionaron desde la especificacin de instrucciones que indicaban cmo imprimir partes del documento para la funcin del contenido. Por ejemplo, con marcas funcionales, el texto que representa los

encabezamientos de seccin (para esta seccin la palabra Antecedentes) se marcara como un encabezamiento de seccin en lugar de marcarse como un texto con el fin de ser impreso en un tamao agrande, con fuente en negrita. Dicha marca funcional permite que el documento tenga distintos formatos en situaciones diferentes. Tambin ayuda a que distintas partes de un documento largo, o distintas pginas en un sitio Web grande, tengan un formato uniforme. La marca funciona tambin ayuda a la extraccin automtica de partes claves de los documentos. Para la familia de lenguajes de marcado, en los que se incluye HTML, SGML y XML las marcas adoptan la forma de etiquetas encerradas entre corchetes angulares, < >. Las etiquetas se usan en pares, con <etiqueta> y </etiqueta> delimitando el comienzo y final de la porcin de documento a la cual se refiere la etiqueta. Por ejemplo, el ttulo de un documento podra estar marcado de la siguiente forma: <title>Fundamentos de bases de datos</title> A diferencia de HTML, XML no prescribe las etiquetas permitidas, y se pueden establecer etiquetas segn cada necesidad. Esta caracterstica es la clave de la funcin principal de XML en la representacin e intercambio de datos, mientras que HTML se usa principalmente para el formato de documentos. 7.2 ESTRUCTURA DE LOS DATOS XML. Estructura jerrquica de elementos: Estos deben de seguir una estructura estrictamente jerrquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar

correctamente incluida en otra. Adems, los elementos con contenido, deben estar correctamente cerrados. <LI> en XML <B> estructura <I> es </I> jerrquica </B>.</LI>. Etiquetas vacas: <LI> en XML, es<BR/> mas restrictivos. </LI> Un solo element raz: Solo permiten un elemento raz del que todos los dems sean parte.es decir, la jerarqua de los elementos de un documento XML solo puede tener un elemento inicial. Valores de atributos: Estos siempre deben estar encerrados en comillas sencillas() o dobles(). < A HREF=http://www.developer.com/> Tipo de letra, espacios en blanco El xml es sensible al tipo de letra utilizado es decir, trata a las maysculas y minsculas como caracteres diferentes . si un elemento de XML esta definido como ELEMENTO , no podemos usar elemento, ni Elemento, ni eleMENto para referirnos a el. Existe un conjunto de caracteres denominados espacios en blanco que los procesadores XML tratan de forma diferente en el marcado XML estos caracteres son los espacios (Unicode/ASCII 32), tabuladores (Unicode/ASCII 9), retornos de carro (Unicode/ASCII 13) y los saltos de lnea (Unicode/ASCII 10). 7.3 ESQUEMA DE LOS DOCUMENTOS XML. Las bases de datos tienen esquemas que se usan para restringir qu informacin se puede almacenar en la base de datos y para restringir los tipos de datos de la informacin 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 autodescriptiva del formato de datos, no es til generalmente cuando los documentos XML se deben procesar automticamente como parte de una aplicacin o incluso cuando se van a dar formato en XML a grandes cantidades de datos relacionados.

7.3.1 DEFINICIN DE TIPOS DE DOCUMENTO (DTD). La definicin de tipos de documento (Document Type Definition, DTD) es una parte opcional de un documento XML. El propsito principal de DTD es similar al de un esquema: restringir el tipo de informacin presente en el documento. Sin embargo, DTD no restringe en realidad los tipos en el sentido de tipos bsicos como entero o cadena. En su lugar solamente restringe el aspecto de subelementos y atributos en un elemento. DTD es principalmente una lista de reglas que indican el patrn de subelementos que aparecen en un elemento. Cada declaracin est en la forma de una expresin normal para los subelementos de un elemento. As, en la DTD de la Figura 10.6 un elemento bancario consiste en uno o ms elementos cuenta, cliente o impositor; el operador | especifica o mientras que el operador +especifica uno o ms. Aunque no se muestra aqu, el operador * se usa para especificar cero o ms mientras que el operador? se usa para especificar un elemento opcional (es decir, cero o uno). El elemento cuenta se define para contener los subelementos nmero-cuenta, nombre-sucursal y saldo (en ese orden). De forma similar, cliente e impositor tienen los atributos en su esquema definidos como subelementos. Finalmente, se declara a los elementos nmero-cuenta, nombre-sucursal, saldo, nombre-cliente, calle-cliente y ciudad-cliente del tipo #PCDATA. La palabra clave #PCDATA indica dato de texto; deriva su nombre histricamente de parsed character data (datos de caracexplcito teres analizados). Otros dos tipos especiales de declaraciones son empty (vaco), que dice que el elemento no tiene ningn contenido, y any (cualquiera), que indica que no hay restriccin sobre los subelementos del elemento; es decir, cualquier elemento, incluso los no mencionados en la DTD, puede ser subelemento del elemento. La ausencia de una declaracin para un subelemento es equivalente a declarar explcitamente el tipo como any. Los atributos permitidos para cada elemento tambin se declaran en la DTD. Al contrario que los subelementos no se impone ningn orden a los atributos. Los atributos se pueden especificar del tipo CDATA, ID, IDREF o IDREFS; el tipo CDATA simplemente dice que el atributo contiene datos de caracteres mientras que los otros tres no son tan sencillos; se explicarn detalladamente en breve. Por

ejemplo, la siguiente lnea de una DTD especfica que el elemento cuenta tiene un atributo del tipo tipo-cuenta con valor predeterminado corriente. <!ATTLIS T cuenta tipo-cuenta CDATA corriente > Los atributos siempre deben tener una declaracin de tipo y una declaracin predeterminada. La declaracin predeterminada puede consistir en un valor predeterminado para el atributo o #REQUIRED, queriendo esto decir que se debe especificar un valor para el atributo en cada elemento, #IMPLIED, lo que significa que no se ha proporcionado ningn valor predeterminado. Si un atributo tiene un valor predeterminado, para cada elemento que no tenga especificado un valor para el atributo el valor se rellena automticamente cuando se lee el documento XML. Un atributo del tipo ID proporciona un identificador nico para el elemento; un valor que tiene un atributo ID de un elemento no debe estar presente en ningn otro elemento del mismo documento. A lo sumo se permite que el atributo de un elemento sea del tipo ID. 7.3.2 ESQUEMAS DE XML. Un esquema XML: Define los elementos que pueden aparecer en un documento Define los atributos que pueden aparecer en un documento Define cuales elementos son elementos hijos Define la secuencia en que los elementos hijos pueden aparecer. Define el nmero de elementos hijos Define cuando un elemento es vaco o pude incluir un texto Define los tipos de datos para los elementos y atributos Define los valores pode defecto para los elementos y atributos

Los esquemas de XML son los sucesores de las DTD Es muy probable que muy pronto los esquemas de XML sen utilizados en la mayora de las aplicaciones de Internet como reemplazo de las DTD, porque : Son ms fciles de aprender que las DTD. Son extensibles a las adiciones futuras. Son ms ricos y ms tiles que las DTD.

Se escriben en XML. Soportan tipos de datos Soportan espacios de nombres (namespaces)

Uno de los puntos fuertes de los esquemas de XML es que soportan tipos de datos. Esto permite que sea mas fcil para describir documentos permisibles; de validar la correccin de los datos; sea fcil trabajar con los datos de unabase de datos, sea fcil definir facetas de datos (restricciones en el dato), sea fcil modelar datos; sea fcil convertir datos entre diferentes tipos Otra gran fortaleza de los esquemas de XML es que estn escritos en XML, por lo tanto no es necesario aprender otro lenguaje, as que se puede utilizar el editor de XML para corregir ficheros del esquema. Adems se puede utilizar el analizador de sintaxis de XML para analizar los archivos del esquema. 7.4 CONSULTA Y TRANSFORMACIN. Dado el creciente nmero de aplicaciones que usan XML para intercambiar, transmitir y almacenar datos, las herramientas para una gestin efectiva de datos XML estn siendo cada vez ms importantes. En particular las herramientas para consultar y transformar los datos XML son esenciales para extraer informacin 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 relacin, la salida de una consulta XML puede ser un documento XML. Como resultado, la consulta y la transformacin se pueden combinar en una nica herramienta. Varios lenguajes proporcionan grados crecientes de capacidades de consulta y transformacin: XPath es un lenguaje para expresiones de rutas de accesos y es realmente un bloque constructor los dos lenguajes de consulta restantes. XSLT fue diseado para ser un lenguaje de transformacin como parte del sistema de hojas de estilo XSL, que se usa para controlar el formato de los datos XML en HTML u otro lenguaje de impresin o visualizacin. Aunque diseado para el formato XSLT puede generar XML como salida y puede expresar muchas consultas interesantes.

Adems, es actualmente el lenguaje ms ampliamente disponible para manipular datos XML. XQuery ha sido propuesto como un estndar para consultar datos XML. XQuery combina las caractersticas de muchas propuestas anteriores para la consulta de XML, en particular el lenguaje Quilt. Se usa en todos estos lenguajes un modelo de rbol de datos XML. Un documento XML se modela como un rbol con nodos para los elementos y atributos. Los nodos elemento pueden tener nodos hijo, los cuales pueden ser subelementos o atributos del elemento. De igual forma, cada nodo (ya sea atributo o elemento) distinto del elemento raz tiene un nodo padre, que es un elemento. El orden de los elementos y atributos en el documento XML se modela ordenando los nodos hijos de un rbol. Los trminos padre, hijo, ascendiente, descendiente y hermano se interpretan en el modelo de rbol de datos XML. 7.4.1 XPATH. XPath trata partes de un documento XML mediante expresiones de rutas de acceso. Se puede ver el lenguaje como una extensin a las expresiones de rutas de acceso sencillas en las bases de datos orientadas a objetos y relacionales orientadas a objetos. Una expresin de ruta en XPath es una secuencia de pasos de ubicacin separados por / (en lugar del operador . que separa pasos en SQL:1999). El resultado de la expresin de ruta es un conjunto de valores. /banco-2/cliente/name devolver estos elementos: <name>Juncal</name> <name>Loreto</name> <name>Mara</name> La expresin /banco-2/cliente/name/text() Devolver los mismos nombres, pero sin las etiquetas de cierre. Como en una jerarqua de directorios el signo / inicial indica la raz del documento (ntese que esto es una raz abstracta sobre <banco-2>, que es la marca del documento).

Las expresiones de ruta se evalan de izquierda a derecha. Cuando se evala la expresin de ruta el resultado de la ruta en cualquier punto consiste en un conjunto de nodos del documento. Cuando un nombre de elemento, tal como cliente, aparece antes de la siguiente / se refiere a todos los elementos del nombre especificado que son hijos de elementos en el conjunto de elementos actual. Puesto que varios hijos pueden tener el mismo nombre, el nmero de nodos en el conjunto de nodos puede aumentar o decrecer con cada paso. Tambin se puede acceder a los valores de atributo mediante el uso del smbolo @. Por ejemplo: /banco-2/cuenta/@nmero-cuenta devuelve Un conjunto con todos los valores de los atributos nmero-cuenta de los

elementos cuenta. De forma predeterminada no se siguen los vnculos IDREF; posteriormente veremos cmo tratar con IDREF. XPath soporta otras caractersticas: La seleccin de predicados puede seguir cualquier paso en una ruta y estn contenidos entre corchetes. Por ejemplo /banco-2/cuenta[saldo > 400] Devuelve los elementos cuenta con un valor saldomayor que 400 mientras que /banco-2/cuenta[saldo > 400]/@nmero-cuenta Devuelve los nmeros de cuenta de dichas cuentas. Se puede comprobar la existencia de un subelemento mediante su listado sin ninguna operacin de comparacin; por ejemplo si se elimina >400 de la expresin anterior devolvera los nmeros de cuenta de todas las cuentas que tiene un subelemento saldo, sin considerar su valor. XPath proporciona varias funciones que se pueden usar como parte de predicados incluyendo la comprobacin de la posicin del nodo actual en el orden de los hermanos y contando el nmero de nodos coincidentes. Por ejemplo, la expresin de ruta /banco-2/cuenta/[cliente/count()> 2]

Devuelve

las cuentas con ms de dos clientes. Se pueden usar las conectivas

lgicas and y or en los predicados y la funcin not() se puede usar para la negacin. La funcin id(foo) devuelve el nodo (si existe) con un atributo del tipo ID y cuyo valor sea foo. La funcin id se puede incluso aplicar a conjuntos de referencias o incluso a cadenas que contengan referencias mltiples separadas por espacios vacos, tales como IDREFS. Por ejemplo, la ruta /banco-2/cuenta/id(@tenedores) Devuelve todos los clientes referenciados desde el atributo tenedores de los

elementos cuenta. 7.4.2 XQUERY. El consorcio W3C (World Wide Web Consortium) est desarrollando XQuery, un lenguaje de consulta de XML. Nuestra discusin aqu est basada en un bosquejo del lenguaje estndar, por lo que el estndar final puede diferir; sin embargo se espera que las principales caractersticas no cambien sustancialmente. El lenguaje XQuery se deriva de un lenguaje de consulta XML denominado Quilt; la mayor parte de las caractersticas de XQuery que se analizan aqu son parte de Quilt. Quilt por s mismo incluye caractersticas de lenguajes anteriores, tales como XPath, y otros dos lenguajes de consulta XML: XQL y XML-QL. A diferencia de XSLT, XQuery no representa consultas en XML. En su lugar se parece ms a consultas SQL y se organizan en expresiones FLWR (pronunciad flower, flor en ingls) que comprende cuatro secciones: for, let, where y return. La seccin for proporciona una serie de variables que cuyos valores son los resultados de expresiones XPath. Cuando se especifica ms de una variable, los resultados incluyen el producto cartesiano de los valores posibles que las variables pueden tomar, haciendo la clusula for similar en espritu a la clusula from de la consulta SQL.

La clusula let simplemente permite que se asignen expresiones complicadas a los nombres de las variables por simplicidad de representacin. La seccin where, como la clusula SQL where, ejecuta comprobaciones adicionales sobre las tuplas reunidas de la seccin for. Finalmente la seccin return permite la construccin de resultados en XML. Sin embargo, la clusula let simplifica las consultas complejas. Las expresiones de ruta en XQuery pueden devolver un multiconjunto con nodos repetidos. La funcin distinct aplicada a un multiconjunto devuelve un conjunto sin duplicacin. La funcin distinct se puede usar incluso con una clusula for. XQuery tambin proporciona funciones de agregado tales como sum y count que se pueden aplicar a colecciones tales como conjuntos y multiconjuntos. Aunque XQuery no proporciona una constructora group by, las consultas de agregado se pueden escribir mediante el uso de constructoras FLWR anidadas en lugar de agrupamientos; dejamos los detalles como ejercicio. Ntese tambin que las variables asignadas por las clusulas let pueden tener valores de conjunto o multiconjunto si la expresin de ruta en el lado derecho devuelve un conjunto o un multiconjunto respectivamente. 7.4.3 XSLT. Una hoja de estilo es una representacin de las opciones de formato para un documento, normalmente almacenado fuera del documento mismo, por lo que el formato est separado del contenido. Por ejemplo, una hoja de estilo para HTML podra especificar la fuente a usar en todas las cabeceras y por ello reemplaza un gran nmero de declaraciones de fuente en la pgina HTML. XSL (XML Stylesheet Language), el lenguaje de hojas de estilo XML, estaba originalmente diseado para generar HTML a partir de XML y es por ello una extensin lgica de hojas de estilo HTML. El lenguaje incluye un mecanismo de transformacin de propsito general, denominado XSLT (XSL Transformations, transformaciones XSL), que se puede usar para transformar un documento XML en otro documento XML, o a otros formatos como HTML1. Las transformaciones XSLT son bastante potentes y en realidad XSLT puede incluso actuar como un lenguaje de consulta. Las

transformaciones XSLT se expresan como una serie de reglas recursivas, denominadas plantillas. En su forma bsica las plantillas permiten la seleccin de nodos en un rbol XML mediante una expresin XPath. Sin embargo, las plantillas tambin pueden generar contenido XML nuevo de forma que esa seleccin y generacin de contenido se pueda mezclar de formas naturales y potentes. Aunque XSLT se puede usar como un lenguaje de consulta, su sintaxis y semntica es bastante distinta a la de SQL. Una plantilla sencilla para XSLT consiste en una parte de coincidencia (match) y una parte de seleccin (select). Consideremos el siguiente cdigo XSLT. <xsl:template match = /banco-2/cliente> <xsl:value-of select = nombre-cliente/> </xsl:template> <xsl:template match = */> La instruccin xsl:template match contiene una expresin XPath que selecciona uno o ms nodos. La primera plantilla busca coincidencias de elementos cliente que aparecen como hijos del elemento raz banco-2. La instruccin xsl:value-of encerrada en la instruccin de coincidencia devuelve valores de los nodos en el resultado de la expresin XPath. La primera plantilla devuelve el valor del subelemento nombre-cliente; ntese que el valor no contiene la marca element. Ntese que la segunda plantilla coincide con todos los nodos. Esto se requiere porque el comportamiento predeterminado de XSLT sobre los elementos del documento de entrada que no coinciden con ninguna plantilla es copiar su contenido textual en el documento de salida y aplicar recursivamente las plantillas a sus subelementos. Cualquier texto o etiqueta de la hoja de estilo XSLT que no est en el espacio de nombres xsl se copia a la salida sin cambios. La Figura 10.10 muestra cmo usar esta caracterstica para hacer que cada nombre de cliente del ejemplo aparezca como un subelemento del elemento <cliente> mediante la ubicacin de la instruccin xsl:value-of entre <cliente> y </cliente>.

La creacin de un atributo, como id-Cliente, en el elemento Cliente generado, es ms complicado y requiere el uso de xsl:attribute. Vase un manual de XSLT para ms detalles. La recursividad estructural es una parte clave de XSLT. Hay que recordar que los elementos y subelementos naturalmente forman una estructura en rbol. La idea de la recursividad estructural es la siguiente: cuando una plantilla coincide con un elemento en la estructura de rbol XSLT puede usar la recursividad estructural para aplicar las reglas de la plantilla recursivamente a los subrboles en lugar de simplemente devolver un valor. Aplica las reglas recursivamente mediante la directiva xsl:apply-templates, que aparece dentro de otras plantillas. 7.5 ALMACENAMIENTO DE DATOS XML. Muchas aplicaciones requieren el almacenamiento de datos XML. Una forma de almacenar datos XML es convertirlos a una representacin relacional y almacenarlos en una base de datos relacional. Bases de datos relacionales Puesto que las bases de datos relacionales se usan ampliamente en aplicaciones existentes es una gran ventaja almacenar datos XML en bases de datos relacionales de forma que se pueda acceder a los datos desde aplicaciones existentes. La conversin de datos XML a una forma relacional es normalmente muy sencilla si los datos se han generado en un principio desde un esquema relacional y XML se us simplemente como un formato de intercambio de datos para datos relacionales. Sin embargo, hay muchas aplicaciones donde los datos XML no se han generado desde un esquema relacional y la traduccin de los datos a una forma relacional de almacenamiento puede no ser tan sencilla. En particular los elementos anidados y los elementos que se repiten (correspondientes a atributos con valores de conjunto) complican el almacenamiento de los datos XML en un formato relacional. Hay disponibles diversas alternativas. Almacenamiento como cadena. Una forma sencilla de almacenar los datos XML en una base de datos relacional es almacenar cada elemento hijo del elemento de mayor nivel como una cadena en una tupla separada de la base de datos. Por

ejemplo, los datos XML de la Figura 10.1 se podran almacenar como un conjunto de tuplas en una relacin elementos(datos), con el atributo datos de cada tupla almacenando un elemento XML (cuenta, cliente o impositor) en forma de cadena. Aunque esta representacin es fcil de usar, el sistema de la base de datos no conoce el esquema de los elementos almacenados. Como resultado no es posible consultar los datos directamente. En realidad no es siquiera posible implementar selecciones sencillas tales como buscar todos los elementos cuenta o encontrar el elemento cuenta cuyo nmero de cuenta sea C-401, sin explorar todas las tuplas de la relacin y examinar los contenidos de la cadena almacenada en la tupla. Representacin en rbol. Los datos XML arbitrarios se pueden modelar como un rbol y almacenar mediante el uso de un par de relaciones: Nodos (id, tipo, etiqueta, valor) Hijo (id-hijo, id-padre) Acada elemento y atributo de los datos XML se le proporciona un identificador nico. Una tupla insertada en la relacin nodos para cada elemento y atributo con su identificador (id), su tipo (atributo o elemento), el nombre del elemento o atributo (etiqueta) y el valor textual del elemento o atributo valor). La relacin hijo se usa para guardar el elemento padre de cada elemento y atributo. Si la informacin de orden de los elementos y atributos se debe preservar, se puede agregar un atributo extra posicin a la relacin hijo para indicar la posicin relativa del hijo entre los hijos del padre. Esta representacin tiene la ventaja de que toda la informacin XML se puede representar directamente de forma relacional y se pueden trasladar muchas consultas XML a consultas relacionales y ejecutar dentro del sistema de la base de datos. Sin embargo, tiene el inconveniente de que cada elemento se divide en muchas piezas y se requieren un gran nmero de combinaciones para reensamblar los elementos. Asignacin a relaciones. Segn este enfoque los elementos XML cuyo esquema es conocido se asignan a relaciones y atributos. Los elementos cuyo esquema es desconocido se almacenan como cadenas o como una representacin en rbol. Se crea una relacin para cada tipo de elemento cuyo esquema sea conocido.

Todos los atributos de estos elementos se almacenan como atributos de la relacin. Todos los subelementos que suceden ms de una vez dentro de estos elementos (segn se especifica en DTD) tambin se pueden representar como atributos de la relacin; si el subelemento puede contener solamente texto, el atributo almacena el valor de texto. En otro caso, la relacin correspondiente al subelemento almacena los contenidos del subelemento junto con un identificador para el tipo padre y el atributo almacena el identificador del subelemento. Si el subelemento tiene ms subelementos anidados se aplica el mismo procedimiento al subelemento. Si un subelemento puede aparecer varias veces en un elemento, el enfoque de asignacin a relaciones almacena el contenido de los subelementos en la relacin correspondiente al subelemento. Proporciona identificadores nicos tanto para el padre como para el subelemento y crea una relacin separada, similar a la relacin hijo vista en la representacin en rbol anterior para identificar el subelemento que aparece bajo cada padre. Ntese que cuando se aplica este enfoque a la DTD de los datos en la Figura 10.1 se vuelve al esquema relacional original que se ha usado en captulos anteriores. Las notas bibliogrficas proporcionan referencias a tales enfoques hbridos. Almacenamientos de datosno relacionales Hay varias alternativas para almacenar datos XML en sistemas de

almacenamientos de datos no relacionales: Almacenamiento en archivos planos. Puesto que XMLes principalmente un formato de archivo, un mecanismo de almacenamiento natural es simplemente un archivo plano. En particular hay una carencia de aislamiento de datos, comprobaciones de integridad, atomicidad, acceso concurrente y seguridad. Sin embargo, la amplia disponibilidad de herramientas XML que funcionan sobre archivos de datos hace relativamente sencillo el acceso y consulta de datos XML almacenados en archivos. Por ello, este formato de almacenamiento puede ser suficiente para algunas aplicaciones. Almacenamiento en una base de datos XML. Las bases de datos XML son bases de datos que usan XML como su modelo de datos bsico. Las bases de datos XML antiguas implementaban el modelo de

objetos documento sobre una base de datos orientada a objetos basada en C++. Esto permite reusar gran parte de la infraestructura de bases de datos orientada a objetos mientras se usa una interfaz XML estndar. La adicin de un lenguaje de consulta XML proporciona consultas declarativas. Tambin es posible construir bases de datos XML como una capa en la parte superior de las bases de datos relacionales. 7.6 APLICACIONES. Un objetivo central en el diseo para XML es hacer ms sencillo comunicar la informacin en Web y entre aplicaciones permitiendo que la semntica de los datos se describa con los mismos datos. Por ello, aunque la gran cantidad de datos XML y su uso en aplicaciones de negocios indudablemente requerirn y se beneficiarn de las tecnologas de bases de datos XML, es principalmente un medio de comunicacin. Dos aplicaciones XMLpara comunicacin (intercambio de datos y mediacin de recursos de informacin Web) ilustran cmo XML logra su objetivo de soportar el intercambio de datos y demuestran cmo la tecnologa e interaccin de las bases de datos son la clave en dar soporte a aplicaciones basadas en el intercambio. Intercambio de datos Se estn desarrollando estndares para la representacin XML de los datos de una gran variedad de aplicaciones especializadas que van desde aplicaciones de negocios tales como banca y transportes a aplicaciones cientficas tales como qumica y biologa molecular. Veamos algunos ejemplos: La industria qumica necesita informacin sobre los compuestos qumicos tales como su estructura molecular y una serie de propiedades importantes tales como los puntos de fusin y ebullicin, valores calorficos, solubilidad en distintos solventes y cosas as. ChemML es un estndar para representar dicha informacin. En el transporte, los transportes de mercancas y los agentes de aduana e inspectores necesitan los registros de los envos que contengan informacin detallada sobre los bienes que estn siendo transportados, por quin y desde

dnde se han enviado, a quin y a dnde se envan, el valor monetario de los bienes y cosas as. Un mercado en lnea en que los negocios pueden vender y comprar bienes (el llamado mercado B2B [business-to-business, de negocio a negocio]) requiere informacin tal como los catlogos de producto, incluyendo descripciones detalladas de los productos e informacin de los precios, inventarios de los productos, ofertas a comprar y cuotas para una venta propuesta. El uso de esquemas relacionales normalizados para modelar requisitos de datos tan complejos genera un gran nmero de relaciones que son complicadas de gestionar por los usuarios. Las relaciones frecuentemente tienen un gran nmero de atributos; la representacin explcita de nombres de atributos y elementos con sus valores en XML ayuda a evitar confusiones entre los atributos. Las representaciones de elementos anidados ayudan a reducir el nmero de relaciones que se deben representar, as como el nmero de combinaciones requeridas para obtener la informacin, con el posible coste de redundancia. Una base de datos con capacidades XML permite una correspondencia automtica de su modelo relacional interno (relacional, relacional orientado a objetos u orientado a objetos) con XML. Estas correspondencias pueden ser sencillas o complejas. Una correspondencia sencilla podra asignar un elemento a cada fila de una tabla y hacer de cada columna en esa fila bien un atributo o bien un subelemento del elemento de la fila. Dicha correspondencia es sencilla de generar automticamente. Una

correspondencia ms complicada necesitara que se crearan estructuras anidadas. Las extensiones de SQL con consultas anidadas en la clusula select se han desarrollado para permitir una creacin fcil de salidas XML anidadas. Algunos productos de bases de datos permiten a las consultas XML acceder a los datos relacionales tratando la forma XML de los datos relacionales como un documento XML virtual. Mediacin de datos

La compra comparada es un ejemplo de aplicacin de mediacin de datos en la que los datos sobre elementos, inventario, precio y costes de envo se extraen de una serie de sitios Web que ofrecen un elemento en particular de venta. La informacin agregada resultante es significativamente ms valiosa que la informacin individual ofrecida por un nico sitio. Un gestor financiero personal es una aplicacin similar en el contexto de la banca. Consideremos un consumidor con una gran cantidad de cuentas a gestionar, tales como cuentas bancarias, cuentas de ahorro y cuentas de jubilacin. Supongamos que estas cuentas pueden estar en distintas instituciones. Es un reto importante proporcionar una gestin centralizada de todas las cuentas de un cliente. La mediacin basada en XML soluciona el problema extrayendo una representacin XML de la informacin de la cuenta desde los sitios Web respectivos de las instituciones financieras donde estn las cuentas individuales. Esta informacin se puede extraer fcilmente si la institucin la exporta a un formato XML estndar, e indudablemente algunas lo harn. Para aquellas que no lo hacen se usa un software envolvente para generar datos XML a partir de las pginas Web HTML devueltas por el sitio Web. Las aplicaciones envolventes necesitan un mantenimiento constante, puesto que dependen de los detalles de formato de las pginas Web, que cambian constantemente. No obstante, el valor proporcionado por la mediacin frecuentemente justifica el esfuerzo requerido para desarrollar y mantener las aplicaciones envolventes.

También podría gustarte