Está en la página 1de 28

7.1 ANTECEDENTES.

XML proviene de un lenguaje inventado por IBM en los aos setenta, llamado GML (Generalized Markup Language), que surgi por la necesidad que tena la empresa de almacenar grandes cantidades de informacin. Este lenguaje gust a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Standard Generalized Markup Language), capaz de adaptarse a un gran abanico de problemas. A partir de l se han creado otros sistemas para almacenar informacin. En el ao 1989 Tim Berners Lee cre la web, y junto con ella el lenguaje HTML. Este lenguaje se defini en el marco de SGML y fue de lejos la aplicacin ms conocida de este estndar. Los navegadores web sin embargo siempre han puesto pocas exigencias al cdigo HTML que interpretan y as las pginas web son caticas y no cumplen con la sintaxis. Estas pginas web dependen fuertemente de una forma especfica de lidiar con los errores y las ambigedades, lo que hace a las pginas ms frgiles y a los navegadores ms complejos. Otra limitacin del HTML es que cada documento pertenece a un vocabulario fijo, establecido por el DTD. No se pueden combinar elementos de diferentes vocabularios. Asimismo es imposible para un intrprete (por ejemplo un navegador) analizar el documento sin tener conocimiento de su gramtica (del DTD). Por ejemplo, el navegador sabe que antes de una etiqueta <div> debe haberse cerrado cualquier <p> previamente abierto. Los navegadores resolvieron esto incluyendo lgica ad hoc para el HTML, en vez de incluir un analizador genrico. Ambas opciones, de todos modos, son muy complejas para los navegadores. Se busc entonces definir un subconjunto del SGML que permita: Mezclar elementos de diferentes lenguajes. Es decir que los lenguajes sean extensibles. La creacin de analizadores simples, sin ninguna lgica especial para cada lenguaje. Empezar de cero y hacer hincapi en que no se acepte nunca un documento con errores de sintaxis.

Para hacer esto XML deja de lado muchas caractersticas de SGML que estaban pensadas para facilitar la escritura manual de documentos. XML en cambio est orientado a hacer las cosas ms sencillas para los programas automticos que necesiten interpretar el documento.

7.2 ESTRUCTURA DE LOS DATOS XML El constructor fundamental en un documento XML es el elemento. Un elemento es sencillamente un par de etiquetas de inicio y finalizacin coincidentes y todo el texto que aparece entre ellas. Los documentos XML deben tener un nico elemento raz que abarque el resto de elementos en el documento. En el ejemplo de la Figura 10.1 el elemento <banco> forma el elemento raz. Adems, los elementos en un documento XML se deben anidar adecuadamente. Por ejemplo: <Cuenta> <saldo> </saldo> </cuenta> est anidado adecuadamente, mientras que <Cuenta> <saldo> </cuenta> </saldo> no est adecuadamente anidado.

Aunque el anidamiento adecuado es una propiedad intuitiva, la debemos definir ms formalmente. Se dice que el texto aparece en el contexto de un elemento si aparece entre la etiqueta de inicio y la etiqueta de finalizacin de dicho elemento. Las etiquetas estn
2

anidadas adecuadamente si toda etiqueta de inicio tiene una nica etiqueta de finalizacin coincidente que est en el contexto del mismo elemento padre. Ntese que el texto puede estar mezclado con los subelementos de otro elemento, como en la Figura 10.2. Como con otras caractersticas de XML, esta libertad tiene ms 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 ms estructurados como son el contenido de las bases de datos. La capacidad de anidar elementos con otros elementos proporciona una forma alternativa de representar informacin. La Figura 10.3 muestra una representacin de la informacin bancaria de la Figura 10.1, pero con los elementos cuenta anidados con los elementos cliente, aunque almacenara elementos cuenta de una forma redundante si pertenecen a varios clientes.

Las representaciones anidadas se usan ampliamente en las aplicaciones de intercambio de datos XML para evitar las reuniones. Por ejemplo, una aplicacin de envos almacenara la direccin completa del emisor y receptor de una forma redundante en un documento de envo asociado con cada envo mientras que una representacin normalizada puede requerir una reunin de registros de envo con una relacin compaadireccin para obtener la informacin de la direccin.

Adems de los elementos, XML especifica la nocin de atributo. Por ejemplo, el tipo de una cuenta se puede representar como un atributo, como en la Figura 10.4. Los atributos de un elemento aparecen como pares nombre = valor antes del cierre > de una etiqueta. Los atributos son cadenas y no contienen marcas. Adems,

Los atributos pueden aparecer solamente una vez en una etiqueta dada, al contrario que los subelementos, que pueden estar repetidos. Ntese que en un contexto de construccin de un documento es importante la distincin entre subelemento y atributo; un atributo es implcitamente texto que no aparece en el documento impreso o visualizado. Sin embargo, en las aplicaciones de bases de datos y de intercambio de datos de XML esta distincin es menos relevante y la eleccin de representar los datos como un atributo o un subelemento es frecuentemente arbitraria. Una nota sintctica final es que un elemento de la forma <elemento> < / elemento>, que no contiene subelementos o texto, se puede abreviar como <elemento/>; los elementos abreviados pueden, no obstante, contener atributos. Puesto que los documentos XML se disean para su intercambio entre aplicaciones se tiene que introducir un mecanismo de espacio de nombres para permitir a las organizaciones especificar nombre nicos globalmente para que se usen como marcas de elementos en los documentos. La idea de un espacio de nombres es anteponer cada etiqueta o atributo con un identificador de recursos universal (por ejemplo, una direccin Web). Por ello, por ejemplo, si Banco Principal deseara asegurar que los documentos XML creados no duplican las etiquetas usadas por los documentos de otros socios del negocio, se puede anteponer un identificador nico con dos puntos a cada nombre de etiqueta. El banco puede usar un URL Web como el siguiente http://www.BancoPrincipal.com Como un identificador nico. El uso de identificadores nicos largos en cada etiqueta puede ser poco conveniente, por lo que el espacio de nombres estndar proporciona una forma de definir una abreviatura para los identificadores. En la Figura 10.5 el elemento raz (banco) tiene un atributo xmlns:BP, que declara que BP est definido como abreviatura para el URL dado anteriormente. Se puede usar entonces la abreviatura en varias marcas de elementos como se ilustra en la figura. Un documento puede tener ms de un espacio de nombres, declarado como parte del elemento raz. Se pueden asociar entonces elementos diferentes con espacios de nombres distintos. Se puede definir un espacio de nombres predeterminado mediante el uso del
4

atributo xmlns en lugar de xmlns:BP en el elemento raz. Los elementos sin un prefijo de espacio de nombres explcito pertenecen entonces al espacio de nombres predeterminado. Algunas veces se necesitan almacenar valores que contengan etiquetas sin que sean interpretadas como etiquetas XML. XML permite esta construccin para ello: <! [CDATA [<cuenta> </cuenta>]]> Debido a que el texto <cuenta> est encerrado en CDATA, se trata como datos de texto normal, no como una etiqueta. El trmino CDATA viene de datos de carcter (character data en ingls).

7.3 ESQUEMA DE LOS DOCUMENTOS XML Las bases de datos tienen esquemas que se usan para restringir que 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 auto descriptiva 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. 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 auto descriptiva 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. El esquema de XML, publicado como recomendacin de W3C en mayo de 2001, es una de varios lenguajes del esquema de XML. Era la primera lengua separada del esquema para que XML alcance estado de la recomendacin por el W3C. Como todos los lenguajes del esquema de XML, 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 vlido segn ese esquema. Sin embargo, desemejante de la mayora de las otras lenguajes del esquema, el esquema de XML tambin fue diseado con el intento de la validacin dando por resultado una coleccin de informacin que adhirindose a los datatypes especficos, que pueden ser tiles en el desarrollo del documento de XML que procesa el software, pero que tambin ha provocado crtica.
5

Un caso del esquema de XML es una definicin del esquema de XML (XSD) y tiene tpicamente la extensin xsd del nombre de fichero. El lenguaje as mismo se refiere a veces informalmente como XSD. Se ha sugerido que sea WXS (para el esquema de W3C XML) es un inicialismo ms apropiado estas siglas no ha estado sin embargo en un uso extenso y grupo de funcionamiento de W3C lo rechaz. XSD es tambin un inicialismo para el esquema Datatypes, la porcin de XML del datatype del esquema de XML. Hay dos niveles de exactitud de un documento de XML: Bien formado. Un documento bien- formado conforma a todas las reglas de la sintaxis de XML. Por ejemplo, si un elemento tiene una etiqueta de la apertura sin cerrar la etiqueta y no est cerrado completamente, por lo tanto no est bien formado .No se considera que un documento que no se bien formado es XML; un analizador de sintaxis conformando no permitir procesarlo. Vlido. Un documento vlido conforma adicionalmente a algunas reglas semnticas. Estas reglas o definiciones del usuario, o incluido como un esquema de XML o DTD. Por ejemplo, si un documento contiene una etiqueta indefinida, entonces no es vlido; un analizador de sintaxis Validando no se permite procesarlo.

La buena formacin de los documentos: la clave es seguir sintaxis de XML. Con tal de que slo bien formados se requiere, XML es un marco de trabajo genrico por guardar cualquier cantidad de texto o cualquier datos cuya estructura puede representarse como un rbol. El nico requisito sintctico indispensable es que el documento tiene un elemento de la raz exactamente (alternativamente llam el elemento del documento). Esto significa que el texto debe adjuntarse entre una raz que abre etiqueta y una etiqueta del cierre correspondiente. En cualquier aplicacin significante, el encarecimiento adicional se usa para estructurar los volmenes del documento de XML. El texto adjuntado por las etiquetas de la raz puede contener un nmero arbitrario de elementos de XML. La sintaxis bsica para uno el elemento es: < nombre ="">content Aqu, content is algn texto que puede contener los elementos de XML de nuevo. As que, un documento de XML genrico contiene una estructura de los datos basada en tipo rbol. En este respeto, es similar a las S-expresiones del lenguaje de programacin del LISP que describen el rbol estructura en qu cada nodo puede tener su propia lista de propiedad. XML mantiene dos mtodos refirindose a los caracteres especiales: las referencias de entidad de carcter y las referencias del carcter numricas. Una entidad en XML es un cuerpo nombrado de datos, normalmente el texto, como un carcter raro. Una referencia de la entidad es un lugar que representa esa entidad. Consiste en el nombre de la entidad precedido por un ampersand (&) y sigui por un punto y coma (;). Dejando los nombres, con jerarqua aceptable, y significados de los elementos y atributos abiertos y definibles por un esquema personalizable o DTD, XML mantiene una fundacin sintctica la creacin de propsito los lenguajes de encarecimiento especficos, basados en XML.
6

La sintaxis general de tales lenguajes est rgidalos documentos deben adherir a las reglas generales de XML, mientras asegurando que el software todo XML-consciente puede leer por lo menos y puede entender el arreglo relativo de informacin dentro de ellos. El esquema complementa las reglas de la sintaxis meramente con un juego de constreimientos. Los esquemas restringen elemento y nombres del atributo y sus jerarquas de la contencin aceptables tpicamente, como slo permitir un elemento nombrado el cumpleaos para contener 1 elemento nombrado mes y 1 elemento nombr da cada uno de los cuales tiene que contener slo datos del carcter. Los reglas en un esquema tambin pueden incluir asignaciones del tipo de datos que afectan cmo la informacin se procesa; por ejemplo, el mes los datos del carcter de elemento pueden definirse como estar al mes segn las convenciones de un lenguaje del esquema particular, mientras significando quizs que no slo debe estructurarse una cierta manera, pero tambin no debe procesarse como si era algn otro tipo de datos. Se dice que un documento de XML que obedece un schema/DTD particular, adems su buena formacin, es vlido. Un esquema de XML es una descripcin de un tipo de documento de XML, tpicamente expres por lo que se refiere a los constreimientos en la estructura y satisfecho de documentos de ese tipo, por encima de las reglas rgidas bsicas impuestas por el propio XML. Varios XML esquema lenguajes normales y propietarios han surgido con el propsito de expresar los tales esquemas formalmente, y algunos de estos lenguajes son XMLbasados, ellos. Antes del advenimiento de lenguajes de descripcin de datos generalizados como SGML y XML, diseadores del software tenan que definir formatos de archivos especiales o los lenguajes pequeos para compartir los datos entre los programas. La estructura regular de XML y las reglas del anlisis gramatical estrictas les permiten a diseadores del software dejar el anlisis gramatical a las herramientas normales, y desde que XML proporciona a un general, los datos el marco de trabajo modelo-orientado para el desarrollo de lenguajes aplicacin-especficos, diseadores del software slo necesitan concntrese en el desarrollo de reglas por sus datos, a los niveles relativamente altos de abstraccin. Las herramientas bien-probadas existen para validar un documento de XML contra un esquema: la herramienta verifica automticamente si el documento conforma a constreimientos expresados en el esquema. Algunos de stos las herramientas de aprobacin son incluidos en los analizadores de XML, y algunos se empaquetan separadamente.

7.3.1 DEFINICIN DE TIPOS DE DOCUMENTOS (DTD) Una definicin de tipo de documento o DTD (siglas en ingls de document type definition) es una descripcin de estructura y sintaxis de un documento XML o SGML. Su funcin bsica es la descripcin del formato de datos, para usar un formato comn 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 descripcin de los datos que trae consigo cada documento, y pueden adems compartir la misma descripcin y forma de validacin dentro de un grupo de trabajo que usa el mismo tipo de informacin.

La DTD es una definicin en un documento SGML o XML, que especifica restricciones en la estructura y sintaxis del mismo. La DTD se puede incluir dentro del archivo del documento, pero normalmente se almacena en un fichero ASCII de texto separado. La sintaxis de las DTD para SGML y XML es similar pero no idntica. La definicin de una DTD especifica la sintaxis de una aplicacin de SGML o XML, que puede ser un estndar ampliamente utilizado como XHTML o una aplicacin local. Las DTD se emplean generalmente para determinar la estructura de un documento mediante etiquetas (en ingls tags) 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. Un esquema basado en una DTD tiene bastantes limitaciones. Una DTD no permite definir elementos locales que slo sean vlidos dentro de otros elementos. Por ejemplo, si queremos tener un elemento que describa al gestor de una compaa o al de una delegacin, y la definicin de Manager es diferente en cada caso, con una DTD tendramos que crear los elementos CompanyManager y DelegationManager para evitar el conflicto de nombres. Es decir, la falta de jerarqua en una DTD obliga a introducir una jerarqua a base de guiones o puntos
8

en el espacio de nombres (Namespace). En una DTD es poco flexible la definicin de elementos con contenido mixto, es decir, que incluyan otros elementos adems de texto. Adems no es posible indicar a qu tipo de dato (nmero, fecha, moneda) ha de corresponder un atributo o el texto de un elemento. La necesidad de superar estas limitaciones propicia la aparicin de otros lenguajes de esquema como XML Schema, herramientas ms completas de descripcin que son una alternativa a las DTD. Un ejemplo de una DTD XML muy simple, para describir una lista de personas:

<! ELEMENT lista_de_personas (persona*)> <! ELEMENT persona (nombre, fechanacimiento?, sexo?, numeroseguridadsocial?)> <! ELEMENT nombre (#PCDATA) > <! ELEMENT fechanacimiento (#PCDATA) > <! ELEMENT sexo (#PCDATA) > <! ELEMENT numeroseguridadsocial (#PCDATA)> Observndolo lnea a lnea nos dice: 1. <lista_de_personas> es un nombre de elemento vlido. El * indica que puede haber 0 o ms elementos de persona. 2. <persona> es un nombre de elemento vlido. ste contiene obligatoriamente el elemento nombre mientras que el resto son opcionales. Y lo son porque nos lo indica el smbolo "?". 3. <nombre> es un nombre de elemento vlido. Contiene caracteres. 4. <sexo> es un nombre de elemento vlido. Contiene caracteres. 5. <fechanacimiento> es un nombre de elemento vlido. 6. <numeroseguridadsocial> es un nombre de elemento vlido.
Un ejemplo de un fichero XML que hace uso de esta DTD: <? XML versin="1.0" encoding="ISO-8859-1"?> <! DOCTYPE lista_de_personas SYSTEM "ejemplo.dtd"> <lista_de_personas> <Persona> <Nombre>Jos Garca</nombre> <Fechanacimiento>25/04/1984</fechanacimiento> <Sexo>Varn</sexo> </Persona> </lista_de_personas>

La DTD mostrada ms arriba requiere un elemento "nombre" dentro de cada elemento "persona"; el elemento "lista_de_personas" es tambin obligatorio, pero el resto son opcionales. Es posible renderizar este documento en un navegador habilitado para XML (como IE5 o Mozilla) pegando y guardando la DTD de ms arriba en un archivo de texto llamado ejemplo.dtd y el fichero.xml a un fichero de texto denominado de forma diferente, y abriendo el archivo.xml con el navegador. Ambos ficheros deben estar guardados en el mismo directorio (o carpeta). No obstante, algunos navegadores no comprueban que un
9

documento XML sigue las reglas de la DTD; solamente se requieren para comprobar que la DTD es sintcticamente correcta. Limitaciones de la DTD. Un esquema basado en una DTD tiene bastantes limitaciones. Una DTD no permite definir elementos locales que slo sean vlidos dentro de otros elementos. Por ejemplo, si queremos tener un elemento <Manager> que describa al gestor de una compaa o al de una delegacin, y la definicin de Manager es diferente en cada caso, con una DTD tendramos que crear los elementos CompanyManager y DelegationManager para evitar el conflicto de nombres. Es decir, la falta de jerarqua en una DTD obliga a introducir una jerarqua a base de guiones o puntos en el espacio de nombres (Namespace). En una DTD es poco flexible la definicin de elementos con contenido mixto, es decir, que incluyan otros elementos adems de texto. Adems no es posible indicar a qu tipo de dato (nmero, fecha, moneda) ha de corresponder un atributo o el texto de un elemento. La necesidad de superar estas limitaciones propicia la aparicin de otros lenguajes de esquema como XML Schema, herramientas ms completas de descripcin que son una alternativa a las DTD. Crear una definicin del tipo de documento (DTD) es como crear nuestro propio lenguaje de marcado, para una aplicacin especfica. Por ejemplo, podramos crear un DTD que defina una tarjeta de visitas. A partir de ese DTD, tendramos una serie de elemento XML que nos permitiran definir tarjetas de visita. La DTD define los tipos de elementos, atributos y entidades permitidas, y puede expresar algunas limitaciones para combinarlos. Los documentos que se ajustan a su DTD, se denominan "vlidos". El concepto de "validez" no tiene nada que ver con el de estar "bien formado". Un documento "bien formado" simplemente respeta la estructura y sintaxis definida por la especificacin de XML. Un documento "bien formado" puede adems ser "vlido" si cumple las reglas de una DTD determinada. Tambin existen documentos XML sin una DTD asociada, en ese caso no son "vlido", pero tampoco "invlido"... simplemente "bien formados"... o no. Una DTD puede residir en un fichero externo, y quizs compartido por varios (puede que miles) de documentos. O bien, puede estar contenido en el propio documento XML, como parte de su declaracin de tipo de documento. La declaracin del tipo de documento empieza en la primera lnea y termina con "]>". Las declaraciones DTD son las lneas que empiezan con "<! ELEMENT" y se denominan declaraciones de tipo elemento. Tambin se pueden declarar atributos, entidades y anotaciones para una DTD. En el ejemplo anterior, todas las declaraciones DTD se definen "etiquetas" residen dentro del documento. Sin embargo, la DTD se puede definir parcial o completamente en otro

ejemplo. Por ejemplo: <?XML versin="1.0"?> <!DOCTYPE coche SYSTEM "http://www.sitio.com/dtd/coche.dtd"> <Coche>
10

<Modelo>...</modelo> ... </coche> Declaraciones Tipo Elemento Los elementos son la base de las marcas XML, y deben ajustarse a un tipo de documento declarado en un DTD para que el documento XML sea considerado vlido. Las declaraciones de tipo de elemento deben empezar con "<!ELEMENT" seguidas por el identificador genrico del elemento que se declara. A continuacin tienen una especificacin de contenido. Por ejemplo: <!ELEMENT receta (titulo, ingredientes, procedimiento)> En este ejemplo, el elemento <receta> puede contener dentro elementos <titulo>, <ingredientes> y <procedimiento>, que, a su vez, estarn definidos tambin en la DTD y podrn contener ms elementos. Siguiendo la definicin de elemento anterior, este ejemplo de documento XML sera vlido: <Receta> <titulo>...</titulo> <ingredientes>...</ingredientes> <procedimiento>...</procedimiento> </receta> Pero no este: <Receta> <parrafo>Esto es un prrafo</parrafo> <titulo>...</titulo> <ingredientes>...</ingredientes> <procedimiento>...</procedimiento> </receta> La especificacin de contenido puede ser de cuatro tipos: EMPTY Puede no tener contenido. Suele usarse para los atributos. <!ELEMENT salto-de-pagina EMPTY> ANY Puede tener cualquier contenido. No se suele usar, ya que es conveniente estructurar adecuadamente nuestro documento XML. <!ELEMENT batiburrillo ANY> Mixed Puede tener caracteres de tipo dato o una mezcla de caracteres y sub-elementos especificados en la especificacin de contenido mixto. <!ELEMENT nfasis (#PCDATA)> <!ELEMENT parrafo (#PCDATA|enfasis)*>
11

Por ejemplo, el primer elemento definido en el ejemplo (<nfasis>) puede contener datos de carcter (#PCDATA). Y el segundo (<parrafo>) puede contener tanto datos de carcter (#PCDATA) como subelementos de tipo <nfasis>. Element Slo puede contener sub-elementos especificados en la especificacin de contenido. <!ELEMENT mensaje (remite, destinatario, texto)> Para declarar que un tipo de elemento tenga contenido de elementos se especifica un modelo de contenido en lugar de una especificacin de contenido mixto o una de las claves ya descritas. Modelos de contenido Un modelo de contenido es un patrn que establece los sub-elementos aceptados, y el orden en que se acepta. Un modelo sencillo puede tener un solo tipo de sub-elemento: <!ELEMENT aviso (parrafo)> Esto indica que <aviso> slo puede contener un solo <parrafo>. <!ELEMENT aviso (titulo, parrafo)> La coma, en este caso, denota una secuencia. Es decir, el elemento <aviso> debe contener un <titulo> seguido de un <parrafo>. <!ELEMENT aviso (parrafo | grafico)> La barra vertical "|"indica una opcin. Es decir, <aviso> puede contener o bien un <parrafo> o bien un <grafico>. El nmero de opciones no est limitado a dos, y se pueden agrupar usando parntesis. <!ELEMENT aviso (titulo, (parrafo | grafico))> En este ltimo caso, el <aviso> debe contener un <titulo> seguido de un <parrafo> o un <grafico>. Adems, cada partcula de contenido puede llevar un indicador de frecuencia, que siguen directamente a un identificador general, una secuencia o una opcin, y no pueden ir precedidos por espacios en blanco. Declaraciones de lista de atributos Los atributos permiten aadir informacin adicional a los elementos de un documento. La principal diferencia entre los elementos y los atributos, es que los atributos no pueden contener sub-atributos. Se usan para aadir informacin corta, sencilla y desestructurada. <mensaje prioridad="urgente"> <de>Alfredo Reino</de> <a>Hans van Parijs</a> <texto idioma="holands"> Hallo Hans, hoe gaat het?... </texto> </mensaje>
12

Otra diferencia entre los atributos y los elementos, es que cada uno de los atributos s se puede especificar una vez, y en cualquier orden. En el ejemplo anterior, para declara la lista de atributo de los elementos <mensaje> y <texto> haramos lo siguiente: <!ELEMENT mensaje (de, a, texto)> <!ATTLIST mensaje prioridad (normal | urgente) normal> <!ELEMENT texto (#PCDATA)> <!ATTLIST texto idioma CDATA #REQUIRED> Las declaraciones de los atributos empiezan con "<!ATTLIST", y a continuacin del espacio en blanco viene el identificador del elemento al que se aplica el atributo. Despus viene el nombre del atributo, su tipo y su valor por defecto. En el ejemplo anterior, el atributo "prioridad" puede estar en el elemento <mensaje> y puede tener el valor "normal" o "urgente", siendo "normal" el valor por defecto si no especificamos el atributo. El atributo "idioma", pertenece al atributo texto, y puede contener datos de carcter CDATA. Es ms, la palabra #REQUIRED significa que no tiene valor por defecto, ya que es obligatoria especificar este atributo. A menudo interesa que se pueda omitir un atributo, sin que se adopte automticamente un valor por defecto. Para esto se usa la condicin "#IMPLIED". Por ejemplo, en una supuesta DTD que define la etiqueta <IMG> de HTML: <!ATTLIST IMG URL CDATA #REQUIRED> <!ALT CDATE #IMPLIED> Es decir, el atributo "URL" es obligatorio, mientras que el "ALT" es opcional (y si se omite, no toma ningn elemento por defecto). Tipos de atributos Atributos CDATA y NMTOKEN Los atributos CDATA (Character DATA)son los ms sencillos, y pueden contener casi cualquier cosa. Los atributos NMTOKEN (NaMe TOKEN) son parecidos, pero slo aceptan los caracteres vlidos para nombrar cosas (letras, nmeros, puntos, guiones, subrayados y los dos puntos). <!ATTLIST mensaje fecha CDATA #REQUIRED> <mensaje fecha="15 de Diciembre de 1999"> <!ATTLIST mensaje fecha NMTOKEN #REQUIRED> <mensaje fecha="15-12-1999"> Atributos enumerados y notaciones Los atributos enumerados son aquellos que slo pueden contener un valor de entre un nmero reducido de opciones. <!ATTLIST mensaje prioridad (normal | urgente) normal> Existe otro tipo de atributo parecido, llamado de notacin (NOTATION). Este tipo de atributo permite al autor declarar que su valor se ajusta a una notacin declarada.
13

<!ATTLIST mensaje fecha NOTATION (ISO-DATE | EUROPEAN-DATE) #REQUIRED> Para declarar las notaciones, se utiliza "<!NOTATION" con una definicin externa de la notacin. La definicin externa puede ser pblica o un identificador del sistema para la documentacin de la notacin, una especificacin formal o un asistente de la aplicacin que contenga objetos representados en la notacin <!NOTATION HTML SYSTEM "http://www.w3.org/Markup"> <!NOTATION HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN"> Atributos ID e IDREF El tipo ID permite que un tipo determinado tenga un nombre nico que podr ser referenciado por un atributo de otro elemento que sea de tipo IDREF. Por ejemplo, para implementar un sencillo sistema de hipervnculos en un documento: <!ELEMENT enlace EMPTY> <!ATTLIST enlace destino IDREF #REQUIRED> <!ELEMENT capitulo (parrafo)*> <!ATTLIST capitulo referencia ID #IMPLIED> En este caso, una etiqueta <enlace destino="seccion-3"> hara referencia a un <capitulo referencia="seccion-3">, de forma que el procesador XML lo podra convertir en un hipervnculo, u otra cosa. Declaracin de entidades XML hace referencia a objetos (ficheros, pginas web, imgenes, cualquier cosa) que no deben ser analizados sintcticamente segn las reglas de XML, mediante el uso de entidades. Se declaran en la DTD mediante el uso de "<!ENTITY" Una entidad puede no ser ms que una abreviatura que se utiliza como una forma corta de algunos textos. Al usar una referencia a esta entidad, el analizador sintctico reemplaza la referencia con su contenido. En otras ocasiones es una referencia a un objeto externo o local. Las entidades pueden ser: Internas o Externas Analizadas o No analizadas Generales o Parmetro Entidades generales internas Son las ms sencillas. Son bsicamente abreviaturas definidas en la seccin de la DTD del documento XML. Son siempre entidades analizadas, es decir, una vez reemplazada la referencia a la entidad por su contenido, pasa a ser parte del documento XML y como tal, es analizada por el procesador XML. <!DOCTYPE texto [<!ENTITY alf "Alien Life From">]> <texto><titulo>Un da en la vida de un &alf</titulo></texto> Entidades generales externas analizadas Las entidades externas obtienen su contenido en cualquier otro sitio del sistema, ya sea otro archivo del disco duro, una pgina web o un objeto de una base de datos. Se hace referencia al contenido de una entidad as mediante la palabra SYSTEM seguida de un URI (Universal Resource Identifier)
14

<!ENTITY intro SYSTEM "http://www.miservidor.com/intro.xml"> Entidades no analizadas Evidentemente, si el contenido de la entidad es un archibo MPG o una imagen GIF o un fichero ejecutable EXE, el procesador XML no debera intentar interpretarlo como si fuera texto XML. Este tipo de entidades siempre son generales y externas. <!ENTITY logo SYSTEM "http://www.miservidor.com/logo.gif"> Entidades parmetro internas y externas Se denominan entidades parmetro a aquellas que slo pueden usarse en la DTD, y no en el documento XML. Se puede utilizar para agrupar ciertos elementos del DTD que se repitan mucho. Se diferencian las entidades parmetro de las generales, en que para hacer referencia a ellas, se usa el smbolo "%" en lugar de "&" tanto para declararlas como para usarlas. <!DOCTYPE texto [ <!ENTITY % elemento-alf "<!ELEMENT ALF (#PCDATA)>">... %elemento-alf; ]> Tambin puede ser externa: <!DOCTYPE texto [ <!ENTITY % elemento-alf SYSTEM "alf.ent">... %elemento-alf; ]> 7.3.2 ESQUEMAS XML Un intento de reparar muchas de estas deficiencias de DTD produjo un lenguaje de esquema ms sofisticado, XML Schema. Presentamos aqu un ejemplo de XML Schema y se listan algunas reas en las cuales mejora a las DTDs sin dar mucho detalle de la sintaxis de XML Schema. XML Schema es un lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa, ms all de las normas sintcticas impuestas por el propio lenguaje XML. Se consigue as una percepcin del tipo de documento con un nivel alto de abstraccin. Fue desarrollado por el World Wide Web Consortium (W3C) y alcanz el nivel de recomendacin en mayo de 2001. El trmino "XML Schema" es utilizado con varios significados dentro del mismo contexto de descripcin de documentos, y es importante tener en cuenta las siguientes consideraciones: 1. "XML Schema" (Esquema XML) es el nombre oficial otorgado a la recomendacin del W3C, que elabor el primer lenguaje de esquema separado de XML (la definicin de tipo de documentos (DTD) forma parte de XML). 2. Es habitual referirse a los esquemas como "XML schema" de forma genrica, pero se recomienda utilizar el trmino documento esquema (schema document) o "definicin de esquema"(schema definition), y reservar XML Schema para la denominacin de este lenguaje especfico.
15

3. Aunque genricamente se utilice "XML schemas", XSDL (XML Schema Definition Language) es el nombre tcnico de los lenguajes de esquema de XML como: Definicin de Tipo de Documento (DTD) XML Schema RELAX NG Schematron Namespace Routing Language (NRL) Document Schema Definition Languages (DSDL) Document Definition Markup Language (DDML) Document Structure Description (DSD) SGML Schema for Object-Oriented XML (SOX)

XML Schema es un lenguaje de esquema escrito en XML, basado en la gramtica y pensado para proporcionar una mayor potencia expresiva que las DTD, menos capaz al describir los documentos a nivel formal. Los documentos esquema (usualmente con extensin .xsd de XML Schema Definition (XSD)) se concibieron como una alternativa a las DTD, ms complejas, intentando superar sus puntos dbiles y buscar nuevas capacidades a la hora de definir estructuras para documentos XML. El principal aporte de XML Schema es el gran nmero de tipos de datos que incorpora. De esta manera, XML Schema aumenta las posibilidades y funcionalidades de aplicaciones de procesado de datos, incluyendo tipos de datos complejos como fechas, nmeros y strings. Los esquemas XML Schema superan muchas de las limitaciones y debilidades de las DTDs. Fue diseado completamente alrededor de namespaces y soporta tipos de datos tpicos de los lenguajes de programacin, como tambin tipos personalizados simples y complejos. Un esquema se define pensando en su uso final. La programacin en Schema XML se basa en Namespaces. Podemos encontrar una analoga entre stos y los llamados packages en Java. Cada Namespace contiene elementos y atributos que estn estrechamente relacionados con el Namespace. As, a la hora de definir un elemento o un atributo de un Namespace, siempre se crear una conexin entre los diferentes campos de ste. Adems, esta forma de trabajar nos permite relacionar elementos que no estn en el mismo Namespace. Lenguaje de definicin de esquemas XML, xDSL, se utiliza para hacer cumplir las reglas sobre las estructuras de datos en archivos XML. El lenguaje de definicin de esquema garantiza que cada objeto en el archivo XML conforme a una estructura predefinida, tal como se describe en el documento XSDL. Esquemas XML facilitan la creacin de estructuras de datos complejas significativamente. Esencialmente, los archivos XSD son archivos simples que seran legibles para cualquier programador bsico. Definen elementos dentro del objeto de variables que tienen tipos de datos, tales como cadenas, enteros y nmeros de punto flotante. Hay varios editores de XSD en el mercado en la actualidad, la ms oscura, pero es bien conocido Microsoft Word. MS Word permite edicin bsica XML, exportador e incluso
16

insercin de archivos de esquema xDSL para que puede comprobar si el documento se ajusta a las normas correctas. Hay otras alternativas de pagos, que ofrecen grfico XML y XSD edicin, para ms manos en tareas de desarrollo. Para tareas que involucran grandes cantidades de edicin de XML, recomendara comprar algn software de calidad. Teniendo esto en cuenta, no tendr que comprar cualquier software si usted slo est introduccin a XML, como probablemente ya lo tiene. Si est buscando una manera de aprender a esquemas XML, bsqueda Google para algunos tutoriales cortos, o compra un libro de algn sitio como Amazon. Hoja de estilos de XML transformacin XSLT de idioma no es lo mismo como xDSL. XSLT es un lenguaje de transformaciones que transforma los datos XML a otro formato, como HTML para la representacin de la web. XDSL fuerzas de integridad de los datos a lo largo de este proceso, pero no alterar los datos durante este. Los esquemas son realmente los documentos XML demasiado, y debern ajustarse a los lmites legales de una especificacin del esquema, que es conocido como un esquema. Esquemas propios pueden estar en los archivos, (por ejemplo, XML, HTML). Ahora que ya ha empezado a obtener complicado, resulta patente la necesidad de un Editor de XML. Idealmente, XML y XSD editores son necesarios para editar estos archivos de complejidad modesta. Comprender esquemas en detalle, realmente se debe hacer un pequeo fondo de lectura en XML prefijos y espacios de nombres XML. Una vez ms, lectura de estos puede encontrarse en Google (o Amazonas) si eres de la vieja escuela. Documentos XML adjuntar el URI del esquema en la segunda lnea, mediante el uso de la etiqueta: (Sin espacios) En este ejemplo, el archivo XML general sera sobre una serie de contactos, con el elemento raz se define como Contacto, es decir Elementos raz generalmente se definen como tipo complejo como pueden contener muchos tipos de datos y objetos dentro de ellos. Dentro de los elementos de raz, hay una secuencia de los objetos secundarios. Los tipos de datos disponibles para estos son; elemento, simpleType, complexType, fecha, entero, para nombrar slo algunas. En los documentos de esquema XML, a menudo puede ver elementos con un prefijo xs:, o xsd:, es un estndar para definir etiquetas del esquema. Un esquema es, en XML, un tipo de documento de modelado que define la estructura de un documento XML. Hasta ahora hemos empleado los DTD para crear definiciones complejas, modulares, "maravillosas", etctera para un cierto vocabulario. Sin embargo los esquemas, adems de hacer lo mismo, aportan beneficios: Se emplea XML para crear esquemas, en vez de una sintaxis aparte. Soportan completamente la recomendacin sobre Namespaces, ya que fueron diseados despus de la recomendacin de Namespaces. Permite crear ms fcilmente modelos complejos y reutilizables. Permiten modelar aspectos ventajosos de programacin, como herencia y sustitucin de tipos (de esto ya hablaremos en el ciclo de programacin).
17

La mayora de los esquemas se almacenan en un documento XML separado. A este respecto, los esquemas son iguales que los DTD externos, de forma que el documento tiene una referencia hacia el esquema. Un documento XML que se acoge a un esquema XML en particular, es llamado Instancia del Esquema. Para empezar, vamos a ver un esquema ejemplo: <? XML versin="1.0" encoding="UTF-8"?> <schema xmlns=http://www.w3.org/2001/XMLSchema xmlns: target="http://www.example.com/persona" targetNamespace="http://www.example.com/persona" elementFormDefault="qualified"> <element name="persona"> <Complex Type> <Sequence> <element name="nombre" type="string"/> <element name="apellido1" type="string"/> <element name="apellido2" type="string"/> </sequence> <attribute name="ttulo" type="string"/> </complex Type> </element> </schema> Vamos a empezar con este esquema. Podemos crear un documento llamado esquema1.xsd, copiar en el esquema anterior y guardarlo. Ahora, vamos a crear una instancia del esquema. En vez de referirnos a un DTD, nos referiremos al esquema, como lo hace el ejemplo siguiente: <?XML versin=1.0?> <persona xmlns=http://www.example.com/persona xmlns:xsi=http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation=http://www.example.com/persona esquema1.xsd titulo=D.> <nombre>Juan</nombre> <apellido1>Garca</apellido1> <apellido2>Prez</apellido2> </persona> Tratemos de validar la instancia mediante un analizador sintctico con validacin de Esquemas... En nuestro caso estamos usando XML Copy Editor. El elemento <schema> es el elemento raz de un esquema XML. ste elemento permite declarar informacin sobre namespaces as como declaraciones por defecto para todo el documento. Se puede tambin incluir un atributo "versin" para identificar el esquema y la versin del vocabulario: <schema targetNamespace="URI" attributeFormDefault="qualified unqualified" elementFormDefault="qualified unqualified" versin="nmero de versin"> Vamos a ver cada parte de esta declaracin.

18

EL NAMESPACE DEL ESQUEMA XML En el ejemplo anterior, el namespace era http://www.w3.org/2001/XMLSchema. Esto permite indicar que el elemento <schema> es parte del vocabulario de los Esquemas XML (s, Esquema con E mayscula, porque es un nombre propio). Recordemos que XML es sensible a las maysculas, por lo que los namespaces son sensibles a las maysculas. Si no lo escribimos igual, el validador puede rechazar un esquema. Se puede declarar el namespace de varias formas. Por ejemplo, las siguientes Declaraciones son iguales: <Schema xmlns="http://www.w3.org/2011/XMLSchema"> <xs: schema xmlns: xs="http://www.w3.org/2001/XMLSchema"> <xsd: schema xmlns: xsd="http://www.w3.org/2001/XMLSchema"> El objetivo principal de los esquemas XML es declarar vocabularios. Estos vocabularios pueden ser identificados por un namespace que es especificado en el atributo targetNamespace. No todos los esquemas tienen por qu tener un targetNamespace. Cuando se declara un targetNamespace, es importante incluir una declaracin de namespace que concuerde con ella, u obtendremos un error del validador. Por ejemplo, algunas definiciones vlidas de targetNamespace pueden ser las siguientes: <schema xmlns=http://www.w3.org/2001/XMLSchema targetNamespace="http://www.example.com/persona" xmlns: target="http://www.example.com/persona"> <xs: schema xmlns: xs=http://www.w3.org/2001/XMLSchema targetNamespace="http://www.example.com/persona" xmlns="http://www.example.com/persona"> Si se observa con cuidado se entender por qu en una declaracin el "target namespace" aparece como "xmlns: target" y en la otra como "xmlns" solamente. En la primera declaracin, el elemento <schema> utiliza el namespace por defecto. Debido a esto el "target namespace" requiere el uso de un prefijo. Sin embargo el segundo caso es el opuesto: el elemento <schema> necesita usar un prefijo ya que el "target namespace" est usando el namespace por defecto.

19

7.4 CONSULTA Y TRANSFORMACION. 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: X Path: 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. X Query: Ha sido propuesto como un estndar para consultar datos XML. X Query 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. El contenido textual de un elemento se puede modelar como un nodo de texto hijo del elemento. Los elementos que contienen texto descompuesto por subelementos intervinientes pueden tener varios nodos de texto hijo. Por ejemplo, un elemento que contenga ste es un buen libro contiene un subelemento hijo correspondiente al elemento bold y dos nodos de texto hijo correspondientes a ste es un y libro. Puesto que dichas estructuras se usan comnmente en los datos de una base de datos se asumir que los elementos no contienen texto ni subelementos.

20

7.4.1 XPATH. X Path (XML Path Language) 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 (plain text). X Path permite buscar y seleccionar teniendo en cuenta la estructura jerrquica del XML. X Path fue creado para su uso en el estndar XSLT, en el que se usa para seleccionar y examinar la estructura del documento de entrada de la transformacin. Introduccin El tratamiento del fichero XML comienza por la localizacin del mismo a lo largo del conjunto de documentos existentes en el mundo. Para llevar a cabo esta localizacin de forma unvoca, se utilizan los URI (Unifom Resource Identifiers), de los cuales los URL (Unifom Resource Locators) son sin duda los ms conocidos. Una vez localizado el documento XML, la forma de seleccionar informacin dentro de l es mediante el uso de X Path, que es la abreviacin de lo que se conoce como XML Path Language. Con X Path podremos seleccionar y hacer referencia a texto, elementos, atributos y cualquier otra informacin contenida dentro de un fichero XML. X Path es a su vez la base sobre la que se han especificado nuevas herramientas que aprovechar para el tratamiento de documentos XML. Herramientas tales como X Pointer?, X Link y XQL (el lenguaje que maneja los documentos XML como si de una base de datos se tratase), que tambin estn en estado de desarrollo, pero que sin duda cambiarn el modo en que actualmente concebimos la navegacin por la Web. As, X Path sirve para decir cmo debe procesar una hoja de estilo el contenido de una pgina XML, pero tambin para poder poner enlaces o cargar en un navegador zonas determinadas de una pgina XML, en vez de toda la pgina. El modelo de datos de X Path Un documento XML es procesado por un analizador (o parser) construyendo un rbol de nodos. Este rbol comienza con un elemento raz, 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 estn vacos y solos tienen atributos. La forma en que X Path selecciona partes del documento XML se basa precisamente en la representacin arbrea que se genera del documento. De hecho, los operadores de que consta este lenguaje nos recordarn la terminologa que se utiliza a la hora de hablar de rboles en informtica: raz, hijo, ancestro, descendiente, etc. Un caso especial de nodo son los nodos atributo. Un nodo puede tener tantos atributos como desee, y para cada uno se le crear un nodo atributo. No obstante, dichos nodos atributo NO se consideran como hijos suyos, sino ms bien como etiquetas aadidas al nodo elemento.

A continuacin se muestra un ejemplo de cmo se convierte en rbol un documento XML. Este mismo ejemplo ser usado a lo largo de todo el tutorial. En primer lugar se muestra el documento XML y a continuacin el rbol que genera.

21

Tipos de Nodos Existen distintos tipos de nodos en un rbol generado a partir de un documento XML, a saber: raz, elemento, atributo, texto, comentario e instruccin de procesamiento (respectivamente; root, elements, attribute, text, comment y processing instruction). Nodo Raz Se identifica por /. No se debe confundir el nodo raz con el elemento raz del documento. As, si el documento XML de nuestro ejemplo tiene por elemento raz a libro, ste ser el primer nodo que cuelgue del nodo raz del rbol, el cual es: /. Nodo Elemento Cualquier elemento de un documento XML se convierte en un nodo elemento dentro del rbol. Cada elemento tiene su nodo padre. El nodo padre de cualquier elemento es, a su vez, un elemento, excepto el elemento raz, cuyo padre es el nodo raz. Los nodos elemento tienen a su vez hijos, que son: nodos elemento, nodos texto, nodos comentario y nodos de instrucciones de proceso. Los nodos elemento tambin tienen propiedades tales como su nombre, sus atributos e informacin sobre los espacios de nombre que tiene activos. Nodos atributo Como ya hemos indicado, los nodo atributo no son tanto hijos del nodo elemento que los contiene como etiquetas aadidas a dicho nodo elemento. Cada nodo atributo consta de un nombre, un valor (que es siempre una cadena) y un posible espacio de nombres. Aquellos atributos que tienen por valor el valor por defecto asignado en el DTD se tratarn como si el valor se le hubiese al escribir el documento XML. Al contrario, no se crea nodo para atributos no especificados en el documento XML, y con la propiedad #IMPLIED definida en su DTD. Tampoco se crean nodos atributo para las defecciones de los espacios de nombre. Todo esto es normal si tenemos en cuenta que no es necesario tener un DTD para procesar un documento XML. Nodos comentario y de instrucciones de proceso Aparte de los nodos indicados, en el rbol tambin se generan nodos para cada nodo con comentarios y con instrucciones de proceso. Al contenido de estos nodos se puede acceder con la propiedad string-value.

22

7.4.2 XQUERY. XQuery es un lenguaje de consulta diseado para consultar colecciones de datos XML. Es semnticamente similar a SQL, pero incluye algunas capacidades de programacin. El XQuery 1.0 fue desarrollado por el grupo de trabajo de Consulta XML del W3C. El trabajo fue estrechamente coordinado con el desarrollo de XSLT 2.0 por el Grupo de trabajo XSL; los dos grupos compartieron la responsabilidad del XPath 2.0, que es un subconjunto de XQuery 1.0. El XQuery 1.0 es una Recomendacin del W3C desde el 23 de enero de 2007. XQuery proporciona los medios para extraer y manipular informacin de documentos XML, o de cualquier fuente de datos que pueda ser representada mediante XML, como por ejemplo Bases de Datos Relacionales o documentos ofimticos. XQuery utiliza expresiones XPath para acceder a determinadas partes del documento XML. Aade adems 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. Tambin incluye la posibilidad de construir nuevos documentos XML a partir de los resultados de la consulta. Se puede usar una sintaxis similar a XML si la estructura (elementos y atributos) es conocida con antelacin, o usar expresiones de construccin dinmica de nodos en caso contrario. Todos estos constructores se definen como expresiones dentro del lenguaje, y se pueden anidar arbitrariamente. El lenguaje se basa en el modelo en rbol de la informacin contenida en el documento XML, que consiste en siete tipos distintos de nodo: elementos, atributos, nodos de texto, comentarios, instrucciones de procesamiento, espacios de nombres y nodos de documentos. Una relacin de algunos ejemplos de uso de XQuery: Extraer informacin de una base de datos para usarla en un Servicio Web. Generar un resumen de la informacin almacenada en una base de datos XML. Realizar bsquedas 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 aplicacin. Dividir un documento XML que representa una serie de mltiples transacciones en varios documentos XML, uno por cada transaccin.

23

7.4.3 XSLT. XSLT o Transformaciones XSL es un estndar de la organizacin W3C que presenta una forma de transformar documentos XML en otros e incluso a formatos que no son XML. Las hojas de estilo XSLT - aunque el trmino de hojas de estilo no se aplica sobre la funcin directa del XSLT - realizan la transformacin del documento utilizando una o varias reglas de plantilla. Estas reglas de plantilla unidas al documento fuente a transformar alimentan un procesador de XSLT, el que realiza las transformaciones deseadas poniendo el resultado en un archivo de salida, o, como en el caso de una pgina web, las hace directamente en un dispositivo de presentacin tal como el monitor del usuario. Actualmente, XSLT es muy usado en la edicin web, generando pginas HTML o XHTML. La unin de XML y XSLT permite separar contenido y presentacin, aumentando as la productividad. 7.5 ALMACENAMIENTO DE DATOS XML Los documentos y los requerimientos de almacenamiento de datos XML pueden ser pensados a menudo en dos categoras 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 tpicamente centrado en los datos. Los datos centrados en el documento tienden a ser ms impredecibles en tamao y contenido que los centrados en los datos los cuales son altamente estructurados, con tipos de datos de tamao 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. La mayora de los productos se enfocan en servir uno de esos formatos de datos mejor que el otro. Las bases de datos relacionales tradicionales son tpicamente mejores al tratar con requerimientos centrados en los datos, mientras que los sistemas de administracin de contenido y de documentos son tpicamente mejores para almacenar datos centrados en el documento. En los sistemas que encuentran XML, es comn tener ambas categoras de datos dentro de la misma aplicacin. Los documentos centrados en los datos se pueden originar en bases de datos relacionales o como un documento XML que puede haber sido transmitido como parte de un sistema B2B. Los sistemas de bases de datos deben ser capaces de exponer los datos relacionales como XML y almacenar el XML recibido como datos relacionales para transferir, obtener y almacenar transparentemente los datos requeridos por la aplicacin. Si bien es posible almacenar datos centrados en el documento en bases de datos relacionales u orientados al objeto, esto resultar tpicamente en duplicar el trabajo de un sistema administrador de contenido. Similarmente, dado que un sistema de administracin de contenido est usualmente construido sobre una base de datos orientada al objeto o jerrquica, tratar de usarlo como base de datos probablemente ser frustrante. La diferencia entre los datos centrados en los datos y los centrados en el documento no siempre es fcil de identificar. Tpicamente los requerimientos que manejan los datos se inclinan con mayor peso en una direccin o la otra.
24

7.6 APLICACIONES. Algunas de las aplicaciones de XML son: Ofrecer mecanismos ms verstiles 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 detrs de esta API es que podamos representar (a travs de java scripts o JavaApplets) documentos XML en los navegadores Web, pero de una forma ms sofisticada que los documentos HTML, ya que XML no solo proporciona una sintaxis, sino tambin una semntica. Buscadores inteligentes. Debido a que la informacin en los documentos XML est etiquetada por su significado de forma precisa, podemos localizarla de forma mucho ms clara que en documentos HTML. Con DTDs estandarizados para distintas aplicaciones (libreras, tiendas de deporte, catlogos de componentes,) podramos programar buscadores Web que recuperasen informacin sobre un producto de cualquier website en el mundo sabiendo que todos tendrn el mismo formato de datos (gracias al DTD), aunque no tengan necesariamente la misma representacin grfica (gracias al XML/XSL). Intercambio de informacin entre sistemas heterogneos. El fundamento es el mismo que para los buscadores inteligentes. Debido a que el DTD proporciona un formato estndar para representar la informacin de un tema especfico, puede usarse para simplificar el intercambio de informacin entre distintas fuentes (actualmente existen ya dos DTD estandarizados uno para fabricantes de chips y otro para industrias qumicas, llamado CML). Ventajas de XML. Los autores y proveedores pueden disear sus propios tipos de documentos usando XML, en vez de limitarse a HTML. Los tipos de documentos pueden ser explcitamente 'hechos a la medida de una audiencia', por lo que las difciles manipulaciones que debes hacer con HTML para conseguir efectos especiales sern cosa del pasado: autores y diseadores sern libres de inventar sus propias etiquetas; La informacin contenida puede ser ms 'rica' y fcil de usar, porque las habilidades hipertextuales de XML son mayores que las de HTML. XML puede dar ms y mejores facilidades para la representacin en los visualizadores. 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 ms sencilla que haciendo el mismo trabajo en SGML. La informacin ser ms accesible y reutilizable, porque la flexibilidad de las etiquetas de XML pueden utilizarse sin tener que amoldarse a reglas especficas de un fabricante, como es el caso de HTML. Los archivos XML vlidos son vlidos tambin en SGML, luego pueden utilizarse tambin fuera de la Web, en un entorno SGML (una vez la especificacin sea estable y el software SGML la adopte).

PREGUNTAS
25

1. Cmo fue que surgi la necesidad de crear el XML? Surgi por la necesidad que tena la empresa de IBM de almacenar grandes cantidades de informacin, anteriormente llamado GML. 2. Cul es el principal constructor fundamental en un documento XML? Un elemento es sencillamente un par de etiquetas de inicio y finalizacin coincidentes y todo el texto que aparece entre ellas. 3. Para qu sirven los Esquemas en los Documentos de XML? Las bases de datos tienen esquemas que se usan para restringir que informacin se puede almacenar en la base de datos y para restringir los tipos de datos de la informacin almacenada. 4. Cules son las formas de niveles de exactitud de un documento de XML? Hay dos niveles de exactitud de un documento de XML: Bien formado. Un documento bien- formado conforma a todas las reglas de la sintaxis de XML. Por ejemplo, si un elemento tiene una etiqueta de la apertura sin cerrar la etiqueta y no est cerrado completamente, por lo tanto no est bien formado. Vlido. Un documento vlido conforma adicionalmente a algunas reglas semnticas. Estas reglas o definiciones del usuario, o incluido como un esquema de XML o DTD. Por ejemplo, si un documento contiene una etiqueta indefinida, entonces no es vlido; un analizador de sintaxis Validando no se permite procesarlo.

5. Qu es una DTD y para qu sirve? La DTD es una definicin en un documento SGML o XML, que especifica restricciones en la estructura y sintaxis del mismo. Las DTD se emplean generalmente para determinar la estructura de un documento mediante etiquetas (en ingls tags) XML o SGML. Una DTD describe: Elementos. Estructura. Anidamiento. 6. Qu es el XML Schama? XML Schema es un lenguaje de esquema utilizado para describir la estructura y las restricciones de los contenidos de los documentos XML de una forma muy precisa, ms all de las normas sintcticas impuestas por el propio lenguaje XML. Se consigue as una percepcin del tipo de documento con un nivel alto de abstraccin.

26

7. Dado el creciente nmero de aplicaciones que usan XML que lenguajes proporcionan grados crecientes de capacidades de consulta y transformacin?

X Path XSLT X Query

8. En consulta y transformacin en que nos ayuda el lenguaje XPATH? XPath (XML Path Language) 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 (plain text). 9. En consulta y transformacin en que nos ayuda el lenguaje XQUERY?

XQUERY es un lenguaje de consulta diseado para consultar colecciones de datos XML. Es semnticamente similar a SQL, pero incluye algunas capacidades de programacin. 10. En consulta y transformacin en que nos ayuda el lenguaje XSLT? XSLT o Transformaciones XSL es un estndar de la organizacin W3C que presenta una forma de transformar documentos XML en otros e incluso a formatos que no son XML. 11. Cules son los requerimientos de almacenamiento de XML? Pueden ser pensados a menudo en dos categoras generales: centrados en los datos y centrados en los documentos. Si el documento XML tiene una estructura bien definida y contiene datos actualizables usados en maneras diversas, el documento es tpicamente centrado en los datos. Los datos centrados en el documento tienden a ser ms impredecibles en tamao y contenido que los centrados en los datos los cuales son altamente estructurados, con tipos de datos de tamao limitado y reglas menos flexibles para campos opcionales y contenido. 12. Menciona algunas aplicaciones del XML. Ofrecer mecanismos ms verstiles de mostrar datos. Buscadores inteligentes. Debido a que la informacin en los documentos XML est etiquetada por su significado de forma precisa, podemos localizarla de forma mucho ms clara que en documentos HTML. Intercambio de informacin entre sistemas heterogneos. El fundamento es el mismo que para los buscadores inteligentes.

27

BIBLIOGRAFIA. http://bdxml.blogspot.com/2010/06/74-consultas-y-transformacion.html http://bdxml.blogspot.com/2010/06/741-xpath.html http://bdxml.blogspot.com/2010/06/742-xquery.html http://bdxml.blogspot.com/2010/06/743-xslt.html http://www.mitecnologico.com/Main/AlmacenamientoDatosXml http://es.wikipedia.org/wiki/Extensible_Markup_Language

28

También podría gustarte