María Jesús Lamarca Lapuente. Hipertexto: El nuevo concepto de documento en la cultura de la imagen. |
La necesidad de jerarquizar y estructurar correctamente la información, no sólo para almacenarla, sino también para acceder a ella, se ha convertido en una labor que ha cobrado especial relevancia en los últimos años, en los que se han producido importantes avances en este campo. Inicialmente se usaron las Definiciones del Tipo de Documento (DTDs) en el lenguaje SGML para describir el vocabulario necesario para identificar todos los elementos de que iba a constar el documento y para expresar la estructura. La aparición y el desarrollo del lenguaje XML, hizo que este lenguaje incorporara también las DTDs, no en vano, hay que recordar que el lenguaje XML no es sino un subconjunto del lenguaje SGML. Pero las DTDs no satisficieron todas las necesidades inherentes a XML y pronto se vio necesario utilizar otros métodos más rigurosos y sofisticados para tratar la estructura y la semántica dentro de un documento XML. Así surgieron los Esquemas XML (XML Schema), como una forma de ampliación y mejora de las primitivas DTDs. Las DTDs y los Schemas son usados por los analizadores sintácticos o parsers para comprobar si un documento XML es válido. Así pues, vemos que para proceder a la estructuración o especificación formal dentro de un documento XML existen distintas soluciones, entre las que cabe destacar principalmente dos: las DTDs y los XML Schemas. Pero veamos con más profundidad las diferencias entre la utilización de DTDs y Esquemas. La Declaración de Tipo de Documento (DTD-Document Type Data):Al definir el lenguaje XML ya nos referimos a la Definición del Tipo de Documento (Document Type Definition DTD) que, en resumen, cumple las siguientes funciones:
Los elementos de una DTD son los siguientes:
Y los atributos son los siguientes:
Así pues, la DTD especifica la clase de documento XML. Una DTD indica sólo qué elementos, atributos, etc; tiene un documento y cómo se anidan, pero no dice nada acerca de tipos de dato. El único tipo de dato que conoce es CDATA (texto plano), por tanto, las DTDs se quedan algo cortas y cuando se necesita algo más potente y rígido, se usa Schema Recordemos que una DTD se puede guardar en un archivo de texto, como por ejemplo, en el archivo "list.dtd". Una DTD muy simple es la siguiente:
<!ELEMENT List (Item)+> Veamos ahora el documento .xml que hace referencia a esa DTD:
<?xml version="1.0" encoding="iso-8859-1"?> XML Schema:Al igual que las DTDs, los Schemas describen el contenido y la estructura de la información, pero de una forma más precisa. Los esquemas indican tipos de dato, número mínimo y máximo de ocurrencias y otras características más específicas. Según la Especificación del W3C XML Schema (http://www.w3.org/XML/Schema), los esquemas expresan vocabularios compartidos que permiten a las máquinas extraer las reglas hechas por las personas. Los esquemas proveen un significado para definir la estructura, contenido y semántica de los documentos XML. Un esquema XML (XML schema) es algo similar a un DTD, es decir, define qué elementos puede contener un documento XML, cómo están organizados, y qué atributos y de qué tipo pueden tener sus elementos, pero la utilización de schemas ofrece nuevas posibilidades en el tratamiento de los documentos. La ventaja de utilizar los schemas con respecto a los DTDs son:
Por ejemplo, un schema nos permite definir el tipo del contenido de un elemento o de un atributo, y especificar si debe ser un número entero, una cadena de texto, una fecha, etc. Las DTDs no nos permiten hacer estas cosas. Veamos un ejemplo de un documento XML, y su schema correspondiente: <documento xmlns="x-schema:personaSchema.xml"> Como podemos ver en el documento XML anterior, se hace referencia a un espacio de nombres (namespace) llamado "x-schema:personaSchema.xml". Es decir, le estamos diciendo al analizador sintáctico XML (parser) que valide el documento contra el schema "personaSchema.xml". El schema sería algo parecido a esto: <Schema xmlns="urn:schemas-microsoft-com:xml-data" El primer elemento del schema define dos espacios de nombre. El primero "xml-data" le dice al analizador (parser) que esto es un schema y no otro documento XML cualquiera. El segundo "datatypes" nos permite definir el tipo de elementos y atributos utilizando el prefijo "dt".
Así pues, es necesario empezar el schema definiendo los elementos más profundamente anidados dentro de la estructura jerárquica de elementos del documento XML. Es decir, tenemos que trabajar "desde dentro hacia fuera", o lo que es lo mismo, las declaraciones de tipo ElementType y AttributeType deben preceder a las declaraciones de contenido element y attribute correspondientes. Un esquema también puede verse como una colección
(vocabulario) de definiciones de tipos y declaraciones de elementos cuyos
nombres pertenecen a un determinado espacio de nombres
llamado espacio de nombres de destino. Los espacios de nombres de destino hacen
posible la distinción entre definiciones y declaraciones de diferentes
vocabularios. Por ejemplo, los espacios de nombres de destino facilitarían la
declaración del elemento
element
en el vocabulario del Esquema XML, y la declaración de
element
en un hipotético vocabulario de lenguaje químico. El primero es parte de espacio
de nombres de destino Además, a medida que los esquemas se hacen más grandes, es posible y deseable dividir su contenido entre varios documentos esquema con el fin de facilitar su mantenimiento, control de acceso, y legibilidad. Las Recomendaciones establecidas por el W3C en relación a los esquemas XML son las siguientes:
DTD versus SchemaLas limitaciones de la DTD son las siguientes:
Estos problemas son superados gracias a la especificación de XML Schema, ya que los esquemas permiten un lenguaje mucho más expresivo y un intercambio de información mucho más robusto. Pero, aparte de solventar los problemas antes expuestos, XML Schema, permite una serie de ventajas adicionales:
En la siguiente imagen podemos comprobar la gran riqueza de los tipos de datos y la estructuración jerárquica que ofrece XML Schema:
Fuente: W3C. XML Schema Part 2: Datatypes Second Edition. http://www.w3.org/TR/xmlschema-2/ De las DTDs a XML SchemaComo hemos afirmado anteriormente, en los inicios de XML se emplearon las DTDs como modo de especificación de modelos, pero en la actualidad su uso ha quedado algo restringido y lo normal es utilizar el de XML Schema. En la siguiente tabla se puede ver la correlación entre elementos de XML Schema y de DTDs, aunque existen herramientas de traducción (DTD2HTML en Perl http://www.w3.org/2000/04/schema_hack/), XMLSpy http://www.xmlspy.com) entre estos 2 lenguajes.
En resumen, para modelar y validar la información existen muchas maneras de hacerlo, entre las que destacan el uso de DTDs y de XML Schema, entre otras. La utilización de XML Schema se ve favorecida por la facilidad de tratamiento que se deriva de la escritura en XML, en lugar de emplear otros parsers para su reconocimiento, y también porque el estándar está muy extendido. Otra gran ventaja es que gracias a XML Schema se pueden expresar un gran número de tipos de datos y jerarquizarlos. También es posible expresar la carga semántica y esto es muy importante para el tratamiento de la información. Si gracias a XML se han podido realizar intercambios de información entre aplicaciones de muy distinta índole, mediante XML Schema se ha podido validar y estructurar su contenido. Los esquemas XML avanzan un paso más en la consecución de la Web Semántica. Existen numerosos esquemas, muchos de ellos utilizan el lenguaje RDF escrito en XML, es decir RDF Schema.
Por ejemplo,
FOAF: el proyecto "Friend Of A Friend" (amigo de un amigo) FOAF se basa en la idea de que cuando hablamos de describir a una persona, no estamos hablando de sus atributos físicos, sino de datos más profundos como: a quién conoce, de quién es amigo y de quién no, cuáles son sus proyectos actuales y cuáles los pasados, etc. Todo, o casi todo, puede ser definido en un archivo FOAF. Leandro Mariano López
explica de forma sencilla en FOAF: el proyecto 'friend to
friend' en qué consiste este vocabulario. "Existen en el mundo cientos de miles de
personas que comparten los mismos atributos, como el nombre, color de ojos, pelo,
altura, intereses, etc. Sabiendo esto, ¿cómo podemos llegar a distinguir de
quién estamos hablando? ¿Cómo identificar de un modo unívoco a alguien? Como
FOAF es un proyecto basado en Internet, los desarrolladores buscaron algún
atributo propio de los usuarios de Internet, y lo encontraron: el
e-mail". FOAF se expresa como un
RDF Schema para expresar el hecho de que un De esta forma, el correo electrónico personal se convierte en una propiedad no ambigua acerca de una persona, ya que puede convertirse en identificador único de alguien. Otro ejemplo de este tipo de esquemas es el elaborado por Leandro Mariano López: Esquema Habla, Lee y Escribe http://purl.org/net/inkel/rdf/schemas/lang/index.html que permite identificar qué idiomas puede hablar, leer o escribir una persona. El esquema se encuentra localizado en http://purl.org/net/inkel/rdf/schemas/lang/1.1 Un ejemplo de implementación puede encontrarse en el archivo FOAF, en http://purl.org/net/inkel/inkel.foaf.rdf Leandro Mariano López expresa de estas forma la propiedades definidas por este esquema: Declaración espacio de nombres: xmlns:lang="http://purl.org/net/inkel/rdf/schemas/lang/1.1#"
Se puede crear un perfil FOAF desde http://my.opera.com/community/sparql/. Además, se ofrece una interfaz que permite hacer búsquedas en toda la información pública. Similar a FOAF es XFN (XHTML Friends Network) http://gmpg.org/xfn/ una manera muy simple para representar las relaciones humanas usando hiperenlaces. Se utiliza mucho en la blogosfera. XFN hace posible que los autores web indiquen sus relaciones simplemente con añadir el atributo rel a sus etiquetas <a href> Ejemplo:
También existe otra iniciativa llamada DOAP (Description of a Project) http://usefulinc.com/doap/. Se trata de un vocabulario XML/RDF para describir proyectos de software libre que usa la URL del proyecto como clave primaria. Con DOAP se pueden hacer descripciones semánticas del proyecto, describir los recursos asociados, los participantes y los recursos web. Para ello se utilizan algunas características ya empleadas en RSS, FOAF o Dublin Core. DOAP puede interoperar con todos estos esquemas de metadatos y puede ser extendido para propósitos específicos. Por su parte,
Charles McCathieNevile en El código EARL por ejemplos:
BibliografíaAdvanced Quality Solutions. XML Schema y DTDs. http://www.programacion.com/tutorial/schemaydtd/ CASTILLO, Carlos. DTD y Schemas. Tejedores del Web. http://www.tejedoresdelweb.com/307/article-2147.html FLYN, Peter (ed.) The XML Facq. http://www.ucc.ie/xml/ MARIANO LÓPEZ, Leandro. FOAF: el proyecto 'amigo de un amigo'. http://purl.org/net/inkel/2003/01/27/foaf.html [Volver] Useful Information Company. DOAP: Description of a project. http://usefulinc.com/doap/ The FOAF Project. http://www.foaf-project.org/ XFN. XHTML Friends Network. http://gmpg.org/xfn/ W3C.Extensible Markup Language XML W3C Recommendation. http://www.w3.org/TR/REC-xml/ W3C. The Extensible Stylesheet Language Family (XSL). http://www.w3.org/Style/XSL/ W3C. What is XSL? http://www.w3.org/Style/XSL/WhatIsXSL.html W3C. XML in 10 points. http://www.w3.org/XML/1999/XML-in-10-points.html (traducción al castellano por Enmanuelle Gutiérrez y Restrepo: http://www.sidar.org/recur/desdi/traduc/es/xml/xml10p/xml10p.htm) W3C. XML Schema. http://www.w3.org/XML/Schema W3C. XML Schema Part 0: Primer. Second Edition. http://www.w3.org/TR/xmlschema-0/ (traducción al castellano: ALONSO, José Manuel. Esquema XML Parte 0: Fundamentos. http://www.w3c.es/Traducciones/es/TR/2001/REC-xmlschema-0-20010502/) W3C. XML Schema Part 1: Structures. Second Edition. http://www.w3.org/TR/xmlschema-1/W3C. XML Schema Part 2: Datatypes. http://www.w3.org/TR/xmlschema-2/W3C. XML Schema Requirements. http://www.w3.org/TR/NOTE-xml-schema-req XML Cover Pages. XML Schemas. http://xml.coverpages.org/schemas.html
Mapa de navegación / Tabla de contenido / Mapa conceptual / Tabla de documentos / Buscador / Bibliografía utilizada / Glosario de Términos / Índice Temático / Índice de Autores
|
|