XML

XML Iniciación y referencia Ramón Montero Ayala Revisión técnica A N T O N I O VAQUERO SANCHEZ Catedrático de Lenguaje

Views 1,379 Downloads 4 File size 17MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

XML Iniciación y referencia Ramón Montero Ayala

Revisión técnica

A N T O N I O VAQUERO SANCHEZ Catedrático de Lenguajes y Sistemas Inforrnáticos Escuela Superior de Informática Universidad Cornplutense de Madrid

Osborne McGraw-Hill MADRID BUENOS AIRES CARACAS GUATEMALA LISBOA M~XFO NUEVA YORK PANAMÁ SAN JUAN SANTAFÉ DE BOCOTÁ SANTIAGO SAO PAULO AUCKLAND HAMBURCO LONDRES M l a N MONTREAL NUEVA DELHI PARk SAN FRANCISCO SIDNEY SINCAPUR ST. LOUIS TOKIO TORONTO

-

.-'

f.., ,( :

t."

,.

>

J;,

' y'. #f

.- '

>. [

,,.,j (

Ram6n Píonzero 15-09-2000

no necesitaremos de mayor explicación para comprender su significado. Pero, además de permitir una rápida comprensión, añade una gran facilidad de edición, ya que es muy fácil, en el caso de que se haya olvidado algún detalle, insertar más información o modificar la existente. Visto todo lo anterior, se puede decir que existen tres utilizaciones básicas de los lenguajes de marcas: o o o

Los que sirven principalmente para describir su contenido. Los que sirven más que nada para definir su formato. Los que realizan las dos funciones indistintamente.

CAP¡TULO 111 Origen y actualidad del XML

Las aplicaciones de bases de datos son buenas referencias del primer sistema; los programas de tratamiento de textos son ejemplos típicos del segundo tipo y, aunque no lo parezca, el HTML es la muestra más conocida del tercer modelo. Como la mayoría de los lectores que conozcan el lenguaje HTML estarán pensando que hay un error y que el HTML debe encasillarse en el segundo patrón, no queda más remedio que aclarar algunas cuestiones sobre el HTML.

EL LENGUAJE HTML Otro de los sucesos importantes en nuestra historia de los orígenes del XML es la aparición del lenguaje HTML. Fue a finales de los años ochenta cuando Tirn Berners-Lee aplicó las normas del SGML para diseñar el HTML como solución para publicar las investigaciones de muy diversas fuentes y autores que se producían en el CERN (nombre proveniente de la denominación inicial Conseil Européen pour la Recherche Nucléaire, aunque en la actualidad se conoce como Organisation Européenne pour la Recherche Nucléaire, o European Organization for Nuclear Research, o sea, Organización Europea para la Investigación Nuclear). En efecto, en el año 1989, el investigador del CERN Tim Berners-Lee, se propuso poner fin a la gran dificultad que existía entre los investigadores para publicar sus documentos, decidiéndose por un sistema basado en el hipertexto, que permite acceder a una determinada información más directamente que un típico sistema secuencial. Otro investigador, llamado Anders Berglund, que conocía el SGML, le aconsejó que lo utilizase para su proyecto. Tim denominó HTML (HiperText Markup Language, lenguaje de marcado de hipertexto) al lenguaje de marcas que creó, que fue terminado en un corto período de tiempo. También dio el nombre de World Wide Web (telaraña de ámbito global), igualmente conocido como WWW o W3, a su sistema de hipertexto para la Red Informática Mundial. La sencillez de los dos procesos ha sido la clave principal de su éxito. El lenguaje HTML es originariamente un subconjunto del más completo SGML, especializado en la descripción de documentos en pantalla a través de marcas (tags, etiquetas). El proyecto inicial se basaba en una colección de etiquetas (en perfecto inglés) que permitían describir documentos de texto y vínculos de hipertexto que hacían posible el desplazamiento en forma jerárquica entre diferentes documentos, siempre con independencia de la máquina. Conociendo las normas de actuación de estas etiquetas, y disponiendo de un sencillo editor ASCll de textos, se pueden confeccionar fácilmente documentos HTML. La facilidad de uso y la particularidad de que no es propiedad de nadie, hizo al HTML el sistema idóneo para compartir información en Internet. La expansión de lnternet le ha dado una posición de privilegio y ha hecho que la idea inicial se modifique considerablemente. En principio, la intención de HTML era que las etiquetas fueran capaces de marcar la información de acuerdo con su significado, sin importar cómo se mostraban en la pantalla. Lo importante era el contenido y no la forma, o sea, que era un lenguaje de marcas orientado a describir los contenidos. En otras palabras, el título del

'

,

XML. Iniciación y referencia

documento, los títulos de los apartados, el autor del documento, los textos resal, , tados ... eran marcados por las etiquetas , , etc., dejando a cada visualizador web (browser) la tarea de dar formato al documento según su criterio. Esto daba lugar a que una aplicación podía presentar una etiqueta como texto centrado, con tamaño de 20 puntos y color rojo, mientras que otra lo podía mostrar alineado a la izquierda, con tipo de letra Arial de 16 puntos y color azul, por ejemplo. Una etiqueta podría tomarse como cursiva, negrita o color verde oscuro, por ejemplo, según la interpretase el visualizador empleado. Este proceso producía presentaciones diferentes, pero eran armónicas en cada caso, permitiendo controlar fácilmente su contenido. Si una persona o un motor de búsqueda quería conocer el título del documento, el autor de la página o las cabeceras de los capítulos, siempre buscaba en el código las etiquetas , O . Además, si a alguien no le gustaba la idea de dejar a cada aplicación la decisión de cómo mostrar el contenido de las etiquetas, siempre le quedaba la posibilidad de controlar el formato del documento con descripciones particulares, como es el caso de los atributos de las fuentes de letras (la etiqueta ) O las más completas hojas de estilo en cascada, más conocidas como CSS (Cascading Style Sheets). Por diversos motivos, los creadores de los navegadores fueron añadiendo más etiquetas HTML dirigidas a controlar la presentación, como , < I > , , ,etc., y los usuarios las utilizaron para que sus documentos estuviesen perfectamente formateados, sin permitir diferencias importantes entre visualizadores distintos, por lo que HTML pasó a ser un lenguaje de marcas más dirigido al control de la presentación. Ahora es más difícil encontrar al autor o las cabeceras de los capítulos de un documento, pues casi todos los textos y documentos se describen con las etiquetas

, y

, sobre todo si se utilizan los editores web WYSIWYG o herramientas web de autor, que en muchos casos son gratuitos, como los conocidos Microsoft FrontPage y Netscape Composer, y que proliferan por doquier. Si a esto le añadimos que para facilitar la vida a los usuarios, los analizadores sintácticos de las marcas HTML que incluyen los navegadores permitieron saltarse algunas normas sin que el propio usuario lo notase (por ejemplo, permiten trabajar sólo con la etiqueta

, cuando lo correcto es que se necesiten las etiquetas de principio y de final:

y

), el resultado es que HTML ya no es un lenguaje que sigue las normas estrictas del SGML. Llegados a un punto en el que HTML dejó de servir para su función inicial (también por otros motivos no comentados), no le ha quedado más remedio al Consorcio World Wide Web (W3C) que acometer el diseño de un nuevo subconjunto del SGML que sirva para describir contenidos de documentos, al que se ha denominado XML (Extendible Markup Language, lenguale de marcas extensible), publicando las especificaciones de la versión 1.Oen el año 1998.

IMPORTANTE: Es mucho más correcto decir que XML es un "SCML light" que un "HTML plus".

CAPITULO [Il Origen y actualidad del XML

Figura 1.2.

SGML

En un principio, el HTML era una aplicación de SCML.

[HTML) [ RTF ]

!MathMll ( CDF 1

SGML

NathMl) [ RTF ) Figura 1.3.

Ahora, el HTML es una entidad con mucha autonomía propia, más difícil de controlar.

EL LENGUAJE XML Para entender mejor el X M L hay que olvidarse un poco del HTML (pero sólo un poco). En la situación actual, en teoría, HTML es una aplicación del XML especializada en la presentación de documentos para la Web, mientras que XML es un subconjunto de SCML más fácil de tratar que este último y especializado en la gestión de todo tipo de información para la Web. En la práctica, HTML tiene una parte dentro de XML (y en consecuencia queda dentro de SCML) y otra parte fuera de XML (y en algunas ocasiones también fuera de SCML). Para reconducir esta situación, el grupo W3C ha publicado reglas expresas para distinguir el HTML que sigue rigurosamente las normas del XML, denominándolo X H T M L (Extensible HyperText Markup Language), que explicado en forma muy breve, no es más que una reformulación de HTML 4 dentro de las normas de XML. El objetivo del XML no se limita a ser una especificación que solucione las salidas de tono del HTML, ya que ese es el propósito del XHTML, pensado también para servir de código unificado para los muy diversos aparatos y utensilios que cada vez más se van conectando a Internet, como los aparatos de televisión, los hornos, los frigoríficos, etc. XML, al igual que el SCML, es lo que se conoce como un metalenguaje, o sea, un lenguaje (de marcas) capaz de generar otros lenguajes (de marcas). Este motivo

XML. Iniciación y referencia

SGML Figura 1.4. En teoría, HTML es una aplicaci6n de XML, que es un subconjunto de SCML.

SGML

1

.

XML

Figura 1.5. En la realidad, HTML está en parte dentro de XML y parte fuera.

es el que le hace ser el «padre» del XHTML y de otros lenguajes específicos para determinadas tareas, como el W M L (Wireless Markup Language) para teléfonos móviles, el V M L (Vedor Markup Language) para diseño gráfico vectorial, el SMIL (Synchronized hlultimedia lntegration Language) para las presentaciones multimedia, y otros similares que poco a poco van apareciendo para solucionar diferentes problemas y ser aplicados en diversos sectores. La utilización en XML de un sistema de marcado (etiquetas) muy parecido al del HTML, por su demostrada facilidad de interpretación, es una de las cuestiones que

Figura 1.6. A la parte del

HTML que sigue fielmente las normas del XML se la denomina XHTML.

CAPITULO[l]Origen y actualidad del XML

hacen que XML sea relacionado constantemente con el HTML, ya que sí se ve una parte de código XML como el siguiente:

,e-> -3', +-O .>

F s t e t e x t o s i r v e de prueba r/PARRAPCb Ahora hay uri titulo secundariq &33'üt691 Este t e x t q tambi6n sirve de prueba 41-

E1 autor de este código eq"~am6ri< m R , cmarhub ,

'

y se compara con un código HTML que tenga el mismo cometido, como el siguiente:

es fácil adivinar que cualquier observador no notará gran diferencia, porque el que las etiquetas estén en diferentes idiomas es un detalle que no ocurriría si este ejemplo se hubiese desarrollado en un libro escrito en inglés. Y hablando del idioma inglés quiero recordar que, dada la incuestionable influencia del idioma inglés en todo lo relacionado con el diseño web, aunque en este libro se van a emplear mayoritariamentetérminos españoles, constantemente se indicarán sus referencias anglosajonas en cursiva, ya que en muchos documentos se hace referencia a dicha terminología, que siempre es más precisa y en muchas ocasiones tiene dificil traducción.

HTML Y XML En algunas ocasiones, cuando no se conocen bien las posibilidades del HTML y del XML, suele surgir la cuestión: Si ya existe un potente y conocido HTML, ¿para qué hay que utilizar XML? La respuesta está en que no son sistemas incompatibles ni excluyentes. Cada uno se debe utilizar donde mejor se aproveche. HTML es muy bueno para dar formato a los documentos hipertexto, por tanto, debe utilizarse en dichos documentos sin mayor problema. XML tiene mejor comportamiento con documentos complejos interactivos, así que, en ese sector debe utilizarse. Veamos un sencillo ejemplo. Supongamos que hay que diseñar una página web que incluya información sobre tres libros.

XML. Iniciación y refereccia

A través del código HTML se puede crear una tabla como la siguiente:

Esta sencilla tabla expone de forma muy clara y visual la información de los tres libros. Es una buena solución para mostrarla en la pantalla, pero es más difícil de tratar en el código, debiendo poner mucha atención para, por ejemplo, localizar los nombres de los autores o los títulos. La misma información, puesta en formato XML, podría quedar como se indica en el siguiente código:

La principal diferencia que se puede apreciar ahora es que queda mucho más claro qué tipo de información incluye cada dato, siendo más fácil, por ejemplo, buscar los precios (para hacer cálculos) o los títulos (para sacar un listado) en el código. Sin embargo, con este código nadie puede saber cómo se va a mostrar en la pantalla. Podría ser en forma de tabla, o en forma de texto, o cualquier otra.

CAP~TULO[l]Origen y actualidad del XML

HTML 4.01 Specification W3C Recommendation 24 Dacember 13%

Figura 1.7. Recomendación de la versión 4.01 de HTML. La actual normativa de HTML se encuentra en su versión 4.01 desde el 24 de diciembre de 1999, tal como se puede observar en la Figura 1.7. Se puede ver en la sede del W3C, en la dirección: www.w3.org/TR/htm14/. La última (y primera) versión 1.O de XML se encuentra disponible en la sede del W3C desde el 10 de febrero de 1998, tal como se puede observar en la Figura 1.8. Se puede acceder a su especificación en la dirección: www.w3.or@TR/REC-xml. Existe una buena traducción al español de la especificación XML 1.0 en la dirección: http://slug.ctv.es/-olealsnml-esp/Rec-xml.html (ver la Figura 1.9).

Figura 1.B. Recomendación de la versión 1.O de XML.

XML. Iniciaci6n y referencia

1

Estenvible hlarkup Language (SI\IL) 1.0

Figura 1.9.

Traducción española de la recomendación XML 1.0.

IMPORTANTE: Al cierre del libro se ha publicado la Segunda Edición de XML 1.0, que no incluye los errores de la recomendación primera. Se puede ver en: http://www.w3.0rg/tr/2000/rec-xml-20001006.

- - -- --

-

- --

-

PARA LOS MANITAS: Sería adecuado acceder a las especificaciones de HTML y XML para ver su contenido. Lo más sensato es bajarse las páginas web correspondientes para tenerlas disponibles en el propio equipo.

SITUACIÓN ACTUAL XML se terminó de desarrollar en el mes de febrero de 1998, pero como suele ocurrir con todas las nuevas tecnologías, para poder ser utilizada lo antes posible, se aprovecharon los sistemas que ya existían, como el CSS o el HTML, siendo éste otro motivo para que XML se siga relacionando con el lenguaje HTML. En el momento actual, con la versión 1.O de XML en vigencia, todavía se encuentran en desarrollo algunas de las especificaciones que complementan al XML, como son XSL, SVC, XForms, XLink o XPointer, pero lo que más condiciona su expansión es que no existen visualizadores web que lo incorporen en su totalidad, siendo la versión 5.x de Microsoft lnternet Explorer (IE5), el único (de los más utilizados) que lo soporta parcialmente. Se puede decir sin dudar que Microsoft es la empresa que más ha apostado al principio por la utilización del XML, ya que, además de admitirlo desde IE4 y

CAPITULO 111 Origen y actualidad del XML

potenciarlo en IE5/6, también lo ha incorporado en su paquete Office 2000, siendo una de las mejoras más atractivas de esta suite, y por si esto fuera poco, también se ha incluido un buen soporte para XML en su última versión 6 de Visual Basic, aunque parece ser que en la versión 7 se podrá trabajar con XML como si fuera un formato propio.

,

PARA LOS MANITAS: En el Apéndice B se encuentran las direcciones de otros visualizadores con capacidades XML diferentes.

La apuesta de Microsoft por XML viene ya de lejos, antes incluso de que se publicase su normativa, pudiendo encontrar desarrollos particulares basados en XML en la gestión del PWS (Personal Web Server) o en los Canales activos (Active Channels) de Windows. En la sede de Microsoft (www.microsoft.com) se puede acceder a muchas aplicaciones, herramientas, artículos, tutoriales e información variada sobre XML. Otras empresas punteras en computación e Internet, como Netscape (www.netsca~e.com),Adobe (www.adobe.com), IBM (www.ibm.com), Sun (www.sun.coml), Corel (www.corel.com) o Autodesk (www.autodesk.com), están apostando fuerte por XML y están desarrollando aplicaciones y herramientas muy variadas relacionadas con XML. En esta puesta al día con la tecnología XML, la organización más importante para cualquier persona interesada en el tema es el Consorcio W W W (World Wide Web Consortium o W 3 0 , ya que es el organismo encargado de publicar toda la normativa más importante relacionada con el diseño web. Acceder a su dirección en lnternet (www.w3.orq) debe ser una obligación regular para todo desarrollador web (ver la Figura 1.10). ,

WCA-Z

-. \V3C Launches . U l L Prolocul Aclivity

Figura 1-10. Página principal del Consorcio WWW.

XML. Iniciación y referencia

sede del W3C se puede encontrar mucha información (incluyendo datos ) sobreEnlalapropia historia de lnternet y aplicaciones gratuitas) que es relativamente

i •'

fácil de manejar, existiendo un buscador especializado para ayudar en la localización de información puntual. IMPORTANTE: Una de las características más importantes de los documentos que publica el W3C es que son normas de dominio público, totalmente libres de uso.

Los documentos que se publican en el W3C se denominan informes técnicos (Technicals Reports), pudiendo acceder a ellos en la dirección www.w3.org/TR/. En realidad, las especificaciones que publica el W3C no son normas oficiales, como pueden ser las que publican ISO o ANSI, aunque en la práctica suelen tener la misma fuerza y el mismo valor práctico. W3C distingue tres tipos de publicaciones: las notas (Notes), los borradores de trabajo (Working Drafts) y las recomendaciones (Recommendations). Cuando una o varias empresas, o cualquier tipo de organización o grupo, desean publicar algún desarrollo para ser ofrecido al público, se las manda al W3C y éste las publica como anotas)) para que cualquiera pueda verlas y estudiarlas. Si alguna de estas notas se considera de interés general, se crea un grupo de trabajo que se encarga de su desarrollo, pasando entonces a ser denominada «borrador de trabajo)), que pasará por varios estadios con sucesivas modificaciones. Cuando se considera que ya ha sido suficientemente desarrollada y perfeccionada, se publica como «propuesta de recomendación» y se fija un plazo para su aplicación definitiva. Pasado el plazo establecido, la especificación se publica como «recomendación», adjudicándosela un número de versión que la identifique con exactitud, que, si es la primera, será la notación 1.O. PARA AHORRAR TIEMPO: Existe una sección en W3C que incluye traducciones de sus recomendaciones, siendo una gran ayuda para los diseñadores que prefieren otro idioma distinto del inglés. Su dirección

COMENTARIOS FINALES Hemos visto una breve (demasiado breve) historia de los lenguajes de marcas para comprender cómo se ha llegado a desarrollar el lenguaje XML. También se han comentado algunos ejemplos sencillos de marcado de información que demuestran la utilidad práctica del sistema y la facilidad de construcción de los documentos definidos con marcado de etiquetas. Se ha comentado varias veces la relación estrecha que mantiene XML con HTML y los motivos de ese vínculo, y si el lector se está haciendo ahora la pregunta: ¿sustituirá el XML al HTML?, la respuesta es un rotundo NO (por lo menos a corto plazo), ya que cada uno tiene su espacio propio, aunque en algunos casos se solapan.

CAP~TULO [1]

Origen y actualidad del XML

HTML es una aplicación XML muy fácil de aprender a utilizar y muy eficaz en la publicación de documentos sin grandes exigencias (textos, imágenes y algo de multimedia), sobre todo si son de tipo estático, o sea, que no precisan de interacción con el usuario. Por el contrario, XML es un sistema abierto a cualquier tipo de utilización, pudiendo ser utilizado en servicios más complejos o que precisen de condiciones exclusivas (gestión de bases de datos, consultas condicionadas, intercambio de formatos, aplicación a través de medios simplificados, etc.), aunque precisa un aprendizaje más laborioso. Concretando, se puede decir que XML es un sistema abierto de marcado de información general. Por el contrario, HTML es un lenguaje cerrado creado para marcar información web hipermedia. También debe quedar muy claro que en la actualidad se dispone de toda clase de aplicaciones, utilidades y herramientas para trabajar con HTML, mientras que no existen tales ventajas para los diseñadores web que trabajan con XML.

nas web» y XML se irá generalizando entre los profesionales del sector dedicados al diseño de «servicios webn.

En este intento de comprender la situación en la que se encuentra el XML, no hay que olvidar que todavía están en proceso de desarrollo algunas normativas que permitirán complementar XML y proporcionarle toda la fuerza que potencialmente tiene. En realidad, últimamente XML se estaba volviendo necesario. En los primeros tiempos de la computación, antes de Windows, las computadoras personales eran poco potentes, se equipaban con sistemas monotarea y, en consecuencia, se trabajaba con una sola aplicación a la vez. En la actualidad, con equipos muy potentes y sistemas multitarea, cuando se utiliza Internet, se sigue trabajando con una sola web cada vez, no existiendo procedimientos estándar para mover o compartir la información entre webs diferentes. XML es la respuesta que permite utilizar múltiples webs al mismo tiempo. Se dice que en un futuro próximo XML será el vinculo que hará posible conectar las entidades que están dispersas por Internet. Aunque es fácil de entender, ahora que XML no es un HTML avanzado, ni nada parecido, todavía no se ha dejado claro cómo funciona este lenguaje, capaz de introducirse en cualquier lugar que trate con documentos electrónicos, ya que éste es el principal objetivo del presente libro y precisa del estudio de los capítulos siguientes. Pero, antes de continuar, recomiendo al lector que recoja en la dirección www.ramon.org el archivo ZIP con el contenido de los ejemplos del libro, los descomprima y los tenga disponibles en su equipo. PARA LOS MANITAS: Para crear los códigos XML de los ejemplos de este libro es suficiente con disponer de un editor de textos que guarde «sin formato», esto es, en formato ASCll puro, como el Bloc de notas de Windows 9x/Me, pero es más cómodo utilizar alguna herramienta específica para el XML, como es EXml de la empresa CUESoft (www.cuesoft.com), gratuita y muy fácil de utilizar, aunque está en inglés.

,

XML. Iniciación y referencia

Termino este capítulo con una anticipación del próximo: ;RESUMEN> XML es información sobre información XML es metainformación XML es "metadatos" . En el interior de dicha marca puede incluirse cualquier combinación de caracteres, salvo la pareja de ((corchetes derechos. que sirve para indicar su finalización, o sea: 1 1 . Por ejemplo, el siguiente fragmento de código XML sería ilegal:

Para que fuese admitido tendría que quedar como figura en el siguiente modelo, modificado adecuadamente:

REFERENCIA D E ENTIDADES Las referencias de entidades fuerzan al analizador-procesador a sustituir la referencia por un determinado dato, siendo útiles para dos casos principales. El primero de ellos es que sirven para incluir caracteres reservados («). «comillas simples. Estas referencias a entidades son fácilmente reconocibles, ya que empiezan con el signo de «y comercial» (&) y terminan con el signo de «punto y coma» (;), exis(

j

)

XML. Iniciación y referencia

a

9 m

tiendo un formato textual y otro numérico. En la tabla siguiente se recogen las referencia a entidades más utilizadas en XML: Cardcter

Referencia textual

Referencia numérica

PARA LOS MANITAS: En el Apéndice A se puede consultar una tabla completa con las referencias de caracteres correspondientes al grupo de caracteres - conocido como ISO-Latin-l.

- -

-

----

-

Con estas referencias de carácter se puede insertar información como la siguiente:

ctl'iiim X i I O > El eiguiente código ee legal: kltrPelícula>r Tom , respectivamente de principio y de final. Un ejemplo de código XML con comentarios puede ser como:

--

. .. . . .

--



e!-- Empieza la sección p r i n c i p a l -->

habría que dejarlo en XML como este otro:

RESUMEN En este capítulo se han sentado las bases y se han comentado los principios esenciales que regulan la creación de los documentos XML desde el punto de vista de sus reglas gramaticales básicas. También se ha visto el método general de trabajo con documentos XML, basado en crear el código adecuado en un editor de textos sin formato, guardarlo con un nombre conveniente con extensión .xml y visualizar dicho documento a través de un visualizador que soporte XML. Debe quedar claro que, mientras no se indique la forma de visualizar su contenido, un visualizador XML, cuando lee un determinado documento XML, sólo puede analizar la estructura lógica y la información que contiene desde el punto de vista del cumplimiento estricto de las reglas de los documentos XML bien formados, y si pasa correctamente el análisis, crea una estructura jerárquica en forma de árbol de datos que le permite controlar perfectamente la situación de cada elemento y su contenido. Los documentos XML que se han visto son muy sencillos, relacionándose más con bases de datos que con páginas web, pero es que, en realidad, la visualización de un documento XML como una página web es sólo una de las posibilidades de esta tecnología.

Visualización documentos X M L con CSS

I experiencia me dice que muchas de las personas interesadas en el XML son diseñadores de páginas web y desearían ver sus documentos XML bien formateados a través de su navegador lo antes posible. Teniendo en cuenta este argumento, creo que es mejor no seguir el clásico desarrollo de todos los cursos y libros sobre XML, que normalmente tratarían ahora todo lo relacionado con la normativa DTD (declaración de tipo de documento) o con la especificación DOM (modelo de objeto de documento), y pasar a ver uno de los sistemas más eficaces y fáciles para controlar la presentación de un documento XML cualquiera como una página web típica, con resultados similares a los que se consiguen con HTML. Estoy seguro de que con esta decisión los lectores más interesados en el diseño web empezarán a disfrutar lo antes posible. Por el contrario, los que estén más preocupados por las normas específicas para el XML, pueden pasar a otro capítulo, siempre que aseguren volver a esta posición cuando crean oportuno empezar a dar formato visual a sus documentos XML.

HOJAS DE ESTILO EN CASCADA Es muy probable que el lector ya conozca, y utilice, la técnica denominada hojas de estilo en cascada, más conocida por sus iniciales CSS (Cascading Style Sheets). CSS es un proceso muy utilizado en el diseño web profesional con HTML, estando en vigor la versión 2 de su especificación, aunque en muchas ocasiones se

XML. Iniciación y referencia

utilizan sólo las posibilidades de la versión 1, ya que no hay en la actualidad ningún visualizador web que soporte todas las características completas de la versión 2 de CSS, pues incluso la versión 5.5 de lnternet Explorer no admite la totalidad de sus peculiaridades, aunque, en beneficio de nuestros intereses, sí soporta la mayoría y nos permite aprovechar sus ventajas. CSS2 está vigente desde el 12 de mayo de 1998 (la versión 1 es del 96),tal como se puede observar en la Figura 3.1 (www.w3.or~lTRICSS2/), pero aunque parezca que en lnternet todo va muy rápido, la actualización de los visualizadores web a las nuevas tecnologías, con la excepción de IE5, lleva mucho retraso, siendo éste el motivo principal de que no se aproveche todo su potencial. CSS ha sido muy bien acogido entre los diseñadores web, por lo que en la actualidad se está trabajando en el desarrollo de CSS3, lo que hace muy probable que siga existiendo un desfase entre las normas CSS y los navegadores web, cosa que no sorprende a los sufridos usuarios de Internet. CSS2 ya fue desarrollado pensando en XML, como se puede ver en la introducción de su especificación: CSS2 es un lenguaje de hojas de estilo que permite a los autores y usuarios enlazar estilos de formato a documentos estructurados, como los documentos HTML y las aplicaciones XML. Los lectores que no conocen CSS pueden entender su utilidad pensando que son unas plantillas de descripciones del formato en el que se desea que aparezca el contenido de un determinado documento. Sus descripciones se archivan en documentos de texto sin formato, guardados con la extensión .css, necesaria para su identificación. Estas plantillas pueden ser enlazadas con uno o varios documentos, por lo que todo el trabajo realizado en cada plantilla puede ser aprovechado por múltiples documentos, siendo ésta una de las principales ventajas de las CSS. Otra de sus ventajas estriba en que cada vez que se modifica algún dato en cualquier plantilla CSS, automáticamente quedan actualizadas las presentaciones de todos los documentos enlazados con ella. La última gran ventaja de las plantillas CSS es que per-

Figura 3.1. Recomendación css2.

.

CAP~TULO131

Visualización de documentos X M L con CSS

miten controlar el formato de un documento hasta niveles de detalle imposibles de definir con las etiquetas de formato HTML. Este libro no es el lugar adecuado para tratar con detalle todas las posibilidades de la normativa CSSZ. ya que exigiría por si misma un tratado completo. Cualquier lector interesado en dominar al máximo la especificación CSS debe conseguir información adicional a la que se va a estudiar en este capítulo, que es suficinte para entender el proceso y generar documentos bien formateados, pero que, por exigencias de espacio, no puede abarcar todas sus posibilidades. IMPORTANTE: En el Apéndice A se puede consultar una tabla resumen de CSSZ. En el Apéndice B se indican algunos recursos sobre CSS.

PRIMER DOCUMENTO XML-CSS Aunque más tarde vamos a ver las particularidades de CSS, para mostrar la facilidad de uso del binomio XML-CSS (y premiar a los impacientes diseñadores de páginas web) vamos a ver cómo podemos mostrar un sencillo documento XML por nuestro navegador. En primer lugar vamos a crear un documento con alguna información. A través de cualquier editor de textos podemos teclear el siguiente texto:

Ramón Montero En

;.,;c,t-

al-tit:ulo se muestra la evolución histórica del XML

Para entender IU evolucih del hay $querv-oceder n la epoca en la que los ais,-enasde computación eran t o ü o ~propiecil~i~s de las empresas que los creaban.

En rea: Xad, las ideas de esta 'nileva' :irnc.logía son de sobra concridaz desde hace muchos ar?.>c y llevan Q G c a c h i dando buenos resultaios s n rnilltl?les proyectos. Vamos a Lepasar algunas de estas ideas a continuación. Sistema de marcado El si::tenia de marcado de formato se bssa en mircsr el texto con instriiccloiies precisas que +..Yvan publirdntiose poco a poco, sierdo necl-caria la c o ? a x i ?ri rii ';!>Cpara esta: a 1 dia en es.^ constante proceso de evolucidn. dltima fech,.de actualización: 25 de Abril de 2000

Dicho texto es una parte simplificada de un artículo más completo publicado en www.ramon.org, y que está disponible en los archivos de ejemplos de este libro accesibles en dicha dirección. El lector puede teclear el texto (o alguno que sea similar) y guardarlo en X:/LIBRO-XMLICAP-03 como ejemplo03-01.txt (todavía es un texto, así que debe tener extensión .M),o bien abrir el archivo del mismo nombre en los ejemplos bajados de www.ramon.org. Lo importante es disponer de un documento que incluya varias entidades, como un título principal: EvoliicPó~ii6e1

El nombre del autor: Ramdn

Noncero

Una introducción:

Unos títulos de apartados:

...*-, Sistema de marcado

......

Aclaracirín

Unos párrafos: 1

Para entender la workin 'ae1 XML

ED realidad, l a 0

...

f

i d e a s de eSta 'nueva* t e c n o l o g í a .

El sistema de marcado de hrmato

s e baza

en

h eatas marcas se las denomina 'etiquetas" Las nwmas ~ecesarias ?ara 'el desarrollo de

...

.,. , .. .

.

.?

i

CAPITULO 131 Visualización de documentos XML con CSS Y un comentario final:

Con esta base, las etiquetas XML adecuadas para marcar correctamente el documento podrían ser: < t itulop> (de Título Principal), , (de introducción), (de Título de Apartado),

(de Párrafo) y (de Comentario Final). PRECAUCIÓN: En los nombres de las etiquetas se han eliminado los acentos para evitar cualquier posible incompatibilidad con alguno de los múltiples procesos implicados. Se puede utilizar el alfabeto español sin problemas, pero es una precaución similar a la costumbre de no incluir acentos ni espacios en los nombres de los archivos. E

---

Después de incluirlas en sus lugares correspondientes y de añadir la declaración XML al principio y la etiqueta raíz , el documento XML queda como el siguiente, que debe ser guardado como ejemplo03-02.xml (ya es un documento XML, por lo que debe llevar la extensión .xml).

Si visualizamos ahora el documento ejempls03-02.xml a través de IE5, comprobaremos que ha parada el análisis previo y observaremos su estructura en forma de árbol, tal como se muestra en la Figura 3.2.

XML. Iniciación y referencia

.: -

!

, .

,

.

-

->,,cm,l?

cr8tuliD- Evolucl4n del XML*./iituloPs sai,to-:Ramón Montoro .imil~r.. rinfrolEn este articulo .E muestrala evolucl4n hlrtbrica del XML=,intrOi i t i i i h n . Iniroducdbn!ii+doa .-p-,Para anlsndsr la evoluclbn del XML hay que retroceder a la Bpoca sn l a quo los 6lrlc.mar de lnformdtlca eran todas propietarios de lar eniprerar que los msaban. ':o, p E n rsalldad, lar idear de esta "nueva" lecnologla ron de robra c ~ n o c l d a desde r hace muchos ahos y llevan dbcadar dando buenos rerultador en miiltlpler proyectos. Vamos a repasar algunas de estas Ideas a cmrhiuadón. .. a c f r r ~ r ' Sistema de marcado Iitulr,i cp..EI slstema de marcado de lonnato r e basa on marcar e l t a r t o con Inrtmcciuner procirar que describen cada una de lar candkionmr que se desea apllcar a las paear del texto, talsr como el tlpo de letra o su rntllo. . p ,- l > n t frinc - - - -f a-7 i--, c d o r : m d j ti&-?licrn:right; m a r y i d - b o t h : 1-1 intro (display:block; margin:2Spx; font-fuailyt Verdena; f o n t - s i a c : l h r : font-#tyle:ftalip) titul& {disaloy:blnck; f m t - fliri!ily:Kr íal J narsin-L~Et:laa; til%t-alipn:left; font-sizerl4gt; fmt. - ~ ~ i g h:bol - - d; nñrqin-bot zorri: lOpt] comsptariaF (&isala-./:Block; margin: .2i11; padding:5px; font-s~v1e:italic; b o r o r d e r : ~ u t s ~ t3 s :

.- -

m

m

-7:

LrEL-alryri:cuiu=&;

-

-:-?e.--.

crac-rrs

- ; J u ~ L ~

bcickqround-color :a q m ) g (display: block; mama-bottom: l O p t ; font EamllyrVerdaria,sans-c p f i f t fqrt sle-: lQpt;, text-align:justify; te.ct-:ndent:lcml

Para que el documento XML pueda recoger las reglas de formato de articulo2.css, hay que modificar la segunda línea de su código para que quede como:

Este nuevo documento XML tiene la denominación de ejernplo03-04.xrnl, y al abrirse desde IE5 se muestra como se puede ver en la Figura 3.8. Sin duda ya tiene un aspecto mucho mejor, pero todavía vamos a incluir algunas correcciones. Se trata de mostrar las palabras que aparecen entre comillas (nueva, etiquetas y código) sin las comillas y con estilo de negrita ( < m ,)y ya puestos, vamos a ordenar que la palabra que figura entre paréntesis (tags), tenga un estilo de cursiva ( < c > .) Estos efectos se consiguen añadiendo al código CSS de articulo2.c~~ las siguientes reglas: f r i n t - v ~ i g h : rünldr di'dpley :inline 1 d. { font-styie:italic; disp1ay:inline 1

U

Esta nueva variante de la plantilla CSS hay que guardarla como articulo3.css. También hay que modificar el documento XML en dos sentidos: uno actualizando

CAP~ULO [3]

Visualización de documentos XML con CSS

Evolucibn del XML

Figura 3.8.

Documento ejemplo03-04.xml

visto con IE5. la línea que llama a la nueva plantilla CSS, y después incluyendo las correspondientes etiquetas y en sus respectivos lugares. El código del nuevo documento XML, denominado ejemplo03-05.xml, se corresponde con:

necesaria la conexión aL W ~ para C e s t a r al dia pn proceso de ~ w l u r r i b n~. / p z < c o m ~ n t a r l o ~ > l ; ' l t fecha i~a de actualirar~bn: 2 5 de Abril de ? í l O O < /com~ntarinF-c l a r t lculoz

poco

R P O C ~ ,siendo

P F ~ C ?Ccmstanre

XML. Iniciación y referencia

3

Para terminar de mejorar el proceso habría que incluir algunos comentarios que ayudasena leer los códigos XML y CSS más fácilmente. Ya hemos visto cómo incluir comentarios con los terminadores especiales para XML ( c ! - - y --> ) y para CSS ( / * y * / ), pero podemos aprovechar el valor none de la propiedad d i ~ p i a y para que cualquier elemento incluido en el documento XML sea ocultado en el momento de la presentación en la pantalla. Un ejemplo del documento XML con comentarios podría ser el que se muestra a continuación, localizado como ejemplo03-06.xml.

Para que funcione correctamente el anterior documento es preciso modificar el último cbcligo CSS para que deje claro que deseamos hacer con el nuevo elemento ) también que no se muestran los comentarios añadidos. Bien, cualquier persona que esté leyendo este libro tiene sin duda una aptitud curiosa que no se conforma fácilmente, ya que si no fuese así, estaría tumbado en el sofá viendo a los Simpsons, en vez de pelearse con los documentos XML y CSS. Es por tanto seguro que más de un lector, conocedor de las posibilidades del HTML, se estará preguntando jcómo se pueden incluir los hiperenlaces en este proceso? o ¿cómo se pueden insertar las imágenes en un documento XML-CSS? S610 tiene que seguir leyendo para solucionar ése y otros problemas similares.

A

Evolucinii del XML

..

--

. .. .

hboüucclbn -m

rn- . 3

r l & i . . * Y m 0 i - h . r w - . Y 0 1 n U O . ~ r M ~ - r . . n I - p p r - i i ~ k

nr,i+..v

*

hS. *

..l.

F r r r-i.rm.

ni..*

-.. -4

18

w u a n* b

-m

r i.O"

i

uV

irr.

Mlmr* m.

n C d rria

"

8"

r* r n i . r i o -m

lclaacibn

-

i lu n r r r . r-0 m i i l miim 0. Uii.0 ii w.19

n

Ir*,"

.,-m in y

p*

*

m . di .m. .m* W W. u-. ib. r ni"dr.rnifnAin

8ln.nii de marcado

rrfnrr-

id

".-m

-

p . r ~

i -

i.n

nyitn

-&re.

r r ,m.*

-i

-

m.,-.

dic

b

m i -.m

u m-*

mm

Y

m". hnnrl"

Figura 3.9. Documento ejemplo03-06.xml visto con IE5.

XML. Iniciación y referencia

LA AYUDA DEL HTML

'

Ya he comentado en otras ocasiones que mientras no se desarrolle completamente XML hay que aprovechar las tkcnicas actualmente existentes para complementarlo y, ademas, ta-mbiénhe dejado claro (¡eso espero!) que XML no es ui sustituto de HTML, sino más bien un complemento. Teniendo en cuenta estos comentarios, y buscando siempre el proceso más fácil y práctico posible, vamos a ver cómo se puede aprovechar lo mejor del HTML en cualquier sistema de visualización XML-CSS, como el que estamos tratando en este capítulo.

IMPORTANTE: En el capítulo siguiente se van a ver más ejemplos de utilización del código HTML, pero este libro no es una guía de HTML, por lo que recomiendo al lector que no conozca este lenguaje que adquiera un buen manual de programación HTML, ya que sigue siendo la base de la mavoría de las técnicas de diseño web. Para poder seguir adelante es imprescindible que comentemos un nuevo concepto: el espacio de nombre (namespace).

IMPORTANTE: Más adelante, en otros capítulos, se volverá a tratar el tema de los espacios de nombres.

Ya hemos comentado y comprobado que podemos combinar varios documentos XML, HTML, CSS, etc., para obtener un documento final, mezcla de otros, siendo ésta una de las grandes ventajas existentes en el tratamiento de información XML. Estos documentos pueden provenir de diferentes orígenes y autores, por lo que no es nada improbable que existan etiquetas y atributos de elementos que aparezcan repetidos, ya que algunos nombres descriptivos son muy utilizados en casi todos 10s sectores, como ,, , , ,,,,,,etc. Esta posible interferencia puede evitarse controlando al detalle cada uno de los documentos para asegurar que no existe repetición alguna de etiquetas o de atributos (cuestión imposible de realizar si los documentos son generados por personas o entidades con las que no mantenemos relaciones), o mejor, trabajar con los espacios de nombre que, según figura en la propia sede del W3C, son colecciones de nombres, identificadas por una referencia URI, que pueden ser utilizadas en los documentos XML como tipos de elementos y nombres de atributos. Como me imagino que esta definición no es nada aclaratoria para los usuarios que no conocen este término, yo creo que es más útil imaginar que los espacios de nombre son unas capas en las que se incluyen los elementos de cada colección de etiquetas y de atributos utilizados en el proceso. Así, podemos tener varias capas superpuestas, pero sin interferir entre ellas, cada una con sus propios elementos, que en conjunto forman un sistema complejo que aprovecha toda la información de la totalidad.

C A P ~ U L O133 Visualización de documentos XML con CSS

En nuestro caso vamos a disponer dos capas (perdón, dos espacios de nombre) para incluir los elementos particulares del documento XML en uno de ellos y para poder utilizar las etiquetas del HTML en el otro espacio de nombre. De esta forma a podremos aprovechar las ventajas de los dos sistemas y, de paso, evitaremos colisiones entre etiquetas coincidentes, como es el caso de la

de HTML y de la 0

utilizada en nuestro ejemplo XML. Cuando no se especifica nada sobre espacios de nombre, se da por hecho que toda la información se manipula en un único espacio de nombre (una única capa de trabajo) que existe siempre por defecto. En nuestro ejemplo, si no añadimos nada especial, la información del documento se situará en el espacio de nombre por defecto. Para poder utilizar las etiquetas HTML paralelamente vamos a utilizar un espacio de nombre especial para que soporte sus elementos. La forma más sencilla para poder crear dicho espacio de nombre sería incorporar el atributo x m l n e :h t m l = " u r i :h t m l " a la etiqueta del elemento raíz, que en nuestro caso quedará como:

9

IMPORTANTE: Se vuelve a recordar que más adelante se volverá a tratar con más detalle el tema de los espacios de nombres.

Con esta sencilla operación ya es posible utilizar cualquier etiqueta HTML sin problemas, con la única precaución de anteponer a cada una de ellas (en la del principio y en la del final) el prefijo h t m l :, que indica que debe ser incorporada al espacio de nombre reservado para el caso. Por ejemplo, si se desea que el nombre del autor sirva de enlace para que se le pueda mandar correo electrónico, hay que modificar el correspondiente código para que quede como:

Cualquier otro componente HTML que se desee incorporar debe seguir la misma única regla: incluir el prefijo h t m l : en el nombre de sus etiquetas. Mediante este sistema se puede mejorar el documento XML para convertirlo en una completa y clásica página web formada por lo mejor del XML, del CSS y del HTML, adaptándose a los conocimientos y necesidades particulares del diseñador. Volviendo a nuestro ejemplo, el código del documento XML podría retocarse para llegar a quedar como se muestra a continuación, con la referencia de ejemplo03-07.xml, donde se pueden ver resaltados los añadidos HTML, como la creación de un espacio de nombre especial para HTML, la inclusión de varios hiperen-

XML. Iniciación y referencia

laces (de marca, de correo electrónico y de web), la inserción de dos pequeñas imágenes contiguas a las palabras «XML», un par de saltos de Iínea forzados ( < h t m l : br />), una línea de separación ( < h t m l : hr . . . />) y unos guiones de separación ocultos ( < h t m l : f o n t c o l o r = " w h i t e " > - - < / h t m l : f ont,).

~orticulodn~ahtmí=~uri:Etmi"> < ! - - C a b e r ~ r adel dciriinrrito

< IEliEMxNT autoree (Autor+) < l E L ! i s m m Autor (IPCDATA),

t1ATTLIST Precio moneda C M T A IREQVIFtEDs 1>

En el listado anterior se ha remarcado la parte correspondiente a la DTD que se sitúa al principio (después de las instrucciones de procesamiento), sin que por el momento tenga mucho sentido para el profano. Es importante observar que no se precisa de ninguna etiqueta o instrucción de procesamiento especial en el documento XML, ya que simplemente hay que incluir el código DTD al principio, añadiendo a continuación el resto del documento XML. Siempre se distingue el código DTD porque presenta el modelo:

XML. Iniciación y referencia

i

en el que es importante distinguir la primera línea con la declaración de tipo de documento ( ! DOCTYPE . . . ), el símbolo de comienzo del código DTD ((corchete izquierdo)) ( [), el símbolo de finalización del código DTD «corchete derecho)) (1 ), todo ello comprendido entre signos de ángulos «menor que» (4 y «mayor que» (>), y entremedias de los símbolos de inicio y de final del código DTD las declaraciones correspondientes. La forma de trabajo con una DTD externa exige manejar un código XML como el siguiente: m.

-

< ! E libroe S Y B m mlibroo.dtdR>

i

1.r :-o>

i y otro código DTD, guardado con el nombre de librosdtd, como el que viene a i continuación: E-

-

El lector podrá recordar que en el Capítulo 2 se vio la utilidad del atributo standalone. Las características del resto de las entidades relacionadas con la DTD se van a repasar en los siguientes apartados. Lo mismo que hemos hecho con los capítulos anteriores, antes de seguir adelante vamos a crear un documento XML que nos sirva de ejemplo práctico, aunque también aprovecharemos los datos XML del centro de enseñanza TODO-WEB utilizados en el capítulo anterior. En este caso vamos a utilizar el catálogo de libros de computación de la Editorial McGraw-Hill. El código elegido es el que viene a continuación con el nombre de referencia ejemplo05-01.xml:

CAP~TULO151 Definición de Tipo de Documento

La estructura de ejemplo05~Ol.xmlse entiende con facilidad si se observa con atención, por lo que no exige una explicación especial sobre su organización. En el anterior ejemplo se hace referencia a un archivo externo DTD denominado catalogo.dtd, que también se encuentra en los archivos disponibles en www.ramon.org y que tiene el siguiente contenido:

P - .> '

e-BODY -

Esta es la ectriictura de un archivo HTWL, definido d ~ n ro ! de un documento xML qLie sigue la normativa HTML 4.O.d/P>

c ; ETI

Un ejemplo de documento XML que incorpora una DTD externa privada sería como:

.r!MXJTYPE saludo SYSTEM 'http://ww.ramon.org/xml/saludo.dtd"> ;Hola Yl.ndo!

En el ejemplo principal del catálogo que se ha creado al principio la línea de declaración de tipo de documento es: .- ,

< ! ~ E C ' I P E libros SYSTEM .catalogo.dtd*>

DECLARACION DE TIPO DE ELEMENTO A continuación de la declaración de tipo de documento se incluyen las declaraciones de tipo de elementos, que son una relación de los elementos que intervienen

en el documento XML con indicación de sus características. Deben constar tantas declaraciones de tipo de elemento como número de elementos exista en el documento XML. El modelo de la declaración de tipo de elemento es el siguiente:

XML. Iniciación y referencia

i i

El término ! ELEMENT tiene que ir en letras mayúsculas seguido por el nombre-del-elernen to correspondiente y por su descripción.Todo encerrado entre signos de ángulos. En el lugar de nombre-elemento se incluye el identificador genérico de cada uno de los elementos que componen el documento XML. En el lugar de la descripción-del-contenido, normalmente entre paréntesis, se incluye la especificación del contenido del elemento, pudiendo tener los siguientes valores: EMPTY, m,elementos, datos o mezclas. o

EMPTY (vacío) indica que el elemento no tiene contenido, esto es, que es un

elemento vacío, normalmente con información en forma de atributo. ANY (cualquiera) indica que el elemento puede tener cualquier tipo de cono

tenido. Es posible que incluya una lista de posibles elementos (element) dependientes. También es posible que incluya una mezcla (mixed) de los valores anteriores.

Un ejemplo con el valor EMPTY sería:

Un ejemplo con el valor ANY podría ser:

Un ejemplo con valores de elementos, donde se indica que del elemento autores y Precio,y también, que i libro dependen los sub-elementos ~ítulo, i del elemento autores depende el subelemento Autor,es el siguiente:

i i

...

-

clELEldBNT libro (Titulo, autores, Precio)+ c IELEMBW. autoree (Autor]>

1

O [5]

Definición de Tipo de Documento

qemplo con valores de mezcla, utilizando el tipo #PCDATA (que viene de Iharacter DATA, equivalente a «texto de caracteres))),puede ser:

1

el valor mezcla permite otras muchas posibilidades, ya que, como indica su

, admite mezclas de los valores anteriores, siendo perfectamente válido un como:

c!ELBMBNT A u t o r ClPCDATA I Nombre I Apellidos

En el código anterior aparece una nueva característica de las declaraciones DTD, consistente en que permiten mezclar caracteres de texto y subelementos, con las posibilidades separadas por el signo de la «barra vertical» ( 1 ) . PRECAUCIÓN: Existe una gran diferencia en separar los subelementos con una «coma» o con una «barra vertical*. La «coma» indica que los elementos deben existir todos y en el mismo orden marcado. La «barra vertical» señala que los elementos relacionados son optativos y se puede elegir cualquiera de ellos.

-

--- -

XML. Iniciación y referencia

Seguro que el lector ha observado que en varias ocasiones los códigos de los ) ejemplos han incluido algunos caracteres especiales, como el signo .más. el signo de .interrogación final. y el signo de rasteriscon Cada uno de estos 3 caracteres es un operador,que puede aplicarse a la declaración de tipo de eleO mento o a cada uno de los subelementos. (+),

(*).

(?)

Cada operador es un indicador de frecuencia que indica las siguientes características: Operador

Opción

Frecuencia

Opcional Opcional y repetible Necesario y repetible

O o 1 vez O o mds veces 1 o mds veces

Un ejemplo de operador ? , que permite incluir un elemento (sólo uno) subtítuio dependiente de ~ítuio, aunque también permite que no se incluya, puede ser:

Un ejemplo de operador ", que permite incluir ninguno, uno o más elementos Autor,dependientes de autores,sería: c !EL-

autores (Autorf)>

Con lo que se ha visto hasta ahora, si en el ejemplo anterior se desea que siempre aparezca como mínimo un elemento Autor dependiente de autores, se podría hacer con: ! EL^^

autores (Autor, Autorf ) >

Pero el caso anterior se podría especificar más fácilmente utilizando el operador

+, que obligaría a la existencia de un elemento (o más) Autor dependiente de autores,quedando como: . ~ELEMZTPT !

autores (Autor+)>

Se pueden combinar varios operadores en una misma secuencia (en este ejemplo se han anidado varios subelementos): !BLEMEXT autores (Autor+ (Nombre*, Apellido;?)

)N

En el ejemplo anterior se han anidado varios subelementos, consiguiendo poner en una sola línea lo que se puede expresar en las dos siguientes:

JLO [ 5 ]

Definición de Tipo de Documento

3

.mbién se puede aplicar un operador a toda la secuencia situándolo fuera del O tesis, y así, en el ejemplo siguiente, se indica que los elementos Nombre, lidos y anónimo pueden existir o no, en cualquier número de veces:

PRECAUCIÓN: Los operadores no pueden ir precedidos de espacios en

blanco.

~spuésde lo comentado se puede decir que el signo de «coma» (,) indica estricto, el signo de ((barra vertical» ( 1 ) indica opcional (uno u otro) y que :nos de ((paréntesis)) ( y ) se utilizan para agrupar. en, seguro que ahora se puede entender la mayor parte del código del architalogo.dtd.

tinuación de las declaraciones de tipo de elemento que contengan atributos luyen las declaraciones de lista de atributos, que son una relación de los atributos que intervienen en el documento XML, con indicación de sus características. Lo más usual es incluir tantas declaraciones de lista de atributos como número de atributos exista en el documento XML, pero se pueden describir todos los atributos en un único listado (de ahí el nombre) de una declaración de lista de atributos. El modelo de la declaración de lista de atributos es el siguiente:

El término !ATTLIST debe ir en letras mayúsculas y seguido por el nombre-del-elemento, por el nombre (o nombres) del atributo correspondiente, por su tipo y por la descripción del valor-por-defecto. Todo encerrado entre signos de ángulos. Se pueden declarar varios atributos en una sola declaración de lista de atributos, también se pueden incluir varias declaraciones de lista de atributos para un solo elemento, e incluso es posible insertar varias declaraciones para el mismo atributo del mismo elemento, en cuyo caso es la primera declaración del atributo la que se tiene en cuenta. Un ejemplo de declaraciones de listas de atributos puede ser:

XML. Iniciación y referencia

b

c!ATTLIST

C o n t a c t o T e l e i f o n o CDATA #PcQUIREü> C o n t a c t o Fax CDA'TL #RJZQUTaED>

Que también puede expresarse como: < ! i ? T L I S T C o n t a c t o C o r r e o - r CDATA YREQUIRGD T e l é f o:lo CDATA # F EUUIRED Fax CDATI;. #REQUImD>

Tipos de atributos El tipo de atributo (atribute type) declarado en los casos anteriores es CDATA (Character DATA), equivalente a «texto», adecuado para la mayoría de los casos, pero existen otros tipos posibles, como los relacionados a continuación: NMTOKEN, son similares a los CDATA, Con la salvedad de que, además de caracteres de texto, pueden incluir digitos, guiones y caracteres de punto, siendo útiles para describir números. Su nombre viene de NaMe TOKEN (señal de nombre). Un ejemplo de este tipo sería: 1

--

--

ID,permite declarar un atributo con un nombre identificativo (IDentification) particular para ser utilizado en cualquier momento como referencia nominal. Un tipo de elemento puede tener sólo un atributo ID.Es similar al atributo NAME de la etiqueta del HTML. Un ejemplo con este tipo sería:

IDREF, sirve para establecer conexiones entre elementos. El valor IDREF (IDentification REFerence) del atributo debe referirse a un valor ID declarado en el documento. Es similar al atributo HREF de la etiqueta del HTML. Un ejemplo de este tipo podría ser:

CAP/TULO 151 Definición de Tipo de Documento cDTD>

...

< !LLEMFNT

~ ú : n e r o I D #REQUIRED> curso1 IDREF #IKPLTFD> c u r s o 2 I D R E F CIMPLX Z @ ,



.crmrm&t%

c T a x t g z E r t e n a e X a r h p Languagec /Texto> ¿/noima>

4'esto>HyperText Markup Language

c/fiomas'

Después añadimos una línea de código que le relacione con un determinado archivo XSL (en este caso ejemplo06-02.~~1)y lo volvemos a guardar:

XML. Iniciación y referencia

Para finalizar crearemos y guardaremos el documento XSL que lleva por nombre ejemplo06-02.~~1,todos ellos guardados juntos en la misma carpeta X:\LIBRO-XML\CAP-06:

Ahora abrimos el archivo normas06-01.xml con IE5 y observamos su contenido, que debe coincidir con la Figura 6.6, o sea, una sencilla lista conteniendo las siglas de las normas del documento XML. Aunque todavía no estamos en condiciones de entender bien los detalles (más adelante se estudiarán), veamos lo que ha ocurrido. Hay dos puntos importantes a tener en cuenta: e e

Partiendo de un determinado documento XML se ha obtenido un documento web diferente. La transformación del documento origen XML en otro documento resultante HTML se ha realizado mediante las reglas definidas en una plantilla (template) XSL.

El primer punto queda claro al observar el documento XML, que además de la información relativa a las siglas,también incorpora datos sobre el Texto de las normas reseñadas. habiendo sido obviados estos últimos.

Figura 6.6. Resultado de ejecutar norrnas06~01 .xml.

CAPITULO 161 Opciones básicas del Lenguaje de Hoja de Estilo Extensible