60% encontró este documento útil (5 votos)
328 vistas274 páginas

XML

Manual avanzado del lenguaje de script XML

Cargado por

Gerardo Bg
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
60% encontró este documento útil (5 votos)
328 vistas274 páginas

XML

Manual avanzado del lenguaje de script XML

Cargado por

Gerardo Bg
Derechos de autor
© All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

XML

Iniciacin y referencia
Ramn Montero Ayala

Revisin tcnica

A N T O N I O VAQUERO SANCHEZ
Catedrtico de Lenguajes y Sistemas Inforrnticos
Escuela Superior de Informtica
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
(<jt:
! .'

,.

'

<,

!..J
,

.;

y t.1, --;

;!

; .-

;.I-!
S

, {

. ..

( :,;

z.7. \t.

;:f.:,.

XML. Iniciacin y referencia


N o est permitida la reproduccin total o parcial de este libro, ni su tratamiento
informatico, ni la transmisin de ninguna forma o por cualquier medio, ya sea
electrnico, mecnico, por fotocopia, por registro u otros mtodos, sin el permiso previo y por escrito de los titulares del Copyright.
DERECHOS RESERVADOS O 200 1, respecto a la primera edicin en espaol, por
McGRAW-HILUINTERAMERICANADE ESPANA, S. A. U.
EdificioValrealty, I." planta
Basauri, 17
28023 Aravaca (Madrid)
ISBN: 84-48 1 -2894-X
Depsito legal: M. 49.836-2000
Editor: Carmelo Snchez Gonzlez
Diseo de coleccin: Jos Domnguez Alconchel
Cubierta y diseo de interior: Luis Sanz Cantero
Compuesto por: EDYGE, S. L. (Edicin y Gestin de Publicaciones, S. L.)
Impreso por: Impresos y Revistas, S.k (IMPRESA)

IMPRESO EN ESPANAPRINTED IN SPAlN

Contenido

Antes de comenzar

..............................................................................XI

Caractersticas ............................................................................
Condicionantes ..........................................................................
Objetivos ....................................................................................
Contenido ..................................................................................
Complementos ............................................................................
Convenios utilizados ..................................................................

XI
XII
Xll l
XIV
XIV
XV

Captulo 1. Origen y actualidad del X M L .....................................

Los lenguajes de marcas ..............................................................


El marcado de documentos ........................................................
El lenguaje HTML ........................................................................
El lenguaje XML ........................................................................
HTMLy XML ..............................................................................
Situacin actual ..........................................................................
Comentarios finales ....................................................................

4
6
9
11
13
16
18

Captulo 2 . Conceptos principales del XML .................................... 21


Documentos XML ......................................................................
Tratamiento de informacin XML ................................................
Arboles y elementos ....................................................................
Elementos y atributos ..................................................................
Buena formacin ........................................................................
Un elemento raz ..................................................................
Etiquetas de principio y de final ............................................
Etiquetas vacas ....................................................................
Anidados correctos ................................................................
Valores de atributos entre comillas ........................................

Contenido

Maysculas y minsculas ......................................................


Caracteres admisibles ............................................................
Introducciones de procesamiento ................................................
Versin ................................................................................
Encoding ..............................................................................
Standalone ............................................................................
Secciones CDATA ........................................................................
Referencia de entidades ..............................................................
Comentarios ..............................................................................
Resumen ....................................................................................

Capitulo 3. Visualizacin de documentos XML con CSS ................ 47


Hojas de estilo en cascada ..........................................................
Primer documento XML-CSS ......................................................
Documentos CSS ......................................................................
Reglas de estilo......................................................................
Agrupaciones ........................................................................
Cajas o bloques ....................................................................
Posicionamiento ....................................................................
Unidades de medida..............................................................
Colores ..................................................................................
Comentarios ..........................................................................
Control de textos ..................................................................
Imgenes ..............................................................................
Mejoras del documento XML-CSS ..............................................
La ayuda del HTML ....................................................................
Conclusiones ..............................................................................

..............

73
Captulo 4 . Visualizacin de documentos XML con HTML
HTML ........................................................................................ 76
XMLen HTML ............................................................................ 77
Base de datos XML .................................................................... 79
Datos tabulados .......................................................................... 80
..
Variantes de presentacion............................................................ 83
Documentos asimtricos ............................................................ 88
Control de atributos XML ............................................................ 91
Gestin individual de datos XML ................................................ 95
Navegacin controlada................................................................ 98
Las facilidades del texto .............................................................. 100
Resumen .................................................................................... 102

Captulo 5. Definicin de Tipo de Documento cDTD> .................... 103


Introduccin a la DTD ................................................................107
Definicin de Tipo de Documento ..............................................110
Declaracin de tipo de documento .............................................. 114
[Vil

Contenido

Declaracin de tipo de elemento ................................................


Declaracin de lista de atributos..................................................
Tipos de atributos........................................................................
Valores por defecto ....................................................................
Declaracin de entidad ................................................................
Declaracin de notacin ..............................................................
Secciones condicionales ..............................................................
Conclusiones finales ....................................................................

115
119
120 1
122
123
126
127
128

Captulo 6. Opciones bsicas del Lenguaje de Hoja de Estilo


Extensible cXSL-1 > ...................................................... 131
XSL ............................................................................................ 134
XSLT ........................................................................................... 137
Tipos de nodos XSL .................................................................... 143
Creacin de documentos XSL ...................................................... 143
Plantillas XSL .............................................................................. 146
Patrones de localizacin .............................................................. 151
Filtros XSL .................................................................................. 155
Existencia de nodos .................................................................... 155
Valor de nodos ............................................................................ 157
Combinaciones de filtros ............................................................ 161
Filtros de conjuntos .................................................................... 163
Conflictos y colisiones ................................................................ 165
Resumen .................................................................................... 167
Captulo 7 . Opciones avanzadas del Lenguaje de Hoja de
Estilo Extensible cXSL-2> ........................................169
XSL:COPY ..................................................................................
XSL:FOR-EACH ..........................................................................
Ordenacin ................................................................................
XSL:IF ........................................................................................
[Link]. XSL:WHEN y XSL:OTHERWISE ............................
XSL:NODE-NAME ......................................................................
Creacin de nodos en la salida ....................................................
xsl:pi ......................................................................................
xsl:comment ..........................................................................
xsl:element ............................................................................
xskattribute ..........................................................................
xsl:cdata ................................................................................
xskentity-ref ..........................................................................
Ejemplos de creacin de nodos ..............................................
Guiones (scripts) en XSL ..............................................................
xsl:script ................................................................................
xsl:eval ..................................................................................
Aclaraciones ................................................................................
Resumen ....................................................................................

172
177
182
182
186
190
193
193
194
194
194
197
197
197
200
201
202
204
205

Contenido

Capitulo 8. Tcnicas complementarias ............................................211

DOM ........................................................................................ 213


Principios del DOM .............................................................. 215
Ejemplo de gestin DOM ...................................................... 216
Activacin XML-XSL-DOM en el cliente ................................ 220
Activacin XML-XSL-DOM desde el servidor ........................ 221
Proyectos complejos XML-XSL-DOM .................................... 223
Sax ..............................................................................................225
Espacio de nombre y URI ............................................................226
Espacios en blanco ...................................................................... 228
Esquemas XML y tipos de datos .................................................. 228
XLlNK y XPOINTER .................................................................... 230
XFORMS .................................................................................. 231
Vocabularios XML ...................................................................... 232
VML ......................................................................................... 232
MATHML .................................................................................... 233
SVC ..........................................................................................233
SMlL ........................................................................................235
Resumen de resmenes ..............................................................237
Apndice A . Resmenes y tablas........................................................239
Relacin de caracteres ISO 8859-1.............................................. 241
Tabla de relacin: ISO Latin-1 / UNICODE................................. 243
Tabla resumen CSS ...................................................................... 244
Propiedades de caja (Box Model) .......................................... 245
Propiedades de visualizacin (Formatting Model) .................. 245
Propiedades de lista (List) ...................................................... 247
Contenido generado y numeracin automtica (Cenerated
Content. Automatic Numbering) .......................................... 248
Paginacin (Paged Media) .................................................... 248
Propiedades de color y de fondo (Colors and Backgrounds) .. 249
Propiedades de tipos de letra (Font) ...................................... 250
Propiedades de texto CText) .................................................. 251
Propiedades de tabla (Table) .................................................. 252
lnterfaz de usuario (User Interface)........................................ 253
Tabla resumen HTML .................................................................. 254
Elementos HTML relacionados con DSO .................................... 259
Apndice B. Recursos. Enlaces y Bibliografa

...................................... 261

Visualizadores y procesadores ....................................................


Normas y especificaciones ..........................................................
Utilidades y herramientas ............................................................
Recursos y tutoriales ..................................................................
Bibliografa en espaol ................................................................
ndice

263
264
266
267
270

.................................................................................................. 271

Antes de
comenzar

ODOS los libros tienen algn motivo y determinados objetivos, y ste no


poda ser menos. En la actualidad existe mucha bibliografa sobre XML, pero
toda ella est escrita por autores de habla no hispana. Incluso los pocos
libros que se comercializan en castellano sobre XML estn escritos por autores
extranjeros y traducidos en mayor o menor medida.
Esta situacin es uno de los principales condicionantes que han dado origen a
este libro. La segunda razn fundamental no es otra que ofrecer una publicacin
que trate el interesante tema del XML desde un punto de vista de introduccin sencillo y prctico.

Caractersticas
Que un libro sea sencillo de entender y de utilizar es una de las metas de todo
escritor de libros tcnicos, lo que no quiere decir que implique que tenga un nivel
mnimo. Simplemente quiere decir que es fcil de seguir y de aplicar. La coleccin
Iniciacin y Referencia, de la editorial McCraw-Hill, en la que se publica, define en
dos simples palabras las caractersticas principales del presente libro.
Decir que un libro es prctico es mucho decir, puesto que las necesidades de
los lectores son muy diferentes y variadas, por lo que es imposible tratar ejemplos
especficos y vlidos para todos los usuarios en un libro de carcter general. No obstante, la utilidad de este libro se ha buscado en tres direcciones principales: la
variedad de los ejemplos, la aplicacin del idioma espaol y utilizacin de las
herramientas ms habituales entre los usuarios.
La utilizacin de una variedad seleccionada de ejemplos est dirigida a conseguir el mximo alcance de utilidad posible. La aplicacin constante del idioma
espaol en todos los ejemplos, con sus caractersticas propias de acentos, ees,

XML. Iniciacin y referencia

signos de interrogacin y exclamacin iniciales, etc., marca una diferencia importante entre este libro y los traducidos al espaol provenientes de autores de origen
anglosajn. Por ltimo, el libro se puede seguir disponiendo slo de dos aplicaciones: un editor de textos ASCll (sin formato) y un visualizador web o navegador que
integre la tecnologa XML.
El editor de textos puede ser cualquiera que admita guardar los documentos sin
formato, como el sencillo bloc de notas que incluye Windows 9x/Me u otros que
incorporan todos los sistemas operativos, aunque tambin sirve cualquiera de los
muchos editores de texto que existen para ayuda de programacin, la mayora de
ellos gratuitos.
En cuanto al visualizador de pginas web con tecnologa XML, en el momento
de escribir este libro slo est disponible Microsoft lnternet Explorer 5, de carcter
gratuito y fcil de conseguir, bien a travs de lnternet ([Link]) o
bien en cualquiera de los muchos CD-ROM que incluyen la mayora de las revistas
de computacin. La mayor parte del libro se ha hecho utilizando la ltima versin
disponible en su momento, que era la 5.01, aunque antes de entregar el libro para
su publicacin ha salido la versin 5.5, ms potente y completa en lo que respecta
al XML. Se han realizado comprobaciones de todos los ejemplos para esta nueva
versin sin detectar problemas.
La versin 6, que est de camino, denominada MSN lnternet Explorer, tampoco ha dado problemas en su versin beta.
La empresa Netscape distribuye el otro visualizador web ms utilizado, siendo la
versin 4.75 la ltima revisin publicada en este momento, aunque se est desarrollando la prxima versin, denominada 6, que incluir los ltimos estndares
web, entre los que no faltar soporte para XML.
Es posible que cuando se publique este libro se encuentren en el mercado
nuevas versiones de los navegadores, pero como la tendencia es que se ajusten al
mximo a las normas oficiales, los cdigos y ejemplos del libro sern vlidos en la
mayora de los casos.
Las dos aplicaciones mencionadas (el editor y el visualizador) son el mnimo
bagaje necesario para practicar los ejercicios del libro y para crear pginas web con
tecnologa XML, aunque tambin se comentan algunas de las herramientas ms tiles para los desarrolladores web, sobre todo las que tienen la atractiva condicin de
ser gratuitas.

Condicionantes
XML es una tecnologa muy compleja y amplia, siendo imposible su tratamiento en
un solo libro. Por este motivo se ha optado por un anlisis de nivel de iniciacin
eminentemente prctico, dejando de lado las discusiones tericas y estudiando el
tema desde el punto de vista de la ejecucin del cdigo XML desde el lado del
cliente, siendo ste el motivo de la decisin de trabajar con lnternet Explorer,
nico visualizador XML disponible en la actualidad con carcter general.
Una vez asentados los conceptos utilizados en este libro, el lector estar en
situacin de realizar pginas web con tecnologa XML que puedan ser visualizadas
en un modelo cliente-servidor clsico, ms orientado a que sea procesado del lado

Antes de comenzar

del cliente, aunque tambin se explican soluciones para su gestin del lado del ser- l
vidor, teniendo como principal ventaja este ltimo sistema la posibilidad de que el
cliente utilice cualquier tipo de visualizador, aunque no soporte tecnologa XML.
Un libro como ste, que trata de introducir al lector al complejo mundo del
XML, se plantea la existencia de, como mnimo, dos tipos de lectores: los que ya
conocen el mundo del diseo web (siempre conocedores del lenguaje HTML y ocasionalmente de otros lenguajes) y los que entran por primera vez en el entorno de
la publicacin a travs de lnternet (desconocedoresde toda tcnica relacionada con
la Web).
Ambos tipos son contemplados como posibles lectores y tenidos en cuenta
constantemente en los ejemplos y explicaciones, siendo una experiencia particular
del autor la imparticin de cursos sobre XML a alumnos encasillados en ambos
tipos.
El lector ideal de este libro es el que conoce la mayora de los aspectos relacionados con el mundo de lnternet y del diseo web, pero sin necesidad de dominar
ningn aspecto concreto de esta tecnologa. Es suficiente con ser un aprendiz de
todo)), sin importar ser un maestro de nadan.
El conocimiento de los conceptos relacionados con los lenguajes de programacin web, como Java, JavaScript, VBScript, VisualBasic, ASP o CGI, pueden ser
importantes, ya que cada vez que se trata alguna de estas tcnicas no es posible
incluir un manual de aprendizaje adjunto. No obstante, slo con tener conocimientos bsicos de HTML es suficiente para seguir, desde el principio, las explicaciones y ejemplos del libro. Los lectores que no conozcan nada de este tipo de tcnicas tienen que hacer un esfueno suplementario para aprovechar las lecciones de
cada captulo, aunque, segn mi experiencia, teniendo claros algunos conceptos
bsicos de diseo web y del modelo cliente-servidor, es posible terminar su lectura
con un aprovechamiento prctico.
Tambin se ha tenido en cuenta el nivel de conocimientos del lector, dentro de
lo posible, existiendo constantes consejos para que los lectores ms avanzados pierdan el menor tiempo posible en la lectura de las partes ms bsicas del libro, normalmente coincidentes con los primeros captulos, y tambin incluyendo notas de
aviso con posibles atajos, ampliaciones de conocimientos o ayudas precisas.
Aunque se van a utilizar trminos hispanos en todo el libro, dada la importancia del idioma ingls en todo lo relacionado con el diseo web en general, y el XML
en particular, constantemente se har referencia a los trminos originales anglosajones, distinguindose por figurar en cursiva. Slo en los casos en los que se considere que no existe traduccin adecuada se utilizar la terminologa original directamente, sobre todo en las denominaciones por siglas.

Objetivos
Aunque ya se han explicado los objetivos del presente libro, quiero resumirlos en un
nico propsito: proporcionar los conocimientos prcticos necesarios para disear
pginas web con XML, lo que presupone que se ha eliminado toda la teora no
necesaria, y tambin, que se utilizan herramientas y aplicaciones web totalmente
gratuitas y disponibles en la actualidad.

XML. Iniciacin y referencia

su carcter de iniciacin en la tcnica del XML. extremadamente com) pleja,Dado


se considera tambin objetivo de este libro servir de base adecuada para
seguir profundizando en XML por otros medios.
3
o

Contenido

El presente libro est organizado en ocho captulos, que sirven principalmente de


tutorial sobre el XML, o sea, que deben ser ledos en forma secuencia1 para obtener
el mximo aprovechamiento, aunque en algunos casos concretos pueden ser abordados puntualmente, ya que tambin ha sido organizado para servir de referencia
tcnica. En los dos apndices finales del libro se incluye informacin adicional y til
sobre el XML.
El Captulo 1 sirve de introduccin al entorno de los lenguajes de marcas y del
diseo de pginas web.
En el Captulo 2 se explican los conceptos generales del X M L , incluyendo su
normativa, sus reglas, su terminologa ms importante y su relacin con el HTML.
En el Captulo 3 se explica cmo crear pginas web a partir de documentos
XML relacionados con hojas de estilo CSS.
En el Captulo 4 se trata la creacin de pginas web utilizando las ventajas de
los documentos XML y las facilidades del diseo H T M L .
En el Captulo 5 se estudia la definicin de tipo de documento, capaz de definir las condiciones que deben reunir los datos de los documentos XML.
En el Captulo 6 se comienza a trabajar con el lenguaje extensible de hojas de
estilo XSL, verdadero procesador de los documentos XML.
En el Captulo 7 se sigue trabajando con las opciones avanzadas del lenguaje
extensible de hojas de estilo XSL.
En el Captulo 8 se exponen algunas de las tecnologas complementarias al
X M L , incluyendo los esquemas, su tratamiento en el servidor, su gestin por ASP,
los espacios de nombre, los enlaces extendidos, los formularios extensibles, DOM,
SAX, vocabularios especficos (VML, MathML, SVG, SMIL), etc.

Complementos
Dando por sentado que los lectores disponen de una conexin a Internet, los
ejemplos y cdigos indicados en el propio libro estn disponibles en la direccin
htt~://[Link],espacio del dominio de la pgina personal del autor. Cualquier usuario y visitante puede comprobar en tiempo real los ejemplos propuestos
y recoger los listados de los cdigos comentados en el libro para ahorrarse el
tecleado del cdigo, si as lo desea.
La visita del lector de este libro a [Link] no slo es til para observar los
ejemplos y para recoger los correspondientes cdigos, ya que es el lugar donde se
incluirn las modificaciones, rectificaciones, ampliaciones... relacionadas con el
libro, como pueden ser las relativas a nuevas normas o nuevos navegadores.
En el mismo dominio, donde estn disponibles los ejemplos del presente libro,
se encuentran diversos artculos, guas, ejemplos y tutoriales adicionales sobre
temas de diseo web, entre otros.

Antes de comenzar

Convenios utilizados
Se ha seguido una serie de anotaciones y convenios dirigidos a facilitar la lectura y
comprensin del libro.
Entre los ms importantes se han considerado los siguientes convenios:
La sintaxis y formato de los diferentes componentes de los cdigos de los
documentos se han incluido en recuadros sombreados, con un tipo de letra
similar al utilizado por la mayora de los editores simples de texto.
Los trminos correspondientes a los listados de cdigo que se incluyen
entre el texto se distinguen por tener un tipo de letra monoespaciada.
Los conceptos nuevos e importantes se distinguen por marcarse con estilo
negrita.
Los trminos y vocablos en ingls se diferencian del resto por ir en estilo cursiva.
Se incluyen figuras y tablas complementarias a los textos y cdigos.
En los apndices se incluyen resmenes de las normativas HTML y CSS, as
como relaciones de recursos y enlaces tiles para profundizar en el XML.
Entre el texto, cuando se considera oportuno, se intercalan notas que llaman
la atencin al lector sobre diversas cuestiones.
Las notas posibles son:

PARA LOS MANITAS: Estas notas estn pensadas para los lectore
afn investigador. Se trata de ideas para explorar nuevas posibilidades
que repercutirn en un
or dominio del tema tratado.
AHORRE TIEMPO: Aqu se incluyen determinadas ideas para ahorrar
tiempo a la hora de llevar a cabo determinadas tareas. S i est interesado en hacer las cosas lo ms rpidamente posible, no pase por alto estas
llamadas.

%.e=s.

m*,o-",

-"

*e"*-

S*

[Xilil

Origen y actualidad
del X M L

UANDO empiezo mis cursos sobre XML suelo hacer la misma pregunta:
alguien sabe qu es el XML?, a la que la mayora de las veces me responden algo como: XML es una especie de HTML avanzado.
El motivo principal de que mucha gente no tenga clara la utilidad y las posibilidades reales del XML suele ser la omnipresencia del HTML en el diseo de las pginas web, sobre todo entre los usuarios no profesionales, ya que la mayora de ellos
han entrado en el mundo del diseo de pginas web muy recientemente, sacando
la lgica impresin de que el HTML estaba ah desde siempre, siendo el nico lenguaje de marcas existente y, en consecuencia, cualquier otro lenguaje de marcas
ms moderno debe ser una ampliacin del anterior, sobre todo si se denomina con
siglas parecidas.
Creo que para situar al lector en el verdadero camino del entendimiento de la
realidad del XML, antes de empezar a trabajar con ejemplos prcticos, es preciso
que se expliquen algunas cuestiones bsicas sobre el tema. Aunque no es imprescindible el conocimiento de las condiciones en las que se ha originado el XML, s es
una condicin complementaria importante para comprender mejor el tema, por lo
que este primer captulo est principalmente dedicado a introducir al lector en el
mundo de los lenguajes de marcas, en los conceptos principales de la Web y en la
situacin actual del XML.
No obstante, las pequeas posibles dudas que puedan quedar despus de la
lectura de este primer captulo, como por ejemplo: cmo se hace una pgina web
basada en XML?, quedarn resueltas segn se avance en la lectura del libro.

XML. Iniciacin y referencia

PRECAUCIN:
Los lectores que ya conozcan las bases principales de la
Web, sobre todo los que disean con HTML y otros lenguajes tpicos de
Internet, captarn desde el primer momento, sin problemas, todos los
trminos y cuestiones que se van a explicar, pero el lector que entre con este libro
por primira vez en este apasionante mundo, puede tener lagunas o dudas al principio, ya que no considero adecuado escribir un tratado de introduccin tan completo que, a costa de dejar este punto totalmente aclarado para cualquier usuario,
se reduzca tanto el espacio para los otros captulos, que d lugar a un libro que
sea una extensa y magnfica introduccin con algunas pequeas partes prcticas,
pues se pretende precisamente todo lo contrario.

Por supuesto que el lector impaciente o el usuario que ya conoce el origen del
diseo web tiene mi permiso para pasar al captulo siguiente, aunque estoy convencido de que la lectura de este primer captulo es imprescindible para tener un
conocimiento mximo sobre XML, por lo que todo lector que decida saltarse este
captulo, aunque pueda crear sus documentos XML perfectamente, corre el riesgo
de decir cosas similares a esos alumnos despistados a los que he hecho referencia al
principio.

LOS LENGUAJES D E MARCAS


Para entender la evolucin del XML hay que retroceder a la poca en la que los sistemas informticos eran todos propiedad de las empresas que los creaban (la aorada dcada de los sesenta), ya que, en realidad, las ideas de esta nueva tecnologa son de sobra conocidas desde hace muchos aos y llevan dcadas dando buenos resultados en mltiples proyectos.
Siempre ha existido una diferencia en el enfoque del tratamiento de los documentos, dependiendo de que se diese ms importancia al formato que al contenido, o viceversa, aunque lo ideal es que los dos conceptos puedan ser controlados
adecuadamente, no siendo esto ltimo fcil de conseguir. Es muy corriente or
decir que un documento informtico es tonto, ya que slo se preocupa de su
representacin externa, sin ser consciente de su contenido y, aunque suele ser
as, como veremos ms tarde, existen soluciones para evitarlo.
Desde que se utiliza la tipografa en los medios informticos, el autor no slo se
dedica a introducir el texto, ya que normalmente tambin indica cmo desea que
salga en la pantalla y/o en el papel.
Es, por tanto, necesario que el archivo que guarda el documento sea capaz de
soportar tanto el contenido como la descripcin del formato. Aunque en la adualidad, con los sistemas operativos basados en una interfaz grfica, es muy corriente utilizar sistemas que manejan representaciones del documento iguales a su
reproduccin definitiva, conocidos como W S l W G (What You See 1s What You
Get, lo que ves es lo que obtienes), antes no era as. A este sistema anterior se le
conoce como marcado de formato.
El sistema de marcado de formato se basa en marcar el texto con instrucciones precisas que describen cada una de las condiciones que se desea aplicar a las
partes del texto, tales como el tipo de letra o su estilo. A estas marcas se las deno-

CAP~TULO111 Origen y actualidad del XML

mina etiquetas (tags), cdigos o marcas, y son un proceso vlido si se trata de


reproducir un documento con un formato determinado por una pantalla o impreso
en papel. Los usuarios que tuvieron el placer de trabajar con las versiones 4.2 y 5.1
de WordPerect para DOS, conocen perectamente el modo de trabajo con sistemas de marcado de formato.
El mismo problema de decisin sobre la idoneidad de describir el formato o el
contenido de un documento se puede trasladar a las marcas. Si slo se utilizan marcas como tamao de letra de 16 puntos, o margen derecho de 2,5 centimetros, o alineacin centrada, por ejemplo, el documento tendr un aspecto adecuado, pero no podr saber qu tipo de informacin contiene. Si, por el contrario,
las marcas se utilizan slo para describir conceptos como precio, nombre o
ttulo, por ejemplo, el sistema inforrntico es consciente del tipo de datos que
incluye el documento, aunque no ser capaz de darle un aspecto correcto.
En lo que respecta al objeto de este libro, podemos dividir los lenguajes utilizados en la computacin en dos tipos: los que se utilizan para crear aplicaciones, tambin conocidos como lenguajes de automatizacin o lenguajes de programacin
(VisualBasic, Pascal, C, Cobol, etc.), y los que sirven para marcar documentos, siendo estos ltimos los que nos interesan especialmente.
Los lenguajes de marcas son muy antiguos, habiendo sido utilizados en la
descripcin de documentos a travs de medios informticos desde que se utilizan
los sistemas de tratamiento de textos, o sea, casi desde el principio de los tiempos
(los tiempos de la computacin, claro, o lo que es lo mismo, hace poco ms de dos
dcadas).
El procesamiento de los textos es una parte de la computacin dedicada a
automatizar la creacin y la edicin de los documentos que incluyen principalmente
textos. En este grupo de aplicaciones se incluye una amplia gama de herramientas
que abarca desde los ms sencillos procesadores de texto en ASCll puro hasta las
ms sofisticadas utilidades que aprovechan las bases de datos, los hipertextos, las
hojas de clculo, las funciones de dibujo, las correcciones automticas... y otras
muchas caractersticas extras.
A finales de los sesenta, la empresa IBM encarg a Charles F. Goldfarb que
diseara un sistema estndar para la gestin y edicin de documentos, ya que
muchos sistemas de IBM no podan comunicarse entre s debido al distinto sistema
de descripcin que utilizaban. Charles Goldfarb, auxiliado por Ed Mosher y Ray
Lorie, cre un lenguaje nico de marcado que permitiese entenderse con los diferentes documentos generados por distintos sistemas y plataformas, reuniendo en
una misma etiqueta el formato y la descripcin del contenido. A este desarrollo se
le denomin marcado generalizado, donde se acu el trmino lenguaje de marcas
(markup language), siendo una alternativa al marcado de formato y al WYSIWYG.
La idea del marcado generalizado era que cada etiqueta sirviese tanto para describir el aspecto exterior del texto (el formato) como para indicar su contenido (el
tipo de informacin o dato), por lo que se dise un sistema muy completo y general capaz de dar solucin a cualquier tipo de documento. La solucin utilizaba etiquetas de descripcin de datos relacionadas con plantillas de estilos de formato,
consiguiendo as los dos objetivos. A este lenguaje se le denomin CML (Generalized Markup Language, lenguaje de marcado generalizado), siglas que curiosamente coinciden con las iniciales de sus autores (Goldfarb, Mosher, Lorie).

XML. Iniciacin y referencia

Hasta 1974 se continu el desarrollo del GML, y entre 1978 y 1986, el propio
) Coldfarb
coordin el equipo tcnico que desarroll la norma internacional ISO
8879, que describe lo que desde entonces se conoce como SGML (Standard Gene3
ralized Markup Language, lenguaje de marcado generalizado estndar). Este equiO po sigue desarrollando en la actualidad el SGML y las normas asociadas al mismo.

EL MARCADO DE DOCUMENTOS
Las marcas son los cdigos especiales que indican al programa cmo debe tratar
a su contenido, y as, si se desea que un texto aparezca en cursiva, cada aplicacin
introduce al principio y al final del texto correspondiente una marca que le permita mostrarlo en pantalla e imprimirlo adecuadamente. Lo mismo ocurre con las
tablas, los mrgenes, las imgenes, los tipos de letra, los enlaces, etc.
Los usuarios de WordPerfect conocen perfectamente este sistema de marcas, ya
que las aprovechan desde las primeras versiones del programa para controlar a la
perfeccin sus documentos. Word tambin permite ver y tratar directamente algunas de las marcas que utiliza, aunque muchas menos de las que en realidad utiliza
internamente. No obstante, las marcas que maneja cada sistema propietario son
intratables directamente por el usuario desde el cdigo interno del archivo que describe el documento.
PARA LOS MANITAS: Recomiendo al lector que abra, con un editor de
textos ASCII, un documento creado con cualquier programa de tratamiento de textos comercial, y guardado en su propio formato binario,
para comprobar la imposibilidad de edicin directa de sus marcas.
- ---- - - - .-

--

--

---7

Conocer las marcas que utiliza cada programa de tratamiento de documentos


hace posible disear filtros que permiten traspasar la informacin de unos formatos de marcas a otros sin perder el diseo. La forma que IBM cre para solventar
este problema de incompatibilidad entre documentos se basaba en tratarlos con
marcas accesibles desde descripciones universales TXT, o sea, basadas en cdigo
universal ASCII, haciendo as posible su tratamiento desde cualquier sistema y plataforma.
Desde que el GML cay en manos de ISO y lo convirti en un estndar oficial
en los aos ochenta (ISO 8879), denominndose SGML, esta norma de carcter
general se aplica para disear lenguajes especficos de marcas, cuyos ejemplos
ms conocidos son el HTML (HyperText Markup Language, lenguaje de marcado
con hipertexto) y el RTF (Rich Text Format, formato de texto enriquecido).
La importancia de marcar adecuadamente la informaci6n se puede ver con
un simple ejemplo. Si se nos presenta la siguiente informacin:
L. Aubert
Les 1P~endesdu Faouet
r l e s t U l'intrrieur de la Bretagne qu'il fput alAet, s i l'cm veut
,loir une iA4e #-lece qu'tGtciit jarli=r la Celtie.

O.-

'113SV
io$!pa ~ a ! n b l a napsap
~
~ a l o ~ l u ouapand
3
as ' 1 ~ 3 iilpuylsa
s
la uill
snfa as !S 'anb so$uawn3op apmulawiou 'uo!~ilwioju!ap uopd!i3sap
ap so!aldwo~ silwqqs uos swiaw ap sa!an8ual sol : g l ~ v l y o d w ~

--

--

---- - -

.sa!en2uap ouo3 aluauilen2! ueu!jap as anbune 'uo~~ez!geuiolne


ap
o uopeui~~2o
ap~ sakn2ual
d
sol e saluap!nba uos ou w3~ewap sa!en2ual sol
.saplap sol sowepualua ou A s a x ~ i , ~
souedas
j
ou anbune ' u o ! 3 ~ ~ ~ e(
o ~els?
u ! aua!luo3 anb ~apua~dwo3
p y j syui o y ~ n u sa
i

XML. Iniciacin y referencia

es la descripcin de una acumulacin de arena, el nombre de una persona, y, de


paso, nos indica con claridad el principio <NOMBRE-ALUMNO> y el final
</NOMBRE-ALUMNO> de la marcacin, que se distinguen en que la marca del final
incluye una ((barra diagonal)) ( I ).
El sistema de marcacin descrito puede meiorarse, ya que existe la posibilidad
de aprovechar la etiqueta para inclu/r atributo; interns, ahorrando a4 otras etiquetas. En el ejemplo:

la utilizacin del atributo Nonos permite evitar que la descripcin sea ms compleja, como ocurrira si no existiese, segn se puede ver en el siguiente ejemplo:

---

IMPORTANTE: En el Captulo 2 se discutirn las ventajas e inconvenientes de la utilizacin de los atributos.

Una de las caractersticas ms importantes de los sistemas de marcado de textos y documentos es que es un proceso muy sencillo, fcil de modificar y bsicamente prctico en si mismo, no necesitando de aplicaciones o herramientas adicionales, salvo un sencillo editor de textos. Por ejemplo, si alguna vez recibimos un
archivo (o un papel escrito, o un mensaje de voz, o una imagen, o cualquier otro
soporte) con el contenido siguiente:
q n n n u n . J m m-=-[Link]->

Ram6n Ponzero </-1PQIPPE>


<FECBA> 15-09-2000 </<D8STIBATARIO> Juan Prinaro </DESTINATARIO>
<AWIQni> I n v i t a c i n a m i cumpleaos </ABUHSb
<RJEIUi->

< c o m w >
Te recuerdo que e l pr6ximo jueves te espero en casa para c e l e b r a r m i
[Link]:ios

< /C-Do>

</m->
no necesitaremos de mayor explicacin para comprender su significado.
Pero, adems de permitir una rpida comprensin, aade una gran facilidad de
edicin, ya que es muy fcil, en el caso de que se haya olvidado algn detalle,
insertar ms informacin o modificar la existente.
Visto todo lo anterior, se puede decir que existen tres utilizaciones bsicas de los
lenguajes de marcas:
o
o
o

Los que sirven principalmente para describir su contenido.


Los que sirven ms que nada para definir su formato.
Los que realizan las dos funciones indistintamente.

CAPTULO 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 tpicos del segundo tipo y,
aunque no lo parezca, el HTML es la muestra ms conocida del tercer modelo.
Como la mayora de los lectores que conozcan el lenguaje HTML estarn pensando que hay un error y que el HTML debe encasillarse en el segundo patrn, no
queda ms remedio que aclarar algunas cuestiones sobre el HTML.

EL LENGUAJE HTML
Otro de los sucesos importantes en nuestra historia de los orgenes del XML es la
aparicin del lenguaje HTML.
Fue a finales de los aos ochenta cuando Tirn Berners-Lee aplic las normas del
SGML para disear el HTML como solucin para publicar las investigaciones de
muy diversas fuentes y autores que se producan en el CERN (nombre proveniente
de la denominacin inicial Conseil Europen pour la Recherche Nuclaire, aunque
en la actualidad se conoce como Organisation Europenne pour la Recherche
Nuclaire, o European Organization for Nuclear Research, o sea, Organizacin
Europea para la Investigacin Nuclear).
En efecto, en el ao 1989, el investigador del CERN Tim Berners-Lee, se propuso poner fin a la gran dificultad que exista entre los investigadores para publicar
sus documentos, decidindose por un sistema basado en el hipertexto, que permite acceder a una determinada informacin ms directamente que un tpico sistema
secuencial. Otro investigador, llamado Anders Berglund, que conoca 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 perodo
de tiempo. Tambin dio el nombre de World Wide Web (telaraa de mbito global), igualmente conocido como WWW o W3, a su sistema de hipertexto para la
Red Informtica Mundial. La sencillez de los dos procesos ha sido la clave principal
de su xito.
El lenguaje HTML es originariamente un subconjunto del ms completo SGML,
especializado en la descripcin de documentos en pantalla a travs de marcas
(tags, etiquetas). El proyecto inicial se basaba en una coleccin de etiquetas (en perfecto ingls) que permitan describir documentos de texto y vnculos de hipertexto
que hacan posible el desplazamiento en forma jerrquica entre diferentes documentos, siempre con independencia de la mquina. Conociendo las normas de
actuacin de estas etiquetas, y disponiendo de un sencillo editor ASCll de textos, se
pueden confeccionar fcilmente documentos HTML.
La facilidad de uso y la particularidad de que no es propiedad de nadie, hizo al
HTML el sistema idneo para compartir informacin en Internet. La expansin de
lnternet le ha dado una posicin de privilegio y ha hecho que la idea inicial se modifique considerablemente.
En principio, la intencin de HTML era que las etiquetas fueran capaces de marcar la informacin de acuerdo con su significado, sin importar cmo 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 ttulo del

'

XML. Iniciacin y referencia

documento, los ttulos de los apartados, el autor del documento, los textos resal<HX>, <ADDRESS>,
tados ... eran marcados por las etiquetas <TITLE>,
<STRONG>, etc., dejando a cada visualizador web (browser) la tarea de dar formato al documento segn su criterio.
Esto daba lugar a que una aplicacin poda presentar una etiqueta <H2> como
texto centrado, con tamao de 20 puntos y color rojo, mientras que otra lo poda
mostrar alineado a la izquierda, con tipo de letra Arial de 16 puntos y color azul, por
ejemplo. Una etiqueta <STRONG>podra tomarse como cursiva, negrita o color
verde oscuro, por ejemplo, segn la interpretase el visualizador empleado.
Este proceso produca presentaciones diferentes, pero eran armnicas en cada
caso, permitiendo controlar fcilmente su contenido. Si una persona o un motor de
bsqueda quera conocer el ttulo del documento, el autor de la pgina o las cabeceras de los captulos, siempre buscaba en el cdigo las etiquetas <TITLE>,
<ADDRESS>O <HX>. Adems, si a alguien no le gustaba la idea de dejar a cada
aplicacin la decisin de cmo 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
<FONT>) O las ms completas hojas de estilo en cascada, ms conocidas como CSS
(Cascading Style Sheets).
Por diversos motivos, los creadores de los navegadores fueron aadiendo ms
etiquetas HTML dirigidas a controlar la presentacin, como <FONT>, < I > ,
<CENTER>, <XCOLOR>,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 ms
dirigido al control de la presentacin. Ahora es ms difcil encontrar al autor o las
cabeceras de los captulos de un documento, pues casi todos los textos y documentos se describen con las etiquetas <P>, <FONT> y <TABLE>, 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 aadimos que para facilitar la vida a los usuarios, los analizadores
sintcticos de las marcas HTML que incluyen los navegadores permitieron saltarse
algunas normas sin que el propio usuario lo notase (por ejemplo, permiten trabajar
slo con la etiqueta <P>, cuando lo correcto es que se necesiten las etiquetas de
principio y de final: <P> y </P>), 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 funcin inicial (tambin por otros motivos no comentados), no le ha quedado ms remedio al Consorcio World Wide Web (W3C) que acometer el diseo 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 versin [Link] el ao 1998.

IMPORTANTE: Es mucho ms 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 aplicacin
de SCML.

[HTML) [ RTF ]

!MathMll ( CDF 1

SGML

NathMl) [ RTF )
Figura 1.3.

Ahora, el HTML
es una entidad
con mucha
autonoma
propia, ms
difcil de
controlar.

EL LENGUAJE XML
Para entender mejor el X M L hay que olvidarse un poco del HTML (pero slo un
poco).
En la situacin actual, en teora, HTML es una aplicacin del XML especializada
en la presentacin de documentos para la Web, mientras que XML es un subconjunto de SCML ms fcil de tratar que este ltimo y especializado en la gestin de
todo tipo de informacin para la Web. En la prctica, HTML tiene una parte dentro
de XML (y en consecuencia queda dentro de SCML) y otra parte fuera de XML (y
en algunas ocasiones tambin fuera de SCML).
Para reconducir esta situacin, el grupo W3C ha publicado reglas expresas
para distinguir el HTML que sigue rigurosamente las normas del XML, denominndolo X H T M L (Extensible HyperText Markup Language), que explicado en
forma muy breve, no es ms que una reformulacin de HTML 4 dentro de las normas de XML.
El objetivo del XML no se limita a ser una especificacin que solucione las
salidas de tono del HTML, ya que ese es el propsito del XHTML, pensado tambin
para servir de cdigo unificado para los muy diversos aparatos y utensilios que cada
vez ms se van conectando a Internet, como los aparatos de televisin, los hornos,
los frigorficos, 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. Iniciacin y referencia

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

SGML

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 especficos para
determinadas tareas, como el W M L (Wireless Markup Language) para telfonos
mviles, el V M L (Vedor Markup Language) para diseo grfico 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 utilizacin en XML de un sistema de marcado (etiquetas) muy parecido al del
HTML, por su demostrada facilidad de interpretacin, 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 cdigo 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 cdigo eq"~am6ri<


m
R
,
cmarhub
,

'

y se compara con un cdigo HTML que tenga el mismo cometido, como el siguiente:

es fcil adivinar que cualquier observador no notar gran diferencia, porque el que
las etiquetas estn en diferentes idiomas es un detalle que no ocurrira si este
ejemplo se hubiese desarrollado en un libro escrito en ingls.
Y hablando del idioma ingls quiero recordar que, dada la incuestionable
influencia del idioma ingls en todo lo relacionado con el diseo web, aunque en
este libro se van a emplear mayoritariamentetrminos espaoles, constantemente
se indicarn sus referencias anglosajonas en cursiva, ya que en muchos documentos se hace referencia a dicha terminologa, que siempre es ms precisa y en
muchas ocasiones tiene dificil traduccin.

HTML Y XML
En algunas ocasiones, cuando no se conocen bien las posibilidades del HTML y del
XML, suele surgir la cuestin: 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 disear una pgina web
que incluya informacin sobre tres libros.

XML. Iniciacin y refereccia

A travs del cdigo HTML se puede crear una tabla como la siguiente:

Esta sencilla tabla expone de forma muy clara y visual la informacin de los tres
libros. Es una buena solucin para mostrarla en la pantalla, pero es ms difcil de
tratar en el cdigo, debiendo poner mucha atencin para, por ejemplo, localizar los
nombres de los autores o los ttulos.
La misma informacin, puesta en formato XML, podra quedar como se indica
en el siguiente cdigo:

La principal diferencia que se puede apreciar ahora es que queda mucho ms


claro qu tipo de informacin incluye cada dato, siendo ms fcil, por ejemplo, buscar los precios (para hacer clculos) o los ttulos (para sacar un listado) en el cdigo.
Sin embargo, con este cdigo nadie puede saber cmo se va a mostrar en la pantalla. Podra 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.
Recomendacin
de la versin
4.01 de HTML.
La actual normativa de HTML se encuentra en su versin 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 direccin: [Link]/TR/htm14/.
La ltima (y primera) versin 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 especificacin en la direccin: [Link]@TR/REC-xml.
Existe una buena traduccin al espaol de la especificacin XML 1.0 en la
direccin: [Link] (ver la Figura 1.9).

Figura 1.B.
Recomendacin
de la versin 1.O
de XML.

XML. Iniciaci6n y referencia

Estenvible hlarkup Language (SI\IL) 1.0

Figura 1.9.

Traduccin
espaola de la
recomendacin
XML 1.0.

IMPORTANTE: Al cierre del libro se ha publicado la Segunda Edicin de


XML 1.0, que no incluye los errores de la recomendacin primera. Se
puede ver en: [Link]

- - -- --

- --

PARA LOS MANITAS: Sera adecuado acceder a las especificaciones de


HTML y XML para ver su contenido. Lo ms sensato es bajarse las
pginas web correspondientes para tenerlas disponibles en el propio
equipo.

SITUACIN ACTUAL
XML se termin de desarrollar en el mes de febrero de 1998, pero como suele ocurrir con todas las nuevas tecnologas, para poder ser utilizada lo antes posible, se
aprovecharon los sistemas que ya existan, 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 versin 1.O de XML en vigencia, todava se
encuentran en desarrollo algunas de las especificaciones que complementan al
XML, como son XSL, SVC, XForms, XLink o XPointer, pero lo que ms condiciona
su expansin es que no existen visualizadores web que lo incorporen en su totalidad, siendo la versin 5.x de Microsoft lnternet Explorer (IE5), el nico (de los ms
utilizados) que lo soporta parcialmente.
Se puede decir sin dudar que Microsoft es la empresa que ms ha apostado al
principio por la utilizacin del XML, ya que, adems de admitirlo desde IE4 y

CAPITULO 111 Origen y actualidad del XML

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

PARA LOS MANITAS: En el Apndice 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 gestin del PWS (Personal Web Server) o en los Canales activos (Active Channels) de Windows. En la sede de Microsoft ([Link]) se puede
acceder a muchas aplicaciones, herramientas, artculos, tutoriales e informacin
variada sobre XML.
Otras empresas punteras en computacin e Internet, como Netscape
([Link]~[Link]),Adobe ([Link]), IBM ([Link]), Sun
([Link]), Corel ([Link]) o Autodesk ([Link]), estn
apostando fuerte por XML y estn desarrollando aplicaciones y herramientas muy
variadas relacionadas con XML.
En esta puesta al da con la tecnologa XML, la organizacin ms 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 ms importante relacionada con el diseo web. Acceder a su direccin en
lnternet ([Link]) debe ser una obligacin regular para todo desarrollador web
(ver la Figura 1.10).
,

WCA-Z

-. \V3C Launches . U l L Prolocul Aclivity

Figura 1-10.
Pgina principal
del Consorcio
WWW.

XML. Iniciacin y referencia

sede del W3C se puede encontrar mucha informacin (incluyendo datos


) sobreEnlalapropia
historia de lnternet y aplicaciones gratuitas) que es relativamente

i
'

fcil de manejar, existiendo un buscador especializado para ayudar en la localizacin


de informacin puntual.
IMPORTANTE: Una de las caractersticas ms importantes de los documentos que publica el W3C es que son normas de dominio pblico,
totalmente libres de uso.

Los documentos que se publican en el W3C se denominan informes tcnicos


(Technicals Reports), pudiendo acceder a ellos en la direccin [Link]/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 prctica suelen tener la
misma fuerza y el mismo valor prctico. 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 organizacin o grupo,
desean publicar algn desarrollo para ser ofrecido al pblico, 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 inters 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 recomendacin y se fija un plazo para su aplicacin definitiva. Pasado el plazo establecido, la especificacin se publica como recomendacin, adjudicndosela un nmero de versin que la identifique con exactitud,
que, si es la primera, ser la notacin 1.O.
PARA AHORRAR TIEMPO: Existe una seccin en W3C que incluye traducciones de sus recomendaciones, siendo una gran ayuda para los
diseadores que prefieren otro idioma distinto del ingls. Su direccin

COMENTARIOS FINALES
Hemos visto una breve (demasiado breve) historia de los lenguajes de marcas
para comprender cmo se ha llegado a desarrollar el lenguaje XML.
Tambin se han comentado algunos ejemplos sencillos de marcado de informacin que demuestran la utilidad prctica del sistema y la facilidad de construccin
de los documentos definidos con marcado de etiquetas.
Se ha comentado varias veces la relacin estrecha que mantiene XML con
HTML y los motivos de ese vnculo, 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 aplicacin XML muy fcil de aprender a utilizar y muy eficaz en la
publicacin de documentos sin grandes exigencias (textos, imgenes y algo de multimedia), sobre todo si son de tipo esttico, o sea, que no precisan de interaccin
con el usuario. Por el contrario, XML es un sistema abierto a cualquier tipo de utilizacin, pudiendo ser utilizado en servicios ms complejos o que precisen de condiciones exclusivas (gestin de bases de datos, consultas condicionadas, intercambio de formatos, aplicacin a travs de medios simplificados, etc.), aunque precisa
un aprendizaje ms laborioso.
Concretando, se puede decir que XML es un sistema abierto de marcado de
informacin general. Por el contrario, HTML es un lenguaje cerrado creado para
marcar informacin web hipermedia.
Tambin 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 diseadores web que trabajan con XML.

nas web y XML se ir generalizando entre los profesionales del sector


dedicados al diseo de servicios webn.

En este intento de comprender la situacin en la que se encuentra el XML, no hay


que olvidar que todava estn en proceso de desarrollo algunas normativas que permitirn complementar XML y proporcionarle toda la fuerza que potencialmente tiene.
En realidad, ltimamente XML se estaba volviendo necesario. En los primeros
tiempos de la computacin, antes de Windows, las computadoras personales eran
poco potentes, se equipaban con sistemas monotarea y, en consecuencia, se trabajaba con una sola aplicacin 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 estndar para mover o compartir la
informacin entre webs diferentes. XML es la respuesta que permite utilizar mltiples webs al mismo tiempo. Se dice que en un futuro prximo XML ser el vinculo
que har posible conectar las entidades que estn dispersas por Internet.
Aunque es fcil de entender, ahora que XML no es un HTML avanzado, ni nada
parecido, todava no se ha dejado claro cmo funciona este lenguaje, capaz de
introducirse en cualquier lugar que trate con documentos electrnicos, ya que
ste es el principal objetivo del presente libro y precisa del estudio de los captulos
siguientes.
Pero, antes de continuar, recomiendo al lector que recoja en la direccin
[Link] 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 cdigos 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 ms cmodo utilizar alguna herramienta especfica
para el XML, como es EXml de la empresa CUESoft ([Link]), gratuita
y muy fcil de utilizar, aunque est en ingls.

XML. Iniciacin y referencia

Termino este captulo con una anticipacin del prximo:


;RESUMEN> XML es informacin sobre informacin </RESUMEN>
<RESUMEN> XML es metainformacin </RESUMEN>
<RESiJMEN> XML es "metadatos" </RESUMEN-,

Figura 1.11.
EXml es un
editor XML
sencillo y
gratuito.

."1

I .-',M

L..

, : . , .m

Conceptos principales
del X M L

UNQUE ya sabemos bastante historia como para quedar bien en una


conversacin de sobremesa sobre el origen del XML y hemos visto las ideas
ms importantes que rodean al XML, en realidad, todava no se ha contestado con claridad a la pregunta ms bsica: qu es el XML?
El World Wide Web Consortium (W3C) no nos resuelve el problema, ya que su
descripcin del XML es:
El Lenguaje Extensible de Marcas (XML) es un subconjunto de SGML. Sus
objetivos son habilitar el SOML genrico para que pueda ser servido, recibido y
procesado en la Web de la manera que no es posible con HTML. XML ha sido
diseado para facilitar la implementacin e interoperatividad con SGML y HTML.
Yo no creo que exista una respuesta exacta y nica para describir esta tecnologa, pero, en mi opinin, la que ms se acerca a una definicin rigurosa es:
El lenguaje XML es un lenguaje de marcas, basado en SOML, capaz de describir cualquier tipo de informacin en forma personalizada, aunque tambin es un
metalenguaje de mercado capaz de describir lenguajes de marcas adecuadas para
aplicaciones concretas.
No obstante, a m me gusta ms ver la especificacin XML como un conjunto
de normas que permiten tratar informacin muy diversa desde muchos puntos de
vista y sistemas diferentes, siendo el propio diseador el encargado de decidir el
proceso ms adecuado a cada caso y, en consecuencia, XML es un sistema complejo de descripcin de informacin libre y rigurosa.
Por ejemplo, con XML un usuario determinado se puede disear su propia
coleccin de etiquetas para controlar la base de datos de su librera, pero tambin

XML. Iniciacin y referencia

puede utilizar XML para sacar por lnternet una novela, aunque tambin puede
usar XML para guardar la informacin del registro de un programa informtico, y
tambin puede aprovechar XML para aadir caractersticas adicionales en una pgina web HTML. y no habra muchos problemas en aplicar XML para transformar un
gestionar una pre~ XHTML,
~
inciuso se podra uiar XML
documento T x Fotro
sentacin multimedia, o, si se desea, con XML se puede disear informacin para ser
mostrada en las pequeas pantallas de los telfonos mviles, aunque otras personas
emplean XML para generar mapas interactivos, sin olvidarnos de los que se apoyan
en XML para incluir servicios inteligentesen los frigorficos, o tambin...
Vaya, parece que la lista es interminable y realmente compleja. Entonces,
jXML sirve para todo?
Bueno, no tanto, aunque casi.
XML no es la panacea universal, aunque muchas personas pensamos que
resolver la mayora de los problemas actuales de la computacin que tengan que
ver con la incompatibilidad de los formatos, con la dificultad del tratamiento de
datos y con la portabilidad entre los diferentes sistemas y plataformas, que no es
poco ( jun lenguaje universal?).
Bien, creo que ya es hora de dejar de alabar las posibilidades del XML y de
empezar a trabajar un poco, as que invito al lector a que abra su editor de textos
(el Bloc de notas de Windows 9x/Me es perfecto), active su visualizador web
lnternet Explorer 5.x/6.x (en adelante IE5) y siga leyendo.
PRECAUCION: Si se utiliza el Bloc de notas de Windows 9x/Me como

editor de textos, hay que guardar los documentos con la opcin Archivo
> Guardar como... > Guardar como archivos de tipo: > Todos los archivos
(*. *), en vez de la que sale por defecto (Archivo > Guardar como... > Guardar
como archivos de tipo: > Documentos de texto), ya que esta ltima aade la
extensin TXT.

- --

IMPORTANTE: Siempre que se haga referencia a lE5 nos estaremos


refiriendo a cualquier versin superior de Microsoft lnternet Explorer 5.0.

AHORRE TiEMPO: Aunque cada lector puede guardar sus archivos en la


unidad que desee y en la carpeta (subdirectorio) que prefiera, yo aconsejo que se organice en su disco duro una estructura en la que exista
una carpeta principal denominada X:/LIBRO-XML de la que dependan otras carpetas secundarias denominadas CAP-02, CAP-03, CAP-04, etc., donde ir guardando los ejercicios correspondientes a cada capitulo. Esta misma distribucin es
la que se ha tenido en cuenta para organizar los ejemplos de este libro en el archivo ZIP que se puede descargar desde [Link].

- -

Si el lector tiene prisa para empezar a trabajar en XML, ya tiene los conocimientos bsicos sobre la creacin de documentos XML, y si desea pasar a otro cap-

CAPITULO[ 2 ] Conceptos principales del XML

tulo ms avanzado, puede hacerlo sin mayor problema, pero antes de realizarlo, le
recomiendo que lea los titulares de los apartados de este captulo para asegurarse
de que no hay ningn punto que desconozca, y si decide saltarse el capitulo, le
aconsejo que cuando tenga algo de tiempo disponible vuelva a leerlo.

5
4S

DOCUMENTOS XML
Vamos a trabajar con documentos XML; por tanto, en primer lugar hay que dejar
bien claro qu es un documento XML.
IMPORTANTE: Un docu&&to XML e
s archivo de texto ASCII (sin
formato) que incluye informacin segn normas XML y que tiene extensin .xml.

Ahora toca describir las primeras normas bsicas:


e
e

e
e

La informacin incluida en un documento X M L debe ir marcada con etiquetas.


Las etiquetas XML se distinguen porque van encerradas entre los smbolos
de ngulos; en primer lugar el de .menor que (<) y en ltimo lugar el de
mayor que (>).
Debe haber una marca (etiqueta) de principio y otra marca (etiqueta) de
final.
La etiqueta de final debe ser igual a la de principio, diferencindose de sta
en que incluye un signo de .barra diagonal (/) justo despus del primer
signo de ngulo.

Pues bien, para empezar, esto es todo. Un ejemplo sencillo de informacin marcada con etiquetas ajustadas a las normas XML sera:

Si el lector teclea el cdigo anterior y lo guarda como texto sin formato en un


archivo con el nombre [Link], ya tiene creado su primer documento
X M L y, de paso, ha cumplido con la costumbre de saludar a la humanidad con su
primera aplicacin XML. A que es fcil?
PRECAUCIN: El cdigo del documento ejemplo02~[Link] ser
tecleado ahora exactamente como se indica. ya que la menor variacin
puede implicar un error de procesamiento. Ms adelante se estudiarn
las variaciones que estn permitidas y las que no lo estn.

- -

- -

.- -

* -

- - -- -

XML. Iniciacin y referencia

Otra cuestin importante es que no hay que tener cuidado en la posicin fsica
(el lugar) en la que se encuentran las etiquetas del documento. En el ejemplo
anterior se han colocado en una determinada posicin para que sea ms fcil
1 entenderlo, pero. en realidad, se pueden colocar de cualquier manera siempre
que se mantenga la misma disposicin lgica del marcado. EImismo documento,
con la nica diferencia de que es ms difcil de leer, se podra teclear ms desordenado, como el siguiente:

PRECAUCIN: Como ocurre con los cdigos HTML, un documento


XML no tiene en cuenta los retornos de lnea (marca interna dejada al
pulsar la tecla [INTROI) o la acumulacin de espacios, sirviendo stos
solamente para dar una aspecto ms comprensible al contenido.

- -- -

--

Y ahora, qu se puede hacer con este archivo?

Parece que lo lgico es verlo en la pantalla del monitor a travs del IE5, cuestin
fcil de realizar; si se activa IE5, se accede al men Archivo, se selecciona la opcin
Abrir..., se pulsa sobre el botn Examinar... de la caja de dilogo Abrir, se busca y se
selecciona el archivo ejemplo02~01
.xml (que si se ha hecho caso a la recomendacin inicial de este captulo estar en la carpeta X:/LIBRO-XMLICAP-02), y cuando lo vea perfectamente definido en la casilla de la direccin de la caja de dilogo
Abrir, se pulsa sobre el botn de Aceptar.
Inmediatamente se mostrar una pantalla como la de la Figura 2.1.
Es probable que el lector se sorprenda de lo que IE5 muestra en la pantalla, pero
slo es porque no ha leido el siguiente apartado.

Seguramente que el lector diseador de pginas HTML se habr preguntado alguna vez qu ocurre cuando se carga un cdigo HTML en un visualizador web.
Vamos a explicarlo en forma simplificada.
En primer lugar, el visualizador o navegador identifica la extensin .htm (o
.html), carga el cdigo en memoria y lo pasa a un analizador (parser) interno. Este
programa divide la entrada del texto en pequeas partes y las procesa por separa-

Figura 2.1.
Visualizacin del
primer
documento
XML.

CAPITULO121 Conceptos principales del XML

do, comparando su estructura de etiquetas con las normas internas que tiene,
definiendo la gramtica y las caractersticas de cada una de ellas. Segn va reconociendo cada etiqueta va mostrando en la pantalla la informacin que describe
con arreglo a lo que indica su procesador HTML interno y las particularidades del
cdigo. Cuando termina de analizar todo el cdigo finaliza el proceso de visualiza- e?
cin en la pantalla (rendering). Si existe algn error sencillo lo soluciona como
puede (muchas veces sin que el usuario se percate de ello), pero si el error es grave, j
el proceso se paraliza, o no se muestra nada, o surge algn mensaje de error, o sim- j
plemente la visualizacin de la pgina web no es vlida.
Las descripciones de todas las etiquetas que soporta, y de sus posibilidades, se
especifican en un documento especial que se conoce como DTD (Document Type
Definition, definicin de tipo de documento), del que hablaremos ms adelante.
Esto ocurre con un documento HTML, donde los visualizadores son extremadamente benignos e intentan siempre ayudar a generar la pgina web, aunque para
ello tengan que transgredir o ignorar algunas normas de la especificacin HTML.
Sin embargo, XML es un entorno ms serio y profesional, por lo que se
sigue un proceso parecido, pero algo ms complejo, y, desde luego, mucho ms
estricto.
Cuando se carga un archivo con extensin .xml en IE5 (o en otro visualizador
que soporte XML), su cdigo se carga en memoria y se pasa al analizador gramatical especializado en las reglas XML, que en este caso es muy estricto y no admite
desviaciones, pasando luego al procesador XML interno, responsable tambin de
resolver la salida de la informacin. Cualquier infraccin de las reglas, en cualquiera de los pasos, es motivo de bloqueo del proceso.

IMPORTANTE: Ms adelante se ver la totalidad de las reglas XML.

IE5 incorpora algunas importantes ayudas para colaborar al mximo en la


depuracin del cdigo XML cuando algn documento XML infringe las normas.
As, por ejemplo, si en nuestro primer archivo XML la etiqueta de cierre </TITULO> se escribe mal por error, como </TITULA>, al cargar
el archivo en IE5, se
mostrar la siguiente pantalla:

Figura 2.2.
Mensaje de
error mostrado
por IE5 por un
cdigo errneo.
que explica muy claramente qu tipo de error se ha detectado y dnde se encuentra exactamente.
XML, al ser un entorno abierto, no incorpora ninguna coleccin de etiquetas
predefinidas, como pasa con HTML (o con VML, o con SVC, o con WML, o

XML. Iniciacin y referencia

con...), por lo que su analizador no sabe cmo visualizar el elemento TITULO o


TEXTO, ni cualquier otra etiqueta que se especifique (me imagino que no habr
dudas en comprender que ningn visualirador web puede soportar todas las posibles combinaciones de nombres de etiquetas en todos los posibles idiomas).
Por tanto, lo primero que hace el. procesador XML de IE5 es comprobar si
cumple las normas XML, y si es as, crea en su memoria una estructura jerrquica,
en forma de rbol, de toda la informacin que incluye el documento.
Esta estructura es la que se muestra en la Figura 2.1, que en este caso es muy
sencilla y que nunca depende de la posicin fsica de las etiquetas, sino de su distribucin lgica. Si se teclea el cdigo de una forma similar a la que se muestra en
la variante desordenada anterior, se obtendr exactamente el mismo resultado
con IE5, ya que lo que muestra en la pantalla es la representacin interna que tiene
del documento XML, sin importar el aspecto fsico (externo) del cdigo.
El lector puede interactuar con esta presentacin en forma de rbol pulsando
sobre el signo guin (-) que hay justo delante de la etiqueta <DOCUMENTO>,
para contraer el nivel correspondiente. Al contraerse, se mostrar el signo de
ms (+) para indicar que existe ms informacin expandible, o sea, ms niveles
de informacin. El proceso funciona de forma similar a como opera el Explorador
de Windows con su representacin de carpetas y archivos.
-

.-

IMPORTANTE: En otros captulos veremos cmo hacer para que IE5


nos muestre el documento XML como una pgina web clsica.

Ya que el primer ejemplo de documento XML es demasiado sencillo como


para ver la estructura en la que guarda la informacin de un documento XML, el
paso siguiente es crear el documento XML ejempl002~[Link](ahora es ms rpido y prctico utilizar el archivo de [Link]), correspondiente al siguiente
cdigo:

CAP/TULO
121 Conceptos principales del X M L

m==-..-.

'
6

( - , m

..

.-.[Link]

Figura 2.3.
Estructura
interna del
documento
[Link].

y a continuacin abrirlo desde IE5 para ver su verdadera organizacin, muy difcil de
ver observando directamente el cdigo. Se obtendr una figura como la Figura 2.3,
en la que se pueden apreciar perfectamente los elementos, sus contenidos, sus
niveles y sus relaciones. Cada signo ((guin)),adems de proporcionar la posibilidad
de reducir el tamao del esquema, indica el inicio de cada rama del rbol.

Ya se ha visto que IE5 trata cada documento XML en una estructura jerrquica
compuesta por elementos, relacionados entre s y distribuidos por niveles. Cada
elemento tiene los siguientes componentes:
ELEMENTO

Etiqueta de
piincipio

Etiqueta de
Contenido

final

El elemento es toda la cadena de texto. La etiqueta es el nombre descriptivo


que se incluye entre los signos de ngulos. La etiqueta de principio indica el
comienzo del elemento. La etiqueta de final seala el final del elemento. El contenido del elemento es todo lo que hay entre las etiquetas de principio y de final.
Un elemento puede contener otros elementos, tal como se puede ver en el
siguiente cdigo. En este caso se dice que los elementos estn anidados, o sea, que
unos estn dentro de otros.

Figura 2.4.
Partes que
componen un
elemento.

XML. Iniciacin y referencia

<ELESmTO_1>

<ELEMElrPPO-2> Contenido del elemento 2 c/ELEMENT0_2>


<ELEMENlY-3> Contenido del elemento 3 </ELEMEf,??0-3>
</ ELEMENTO-1 >

Como ya se ha comentado anteriormente, las etiquetas, adems de servir de


identificacin, pueden llevar informacin adicional mediante los atributos. En la
Figura 2.5 se puede ver un ejemplo de elemento XML con atributo.

Figura 2.5.
Elemento con
atributo.

La organizacin en forma de rbol es un mtodo muy conocido entre los programadores y suficientemente intuitivo como para ser comprendido con facilidad
por cualquier usuario, por lo que no vamos a profundizar en sus posibilidades, aunque s es importante tener en cuenta que:
a

Cada elemento que forma parte del rbol se denomina nodo.

a Existe un nodo principal, denominado raz, del que dependen todos los

nodos restantes.
a Los nodos estn organizados en niveles.
a

Los nodos que dan lugar a un nivel inferior se denominan nodos padre.

a Los nodos que descienden de un nivel superior se denominan nodos hijo.


a Los nodos de niveles superiores se conocen como ascendientes.
a Los nodos de niveles inferiores se conocen como descendientes.

En la Figura 2.6 se puede ver una organizacin genrica en forma de rbol en


que se puede apreciar el nodo raz, del que dependen todos los dems. Todo
nodo es hijo del nodo de nivel superior con el que se relaciona directamente.
Todo nodo del que surge otro nivel tiene nodos hijos. Se puede decir, por tanto, que
el nodo 10 es padre de los nodos 12 y 13, el nodo 14 es hijo del nodo 11, que a su
vez es hijo del nodo 09, etc.

Figura 2.6.
Ejemplo de
organizacin en
forma de rbol.

CAPITULO 123

Conceptos principales del X M L

1,

PARA LOS MANITAS: La organizacin en forma de estructura de rbol es


muy usual en la computacin, teniendo un ejemplo muy comn en la A
forma en la que Windows organiza sus carpetas (directorios y subdi- 1
rectorios) y sus archivos, que podemos controlar desde el Explorador de Windows.
En este ejemplo, el elemento raz es el disco que hace de soporte (A:, C:, D: ...)y
cada carpeta o archivo es un nodo. Los subdirehorios son las ramas del rbol y los
archivos son sus hojas, todas ellas definidas por una direccin particular.

--

- - - ---

- -

Ajustndonos a este esquema, la informacin del documento XML correspondiente al [Link], cuando se carga en IE5, se organiza como se muestra
en la ~ i ~ u2.7,
r a en la que se puede ver el rbol de datos en una orientacin diferente ms de acuerdo con la que muestra IE5.

Figura 2.7.
Organizacin en
forma de rbol
del contenido de
[Link]

Para terminar este apartado slo falta comentar que el modelo de organizacin
y de representacin que utiliza IE5 se ajusta al estndar denominado DOM (Document Object Model, modelo de objeto de documento), del que volveremos a tratar en el ltimo captulo.

PARA LOS MANITAS: Las especificaciones de DOM pueden recogerse


en la direccin [Link]/dom/.

ELEMENTOS Y ATRIBUTOS
Todos los diseadores tienen dudas en la utilizacin de los elementos y de los
atributos, por lo que vamos a hacer aqu una pequea pausa para tratar el tema. En

XML. Iniciacin y referencia

principio, no existe problema en la utilizacin ms o menos intensiva de uno u otro


sistema de marcacin de informacin, por lo que vamos a comentar algunas cuestiones que permitan aclarar la situacin de alguna manera.
Los elementos son las entidades bsicas de un sistema de marcacin de informacin, que pueden contener datos, atributos y otros subelementos. Se suelen utilizar los atributos para aadir informacin adicional a los elementos.
La principal diferencia entre los elementos y los atributos es que estos ltimos
no pueden contener otros elementos, ya que no existen ((subatributos.
Normalmente, la informacin que contienen los atributos es sencilla, limitndose
en general a datos numricos, a palabras descriptivas o a puntos de una determinada lista. En no pocos casos, la informacin que aportan los atributos es extra y
desordenada.
Otra de las reglas que pueden ayudar a elegir elementos o atributos es que los
elementos se usan para contener datos ms importantes, conceptos que se repiten
y estructuras ordenadas, y, por el contrario, los atributos ayudan a controlar los
datos de menos importancia, informacin nica y en cualquier orden.
En algunos casos se suele decidir por los elementos cuando se trata de datos
que van a ser visualizados en la pantalla o impresos en papel, mientras que se utilizan los atributos para los datos que deban quedar ocultos.
Hay quien prefiere aceptar que las etiquetas de los elementos suelen describir
partes de otros elementos, mientras que los atributos se utilizan ms para reproducir
sus propiedades.
El ltimo consejo es que si las reglas anteriores, u otras condiciones particulares,
no sirven para decidir una determinada situacin, se decida de acuerdo con el
primer modelo que venga a la mente, ya que no suele merecer la pena perder un
tiempo importante en este asunto.
Por supuesto que, mientras ms experiencia se tenga en el diseo de proyectos
XML, ms fcil ser decidir entre unos y otros.

Ya se han comentado unas reglas bsicas para la creacin de los documentos XML
relacionadas con las bases del sistema de marcas, pero, para que un determinado
documento XML pase el examen del analizador gramatical, hay que cumplir otras
normas, todas ellas muy fciles e intuitivas y tambin muy similares a las que se utilizan en HTML correcto.
Los documentos que cumplen todas estas reglas y, en consecuencia, pasan el
examen del analizador sin provocar errores, se dice que estn bien formados
(well-formed) o que tienen buena formacin.
Como muchos de los lectores habrn diseado pginas web con HTML, segn
se vayan explicando las nuevas reglas se comentarn las posibles analogas y diferencias entre los dos sistemas.
Las reglas mnimas que hay que tener en cuenta para crear un documento bien
formado son las que se comentan a continuacin.

CAPhULO [2]

Conceptos principales del XML

Un elemento raz
Slo se permite un elemento raz.
Es imprescindible cumplir esta norma para que el analizador pueda saber que el
documento est completo.
El elemento raz de un documento XML es el equivalente al que se marca en
HTML con la etiqueta <HTML>.
Un ejemplo que cumple esta regla es:

Un ejemplo que no la cumple es:

Etiquetas de principio y de final


Hay que incluir etiquetas de principio (sin la barra diagonal))) y de final (con la
barra diagonal))) en todos los elementos.
Siempre debe existir una marca del tipo <ETIQUETA> y otra </ETIQUETA>
antes y despus del contenido de cada elemento.
No se permiten casos de etiquetas sueltas como las <P> o <LI> del HTML.
Ejemplo correcto:

Ejemplo incorrecto:

Etiquetas vacas
Cuando se trabaja con etiquetas ((vaciasn (sin contenido), hay que incluir la barra
diagonal)) (/) antes del signo mayor que)) (>l.

!
a

9
e

XML. Iniciacin y referencia

Cuando se trata con elementos que no se desean marcar con etiquetas de principio y de final (normalmente llevan atributos) o que no tienen contenido, se pueden utilizar marcas nicas del tipo <ETIQUETA />.
Seran los casos tpicos de <HR> O <BR> del HTML.
iBP1
Ejemplo correcto:

Ejemplo incorrecto:

Anidados correctos
Hay que anidar las etiquetas correctamente.
Las etiquetas anidadas (etiquetas dentro de otras etiquetas) deben situarse en el
ETIQUETA^> . . .
mismo orden de apertura que de cierre: ETIQUETA^> . . .
<ETIQUETA3> . . . </ETIQUETA3> . . . </ETIQUETA2> . . . </ETIQUETA1>.
No se permiten cdigos como: <B><I> Texto de prueba </B></I>,
permitidos en HTML.
Ejemplo correcto:
h

<RCJO> C o l o r r o j o

. rL\RO>

c l a r a - , ..JTL"nfi-

- .
n o r m a l </ROJO>

--

-~ -

Ejemplo incorrecto:
C,

<ROJO> Crbl-or rc'-'r~.:CL.".F:O--

milero

. !ROJO>

,
</CLARO> necio

Valores de atributos entre comillas

Es obligatorio que los valores de los atributos vayan entre comillas dobles (") o
comillas simples (').
Las etiquetas que posean atributos deben marcar sus valores entre comillas:
<ETIQUETA ATRIBUTO="xn />.
En HTML suele ser optativo.
Ejemplo correcto:

CAPITULO [2]

Conceptos principales del XML

Ejemplo incorrecto:

Maysculas y minsculas
XML distingue entre maysculas y minsculas.
Puede utilizar los dos tipos de letras, pero no las considera iguales.
Al contrario de HTML, que no se preocupa de que sus etiquetas estn en
maysculas, minsculas o mezcladas, aceptando sin problemas etiquetas como
itAbLe>,itable> o <TABLE>,en XML se producira un error.
Ejemplo correcto:

Ejemplo incorrecto:

Caracteres admisibles
Todos los nombres de las etiquetas y de los atributos XML deben empezar siempre
con un carcter alfabtico no acentuado (A, B, C ..., Z, a, b, c..., z) o con el signo de
subrayadoo guin bajo ( - ), y no pueden contener ningn ((espacio))(espacio, tabulador, retorno de carro) en su nombre descriptivo. Los espacios solo pueden
ir entre el nombre de la etiqueta y los atributos.
Con las condiciones oportunas (que se vern en su momento), se pueden
incluir perfectamente caracteres especficos de cada idioma como la letra .ee, las
vocales acentuadas, la ((cedilla~,las diresis, etc.
-

PR~CAUCIN:
Los nombres de etiquetas no pueden empezar con los
caracteres xml (en cualquier combinacin de maysculas o minsculas),
ya que es un trmino reservado en XML.

- --- -

Ejemplo correcto:

---~

--

XML. Iniciacin y referencia

Ejemplo incorrecto:

IMPORTANTE: Sera recomendable que el lector escribiese, guardase y


visualizase varios documentos XML con normas correctas e incorrectas
para ver el comportamiento de IE5 y la utilidad de las ayudas que proporciona.

Todas las normas y reglas que hemos visto permiten crear documentos XML
con buena formacin, pero todava existen otras cuestiones que hay que tener en
cuenta para trabajar con documentos XML realmente eficaces.
Vamos a estudiar a continuacin los posibles tipos de etiquetas XML.

INSTRUCCIONES D E PROCESAMIENTO
Las instrucciones de procesamiento o Pls (Processing Instrucdions) son elementos
XML especiales que siguen normas propias y que sirven para pasar al analizador o
procesador XML cierta informacin sobre cmo debe ser interpretado y utilizado el
documento.
No forman parte de los datos del documento y no respetan las normas obligatorias para XML.
El modelo de toda instruccin de procesamiento es el siguiente:

Como se puede observar, toda instruccin de procesamiento comienza con los


caracteres < ? y termina con los simtricos ? > . Siempre lleva al principio el nombre-de-la-aplicacin destino y, a continuacin, una o varias instrucciones-especf icas_paradlaaapl icaci n.
Todo documento XML debe empezar con una declaracin XML, que es una instruccin de procesamiento que realiza la declaracin expresa de que se trata de un
documento XML e incorpora informacin adicional importante. Su formato es:

CAPITULO [ 2 ] Conceptos principales del X M L

Sus normas de aplicacin son:

Debe situarse en la primera lnea del documento XML.


Debe contener el atributo del nmero de versin (version).
@
Los atributos encoding y standalone son optativos.
e Si se declaran todos los atributos en una declaracin XML. deben estar
colocados en el orden que se ha indicado anteriormente.
e La declaracin XML debe estar en minsculas, con la excepcin del tipo de
codificacin.
e Los valores de los atributos deben indicarse entre comillas.
e La declaracin XML no tiene una etiqueta de cierre estndar, o sea, no se
utiliza </?xml>.En su lugar necesita la terminacin simple ?>.

e
e
e

Versin
El atributo version especifica la versin del estndar XML al que se ajusta el
documento XML.
En la actualidad slo puede tener el valor ,,1.0 pero en un futuro, cuando se
desarrollen otras versiones de XML, tendr ms sentido y utilidad especificar su
valor.
Un ejemplo vlido podra ser:
l1,

Encoding
Los textos estn formados por caracteres alfanumricos; por tanto, para representar textos hay que decidir cmo representar los caracteres que los componen. A
este proceso se le denomina codificacin y a los conjuntos de caracteres que se utilizan en una determinada codificacin se les denomina grupos de caracteres.
El atributo encoding indica el nombre de la codificacin del grupo de caracteres ms adecuado para cada caso. Tiene mucho que ver con el idioma utilizado. El
grupo bsico de caracteres de XML es Unicode, que incluye miles de caracteres
comunes de idiomas de todo el mundo. Para asegurarse que XML soporta los
caracteres espaoles en IE5, se recomienda utilizar el valor so-8859-l.., que
tambin es conocido como ISO-Latin-l.

PARA LOS MANITAS: Se puede consultar la lista completa de codificaciones en la direccin de IANA ([Link]). Adems, tambin existe informacin interesante al respecto en las sedes de Unicode
[Link]) y de ISO ([Link]).

--

--

En la siguiente tabla se recogen los posibles valores ms comunes que puede


soportar el atributo encoding:

XML. Iniciacin y referencia

Codificacin

Comentario

UTF - 8

Grupo de Unicode con 256 caracteres. Sus 128 primeros caracteres son compatibles con la tabla ASCll de 7
bits. UTF-8 son las iniciales de Universal Transformation
Format de 8 bits.
Grupo de Unicode que incluye todos sus caracteres
(65.536). UTF-16 son las iniciales de Universal Transformation Format de 16 bits.
150-10646 coincide con Unicode. UCS-2 son las iniciales de Universal Character Set, versin 2.
150-10646 coincide con Unicode. UCS-4 son las iniciales de Universal Character Set, versin 4.
Grupos de caracteres para HTML y .XML. 150-8849-1
coincide con ISO-Latin-1, que soporta los idiomas de
Europa Occidental y Amrica Latina (espaol).
Coincide con ISO-Latin-2. Idiomas de Europa Central y
del Este.
Coincide con ISO-Latin-3. ldiomas del Sureste de Europa.
Coincide con ISO-Latin-4. Idiomas de Escandinavia y el
Bltico.
Coincide con ISO-Latin/Cyrilic.
Coincide con ISO-Latin/Arabic.
Coincide con ISO-LatinKreek.
Coincide con ISO-Latin/Hebrew.
Coincide con ISO-Latin/Turkish.
Coincide con ISO-Latin/Lappish/Nordic/Eskimo.
Grupo de caracteres para el idioma japons, diseado
para ser utilizado en redes.
Grupo de caracteres para el idioma japons, normalmente utilizado en sistemas Windows o Mac.

EUC-J P

Grupo de caracteres para el idioma japons, normalmente utilizado en sistemas UNIX.

XML. Iniciacin y referencia

Standalone
El atributo standalone tiene dos posibles valores: ltyesll
y "[Link] utiliza
"yes" si el documento XML tiene un DTD interno. Se indica <<nosi el documento
XML est relacionado con un DTD externo, o existe cualquier referencia externa a
entidades.
IMPORTANTE: Ms adelante se tratar con detalle la normativa DTD.

Como por ahora no vamos a trabajar con DTD, vamos a optar por no incluir el
atributo standalone en la declaracin XML. En su momento, cuando se vea la
utilidad de los DTD, se podr incorporar con el valor adecuado a cada caso, esto es,
de la siguiente forma:

CAP~TULO[2] 'Conceptos principales del XML

o de esta otra:

SECCIONES CDATA
En algunas ocasiones existe la necesidad de que una parte del cdigo XML deba
pasar sin ser analizado por el procesador XML (parser). Tal podria ser el caso, por
ejemplo, de informacin que contenga caracteres reservados en XML o que incluya cdigo de guiones (scripts) de otros lenguajes.
Los caracteres reservados por XML son menos que los que se reserva HTML, ya
que se reducen a dos: el signo de ngulo menor que ( e )y el signo de y comercial)) (&).
En estos casos hay que definir secciones de datos de carcter, ms conocidas
por su designacin inglesa CDATA (Charader DATA), que se definen utilizando la
marca de principio < ! [CDATA~ y la de final 1 1 >. En el interior de dicha marca
puede incluirse cualquier combinacin de caracteres, salvo la pareja de ((corchetes
derechos. que sirve para indicar su finalizacin, o sea: 1 1 .
Por ejemplo, el siguiente fragmento de cdigo XML sera ilegal:

Para que fuese admitido tendra 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 (< y a)
o caracteres que pueden ocasionar errores, como son las comillas dobles* (19,las
o el signo de ngulo .mayor que (>).
comillas simples.
Estas referencias a entidades son fcilmente reconocibles, ya que empiezan con
el signo de y comercial (&) y terminan con el signo de punto y coma (;), exis(

XML. Iniciacin y referencia

9
m

tiendo un formato textual y otro numrico. En la tabla siguiente se recogen las


referencia a entidades ms utilizadas en XML:
Cardcter

Referencia textual

Referencia numrica

PARA LOS MANITAS: En el Apndice 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 carcter se puede insertar informacin como la siguiente:

ctl'iiim X i I O >
El eiguiente cdigo ee legal: kltrPelcula&gtr Tom
&lt;/Pelicula&fJt1

&m;
Jerry

</col*i-t.-k~I O >
que puede sustituir al anterior sistema de secciones CDATA.
La segunda de las situaciones en las que es prctico utilizar las referencias de
entidades es cuando es til insertar frases enteras o documentos en un cdigo
XML.
Por ejemplo, en vez de escribir constantemente el nombre de una empresa u
organismo que sea muy largo, se puede relacionar dicho nombre con un alias
corto y hacer referencia al alias cada vez que se precise.
Un ejemplo prctico sera definir al principio del documento XML una declaracin de entidad (relacionada con su DTD) como:

y en el resto del documento, cada vez que se desee incluir el nombre [Link]
ACTA, sera suficiente con poner el cdigo &acta;, tal como se puede ver en el
siguiente ejemplo:

Otro caso que podra ser muy prctico en ciertas ocasiones sera hacer que las
referencias a entidades estuviesen relacionadas con documentos externos, permitiendo escribir un cdigo como el siguiente:

CAPITULO [2] Conceptos principales del XML

donde cada referencia sera sustituida por el contenido del documento correspondiente.

IMPORTANTE: Cuando se traten los documentos XML relacionados


con DTD, se ver la forma exacta de controlar cualquier referencia de
entidades.

--

COMENTARIOS
Todo cdigo bien hecho, sobre todo si se tiene que compartir con otras personas,
como es el caso corriente del diseo profesional en las empresas, debe incluir los
suficientes comentarios para que cualquier usuario pueda entender el significado de
cada seccin del documento sin necesidad de estudiar con detalle su contenido.
La forma de indicar los comentarios en XML es la misma que en HTML, esto es,
con las marcas e ! y -->, respectivamente de principio y de final.
Un ejemplo de cdigo XML con comentarios puede ser como:

--

. .. . . .

--

<! - -

Este texto es un comentario -->

<!--

Este es otro texto de comentario -->

......

La nica diferencia con el sistema de HTML es que en XML, por compatibilidad


con SGML, no est permitido incluir un ((doble guin)) ( - - ) en el interior del
comentario. El siguiente ejemplo deja claro lo permitido y lo ilegal:

......
c!. Esto
......
c!-- Esto
......
-

es un
es un

- comentario - permitido -->


-- comentario -- no permitido

-->

XML. Iniciacin y referencia

Teniendo en cuenta este detalle, un comentario comn en HTML como el


siguiente:

<!--

A--

-->

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


<! -

-->

habra que dejarlo en XML como este otro:

RESUMEN
En este captulo se han sentado las bases y se han comentado los principios esenciales que regulan la creacin de los documentos XML desde el punto de vista de
sus reglas gramaticales bsicas.
Tambin se ha visto el mtodo general de trabajo con documentos XML, basado en crear el cdigo adecuado en un editor de textos sin formato, guardarlo con
un nombre conveniente con extensin .xml y visualizar dicho documento a travs
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, slo
puede analizar la estructura lgica y la informacin que contiene desde el punto de
vista del cumplimiento estricto de las reglas de los documentos XML bien formados,
y si pasa correctamente el anlisis, crea una estructura jerrquica en forma de
rbol de datos que le permite controlar perfectamente la situacin de cada elemento y su contenido.
Los documentos XML que se han visto son muy sencillos, relacionndose ms
con bases de datos que con pginas web, pero es que, en realidad, la visualizacin
de un documento XML como una pgina web es slo una de las posibilidades de
esta tecnologa.

Visualizacin
documentos
X M L con CSS

I experiencia me dice que muchas de las personas interesadas en el XML


son diseadores de pginas web y desearan ver sus documentos XML
bien formateados a travs de su navegador lo antes posible.
Teniendo en cuenta este argumento, creo que es mejor no seguir el clsico
desarrollo de todos los cursos y libros sobre XML, que normalmente trataran
ahora todo lo relacionado con la normativa DTD (declaracin de tipo de documento) o con la especificacin DOM (modelo de objeto de documento), y pasar a
ver uno de los sistemas ms eficaces y fciles para controlar la presentacin de un
documento XML cualquiera como una pgina web tpica, con resultados similares
a los que se consiguen con HTML.
Estoy seguro de que con esta decisin los lectores ms interesados en el diseo
web empezarn a disfrutar lo antes posible. Por el contrario, los que estn ms preocupados por las normas especficas para el XML, pueden pasar a otro captulo,
siempre que aseguren volver a esta posicin 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 tcnica denominada hojas de
estilo en cascada, ms conocida por sus iniciales CSS (Cascading Style Sheets).
CSS es un proceso muy utilizado en el diseo web profesional con HTML,
estando en vigor la versin 2 de su especificacin, aunque en muchas ocasiones se

XML. Iniciacin y referencia

utilizan slo las posibilidades de la versin 1, ya que no hay en la actualidad ningn


visualizador web que soporte todas las caractersticas completas de la versin 2 de
CSS, pues incluso la versin 5.5 de lnternet Explorer no admite la totalidad de sus
peculiaridades, aunque, en beneficio de nuestros intereses, s soporta la mayora y
nos permite aprovechar sus ventajas.
CSS2 est vigente desde el 12 de mayo de 1998 (la versin 1 es del 96),tal
como se puede observar en la Figura 3.1 ([Link]~lTRICSS2/), pero aunque
parezca que en lnternet todo va muy rpido, la actualizacin de los visualizadores
web a las nuevas tecnologas, con la excepcin 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 diseadores 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 introduccin de su especificacin:
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 extensin .css, necesaria para su
identificacin.
Estas plantillas pueden ser enlazadas con uno o varios documentos, por lo
que todo el trabajo realizado en cada plantilla puede ser aprovechado por mltiples
documentos, siendo sta una de las principales ventajas de las CSS. Otra de sus
ventajas estriba en que cada vez que se modifica algn dato en cualquier plantilla
CSS, automticamente 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.
Recomendacin
css2.

CAP~TULO131

Visualizacin 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 exigira por si misma un tratado completo. Cualquier
lector interesado en dominar al mximo la especificacin CSS debe conseguir
informacin adicional a la que se va a estudiar en este captulo, 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 Apndice A se puede consultar una tabla resumen
de CSSZ. En el Apndice B se indican algunos recursos sobre CSS.

PRIMER DOCUMENTO XML-CSS


Aunque ms tarde vamos a ver las particularidades de CSS, para mostrar la facilidad
de uso del binomio XML-CSS (y premiar a los impacientes diseadores de pginas
web) vamos a ver cmo podemos mostrar un sencillo documento XML por nuestro
navegador.
En primer lugar vamos a crear un documento con alguna informacin. A travs
de cualquier editor de textos podemos teclear el siguiente texto:

Ramn Montero
En

;.,;c,t-

al-tit:ulo se muestra la evolucin histrica del XML

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

En rea: Xad, las ideas de esta 'nileva' :[Link] 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 continuacin.
Sistema de marcado
El si::tenia de marcado de formato se bssa en mircsr el texto con
instriiccloiies precisas que +.<criben rada m a de ;as condicion~.;que
se desea a p l i r a r a las partes del t e z r o , r a l o s como el tipo de letra
o su estile.

XML. Iniciacin y referencia

marcas se la- denomina '~rique


un proceso v d l i i c , si se cnta d e z-eprodllcirim docum~;n~o
con un
fornato dc-t-eraiinad'ri por una pantalla o impreso en papsl..

A estas

Aclaracin
Las fin1 nas ~ecesariaspar., -1 desarrr)]~ P Idn >.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 actualizacin: 25 de Abril de 2000

Dicho texto es una parte simplificada de un artculo ms completo publicado en


[Link], y que est disponible en los archivos de ejemplos de este libro
accesibles en dicha direccin.
El lector puede teclear el texto (o alguno que sea similar) y guardarlo en
X:/LIBRO-XMLICAP-03 como [Link] (todava es un texto, as que
debe tener extensin .M),o bien abrir el archivo del mismo nombre en los ejemplos
bajados de [Link].
Lo importante es disponer de un documento que incluya varias entidades,
como un ttulo principal:
EvoliicP~ii6e1

El nombre del autor:


Ramdn

Noncero

Una introduccin:

Unos ttulos de apartados:

...*-,
Sistema de marcado

......

Aclaracirn

Unos prrafos:
1

Para entender la workin 'ae1 XML

ED realidad, l a 0

...

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

...

.,. ,
.. .

.?

CAPITULO
131 Visualizacin de documentos XML con CSS
Y un comentario final:

Con esta base, las etiquetas XML adecuadas para marcar correctamente el
documento podran ser: < t itulop> (de Ttulo Principal), <autor>, <intro>
(de introduccin), <tituloA> (de Ttulo de Apartado), <p> (de Prrafo) y
<comentarioF> (de Comentario Final).
PRECAUCIN: En los nombres de las etiquetas se han eliminado los
acentos para evitar cualquier posible incompatibilidad con alguno de los
mltiples procesos implicados. Se puede utilizar el alfabeto espaol
sin problemas, pero es una precaucin similar a la costumbre de no incluir acentos ni espacios en los nombres de los archivos.
E

---

Despus de incluirlas en sus lugares correspondientes y de aadir la declaracin


XML al principio y la etiqueta raz <articulo>, el documento XML queda
como el siguiente, que debe ser guardado como [Link] (ya es un
documento XML, por lo que debe llevar la extensin .xml).

Si visualizamos ahora el documento [Link] a travs de IE5, comprobaremos que ha parada el anlisis previo y observaremos su estructura en
forma de rbol, tal como se muestra en la Figura 3.2.

XML. Iniciacin y referencia

.:
-

, .

->,,cm,l?

cr8tuliD- Evolucl4n del XML*./iituloPs


sai,to-:Ramn
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 [Link]
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 cmrhiuadn. .. 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
<p..A s n s r marcar se l a r denoiriina "etiquetas' (tags) o 'c6digos- y son u n pmcero vdlldo
SI
se trata de ropmduclr un documento con u n formato detennlnado por una pantalla o
Impreso en papel.. i
i t i t u i f i A d a r a c h .lituloA.
-.Lar normas neceserlas para ri desarrollo de X,ML van publlc6ndore poco a poco, riendo
nece1arIa la c o n e ~ l b nal W 3 C para estar al da cn eslo constante procoso du
svaluc~n. p
icw
,- ' l t l m a f ~ c h ado adualimdbn: 25 de Abril de 2000- :cnmwm!armFi

Figura 3.2.
Documento

</a71mcb'r;

ejemplo03~[Link]
visto con IE5.

PRECAUCIN:
Si se mostrase algn mensaje de error hay que fijarse
bien en la ayuda que indica el mensaje y corregirlo segn las reglas vistas en el captulo anterior.
--

.-

---

Para verlo como una pgina web hay que indicar al visualizador el sistema que
deseamos aplicar a su formato. Esto se consigue fcilmente aadiendo una segunda lnea, debajo de la declaracin XML, que incluya una instruccin de procesamiento adecuada, que para enlazarlo con una plantilla CSS ser como la siguiente:

En dicha instruccin de procesamiento se distingue la llamada a un procesamiento XML a travs de una hoja de estilo (xml-stylesheet ) , la referencia a un
archivo CSS que se denomina [Link] (href="articulo .cssm) y la observacin de que se trata de un tipo de documento CSS en forma de texto sin formato (type="text/css") .
Si guardamos esta nueva versin del documento XML como [Link]
y lo visualizamos desde IE5, tendremos una pantalla como la de la Figura 3.3.
Bueno, parece que IE5 ya quiere mostrar el contenido del documento, pero
por qu lo hace tan mal?
La respuesta es muy sencilla. Hemos expresado que queremos que el documento XML se muestre formateado a travs de una plantilla CSS, e incluso hemos
indicado el nombre de dicha plantilla, y eso es suficiente para que IE5 decida mostrar su contenido, pero l no puede hacer milagros, y al buscar el archivo [Link], y no encontrarlo, decide mostrarlo como buenamente puede.

CAP~ULO
[3] Visualizacin de documentos XML con CSS

Figura 3.3.

Documento
[Link]
visto con IE5.

La solucin est en crear la plantilla CSS (el archivo [Link]), que puede ser
similar al sencillo cdigo que se muestra a continuacin:

autor (disi-lay:blxk; f o n ~ - ~ i z ;?nt;


e:
font-family:Verdana; coio: :red;
text al inn:r;zrhh-

briis~:~lay:i-,lark;
font-fami1y:Verdana: font-si -=: l0pt;
text-align:i : i s t i ty )

Es suficiente con teclear con cuidado el cdigo anterior y guardarlo en la


misma carpeta CAP-03 como [Link] para solucionar el problema.
Si el lector realiza esta labor e intenta visualizar ahora el documento XML
[Link], obtendr una pantalla como la que muestra la Figura 3.4.

84 m b n M x w hay w n
t
Ida m<*''d i 14%m r n < a 3
<,..+m
m , a + c r i . lar iIsrr Li ~ 7 1 ' 3r u u r ' t . r . n ; ~ w
~ 1 i - 3 r,wudv

w. m:

U @ a s n la qr

son d. Ilt*l-C

imarn

m n h d i c a .cm

Wld. hx. b&m

Y urn

Figura 3.4.

Documento
[Link]
l. relacionado con
[Link].

Ya tenemos una pgina web clsica. Todava se puede mejorar mucho, pero se
trataba de hacerlo lo ms sencilla y rpidamente posible para que se pueda entender con facilidad.

XML. Iniciacin y referencia

3
o

Si observamos con atencin el cdigo de [Link] veremos que hay que


definir el nombre de cada etiqueta que se desea formatear, y junto a cada nombre,
entre signos de ((llaves>>({ y ) ), y separados por signos de ((punto y coma)) (;l.
hay que indicar los atributos de formato que se consideran ms adecuados para
cada caso.
Las propiedades empleadas en este primer ejemplo son muy intuitivas (para los
que conozcan algo del idioma ingls, claro), siendo la siguiente tabla un breve
resumen de cada una.

Propiedad

Comentario

Display:

Indica cmo visualizar el contenido. Cuando su valor es


block se trata como un bloque y se termina con un
((punto y aparte.

Font -family :

lndica el tipo de letra que se debe aplicar a su contenido.


Verdana es una de las ms utilizadas en la Web.
lndica el tamao de letra que se debe aplicar a su contenido. Si la unidad es pt, el tamao se fija en ((puntos
tipogrficos.
lndica el color que se desea aplicar a su contenido. En
este caso se han utilizado descripciones por nombre.

Color:

Text-align:

'

lndica la alineacin del texto. Los valores let , right


y justify significan izquierda, derecha y ((justificado.
lndica el estilo de letra que hay que aplicar al texto. Con el
valor italic se selecciona el estilo en cursiva.

Este ejemplo est bien para conseguir un resultado rpido y sencillo, pero para
hacer un buen trabajo y obtener soluciones profesionales hay que manejar CSS con
cierta soltura,, por lo que, a continuacin, se van a ver las principales caractersticas
y posibilidad& de las hojas de estilo en cascada.

DOCUMENTOS CSS
Los documentos CSS, o plantillas CSS, son descripciones detalladas del formato de
las entidades XML. Son muy similares a las plantillas CSS utilizadas en HTML, ya
que utilizan la misma normativa, pero tienen algunas diferencias, justificadas por el
distinto enfoque de las etiquetas HTML (prefijadas de antemano y con algunos criterios definidos) y XML (libres e indefinidas por completo).

CAPITULO
[3] Visualizacin de documentos XML con CSS
Las plantillas CSS pueden insertarse en el propio documento XML, pero lo 1
ms adecuado y recomendable es que formen parte de un archivo externo, con ,
extensin .css, al que se hace referencia desde el documento principal. Este sistema
recomendado tiene la gran ventaja de asegurar que, cada vez que se realice alguna modificacin, todos los documentos XML relacionados quedan inmediatamen- 1
te actualizados. En el caso de estar incluidos en el mismo documento XML, cada
modificacin debe ser realizada en cada documento.
Los documentos CSS son archivos de texto sin formato guardados con extensin .css. No es necesario que estn en la misma carpeta del documento principal,
pudiendo ser referenciados desde dicho documento a travs de una direccin
absoluta, o mejor, relativa.
No exigen cabecera especial, ya que slo precisan las descripciones de los formatos de las etiquetas, que se denominan reglas, dispuestas con cualquier ordenacin, no siendo problema el que existan errores de etiquetas o de atributos, e
incluso que falten o sobren etiquetas, ya que todo cdigo errneo o sobrante es
automticamente ignorado.

IMPORTANTE: Si alguna descripcin o regla del documento CSS contiene algn error, o no existe alguna de las etiquetas del documento
principal en la plantilla, el visualizador anula el modelo errneo y utiliza los parmetros que tiene por defecto para mostrar la correspondiente informacin utilizando los datos correctos o con un formato simplificado.

--

-- - - -- --- -

Reglas de estilo
Los documentos CSS se componen de reglas de estilo.
Una regla de estilo se compone de dos partes principales: el selector, que es el
elemento que aparece en primer lugar (a la izquierda), y la declaracin, que es todo
lo que figura a la derecha del selector entre signos de <<Ilavesm(( y} ).
La declaracin simple se compone de una pareja de entidades. Estas entidades
pueden ser la
o el valor, situadas a la izquierda y derecha, respectivamente, del signo de <<dospuntos (:).
En la Figuras 3.5 se puede ver el esquema de los componentes de una regla de
estilo CSS.
Un ejemplo de cdigo CSS con varias reglas de estilo simples podra ser el
siguiente:
Nombre i forit -family: A ! - i a l ' ,
Nombre ( f o n t -.ij ::e: 12pt }
1palliu~-1 (color: r d }
.lpellido-1 {font-fmiiliy: Verdana}
kpellido-1 (font-sire: 12pt }
Apeilj do-2 {color: red)
A p e l li'io-2 [font-family: Verdanoj
Apellidos {font-size: 12gt)

XML. Iniciaci6n y referencia

REGLA DE ESTILO

Figura 3.5.

Componentes
d e las reglas de
estilo CSS.

ROMBE

( color : b l u e )

P~opiidid

Vdoi

Como se puede observar, es posible repetir el seledor cuantas veces sea preciso para definir perfectamente su formato.
Como ocurre en otros casos, los espacios en blanco repetidos slo tienen un
valor para mejorar la presentacin visual del cdigo.

Agrupaciones
En muchas ocasiones se repiten los datos del selector o de la declaracin, por lo que
es muy prctico y til agruparlos adecuadamente.
Los selectores se pueden agrupar en listas separados por el signo de la ((coma))
(,). El ejemplo anterior podra expresarse como:

Tambin las declaraciones pueden agruparse, pero en este caso hay que separarlas con el signo de ((punto y coman (;). El mismo ejemplo se podra dejar como:

Sin embargo, lo ms corriente es encontrar los selectores aislados con sus


declaraciones agrupadas, utilizando las agrupaciones de selectores slo cuando
coinciden totalmente, lo que permite dejar el cdigo de ejemplo como:
Nonk.: F (font -fmily:Ar?.~l;col~~r:black;font--?ire:l.?pt'
Apell~do-1,Pp-l Lirio-:!

(font-family:Verdana;color:r-~~-i;font-.-~z~:12ptl

Esta organizacin es, normalmente, la ms fcil de entender y de modificar.

Cajas o bloques
CSS asume por defecto el m d e l o de caja o de bloque como el modelo de formato, donde cada elemento se comporta corno cn rectngulo formado por cuadro

CAPITULO [3]

Visualizacidn de documentos X M L con CSS

Figura 3.6.
Modelo de caja
o bloque CSS.

zonas diferentes. En la Figura 3.6 se puede ver un esquema del modelo de caja
(box) utilizado por CSS.
Cada caja o bloque incluye siempre una zona con el contenido, que puede ser
un texto, una imagen u otro objeto. El tamao del contenido marca el tamao de
dicha rea.
Alrededor de la zona de contenido se disponen las zonas de relleno (padding), de borde (border) y de margen (margin), que pueden existir o no, ya que son
opcionales. El relleno y el margen son espacios que separan el contenido del borde,
y ste del bloque contiguo o de los limites de la zona de visualizacin. El relleno
toma el mismo color del fondo del contenido y el margen es transparente.
Un ejemplo de utilizacin de estas entidades podra ser:

Cuando se definen los valores del relleno, del borde y del margen, se aplica a
todos los lados del rectngulo, pero, adems, tambin es posible ajustar dichos
valores para uno, o varios, de los lados. Para conseguir este resultado hay que aadir, a continuacin de las palabras padding, border y margin, los atributos
-left, -top, -right O -bottom, que se refieren a los lados izquierdo, superior, derecho o inferior, respectivamente.
Con estas posibilidades se podra definir un cdigo como:

en el que se indican las dimensiones, en pxeles (px),de cada objeto.


Las lneas de los bordes (border), adems de permitir que se fijen sus espesores por el sistema anterior, tambin admiten que se marquen sus grosores
(-width), sus estilos (-style)y sus colores (-color),pudendo dar lugar a
diseos tan detallados como:

XML. Iniciacin y referencia

borler-right-style:scml id;
bordec-bottom-wi3th:i.p~; boraer bottom-co1or:red;
~rd~r-b~~~+om-atyle:gr~ve;

Existen varios tipos de cajas que pueden especificarse mediante la propiedad de


presentacin visual ( d i s p l a y ) , y que puede adoptar diferentes valores. Se
puede desear que se comporte como un bloque aislado ( b l o c k ) , como unas palabras en Inea dentro de un prrafo ( i n i i n e ) , o incluso se puede ordenar que no
se muestre en la pantalla (none) .
El comportamiento como b l o c k es adecuado para los textos que deban tratarse como prrafos terminados en un ((punto y aparte)).
La utilizacin de la descripcin i n i i n e es ideal para definir los estilos de cualquier palabra que deba cambiar de estilo dentro de un mismo prrafo, como son los
estilos de cursiva, negrita, subrayado, etc.
Describir un determinado elemento como none nos permite que no se vea en
la pantalla, simulando a las etiquetas del HTML que se incluyen en la seccin
<HEAD>,como ttulo descriptivo, nombre de la herramienta de autor, fecha del
documento, etc.

Posicionamiento
Las cajas pueden disearse para que sean posicionadas de acuerdo con cuatro posibilidades principales: normal, absoluto, relativo y flotante.
Cuando se define un posicionamiento normal, que es cuando no se especifica
posicionamiento alguno, aunque puede declarase expresamente con p o e i t i o n : s t a t i c , cada caja de bloque se coloca debajo de la anterior, todas en
posicin vertical, y cada caja en Inea se sita a la derecha de la anterior, en posicin
horizontal.
El posicionamiento absoluto permite ajustar el punto exacto, con respecto a la
esquina superior izquierda del rea cliente del navegador (objeto document),
donde se desea que comience a posicionarse una determinada caja. Se expresa con
p o s i t i o n : a b s o l u t e y las coordenadas del punto medido normalmente en
horizontal desde el borde izquierdo ( l e f t ) y en vertical desde el borde superior
(top) Un cdigo de ejemplo de posicionamiento absoluto podra ser:
L

NOMBRE (position:absolute; left :70nx; top: 50pu)

APELLIDO-1 (pcsition:ahsolute; 1eft:'lOpx; top:lriCipx}


APELLIDO-2 (gosition:a~s<jlute;left:200px; top:IWpx}

El posicionamiento relativo permite ajustar el punto exacto, con respecto


al punto que le correspondera como caja de bloque o como caja en Inea, donde
se desea que comience a posicionarse una determinada caja. Se expresa con
p o s i t i o n : r e i a t i v e y las mismas coordenadas comentadas para el posicionamiento absoluto.

CAP~TULO131

Visualizacin de documentos X M L con CSS

Un cdigo de ejemplo de posicionamiento relativo podra ser:

El posicionamiento flotante sirve para dejar flotar libremente una determinada


caja, que ser desplazada a la izquierda o a la derecha de la lnea de texto donde se
encuentre. Se expresa con f loat :left o float :right y las mismas coordenadas comentadas para el posicionamiento absoluto.
En caso de utilizar el posicionamiento absoluto para varios elementos XML, se
puede dar la circunstancia de que se solapen total o parcialmente, produciendo
situaciones indeseadas, o, si se controla bien, puede dar lugar a diseos especiales.
Para controlar qu objetos deben mostrarse superpuestos a otros objetos, se puede
utilizar la propiedad z-index, que permite dar un valor a cada elemento de
manera que los que tengan valores ms altos se siten encima de los que los tengan ms bajos. Si se definen unas reglas CSS como las siguientes:

aparecer el nombre por encima del primer apellido que, a su vez, estar encima del
segundo apellido, todos ligeramente solapados entre s.

Unidades de medida
Una de las caractersticas ms completas de CSS es la diversidad de unidades de
medida que permite utilizar.
Existen dos grupos de unidades de medida: relativas y absolutas.
Las unidades de medida relativas son aquellas que dependen de alguna condicin, entre las que se encuentran:
e EM se refiere al tamao de las maysculas (letra m) del tipo de letra que se

toma de referencia. Coincide con el tamao de la fuente de letra.


e EX se refiere al tamao de las minsculas (letra x) del tipo de letra que se

toma de referencia.
e PX se refiere a los puntos de la pantalla (pxeles) con la resolucin que est

en activo.
se refiere al porcentaje del valor dependiente del contexto.

e %

Un ejemplo de cdigo CSS con referencias a unidades relativas sera:

XML. Iniciacin y referencia

Las reglas anteriores indican que NOTA tiene una altura de Inea igual a vez y
media el valor del tamao de su letra, que TTULO tiene definido un espaciado
entre letras igual al tamao de una minscula de su letra, que SUBTTULO tiene
fijado un espaciado entre palabras igual a dos veces el tamao de su letra. y que
PRRAFO tiene especificado un margen izquierdo igual a 25 pxeles.
Las unidades absolutas de medida son las que dependen exclusivamente de sus
propio sistema de medicin, entre las que se encuentran:
N
I
indica pulgadas (inches). Una pulgada mide, aproximadamente, 2,54
centmetros.
CM indica centmetros.
MM indica milmetros.
PT indica puntos tipogrficos. Una pulgada es igual a 72 puntos, o lo que
es lo mismo, un punto tipogrfico es igual a 1/72 (pulgadas).
PC indica picas. Una pica es igual a 12 puntos.
Un ejzmplo de cdigo CSS con referencias a unidades relativas sera:

Las reglas anteriores indican que NOTA tiene una altura de Inea igual a 15 puntos tipogrficos, que TTULO tiene definido un espaciado entre letras igual a
1/4 de pulgada, que SUBTTULO tiene fijado un espaciado entre palabras igual a
2 centmetros, que INTRODUCCI~N ha sido descrito con un borde de 1/10 de
pica, y que PRRAFO tiene especificado un margen izquierdo igual a 25 milmetros.
Cada usuario puede utilizar las unidades de medida que considere ms adecuadas, pero hay que tener en cuenta que medir con medidas absolutas exige
conocer las dimensiones del medio que soporta el documento, mientras que las
relativas se ajustan siempre a las condiciones de cada observador.
Los tamaos de letra suelen especificarse en puntos tipogrficos.

Colores
Los colores pueden definirse en CSS por dos sistemas principales: por su nombre o
por su descripcin RCB.
Cuando se utilizan colores sencillos es ms fcil definirlos por su nombre,
estando normalizados los siguientes 16 colores: aqua (azul claro), black (negro),
blue (azul), fuchsia (fucsia), gray (gris), green (verde), lime (verde lima),
maroon (marrn) navy (azul oscuro), oiive (verde oliva), purpie (morado),
red (rojo), silver (plata), tea1 (verde azulado), white (blanco) y yellow
(amarillo).
La descripcin de colores a travs del modelo RGB (Red-Green-Blue, rojoverde-azul), o sea, el patrn que se basa en la combinacin de los tres colores primarios de luz, es ms adecuada para cuando se desea precisar el color con total

CAP~TULO
[3] Visualizacin de documentos XML con CSS

exactitud. Se puede utilizar la notacin decimal (tres valores entre O y 255) o


hexadecimal (tres valores entre 00 y FF), indistintamente, segn interese.
Cuando se define un color por sus valores decimales RGB, hay que utilizar el
modelo color: rgb ( Val orRed, Val orGreen, Vzl orBl ue) .
Un ejemplo de descripcin RGB decimal sera:

Cuando se describe un color por sus [Link] hexadecimales RGB, hay que utilizar el modelo color: # ValorRedValorGreenValorBl ue.
Un ejemplo de descripcin RGB hexadecimal podra ser:

Los diseadores web, conocedores de las ventajas de utilizacin de la paletaweb de colores, suelen manejar valores hexadecimales de colores en los que se repite una cantidad (33, 66, 99, FF, etc.), por lo que es muy usual (y est permitido) utilizar el mtodo reducido de descripcin que slo incluye una de las cifras repetidas,
y as, por ejemplo, el mismo cdigo anterior, en formato reducido, sera:

Comentarios
Para introducir comentarios entre las reglas del cdigo CSS utilizaremos el modelo
/ * comentarios */, dando lugar a cdigos como el siguiente:
NOTA

{colo.-:bTiia)

/+

ios t l t u i e r e c e n e n colo; + o j o * /
las acito.= aparecPrr en Colnr azul * /

Los caracteres de comentarios no deben confundirse con los caracteres que se


utilizan para ocultar las reglas de estilo a los navegadores que no soportan esta tecnologa. Estos conocidos limitadores son < !- - y - - > .

Control de textos
La mayor parte de la informacin de los documentos web se encuentra en forma de
textos, por lo que existen muchas propiedades CSS para su control.
Las caractersticas de formato CSS imprescindibles para el control de los textos
son la descripcin del tipo de letra (la fuente), de su tamao, de su estilo y de su
alineacin, adems del color.
El modelo bsico para describir un determinado tipo de letra del contenido de
texto de un elemento XML es f ont-family: TipoLetra.
Como es bien sabido, no todas las mquinas cliente tienen instaladas las mismas
familias de fuentes o tipos de letras, por lo que, si la fuente fijada no est disponible, el visualizador web muestra la informacin con el tipo de letra que
tenga prefijada por defecto. Para evitar esto, es posible indicar modelos como

XML. Iniciacin y referencia

font -family :T i p o L e t r a l ,T i p o L e t r a 2 , T i p o L e t r a 3 . . . , que obliga al


visualizador a utilizar la que figura en primer lugar, y si no dispone de ella, la que
aparece en segunda posicin, y si tampoco la tiene instalada, la que est en tercer
lugar, y as sucesivamente.
Con este sistema es ms fcil evitar que se utilice un tipo de letra no deseado,
pero como es muy complicado tener en cuenta todas las tecnologas existentes y
combinaciones posibles, despus de marcar un par de tipos de letra adecuados
suele incluirse la denominacin del grupo al que pertenece la familia.
Existen cuatro grupos de familias principales: sana-serif (sin remates),
seri f (con remates), monospace (monoespaciada) y fantasy (de fantasa).
En la Figura 3.7 se puede ver un ejemplo con los tipos de letra que aplica IE5 a cada
grupo de fuentes.
Despus de lo comentado, un ejemplo de cdigo CSS con descripcin de tipos
de letras podra ser:

Slo queda aclarar en este punto que, al contrario de lo que pasa con los textos
escritos en papel, que en muchos casos se visualizan mejor con tipos de letra ((con
remates, la mejor visualizacin en las pantallas se consigue con los tipos de letra
del grupo ((sin remates, quedando los tipos de letra monoespaciados para los
casos en los que se precisa simular un cdigo de programacin o un texto escrito
con ((mquinade escribir)) antigua.
El modelo ms acostumbrado de descripcin CSS del tamao de los textos es
font-size:TamaoLetra, pudiendo utilizar la unidad de medida que se considere ms
adecuada, aunque lo normal es indicar el tamao en puntos tipogrficos (pt).
Un ejemplo de cdigo CSS que indica los tamaos de varios dementos, puede ser:

No existe un nico modelo de descripcin CSS del estilo de los textos, precisando de varias propiedades para obtener todas las posibilidades. Si se desea indicar el estilo denominado cursiva, el modelo que ms se utiliza generalmente es
font -styie: itaiic. Si se trata de indicar el estilo negrita, el modelo mejor es
font -weight :bold. En el caso de que se precise utilizar el estilo de subrayado,
la mejor opcin es utilizar el modelo text-decorati0n:underline. Otras
propiedades tiles para ajustar el estilo de los textos son word-spacing (separacin entre palabras), ietter-spacing (separacin entre letras) y
text-transform (conversin a maysculas o minsculas).
IMPORTANTE: En el Apndice A hay un resumen de las propiedades de
CSSZ.

CAPITULO
131 Visualizacin de documentos XML con CSS

Griipo serif (con 1-eiiiates)


Grupo nomospace (rnonoespaciada)
Wipo FANTASY !de h b ~ ?

Figura 3.7.
-I

Un ejemplo de cdigo CSS que define el estilo de varios elementos puede ser:

La alineacin de los textos, con respecto a los bordes derecho e izquierdo


del contenedor de la informacin, se controla fcilmente en CSS con el modelo
text-align:AlineacinTexto, donde se pueden incluir los valores ieft (izquierda),
right (derecha), center (centrado) y just ify (justificado).
Un ejemplo de cdigo CSS con descripciones de alineacin de textos puede ser:

Por ultimo est permitido agrupar varios valores de propiedades de texto utilizando el modelo general font :valor1 V a l o r 2 valor3. . .
Con este sistema se pueden generar cdigos CSS como el siguiente:

Imgenes
La referencia a las imgenes (en realidad es a los archivos de imgenes) debe
hacerse en CSS a travs de su descripcin URL con la notacin uri ( URL).
Por ejemplo, si se desea que una determinada imagen aparezca como fondo de
un elemento XML, se puede hacer con un cdigo CSS como:

MEJORAS DEL DOCUMENTO XML-CSS


Despus de repasar las caractersticas m65 importantes de la especificacin CSS2
estamos en disposlcin de mejorar mucho nuestro primer dmumento XML-CSS,

Grupos de tipos
de letras
principales.

XML. Iniciacin y referencia

que tratamos al principio de este captulo, y que se corresponda con los archivos
[Link] y [Link].
Para realizar las mejoras no es preciso retocar el documento XML, debiendo
hacer los cambios slo en la olantilla CSS. El lector ouede modificar el archivo
[Link] repetidamente pa;a ver el efecto de dichas modificaciones en la presentacin del documento XML.
Una de las muchas variaciones posibles sera dejar la plantilla CSS como el
cdigo que viene a continuacin, que se ha guardado con el nombre articulo2.c~~.
font-fami1y:Verdana; co1or:grceri;
bnrckr-bottm: duuble 4gt navy; cext-alfgnileft]
l v ..Verdana;
-a -u-t o--r tdianlriv.h'lnru- - -A . - - - .- , n- ?--t-- s -i 7-b->,- 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;
nrqin-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 :

.- -

-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; [Link]-:ndent:lcml

Para que el documento XML pueda recoger las reglas de formato de [Link], hay que modificar la segunda lnea de su cdigo para que quede como:

Este nuevo documento XML tiene la denominacin de [Link],


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 todava vamos a incluir algunas correcciones. Se trata de mostrar las palabras que aparecen entre comillas
(nueva, etiquetas y cdigo) sin las comillas y con estilo de negrita ( < m ,)y ya
puestos, vamos a ordenar que la palabra que figura entre parntesis (tags), tenga
un estilo de cursiva ( < c > .)
Estos efectos se consiguen aadiendo al cdigo CSS de articulo2.c~~
las siguientes reglas:
f r i n t - v ~ i g h : rnldr di'dpley :inline 1
d. { font-styie:italic; disp1ay:inline 1

Esta nueva variante de la plantilla CSS hay que guardarla como [Link].
Tambin hay que modificar el documento XML en dos sentidos: uno actualizando

CAP~ULO
[3]

Visualizacin de documentos XML con CSS

Evolucibn del XML

Figura 3.8.

Documento
[Link]

visto con IE5.


la lnea que llama a la nueva plantilla CSS, y despus incluyendo las correspondientes etiquetas <n>y <c> en sus respectivos lugares. El cdigo del nuevo documento XML, denominado [Link], se corresponde con:

necesaria la conexin 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. Iniciacin y referencia

Para terminar de mejorar el proceso habra que incluir algunos comentarios que
ayudasena leer los cdigos XML y CSS ms fcilmente. Ya hemos visto cmo 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 presentacin en la pantalla.
Un ejemplo del documento XML con comentarios podra ser el que se muestra
a continuacin, localizado como [Link].

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
<comentario~ocwlto~.
A continuacin se muestra el cdigo CSS con todas las
actualizaciones incorporadas, guardado con el nombre de articulo4.c~~.

Visualizacin de documentos XML con CSS

CAPITULO [3]

Al abrir con IE5 el ltimo documento XML [Link], formateado


segn indican las reglas del documento CSS [Link], obtendremos un resultado como el que se muestra en la Figura 3.9, donde se puede observar que se desy con cursiva (<c>),y
tacan las palabras (elementos) marcadas con negrita (a>)
tambin que no se muestran los comentarios aadidos.
Bien, cualquier persona que est leyendo este libro tiene sin duda una aptitud
curiosa que no se conforma fcilmente, ya que si no fuese as, estara tumbado en
el sof viendo a los Simpsons, en vez de pelearse con los documentos XML y
CSS. Es por tanto seguro que ms de un lector, conocedor de las posibilidades del
HTML, se estar preguntando jcmo se pueden incluir los hiperenlaces en este
proceso? o cmo se pueden insertar las imgenes en un documento XML-CSS?
S610 tiene que seguir leyendo para solucionar se y otros problemas similares.

Evolucinii del XML

..

--

. .. .

hboucclbn
-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 [Link].

ni..*

-..
-4

18

w u a n* b

-m

r
i.O"

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

Ir*,"

.,-m
in y

p*

m
. di .m. .m* W W. u-.
ib.
r ni"[Link]

[Link] de marcado

rrfnrr-

id

".-m

p . r ~

i
-

i.n

nyitn

-&re.

r r ,m.*

-i

m.,-.

dic

m i -.m

u m-*

mm

m". hnnrl"

Figura 3.9.
Documento
[Link]
visto con IE5.

XML. Iniciacin 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-mbinhe dejado claro (eso espero!) que XML no es ui sustituto de HTML, sino ms bien un complemento.
Teniendo en cuenta estos comentarios, y buscando siempre el proceso ms fcil
y prctico posible, vamos a ver cmo se puede aprovechar lo mejor del HTML en
cualquier sistema de visualizacin XML-CSS, como el que estamos tratando en este
captulo.

IMPORTANTE: En el captulo siguiente se van a ver ms ejemplos de utilizacin del cdigo HTML, pero este libro no es una gua de HTML, por
lo que recomiendo al lector que no conozca este lenguaje que adquiera
un buen manual de programacin HTML, ya que sigue siendo la base de la
mavora de las tcnicas de diseo web.
Para poder seguir adelante es imprescindible que comentemos un nuevo concepto: el espacio de nombre (namespace).

IMPORTANTE: Ms adelante, en otros captulos, 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 informacin
XML. Estos documentos pueden provenir de diferentes orgenes 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 <nombre>,<ttulo>, <nota>, <precio>,
<inicio>,<final>,<total>,<orden>,<fecha>,<clave>,etc.
Esta posible interferencia puede evitarse controlando al detalle cada uno de los
documentos para asegurar que no existe repeticin alguna de etiquetas o de atributos (cuestin 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, segn 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 definicin no es nada aclaratoria para los usuarios
que no conocen este trmino, yo creo que es ms til imaginar que los espacios de
nombre son unas capas en las que se incluyen los elementos de cada coleccin 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 informacin de la totalidad.

C A P ~ U L O133 Visualizacin de documentos XML con CSS

En nuestro caso vamos a disponer dos capas (perdn, 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 <P> de HTML y de la 0
<p>utilizada en nuestro ejemplo XML.
Cuando no se especifica nada sobre espacios de nombre, se da por hecho
que toda la informacin se manipula en un nico espacio de nombre (una nica
capa de trabajo) que existe siempre por defecto. En nuestro ejemplo, si no aadimos nada especial, la informacin 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 ms sencilla para
poder crear dicho espacio de nombre sera incorporar el atributo
x m l n e :h t m l = " u r i :h t m l " a la etiqueta del elemento raz, que en nuestro caso
quedar como:

IMPORTANTE: Se vuelve a recordar que ms adelante se volver a tratar


con ms detalle el tema de los espacios de nombres.

Con esta sencilla operacin ya es posible utilizar cualquier etiqueta HTML sin
problemas, con la nica precaucin 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 electrnico, hay que modificar el correspondiente cdigo 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 clsica pgina web formada por lo mejor del XML, del CSS y del
HTML, adaptndose a los conocimientos y necesidades particulares del diseador.
Volviendo a nuestro ejemplo, el cdigo del documento XML podra retocarse
para llegar a quedar como se muestra a continuacin, con la referencia de [Link], donde se pueden ver resaltados los aadidos HTML, como la creacin de un espacio de nombre especial para HTML, la inclusin de varios hiperen-

XML. Iniciacin y referencia

laces (de marca, de correo electrnico y de web), la insercin de dos pequeas imgenes contiguas a las palabras XML, un par de saltos de Inea forzados
( < h t m l : br />), una lnea de separacin ( < h t m l : hr . . . />) y unos guiones de
separacin 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,).

<?m1version="[Link] en~oding=~ISO-8859-1"7>

c7xml-styleehinc Iiref="arti~:[Link] .cssn ryp~=~:ext/caf"?>


~orticulodn~ahtm=~uri:Etmi">
< ! - - C a b e r ~ r adel dciriinrrito
<htmi:a ~ a m i o = ~ p r i n c i p i o " > < / h ~ i a >
-Z t i ~uloP>Evolucibndf71XML</titulor..
-:autcr><htmi:a href=uinailto:r~Pgramon.o~R>Ram6n
Yontero</html:a>c/auior-.
-~i!?t~c:.En
este articulo ae muc,=Lrala wol_i~ii511
hist1''rim r ? i l
Y.:.' i n t ror.
c ! - - Gil-rpo del clo~:~l-intr?
. t i tulo.?[Link]~jcc$-Sn.-lt
itu !~>i,
-:F .Larzi ~ " : ? * n d e rlil t v ~ l ~ i r . i , 5do1
n
<html:img src="[Link]" / > :'?TI
h i l ~' 1 ~ "retroced.=:- I la + o r , i er, la que loa si::te:nas r i e cmmuutaci~;-,
-rm todos p r g ~~:.aricts
i
-Ir la.+ - r r ~ . r ~ . i r l sm.- 1 ~ '~ r e a l . 5. ~ .
cri -Fa realidad, ias idas3 iir ~ s t a--F. nueva< fn:. tecr:[Link] r1.2
s:i,braconcsridas d*s+ il;i.-e miicho.% aios .: !I+..rn 36rCiit;5 ~ia.n.10:TI~P.~.,L;
:-es:;it?!doae n mltiple.: priiyecco. :.!a-<?~ a ren4sar- . i h i , n a s d r r:5cr25
ideas a cor.: [Link]! h . /1:1
<html:br / >
c r j ! - ~ L t 3 A : - S i s t ~ r ,3
a0: il..ircor-lc~. :itul.%;:q r ,Fl
~
s i sc=ma dc marcacin 3,: tcrmar? 3 - ri.?i:ya en marca- el texrc,. ~ , n
: : - , s ! ~ : u c , : i ~ ; ~ ~p?~z e , :L F . ? ~, q u ~d*?[Link]:ad+ UIICI d.? 1,2.; ~ ? T - I I I ~ < ~ ~ - ~cll
~~>!.~:'
3
,.:I<F-?.:I
n[,>Li,:,;.r a 1.1s pa c*
c!ci - - ~ - , : < t t i ~ , t n l c s <:,)m0 ,:l
t iij~->
dr. [Link] 1-7 O
--b

'

e
.

_I.

5,:i &:hL:l%>,.J .

.r.--r.L!it~~~y
s , ::(-,n L I ~~L,:,::PSC
aoc:-rr,~r.:c c m i-n t o r i ~ a t iic1e:ez:r
~

.tgt-r;.- 'c>) o
r-~pr~oiuic~r
,.In
l r i x i u p01 U I I L:,n!it
-~
+.li! O ~ I ?-eso
I
en
r -ericiutL.3:;i

v * l i % s i .;+

/n>

LTFIT.~

( . (i

d,=

p;:{-el..' y
<html:br / >

. : : tulr>A-.;cliii

acin- ' c i tulct.r


.
ri.:ce?a-~laf !:;ir,q. e'i 3eaai-I cilo al= <html:fnig
c'
m
:.?? a g-,r;), - i [Link].~:, necfi2r-is
erc="[Link] / > A;;: -,,a.i ~ c I . ~ . - : . i . 4 i i ; ~ ?pc
la ~i.,s:~e:-:i~:ii
3.: <html:a hrefeU[Link]
!.Y I
i:;t,c 3 1 , j L a .:!it:.:t,>
~t':lz:,=,nt~ pror
,-ir t;-.*.-t~;.,-l<,:-!.c/p>
c!Com~nr_~i~:~s
jei ~ O C U I C F ~- -?> ~ ~
.:~:cmi?iite!rioF -clt im;i ~RC?!? CIF a,-ri;ali:acin: 25 cie i.l-*:-ll ,'.e

. ~;"I,os iicrmat:

.:j

, <= . :m

.:IJm. / C L > , V + ~ ; ~ . : ~ir3F:.


L
<htnii:hr ~idthp1~400"
eize="4" Color="#009900"/~
<?

chtml:center,
<htmi:a bref="~rincipion>[Pricipidde pgipal </htnU:a, <html:font
color="whiteW>--u/htmirfont>
<html:a bref="[Link] [Pagina principall</html:a,
</html:center>
,:/p.:.

ccornenter-i,~-ociiit _ o ; ~ L sE.t rlnci:n~eritoea un


cumy~:eto~./s~;~rrirnt~rio-oriil
Lo>

. riicblu .
!

i f i .iri 5n

e-

cirro

m.+?,

CAP~TULO[3]

Visualizacin de documentos X M L con CSS

Figura 3.10.
Documento
[Link]
visto con IE5.

Tambin se puede observar que no se ha precisado hacer modificaciones ni


incluir complementos en la ltima plantilla CSS, ya que HTML est totalmente definido en el analizador interno del visualizador web, en este caso en IE5.
En la Figura 3.10 se puede observar el resultado conseguido con la ltima
versin de nuestro preciado documento XML.
En el caso de que se desee especificar un determinado formato para alguna de
las etiquetas HTML en la plantilla CSS, tambin se puede hacer sin mayor problema, ya que es suficiente con aadir la etiqueta y su descripcin, teniendo en cuenta que hay que anteponer el prefijo HTML: \ .
En nuestro caso, si queremos aplicar un determinado formato a los enlaces, por
ejemplo, habra que aadir en el archivo CSS algunas lneas como las siguientes:

CONCLUSIONES
Las conclusiones finales de este captulo son pocas y muy claras, ya que se reducen
a dos realmente importantes:
o
o

Es muy fcil crear una pgina web a partir de un documento XML y de una
plantilla CSS.
Si CSS no proporciona fcilmente alguna solucin se puede recurrir al HTML.

No obstante, hay que dejar claro que este proceso de presentacin de informacin con XML-CSS slo est indicado para exponer documentos que incluyan
principalmente textos y datos expresados en forma secuencial, o sea, informacin
que deba ser mostrada en su totalidad, tal como figura en el documento XML.

XML. Iniciacin y referencia

Este tipo de documentos es de uso muy normal, abarcando cualquier libro,


informe, revista, memoria, programacin, anlisis, artculo, folleto, currculum,
exposicin, crtica, cuento, noticia, examen, normativa, catlogo, etc., incluyendo
) textos, datos numricos, hiperenlaces, tablas, listas e imgenes principalmente.
Bueno, creo que ya es hora de dejar descansar a nuestro vapuleado documento de ejemplo.
Yo ya he terminado este captulo, pero el lector NO, ya que la nica forma de
dominar un procedimiento de diseo es practicar lo suficiente como para conseguir
solucionar cualquier problema y, en consecuencia, ahora (s, justo ahora) es el
momento adecuado para realizar varias pginas web soportadas en documentos
XML y CSS relacionadas con el sector profesional, familiar, estudiantil o personal de
cada lector.

Visualizacin
de documentos
X M L con HTML

NA vez tomada la decisin de dar la mayor prioridad al proceso de creacin


de pginas web basada en documentos XML, y despus de ver cmo se
puede enlazar un documento principal XML con una plantilla de formato
CSS, en este captulo se va a estudiar el proceso de visualizacin de documentos
XML a travs de cdigo HTML, sistema que permite acceder a la gestin de informacin XML a cualquier diseador web, que siempre est obligado a conocer las
posibilidades de la especificacin HTML.
Qu ventajas puede tener la creacin de pginas web con HTML, en vez de
hacerlo con CSS?
Las ventajas de incluir informacin XML en cdigo HTML pueden resumirse en
tres principales:

o
o
e

HTML es el lenguaje de descripcin de pginas web ms conocido y utilizado en la actualidad.


Permite aprovechar las mejores ventajas de cada sistema.
Permite seleccionar la informacin ms adecuada, y en el orden ms idneo,
para ser incluida en la pgina web, sin necesidad de recurrir a procesos de
bases de datos o servicios en el servidor.

Es posible saltarse este captulo sin perderse en los siguientes? La respuesta es


que s, pero nadie debe pensar que el tratamiento de XML por medio de CSS o
HTML es una tcnica inferior, ya que todo diseador web, sea aficionado o profesional, debe aprovechar siempre las tcnicas ms tiles, prcticas y eficaces que

XML. Iniciacin y referencia

estn disponibles, sin importar su antigedad o cualquier otra consideracin que no


sea estrictamente tcnica.

Es casi seguro que el lector ya conoce, utiliza, e incluso domina, la tcnica denominada HyperText Markup Language (lenguaje de marcado de hipertexto), ms
conocida por sus iniciales HTML.
HTML es el proceso ms utilizado en el diseo web, estando en vigor la versin
4.01 de su especificacin (una revisin de la 4), aunque en muchas ocasiones se utilizan slo las posibilidades de la versin 3.2, ya que es la versin que est ms
soportada por la mayora de los visualizadores web. En realidad, en la actualidad no
hay ninguna herramienta que soporte todas las caractersticas completas de la
versin 4 de HTML, pues incluso la versin 5 de lnternet Explorer no admite la totalidad de sus peculiaridades, aunque como ocurre con CSS, s soporta la mayora y
nos permite aprovechar sus principales ventajas.
HTML 4.01 est vigente desde el 24 de diciembre de 1999 (aunque las primeras normas de HTML son de 1992, se puede decir que la normativa del HTML
empieza con la versin 2.0 en 1995 y se asienta con la 3.2 en 1997), tal como se
puede observar en la Figura 1.7 ([Link]~/TR/html4/).
Existe una norma ISO que coincide con la recomendacin HTML 4, aunque no
exactamente, ya que es ms rigurosa en su aplicacin. Se conoce como ISO/IEC
15445, su primera edicin es de 15 de mayo de 2000 (vase la Figura 4.1)
(http:// [Link]/-rwrice/l5445![Link]).
Hay que recordar tambin que el futuro del HTML pasa por la especificacin
XHTML, que actualmente se encuentra en su versin 1 .O, publicada como recomendacin del W3C en el 26 de enero de 2000, tal como se puede ver en la Figura 4.2 (htto://[Link]/TR/xhtmll/).

Inforrnatlon iechnology - Docurneni descrlptlon and processlng languages HyperTexi Markup Language (HTML)

Figura 4.1.
Estndar
internacional
ISO/IEC 15445.

CAPITULO
[a] Visualizacin de documentos XML con HTML

XHTML- 1 O The Esensible HyperTaxl Markup Language


A Rcfamibafiooel HTML 4 In XML 1 0

Figura 4.2.
Recomendacin
XHTML 1.O.

HTML ha sido muy bien acogido por los diseadores web y por el pblico en
general, gracias a su facilidad de aprendizaje y de uso, siendo una de las pocas tcnicas de programacin utilizadas masivamente por los usuarios no especializados,
existiendo en la actualidad muchas y variadas aplicaciones, utilidades y herramientas
que facilitan la labor de creacin y mantenimiento de pginas web basadas en HTML.
La generalizacin del HTML, y su carcter de dominio pblico, ha dado lugar a
que, cada vez ms, sea utilizado como formato de intercambio de documentos,
tanto en aplicaciones comerciales como en mensajes de correo electrnico, como en
presentaciones multimedia, como en catlogos digitales, etc.
HTML 4 no ha sido desarrollado pensando en XML, ya que esta relacin est
contemplada a travs de XHTML.
Los lectores que no conocen HTML (jexiste alguno?) pueden imaginar que es
una coleccin de etiquetas predefinidas de antemano, capaces de controlar datos e
informacin contenida en los documentos hipertexto e hipermedia.
No es este libro el lugar adecuado para tratar con detalle todas las posibilidades
del HTML. Cualquier lector interesado en dominar al mximo la especificacin
HTML debe conseguir informacin particular.
IMPORTANTE: En el Apndice A se puede consultar una tabla resumen de HTML. En el Apndice B se indican algunos recursos sobre
HTML.

XML EN HTML
Microsof?, y esperemos que las dems empresas y organismos lo apoyen, ha creado una nueva etiqueta HTML denominada txmlz. Esta etiqueta HTML (no es
XML) est perfectamente soportada por IE5, por lo que vamos a ver y comprobar
su utilizacin practica.

XML. Iniciacin y referencia

PRECAUCIN: Es muy probable que los visualizadores web distintos de


lnternet Explorer consigan el mismo objetivo de la etiqueta <xrnl> con
el elemento < s c r i p t > , aplicando el siguiente modelo:
:

id-'nombre-id"

...

--

n r ~ - ~ d o c m r n t o - X I ~ . x n i l ~ > </script>

La empresa Microsoft denomina a la tcnica de introduccin de datos XML en


una pgina web HTML vinculacin de datos (data binding), estando ligada al
relativamente reciente desarrollo tcnico conocido como ADO (ActiveX Data
Objects, objetos de datos ActiveX) que, tratado convenientemente, proporciona
unos controles de acceso remoto a datos conocidos normalmente como controles
DSO (Data Source Objects, objetos de origen de datos).
La intencin de la etiqueta < m l > es permitir la inclusin, y la consiguiente gestin, de los datos de un documento XML en el interior de un documento HTML
clsico. Este conjunto de datos insertado en la pgina web HTML se denomina isla
de datos (data island). Su formato es el siguiente:

PRECAUCIN: La etiqueta <xml> no es un elemento XML, por lo que


tiene que cerrarse con su etiqueta de final </xml>. Nunca se puede poner
de la forma <xml id="nombre-id" src="documento~[Link]"/>.

La etiqueta <xrnl> indica que se va a relacionar el cdigo HTML en el que se


haya incluido, con un determinado documento XML definido por el nombre de su
archivo (con el atributo ~ r c = ~ d o c u m e n t o - ~ ~ ~ . x m
allque
"),
se le va a identificar, a partir de ahora, con un nombre identificativo particular (mediante el atributo
id="nombre-idw).
En primer lugar esta etiqueta se recomienda situarla al principio del ((cuerpo))
(<body>)del cdigo HTML, aunque puede situarse en cualquier lugar, siempre que
est delante del cdigo encargado de administrar los datos. Es perfectamente
posible incluir varias etiquetas
siempre que cada una de ellas haga referencia a un documento XML distinto y marque un nombre identificativo diferente.
Un ejemplo de cdigo HTML real, en el que se llama a un archivo prueba.xm1
y se le adjudica el nombre identificativo pruebaDS0,sera el siguiente:

CAPITULO 141 Visualizacin de documentos XML con HTML

Hay que recordar que <xrnl> es cdigo HTML, por lo que es indiferente si se
expresa en maysculas o minsculas.
Cuando se abre una pgina web HTML que incluye una etiqueta <xml>,una,
vez ejecutado su cdigo, el DSO carga y analiza los datos del documento XML, y si
pasa el examen, la informacin queda disponible para el procesador XML, permitiendo en cualquier momento su acceso y exposicin a travs del cdigo adecuado.

BASE DE DATOS XML


Para poder aplicar de forma prctica la etiqueta <xml>,antes de nada, hay que disponer de un documento XML, que en este caso va a tratar de una sencilla base de
datos en la que se guardan los datos de cuatro alumnos imaginarios de un, igualmente imaginario, centro de enseanza.
Su cdigo es el que sigue a continuacin, que debe ser tecleado por el lector y
guardado en la carpeta CAP-04 como alumnos04~[Link],aunque tambin puede
utilizarse el archivo equivalente descargado de www,[Link], al igual que los restantes ejemplos del captulo.

XML. Iniciacin y referencia

Despus de guardar el archivo est ms que indicado abrirlo desde IE5,no slo
porque ayuda a comprenderlo mejor cuando se ve organizado en forma de rbol de
datos. sino lo que es ms importante, porque cuando IE5 lo muestra en la pantalla
quiere decir que ha pasado positivamente el anlisis de posibles errores XML.
Hemos dado por hecho (y ser el sistema que sigamos utilizando) que los
datos XML pertenecen a un documento propio, externo e independiente del documento HTML, ya que esta divisin hace ms fcil gestionar los datos y la presentacin por separado. No obstante, tambin es posible incorporar los datos XML en
el propio cdigo HTML, entre las etiquetas de principio <ml>y de final i/xmlz,
quedando de la siguiente forma:
-zHEAD>
< T I T L E - 9 n c u n i ~ r , t oHTML
</EF'i3;-

de

<BODY>
<WL I D = " ~ r u & a D 8 0 - 2 ~ >

que tiene la misma utilidad funcional (incluir una isla de datos XML en el cdigo
HTML) que el procedimiento de tratamiento por separado, con la nica diferencia
(si nos olvidamos de las desventajas comentadas anteriormente) de que no se
precisa indicar el origen de datos (href="
").

.. .

DATOS TABULADOS
La forma ms sencilla de mostrar los datos de nuestro documento XML es a travs
de una tabla que, por otro lado, es uno de los mejores recursos de los que dispone
HTML.
Una tabla tpica en HTML se conseguira con un cdigo como:

XML. Iniciacin y referencia

Figura 4.3.
Resultado de
visualizar
[Link].

Tambin se puede observar que se ha aadido una lnea con la etiqueta < m i > ,
ajustada para enlazar con alumnos04~[Link] conteniendo el identificador
LietaAlumnoel.
Pero tambin se han utilizado dos nuevas entidades: datasrc (data-source,
origen de datos) y d a t a f l d (data-field, campo de datos).
DATASRC aparece como atributo especifico de ctable> en la que se hace una
llamada a los datos existentes ListaAlumnosl anteponindole el smbolo del
signo de nmero)) # ( < t a b l e datasrc="#LietaAlumnoel~~>).
DATAFLD es otro atributo de la etiqueta HTML cspanl que permite hacer una
llamada a cada uno de los datos)) del campo de datos (elemento XML) al que
hace referencia (<epan d a t a f l d = " e l emen to-XML" > < /span>).
En este ejemplo, d a t a e r c y d a t a f l d son atributos de elementos de una
tabla, porque es el sistema de presentacin HTML elegido, pero pueden aadirse a
otras etiquetas HTML, tal como se ver en otros ejemplos posteriores.
PARA LOS MANITAS: En el Apndice A se encuentra una relacin de
posibles elementos HTML a los que se les puede incorporar los atributos datasrc y datafld.
Las mayores ventajas de este sistema pueden resumirse en:
Los datos se encuentran en un documento XML (o varios) separado, haciendo ms fcil su modificacin.
e Se pueden incluir slo los datos que se necesiten y en el orden que se
desee. En nuestro ejemplo se ha modificado el orden de <nivel> y de
<curso>.
e Se hace referencia a los datos slo una vez, siendo el procesador interno del
navegador el encargado de mostrarlos en la pantalla repetidamente, segn
sea el nmero de stos. En nuestro ejemplo, el mismo cdigo sirve para cuatro alumnos que para doscientos.
e Es posible crear varias plantillas HTML para presentar la misma informacin de diferentes formas (listado de alumnos por nmero, por curso, por
edad, etc.).
0 HTML hace muy fcil el diseo del formato de presentacin en la pantalla a
travs de un visualizador web.

CAPITULO
[4] Visualizacin de documentos XML con HTML
Conseguir mejorar la apariencia de la pgina web modificando los tipos de letra,
tamaos, estilos, colores, etc., y, aadiendo algunos textos o imgenes, es un trabajo muy sencillo para cualquier conocedor del cdigo HTML.

PRECAUCIN: En esta ocasin, si se comete un error en el documento 8


XML o en las relaciones entre dicho documento y el cdigo HTML, no
se muestra ningn mensaje de ayuda, debiendo ser el propio diseador
el encarnado de buscar el fallo, con el nico auxilio de sus conocimientos.
En la Figura 4.4 se puede ver una variante de la tabla anterior, correspondiente al archivo [Link], en la que se ha cuidado ms la presentacin,
incorporando un formato ms llamativo.
El lector puede (no porque sea gratis, sino porque es su deber) realizar algunas
variaciones de formato por su cuenta para ver otras posibilidades distintas a la ofrecida por [Link].
Pero, qu ocurre si algn campo est vaco?, o cmo se comporta el proceso s no se muestra alguno de los campos del documento XML?, o jse pueden
hacer varias llamadas a los datos XML desde el cdigo HTML?, o l... ?
Bien, el captulo no ha hecho ms que empezar, y como es bien sabido, la respuesta est aqu dentro)) (ms o menos).

Como el mejor medio de comprobar nuestras dudas es probarlas, vamos a ver qu


sucede introduciendo algunas modificaciones en la presentacin del documento.
Para comprobar la repercusin de algunas variantes en la presentacin de
nuestro documento XML, vamos a modificar el cdigo de ejemplo04~[Link]
introducir tres nuevos elementos: <edad>,<sexo> y <observaciones>.A
continuacin se muestra el nuevo listado de datos de nuestros alumnos, que se
corresponde con el nombre de [Link].

LISTADO DE ALUMNOS del Centro "TODO- WEB


~

--- - - -um L F F A L ~ M F----~ ~

Numero

Nombre

Apellido

Rdmbn P-ro

Curso

'

Nivel

Iniciacl6n

la&

3
d

s&mdo ~iidows>ri0 ~vanzedo


As@mMuiiTercero
HiML
BS;lco
M s r h Taresa Cuarta
UNIX
Medio

Figura 4.4.
Resultado de

visualizar el
ejemplo04-03. htn

XML. Iniciacin y referencia

En primer lugar veamos qu ocurre cuando algn campo de datos est vaco,
que es el caso del nuevo elemento <edad>,que tiene datos en dos de los alumnos
y est vaco en los otros dos.
Ahora es necesario modificar la tabla de nuestra pagina web HTML para aadir
una nueva cabecera Edad y su correspondiente columna, que puede ser situada en
el lugar que ms interese y con los parmetros de formato ms idneos al caso.
El cdigo modificado puede quedar como el que viene a continuacin, guardado con la referencia [Link].

CAP~TULO[4]

Visualizacin de documentos XML con HTML

El resultado de esta sencilla pgina web HTML es el que se muestra en la


Figura 4.5, donde se puede ver que no existe problema alguno en hacer una Ilamada a un elemento sin contenido, ya que IE5 se limita a dejar vaca la casilla
correspondiente.

L I S T A O DE ALUMNOS da1

_
I

"TODO-WEB"

L I S T A DE ALUMNOS

Figura 4.5.
Documento
[Link]
visto desde IE5.

XML. Iniciacin y referencia

Respecto a la cuestin de cmo se comporta el sistema si algn elemento del


documento XML no queda referenciado en el cdigo HTML, la respuesta es que no
pasa nada, simplemente se ignora toda la informacin que no se seala con su
correspondiente atributo darafId.
En el mismo ejemplo anterior se puede ver un caso en el que se han aadido los
elementos XML <sexo> y <observaciones> al archivo [Link]
sin que sean tenidos en cuenta dichos campos en el cdigo HTML que define la
salida en pantalla de la tabla de datos, observando que no existe repercusin
alguna, salvo la lgica falta de informacin correspondiente.
Otra cuestin importante es que los datos de un mismo documento XML pueden ser insertados en varias tablas diferentes de una misma pgina web HTML o
desde varios archivos distintos HTML.
Por ejemplo, si utilizamos un cdigo HTML como el que se muestra en el
[Link], se puede apreciar una gestin de datos, procedentes de un
mismo documento XML [Link], en la que se manejan dos tablas
separadas.
El cdigo HTML de [Link] es el siguiente:

CAPITULO141 Visualizacin de documentos XML con HTML

En el cdigo anterior se puede ver que existen dos tablas con diferente diseo
y contenido, que utilizan los datos del mismo documento XML, al que se refieren
con el mismo nombre de identificacin ListaAlumnos4.
La salida en pantalla del [Link] es la que se puede ver en la Figura 4.6.

L I S T A W DC ALUMNOS i l G m t n 'TIODO-WGI"

OeKRV4CIOFES

AL-S

mmm-mmmmFigura 4.6.
Documento

[Link]
visto desde IE5.

XML. Iniciacin y referencia

DOCUMENTOS ASIMTRICOS

Hasta ahora todo ha sido bastante sencillo, ya que todos los datos del documento
3 XML
estaban organizados de forma tabulada simtrica (un dato por cada celda de
la tabla) y dependientes de un nico elemento padre (alumno), lo que por desgra-

cia no suele ser lo usual.


Siendo muy corriente que los datos sean asimtricos y existan varios niveles de
dependencia, vamos a ver qu problemas proporcionan y cmo se pueden resolver.
En primer lugar se va a estudiar el caso de que un mismo campo pueda tener
varios valores. En nuestro ejemplo puede ocurrir que algunos alumnos puedan
estar inscritos en varios cursos a la vez, siendo lgico que cada uno de ellos haya
elegido un nmero diferente de los dems. El cdigo XML correspondiente sera el
que se corresponde con alurnnos04_07.xml, donde se ha modificado el elemento
<curso> para que pueda contener un mximo de tres cursos, tal como se muestra en el siguiente cdigo:

Si el lector intenta utilizar un cdigo HTML con tablas y llamadas a los datos
XML similar a los de los ejemplos anteriores, no obtendr los resultados adecuados,
ya que los nuevos elementos se han creado en otro nivel de la estructura del
rbol.
Para conseguir que se tengan en cuenta los datos de los cursos de cada uno de
los alumnos, lo ms fcil es recurrir a crear otra tabla secundaria que sea capaz de
controlar los datos de los cursos, que est anidada con la tabla principal y que est
situada en la celda adecuada.
En el cdigo HTML que viene a continuacin, cuya referencia es [Link], se puede ver una de las soluciones posibles a nuestro caso, aunque
se podran disear otras diferentes basadas en la misma tcnica.

CAP~TULO141 Visualizacin de documentos XML con HTML

7-

<td>
ctable d a t a 8 r ~ = ~ # L i m t ~ u m ndoe~
t5
af
~l d - m ~ ~ r m ~ a m
cellipa~l~=~O"~ctboay>ctr>ctd~
capan datafld;."cursolu~~/epan~cbr>
capan datafld="cureo2">c/epanwbr>
cepan detafld="cureo3">c/epan>&nb8p;
c/td>c/tr></tbody>c/table>
</td>
: / t r ~/tbody>c/tabl. / r eritcs,</body
ntni- .

,.

La solucin pasa por crear una nueva tabla que se site en la celda (<td>)
correspondiente a los cursos, que recoja los datos del documento XML
(datasrc="#~ista~lumnos5")
y se posicione en el nivel jerrquico de los cursos (datafld="cursos"), con ia siguiente sentencia:
- - v- a -,

. S

ctable dataer~='~#LietaAlumnoa5*datafld=acurao8m>

El documento XML al que se hace referencia, o sea, alumnos04-07.xm1, tendra


los mismos datos que ya conocemos, y en vez del elemento <curso> incluira las
siguientes modificaciones:

La salida en pantalla del ltimo documento [Link] es la que se


muestra en la Figura 4.7.
De la misma forma en la que se ha hecho referencia a una lista propia de elees posible
mentos c curso^>) dependiente de otro elemento padre (<cursos>),
realizar cuantas llamadas sean necesarias a conjuntos de datos similares.

XML. Iniciacin y referencia

LISTADO DE ALUMNOS d.1 G m t n "TODO-W6k"

LISTA DE A L W S

Figura 4.7.

Documento
[Link]

visto desde IE5.


Modificando el documento XML para que incorpore el nivel de cada uno de los
cursos en los que est matriculado cada alumno con un diseo similar al siguiente:

se consigue el cdigo [Link].


Accediendo al archivo [Link] se puede observar un caso en el
que se muestra una tabla con diferentes cursos y sus correspondientes niveles, recogidos del documento XML [Link]. En la Figura 4.8 se muestra el
resultado de combinar los dos ltimos archivos [Link] y [Link].

LISTADO DE ALUMIUXI di( G n i n "IODO-WW'

USTA

DE A

L W S

nam

Figura 4.8.

Documento
ejemplo04-1 [Link]

visto desde IE5.

CAPITULO [4]

Visualizacin de documentos XML con HTML

El cdigo HTML correspondiente a [Link] es:

En el cdigo anterior se puede observar cmo se ha repetido para los niveles la


misma solucin que se adopt para los cursos, o sea, crear una nueva tabla que se
site en la celda (<td>)correspondiente a los niveles, recoja los datos del docuy se posicione en el nivel de los
mento XML (datasrc=""~ista~lumnos6")
niveles (datafld="niveles"), con la siguiente sentencia:

CONTROL DE ATRIBUTOS XML


En algunas ocasiones se prefiere incluir ciertos datos de los documentos XML en
forma de atributos, en vez de hacerlo como contenido de los elementos. En nues-

XML. Iniciacin y referencia

3
e

tro ejemplo podra ser el caso del nmero de cada alumno, que en vez de incluirse
en la etiqueta <numero>, podra disearse como un atributo de cada elemento
<aiumno>, quedando de la forma <alumno n u n e r ~ = ~ xdonde
~ > . X se corresponde con cada nmero de alumno.
Con este diseo, el cdigo del nuevo documento XML quedara como el que
viene a continuacin, que tiene la referencia de [Link].

El cdigo HTML que permite acceder a los datos de los atributos es el mismo
que se aplica cuando se accede a los datos de los contenidos. En la Figura 4.9 se
puede ver el resultado de utilizar el ltimo cdigo HTML, con las nicas modificaciones relativas a las referencias al documento XML, que seran:

LISTADO DE ALUMNOS &l [Link] "[Link]"

LISTA DE ALVMNOS

Jaime Segundo

Figura 4.9.
Documento
ejemplo04_12.htm
visto desde IE5.

Wlndiir; XFX Acr~zadc


l.*ii f
Ea5i.n

CAP~TULO143

Visualizacin de documentos XML con HTML

Bien, es muy fcil tratar atributos, pero hay que aclarar que este procedimiento no se puede aplicar a todos los casos, ya que slo funciona con las etiquetas
vacas, como es el caso de <alumno>.En nuestro ejemplo no se podran aadir a
atributos de nivel a cada etiqueta de curso, ya que quedara como el ejemplo
<curso nivel="Mediom> HTML </curso>y acabo de comentar que no est d
permitido.
Si se desea que en el documento X M L cada dato del nivel est contiguo al dato
correspondiente del curso, hay que seguir recurriendo a los elementos (etiquetas) de
nivel, modificando las etiquetas correspondientes al apartado de los niveles para
situarlas al lado de cada curso. De esta forma, el cdigo del documento X M L
queda ms limpio y fcil de entender, tal como se puede ver a continuacin en el
cdigo correspondiente a alumnos04~[Link]:

XML. Iniciacin y referencia

Los datos de este documento XML, al ser introducidos en el cdigo HTML del
e j e m p l o 0 ~ 4 . h t r n se
. visualizan tal como re puede observar en la Figura 4.10.

LISTADO M ALUMNOS dd G m t r r "TODO-WEV


USTA

DE PLLWIOC

m
---

Figura 4.10.
Documento
[Link]
visto desde IE5.

El nuevo cdigo del archivo [Link] es el siguiente:

ctheadxtr bgcoloi

......

c/tr>c/thea&
ctbody>ctr bgcolo1
ctd align=*centerl

CAPITULO [4]

Visualizacin de documentos XML con HTML

donde se puede apreciar fcilmente que para incluir dos campos de datos distintos,
que aparezcan seguidos en una misma lnea, es suficiente con expresar sus correspondientes etiquetas <span dataf ld. . . >, una a continuacin de la otra.

GESTION INDIVIDUAL DE DATOS XML


La presentacin de datos a travs de tablas organizadas en filas y columnas es muy
prctica en muchos casos, pero en otros no es el mtodo ideal. Tales son los casos
en los que la informacin de algunas celdas precisa de textos largos, o cuando el
nmero de columnas es demasiado grande para entrar en una pantalla, o tambin
cuando el nmero de filas resultante es tan extenso que la visualizacin de la
tabla exige varios desplazamientos verticales.
La solucin en estos casos pasa por el control de los datos en un formato
individualizado, de forma que el usuario pueda acceder a la informacin de cada
elemento principal en modo secuencial, o sea, de uno en uno.
Como en los otros apartados, la mejor forma de ver lo comentado en el prrafo anterior es crear un cdigo HTML adecuado a nuestros propsitos, que toca
nombrar como [Link], y que en esta ocasin, para simplificar las
cosas, vamos a relacionar con el documento XML [Link].
Accediendo al [Link] desde IE5 se pueden recorrer los datos de
todos nuestros sufridos alumnos correspondientes al documento XML [Link] en un formato individualizado y muy fcil de utilizar, tal como se
puede apreciar en la Figura 4.1 1.

L I S T A D O bE ALUMNOS I d C l n t r i "[Link]'

Figura 4.1 1.
Documento
[Link]
visto desde IE5.

El nuevo cdigo correspondiente al archivo HTML denominado [Link] es:

XML. iniciacin y referencia

<center *

tbutton onclick=*[Link].~ePiratOn titler


"Principion> &Pbspi&nbeptI&ltr&ltr&nbep~&nbipr </button>&nbspr
tbutton o n ~ l i c k = ~ i(f1 Limt~l~[Link])

Como se puede observar estudiando el cdigo HTML anterior, la primera


parte, en la que se describe la presentacin de los datos, es muy similar a la utilizada
en los ejemplos anteriores, con la salvedad de que no se utiliza ninguna tabla
para organizar la informacin, lo que exige indicar en cada prrafo (<p>)el origen
de datos (datasrc)y el campo de datos (datafid).
Para permitir el desplazamiento por la base de datos se ha implementado, en la
segunda parte, un sistema de botones basado en los mtodos estndar del DSO:
moveliret, movelaet, moveNext y movePrevioue, que permiten pasar a la
primera, ltima, siguiente y anterior posicin del documento XML.
IMPORTANTE: Ms adelante se tratarn con ms detalle las posibilidades de los controles DSO.

CAPITULO141 Visualizacin de documentos X M L con HTML

Con este sistema se consigue un control secuencial (botones [Anterior] y


[Siguiente]) con opciones de saltar al principio (botn [Principio]) y al final (botn
[Final]), muy sencillo de utilizar, de cualquier base de datos tabulada, aunque se
puede modificar para que tambikn sirva para la presentacin de datos de un documento asimtrico utilizando las tcnicas estudiadas anteriormente.
19
Aprovechando los elementos HTML que pueden ser tratados por el DSO de
IE5, se puede mejorar la presentacin de la informacin adaptndola a cada tipo de
dato.
En el [Link], relacionado con el mismo documento XML [Link], se puede ver una versin diferente del sistema de navegacin
secuencial, en la que se han implementado distintas posibilidades de presentacin
de datos basadas en la utilizacin de algunos de tipos de los elementos HTML
Cspanr,< i n p u t > y < s e l e c t > .
El cdigo de [Link] es:

~ F i t r nll.
rnen'J>.

--

. .. . .</head>

cbor!y>
<Bbl id~"Liat~lumuosl0"irc='[Link]></ml>
<h?-.IS:'.ti;X) DE [Link] d e l Ciritro 'TOK-WEEa</h2>
CI~~:--FSL:LCIM EX ULM1JS</h3>

c/centerz

XML. Iniciacin y referencia

Figura 4.12.
Documento
[Link]
visto desde IE5.

Este nuevo sistema de control de los datos de los alumnos, basado en las entidades HTML diseadas inicialmente para introducir datos a travs de formularios
electrnicos, permite mostrar la informacin de forma que sea ms fcil su lectura
(nombre y apellido),o que se pueda ver la otra posible alternativa (sexo),e
incluso que se puedan consultar siempre las otras posibilidades (cursoy nivel).
En la Figura 4.12 se puede observar el [Link] en accin, estando
desplegada la lista de posibles niveles.

NAVEGACION CONTROLADA
Aprovechando el sistema de control de los datos XML por medio de los botones
que permiten desplazarse por sus unidades, es posible disear un sistema de navegacin similar que permita controlar los desplazamientos, pero que en vez de
mostrar los datos de uno en uno, que sea capaz de exponer los mismos datos en
grupos de un cierto nmero de elementos, algo similar a las listas de recursos que se
muestran cuando se hace una consulta a cualquier motor de bsqueda clsico, que
exige ver en primer lugar los diez primeros, despus los diez siguientes, ..., y as
hasta que se termina de ver toda la informacin.
Para ver dicho sistema funcionando en la prctica se puede acceder al archivo
[Link], que est relacionado con una versin ampliada a seis alumnos
de nuestro conocido documento XML, que en esta ocasin se denomina [Link].
El cdigo del archivo [Link] es el siguiente:

CAP~TULO141 Visualizacin de documentos X M L con HTML

</-:>.
:Lady>
<, :sbl=-.
<hi win;I1='500">
tbutton ~ n c l i c k = ~ l i i t a . f i r e t P a g etitle=nPrincipio">
O~
&nbspihnbep;Ihlt~hlt;hnbepr&nbept </buttonr&nbepl

<button o n c l i ~ k = ~ iIf! [Link]~[Link]) lista.


previouePage0" title=*Anterioru> &nbsp#&ltt&nbepr </button>hnbspj
<button onclick="if ( ! L i e t s A l ~ o s l l . r e c o r d s e t . E O P ) lista.
nextPage0" title=nS1guiente"> hnbep~hqtrhnbspj c/button>&nbsp;
<button onclick=nli~[Link]~
title="Pinaln>
&nb~pl&nb~piPgt;&gtr~hnbsp~&nbep~~/button>&nb~pr
< / c c . ;er</tl13dy>:/hf .r,l >

En el cdigo anterior se puede observar una etiqueta <xrni. . .> similar, y


adaptada a la situacin, a la que hemos utilizado hasta ahora:

Tambin se puede ver que la descripcin de la tabla incluye algunas novedades:

Adems de la conocida referencia sobre el nombre de la isla de datos


(datasrc=""~istaAlumno~ll"),
se puede distinguir un nombre identificador
particular (id=lllistal')y una nueva propiedad DSO de la tabla que indica el

nmero de datos que se desea ver en cada pantalla, teniendo en nuestro caso, que
slo es un ejemplo demostrativo, el valor de dos ( d a t a p a g e a i ~ e = ~ ~ 2 ~ ~ ) .

XML. Iniciacin y referencia

LISTA DE NUMNOS

Figura 4.13.
Documento
[Link]
visto desde IE5.

Lo que queda del cdigo es semejante a los que hemos estado utilizando
anteriormente, con la salvedad de que, en la seccin final, donde se determinan las
acciones de los botones de navegacin, se han utilizado los nuevos mtodos DSO:
nextpage, previouepage, f i e t p a g e y iaetpage, que hacen posible pasar a
la pgina siguiente, a la pgina anterior, a la primera pgina y a la ltima pgina,
respectivamente.
En la Figura 4.13 se puede ver una posicin intermedia de navegacin a travs
de los datos del documento XML alumnos04~[Link] medio del cdigo [Link].

LAS FACILIDADES DEL TEICTO


Cuando se insertan los datos a travs de XML-DSO en una pgina web HTML se
crea de forma automtica un campo denominado $Text, que contiene toda la
informacin del documento XML en forma de texto.
En algunos casos, este proceso facilita mucho la gestin de la informacin del
documento XML, ya que evita tener que hacer referencias a cada uno de los elementos del documento.
Esta entidad se utiliza principalmente en dos situaciones:
e
e

Cuando se desea ver el contenido de un documento XML sin que se conozca la organizacin interna de sus elementos.
Cuando se disean pginas web que slo incluyan texto simple (sin ttulos,
listas, tablas, imgenes, etc.).

En los dos casos, se consigue ver el contenido de un documento XML utilizando un cdigo tan sencillo como el siguiente:

JLO 141 Visualizaci6n de documentos XML con HTML

Paira ver una aplicacin prctica del uso de SText,vamos a crear una pgina
web kiTML que muestre el texto del prlogo de este libro, que es un caso tpico de
docunnento formado por texto simple.
A
El contenido del prlogo se puede teclear, marcar y guardar (est bien, tambin
se puede utilizar el archivo correspondiente de los ejemplos) como prolog o w_19.xml, con una estructura como:

-:f 1 - ;[Link] los l inros

. . .</fl>

<secci6ri
<fl>En la actualicidd . . .c/fl>
..f2-Incluso los pocos libios
.</f?:.
.secci(in>
secpin>
-:fl>Ksta situaci6n es ....: / t i >
< f 2 > L a segunda razn fundamental ...</f2>
</:~cci5n>

..

.-

sacc i ,ir,

..

<fl >Ore un libro sea 'senc.i 310'


.<ffls
<-f?:.Sini-nlir,rnte
quii-rr decir g . 1 ~ . ..-/2>
<f3>La coleccih Iniciacin y Referencia . . . < / 3 >
</seccin>
<seccin>
<f!-3ecir que un libro is ....-,'fl>
<f2>?1'1, obsfilnte, la utiiidad dp
</f2>
</seccinl

...

......

</texto>

El cdigo anterior se ha marcado con un elemento raz <texto>,correspondiente al documento, con unos elementos <seccin> correspondientes a los
prrafos y con unos elementos <fnmero> que se identifican con cada frase.
El cdigo HTML, denominado [Link], que controla este documento XML, es el siguiente:

pudindose apreciar la sencillez del modelo y el desahogo que supone no tener que
conocer cada una de las etiquetas del documento XML, ya que acta igual de bien
con los prrafos (<seccin>)que tienen una o varias frases (<fl>, <fa>,
< f 3>,...), aunque tambin funcionara con cualquier otra organizacin.
En la Figura 4.14 se puede ver el resultado del ltimo ejemplo.

XML. Iniciaci6n y referencia

Todos los Iibn~sllenen alqw rnotlvo y determinados objetivos. y este no w d l a sw rnenvs


En !a actualidad existe mucha blbllografla Sobre XML. w r o tcda ella esta esultu pw wtores de hebls rn hispana
lndusu los p o m r libros m e se cwnerciallzan en cthtellrno sonre XML e s t h escritos p w wtores rrtrwlitros y
traduodm m rnayw o menor medlds
Esta sltuxl0n es vno de los principales cdlcionantes qw ha dado wigen a este Ilbro La s e m e rmbn
fundamental no c=s otra w e ofrecer una publlcacian que trate el Interesante tema del X b t desde un punto de vista
sencillci y pra'tim
Que m llbro sea "smclllo" deentender y de ut\llzar es cm de la5 metas de todo esuitor de Iibrm tmicos, lo que
no w l w e decir que Implique qw tenga u'nlvel rnlnlm. Simplemente quiere decir wa es f k i l de segulr y de wllcw.
I la 4w se wbllm, define eri dos slmole5 palah- las
La coleccldn Inlciaclhn y Referercla de la sdltwlal M r f ~ w H l Ieri
carMwistlcm pincipales del prKente Ilbro.

Decir we un l l h es "pr8cfim"es mucho dedr, puesto que las nece~ldadesde los I d o r e s scn rnuv diferentes y
variadas, por lo m e e5 Imw5lble trater ejemplos e s w c l k o s v vBUdos para t a h 105 usuarios en un Ilt,ro d i crilctw
ganeral bdo obstante, la utilidad de este libro se ha hwcado en tres dlrecclones principales la w
vs
%
iri l
rl@ lo<
ejernplijs, la aplicaclhn del i d i m o espanol y utllizacl6n d- las herranieritas mAs usuales entre los usuario?
La u t l l l z ~ i b nde una varledad se!eccioda de ejemplos s t d dlrlgldn a m e q ~ i el
r mAxlmo a l c w e de utllldad
posible La apllcxl6n mnslcnte del Idioma espanol en todos los e l m l a s , c m sus civacteri5tlces pfwirn de
acrritos, "eres", signos de lnteffogecldn y exclarnacl6n inlclales, etc., m x c d una diferencia Importante entre este
Iibro y los traduodos .3I esparal provenientes de autores de wiqen jn?lusaJtM Pm ultime, el libro se puede sewir
di$ponlerdo solo de dos aplicamves un editor de textos A5CIl (sin formatc,) y un u i s u n l r ~ i wweb o n a v q d o r que
integre la t e m o l g l a X V L

Figura 4.14.
Documento
[Link]
visto desde IE5.

El ed tw 3r tetros mieje s g i u a l a ~ i r aCpJe abnita v d a r Ins d o m t o s sin f c m a l . ~ .c o r o el s r r c ~ l l oR!rL d?


.
notas 9s inc <,e ih wrris u j'rus ole n c o m o ? t d r 6 IC-J siclemas ccuativos. m s u e !kmtisr. sirve o.a ar. era O r
105 i w u . i~d 1:ie~ 9 ~i.z x stwi
3 ir)yv!/!., c!+ rroqrxnm m, 11 m y G r 3 [Link] 05 Q ~ ~ ! - . [ V S

RESUMEN
En este captulo se han mostrado algunas tcnicas de integracin de datos XML en
pginas web diseadas con HTML, sistema posible en IE5 por el aprovechamiento
que hace de la tecnologa DSO.
Hemos visto los dos principales usos de este proceso:
0

Visualizacin de los datos en forma de conjunto.


Visualizacin de los datos en forma individual.

Tambin hemos estudiado el diferente tratamiento que precisan las bases de


datos XML tabuladas y asimtricas, sin olvidar la gestin de datos en forma de atributos.
Y, para finalizar, hemos entrado en algunas de las posibilidades ms tiles de
tratamiento del DSO a travs de IE5, aunque no son las nicas posibles.
PARA LOS MANITAS: En los Apndices A y B se pueden ver un resumen
de las posibilidades del estndar DSO y algunos recursos de ampliacin
de informacin sobre el DSO.

Antes de pasar al siguiente capitulo quiero volver a insistir en la afirmacin de que


el trabajo con XML supone separar las dos partes fundamentales de un documento: la presentacin y los datos, habiendo analizado en los anteriores apartados
cmo aprovechar los documentos XML para gestionar los datos y los documentos
HTML para declarar el formato de visualizacin de dichos datos.

Definicin de Tipo de
Documento cDTD>

SPERO que ningn lector se est planteando en este momento la posibilidad


de saltarse este captulo, ya que aqu se van a tratar los primeros conceptos
(bueno, en realidad son los segundos o terceros) realmente relacionados con
la especificacin XML y, adems, sera cosa de que se replantease la devolucin del
libro y esperase a que se edite en fascculos.
Cuando se disea un documento XML es posible utilizar varios modelos, todos
ellos tiles y eficaces. Por ejemplo, tan vlido es el siguiente diseo que utiliza slo
elementos:

como el que viene a continuacin, que aprovecha al mximo la utilidad de los atributos:

XML. Iniciacin y referencia

La idoneidad de uno u otro modelo (o de otros ms que seguramente el lector se


est imaginando) depende del propio diseador y de las condiciones particulares de
cada aplicacin, por lo que, en principio, no existe un modelo mejor que otro.
Ahora bien, es muy normal que en un proceso de tratamiento de informacin
XML participen varias personas especializadas en diversos sectores o fases del proyecto o pertenecientes a distintos departamentos o empresas, en cuyo caso no pueden existir ambigedades o enfoques distintos, ya que cualquier pequea diferencia puede ocasionar errores o defectos en la gestin de la informacin.
Por este motivo se han creado normas concretas para que la descripcin de los
datos quede especificada, de forma tal, que cualquier participante en el proceso
sepa a qu atenerse y se vea obligado a tratar la informacin de la misma forma
que los restantes colaboradores, eliminando as la posibilidad de producir fallos en
el proceso a cambio de un esfuerzo complementario.
Estas normas reguladoras de la estructura de los documentos XML se conocen
como definiciones de tipos de documentos o DTD (Document Type Definitons),
aunque en un futuro se vern sustituidas por los esquemas XML (XML schemas),
ms fciles de manejar que los primeros.
PRECAUCIN:Las DTD y los esquemas XML son dos formas distintas
de conseguir el mismo resultado, por lo que slo debe utilizarse uno de
los sistemas.
-

PARA LOS MANITAS: Si el lector intenta buscar en W3C (dnde si no?)


la especificacin sobre DTD, se encontrar la sorpresa de que no existe
una normativa especfica, ya que las reglas que regulan la DTD se
encuentran incluidas en la propia recomendacin XML 1.0.

--

- - - -

Por propia experiencia s que este tema es uno de los ms difciles y complejos
de todos los relacionados con XML, por lo que animo al lector a que no lo abandone si lo encuentra arduo, a que practique todos los ejemplos propuestos, a que
investigue por su cuenta con variaciones propias y, sobre todo, a que observe y
analice la base de conocimientos y ejemplos reales ms importante del mundo, esto
es, el cdigo de las pginas web de Internet.
AHORRE TIEMPO: Para ver y estudiar algunos de los DTD ms utilizados en el desarrollo del tratamiento de informacin XML es muy til
aprovechar la direccin [Link] shtml.

- -

CAP~TULO
151 Definicin de Tipo de Documento <DTD>

INTRODUCCION A LA DTD
i

Una definicin de tipo de documento es una lista de normas que describe con 1
exactitud la compos/cin que debe mantener la estructura de datos de cualquier
documento XML.
Al igual que al documento que cumple las normas bsicas gramaticales de la
especificacin XML se le denomina bien formado, cuando adems de tener buena
formacin cumple con las reglas estructurales de una determinada DTD, se dice que
es vlido.
PRECAUCIN: No hay que confundir un elemento vlido, que es el
que cumple las normas de la buena formacin, con un documento vlido, que adems de estar bien formado cumple las reglas de una determinada DTD.
No es obligatorio que exista una DTD para que un documento XML tenga aplicacin prctica (en los captulos anteriores se han visto algunos ejemplos sin DTD),
pero si existe, todos los documentos, cdigos, guiones (scripts), plantillas, etc., relacionados con dicho documento deben tener en cuenta la DTD para que todo funcione correctamente.
A las herramientas de tratamiento de informacin XML capaces de tener en
cuenta las reglas de las DTD, se las denomina validantes, existiendo utilidades validantes y no validantes, dependiendo normalmente de su calidad y de su complejidad.
Las aplicaciones validantes, cuando cargan un documento XML relacionado con
una DTD, despus de comprobar que est bien formado, analizan la adecuacin de
la estructura de dicho documento con las reglas definidas en la DTD, siguiendo adelante con el proceso apropiado si pasa el examen, o interrumpiendo el progreso si
existe alguna discrepancia.
IMPORTANTE: Ya hemos visto que IE5 exige siempre la buena formacin de los documentos XML, pero la versin 5.0 de lnternet Explorer no
es un visualizador XML validante para DTD por defecto, por lo que no
se interrumpe ni muestra ningn mensaje cuando carga un documento no vlido.
* --------.-

Para solventar esta deficiencia de IE5 se puede utilizar cualquiera de las muchas
aplicaciones creadas para validar documentos XML, existentes tanto en la distribucin comercial como accesibles a travs de Internet. En la Figura 5.1 se puede ver
la utilidad XML Validator, de Microsoft, que se puede recoger gratuitamente en la
direccin: [Link]/downloads/samples/internet/xml/xml validator
Un documento sin DTD es un documento libre en cuanto a su estructura,
pero un documento con DTD tiene su estructura predefinida de antemano, teniendo los dos sistemas sus ventajas e inconvenientes.
Un ejemplo tpico y muy conocido de marcado de informacin a travs de una
DTD es la propia recomendacin HTML.
Si un diseador web desea marcar su informacin de forma libre, puede utilizar
sus propias etiquetas ( < t t u l o > , <prrafo>, <tabla>, <imagen>, etc.), pero

XML. Iniciacin y referencia

Figura 5.1.
Aplicacin X M L
Validator
analizando un
documento
X M L con DTD.

j
i
f

i
i
si quiere crear una pgina web con cdigo HTML, tiene que utilizar obligatoriamente las etiquetas correspondientes ir, <P>,ITABLE>,I I M G ~etc.)
, y conocer sus posibilidades particulares. Estos condicionantes del HTML vienen prefijados
por su DTD particular, que tendr unas posibilidades u otras, dependiendo de la
versin de la recomendacin utilizada.
Existen otras DTD pblicas, que al igual que ocurre con HTML, son colecciones
de reglas y etiquetas especializadas para ciertos sectores. La utilizacin de algunas de
estas DTD, o vocabularios XML, o aplicaciones XML, que tambin se las conoces
como tales, suele exigir la utilizacin de un visualizador que incluya un analizador
interno capaz de entender y de mostrar adecuadamente los objetos que maneja.
En la Figura 5.2 se puede apreciar un ejemplo de descripcin grfica artstica por
medio de una DTD pblica mostrada en lnternet Explorer 5 y en Netscape Navigator 4.

Figura 5.2.
Visualizacin de
cdigo SVC en
navegadores
web.

f
f

CAPITULO [ 5 ]

Definicin de Tipo de Documento <DTD>

Algunas de las DTD ms conocidas y utilizadas en la actualidad son las que se


relacionan en la tabla siguiente:
CDF

Channel Definition Format


Define canales para que los servidores puedan enviar informacin a los suscriptores.

HTML

Hyper Text Markup Language


Define un lenguaje hipermedia de pginas web.

MathML

Mathematical Markup Language


Define un proceso para trabajar con elementos de matemticas.

SMIL

Synchronized Multimedia lntegration Language


Define presentacionesde recursos multimedia.

SVC

Scalable Vector Craphics


Define un lenguaje de tratamiento de grficos.

VML

Vedor Markup Language


Define entidades grficas, principalmente de tipo vectorial.

W ML

Wireless Markup Language


Describe recursos para las redes inalmbricas, como los telfonos mviles.

XHTML

Extensible Hyper Text Markup Language


Define un lenguaje hipermedia extensible de pginas web.

Algunos cdigos de marcas que siguen las descripciones y reglas de las DTD
pblicas pueden visualizarse directamente con los navegadores web ms utilizados,
como HTML o XHTML. Otros precisan de mdulos aadidos @lug-ins) a los navegadores, como VML o SVC. En algunos casos es preciso disponer de alguna herramienta especial para poder tratar la informacin codificada, como W M L o SMIL.
La disponibilidad de ms o menos facilidades para tratar las DTD pblicas
depende de su utilidad prctica y de su extensin entre los usuarios, siguiendo el
mismo proceso de generalizacin que sigue cualquier producto informtico que
quiere constituirse en estndar.
IMPORTANTE: En el ultimo captulo de este libro se estudia el proceso
de trabajo con algunas DTD pblicas. En el Apndice B se encuentran
las direcciones de algunos recursos relacionados con DTD.

El trabajo con las DTD pblicas puede realizarse de dos formas principales:
o Aprender las posibilidades de su especificacin y escribir el cdigo con un

editor de textos.
Utilizar una herramienta de autor o filtro de importacin/exportacin que
realice el trabajo de la generacin del cdigo de forma automtica.
No existe un mtodo de trabajo mejor que el otro, ya que, dependiendo de
cada caso, es preferible uno u otro sistema, teniendo en cuenta que siempre es ms

XML. Iniciacin y referencia

Figura 5.3.
Aplicacin VML
Cenerator,
capaz de crear
cdigo VML.

rpido el segundo proceso, aunque tiene la desventaja de que no genera un cdigo muy depurado y, en algunos casos, incluye etiquetas particulares.
Lo ideal es utilizar alguna herramienta de generacin automtica para ganar
tiempo y despus repasar el cdigo en un editor de textos para depurarlo y dejarlo ajustado a normas.
En la Figura 5.3 se puede ver la utilidad VML Generator, de Microsoft, en pleno
proceso de creacin de un diseo grfico definido con cdigo VML.
PARA LOS MANITAS: Se puede bajar directa y gratuitamente la aplicacin VML Generator desde la direccin:
httw://[Link]/standards/vml/[Link]
Antes de seguir adelante quiero comentar que la normativa que regula la DTD
es un subconjunto particular de SCML, por lo que su sintaxis no soporta las mismas
reglas que hemos visto para XML. La explicacin de esta situacin viene dada
por la rapidez que se quiso dar a la publicacin de la recomendacin XML 1.O,que
exigia apoyarse en otras tecnologas ya existentes.
Para paliar esta situacin se est desarrollando otra normativa, denominada
Esquemas XML, que tiene los mismos objetivos que la DTD pero que se apoya en
una sintaxis tpica del XML, ms fcil de aprender por los desarrolladores web.

DEFINIC~ONDE TIPO DE DOCUMENTO


Despus de dejar claras las posibilidades de la definicin de tipo de documento
vamos a estudiar el proceso de creacin de una DTD.
Lo primero que hay que tener en cuenta para trabajar con un documento
ligado a una DTD es que, al igual que hemos visto con las plantillas CSS o con las

[5]

Definicin de Tipo de Documento <DTD>

islas de datos XML de los documentos HTML, las lneas del cdigo de la DTD pueden ir ins,ertadas en el mismo documento XML (internas), o bien pueden declararse en un documento aparte (externas).
A
M i ccmsejo particular es que se trabaje con documentos separados, ya que
siempre Ihace ms fcil el aprovechamiento de una misma DTD por varios docurnentos )(ML, y tambin asegura que cualquier modificacin realizada en la DTD
externa f?S inmediatamente repercutida en el proceso general.
Cualcquier herramienta que incluya un analizador validante tratar de la misma
forma cualquiera de los dos sistemas.
-

PARA LOS MANITAS: Se p e r i i i e trabajar con dos referencias D%


interna y externa, que normalmente realizan una labor complementaria,
teniendo la declaracin interna preferencia sobre la externa en caso de
conflicto.

Un documento XML con una DTD interna, esto es, incluida en su propio cdigo, seria similar al siguiente:
<?xml version=*[Link] encoding=.ISO-8859-1'3,
<!DOCTrPI libros [
<!ELKbSNT libros (libro)*>
< IELEWBl4T libro (Titulo. autoree., Precio+)>
< IEliEMxNT autoree (Autor+)
< l E L ! i s m m Autor (IPCDATA),
<!EIBMlWT Titulo (#PCDATA)>
<IELEMENT Precio (#PCDATA)>
t1ATTLIST Precio moneda C M T A IREQVIFtEDs
1>
<libros>
<libro>

En el listado anterior se ha remarcado la parte correspondiente a la DTD que se


sita al principio (despus 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 instruccin de
procesamiento especial en el documento XML, ya que simplemente hay que incluir
el cdigo DTD al principio, aadiendo a continuacin el resto del documento XML.
Siempre se distingue el cdigo DTD porque presenta el modelo:

XML. Iniciacin y referencia

en el que es importante distinguir la primera lnea con la declaracin de tipo de


documento ( ! DOCTYPE . . . ), el smbolo de comienzo del cdigo DTD ((corchete
izquierdo)) ( [), el smbolo de finalizacin del cdigo DTD corchete derecho)) (1 ),
todo ello comprendido entre signos de ngulos menor que (4 y mayor que
(>), y entremedias de los smbolos de inicio y de final del cdigo DTD las declaraciones correspondientes.
La forma de trabajo con una DTD externa exige manejar un cdigo XML
como el siguiente:
m.

<?m1version==[Link] encoding==1~0;~8$$-i=et&ln&mnow?>
<
!
E
libroe S Y B m [Link]>
<libros>
i

1.r :-o>

i y otro cdigo DTD, guardado con el nombre de librosdtd, como el que viene a
i continuacin:
E-

El lector podr recordar que en el Captulo 2 se vio la utilidad del atributo


standalone. Las caractersticas del resto de las entidades relacionadas con la DTD
se van a repasar en los siguientes apartados.
Lo mismo que hemos hecho con los captulos anteriores, antes de seguir adelante vamos a crear un documento XML que nos sirva de ejemplo prctico, aunque
tambin aprovecharemos los datos XML del centro de enseanza TODO-WEB
utilizados en el captulo anterior. En este caso vamos a utilizar el catlogo de libros
de computacin de la Editorial McGraw-Hill. El cdigo elegido es el que viene a
continuacin con el nombre de referencia [Link]:

CAP~TULO151 Definicin de Tipo de Documento <DTD>

La estructura de ejemplo05~[Link] entiende con facilidad si se observa


con atencin, por lo que no exige una explicacin especial sobre su organizacin.
En el anterior ejemplo se hace referencia a un archivo externo DTD denominado [Link], que tambin se encuentra en los archivos disponibles en
[Link] y que tiene el siguiente contenido:

P
- .> '

<!F18CI.4E?lw ~ ~ ~ t c i l o(libro)
go
*-.
c !F?,?:!FtY i i b r o (Tfrulo, E a i t o r - i a l , autores,

Precio+ J

-,

ISBN, Pginas?,

XML. Iniciacin y referencia

Figura 5.4.
Documento
ejernplo05-01 .xrnl
visto desde IE5.

Del cdigo del archivo [Link] es especialmente destacable la primera


Inea, en la que se declara el tipo de codificacin ISO-8859-1,
imprescindible para
trabajar con el idioma espaol.
Si el lector intenta visualizar el archivo ejemplo05~[Link] medio de IE5,
obtendr una representacin del contenido del documento en la conocida forma de
rbol jerrquico, con la novedad de que ahora se incluye una Inea con un comentario sobre la declaracin de tipo de documento, en la que se muestra su inicio
(< ! DOCTYPE catlogo. . .) y se aconseja al observador que vea su cdigo
fuente por otros medios (View Source for full doctype..J. En la Figura 5.4 se
puede ver el resultado.

DECLARACION DE TIPO DE DOCUMENTO


La primera Inea de una DTD se denomina declaracin de tipo de documento
( ! DOCTYPE),que no hay que confundir con la definicin del tipo de documento

(DTD).
Si existe la DTD (hay que recordar que no es obligatoria), la declaracin de tipo
de documento debe ir entre la declaracin de procesamiento XML y el primer
elemento (elemento raz) del documento XML.
El trmino !DOCTYPE debe ir en maysculas y seguido por el nombre del elemento raz en el documento XML.
Existen dos tipos de DTD externas: privada y pblica.
Una DTD externa privada se identifica con el trmino SYSTEM,siendo adecuado para el uso de una persona (o un grupo reducido, como una empresa). Sigue
el modelo:

Una DTD externa pblica se identifica con el trmino PUBLIC,siendo adecuado para el uso de un sector profesional general o de un pblico amplio. Sigue el
modelo:

CAPITULO 153

I < !DOCTYPE

Definicin de Tipo de Documento <DTD>

s&&to-rafz

PUBLIC 'nambr&&~'

*direc& ~ ~ D T D ' >

La direccin-DTD puede ser una URL absoluta o relativa. El nombre-DTD


debe seguir el siguiente modelo:
Q
<<prefijo/ /propietario-DTD / /descripcin-DTD / / idioma-segn-/SO-639
El prefijo puede adoptar algunos de los tres siguientes valores: ISO,+ (signo
ms) y - (signo menos). Se usa ISO si el DTD es un estndar ISO (todos los
estndar ISO estn registrados). Se utiliza + si el DTD est registrado (normalmente por el W3C) sin ser un estndar ISO. Se emplea - si el DTD no est registrado
(puede no ser nico) y no es un estndar ISO.
Un ejemplo de documento XML con DTD externa pblica puede ser:
-!DLTT'.'FE

HTM'L PLTELTC "-/l1:i?C."!Y3

HTML 4.0 Trt?nsitional//EN'

';.-:trp: //www.w3 .u:-q/ r~/'REC-t~t~l40/[Link]">

<2TNL

.:-.m:- Tl'PLE,.il-chivo i mple


.. {HZ-D,.

HTMLc

il8ITLE>

e-BODY -

<P>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>
</RODY>
c ; ETI<L>

Un ejemplo de documento XML que incorpora una DTD externa privada sera
como:
<?m1version='l.O" standalone='non?>
.r!MXJTYPE saludo SYSTEM '[Link]
<saludo>;Hola [Link]!</saludo>

En el ejemplo principal del catlogo que se ha creado al principio la lnea de


declaracin de tipo de documento es:
.- ,

< ! ~ E C ' I P E libros SYSTEM .[Link]*>

DECLARACION DE TIPO DE ELEMENTO


A continuacin de la declaracin de tipo de documento se incluyen las declaraciones de tipo de elementos, que son una relacin de los elementos que intervienen

en el documento XML con indicacin de sus caractersticas.


Deben constar tantas declaraciones de tipo de elemento como nmero de
elementos exista en el documento XML.
El modelo de la declaracin de tipo de elemento es el siguiente:

XML. Iniciacin y referencia

i
i

El trmino ! ELEMENT tiene que ir en letras maysculas seguido por el nombre-del-elernen to correspondiente y por su [Link] encerrado
entre signos de ngulos.
En el lugar de nombre-elemento se incluye el identificador genrico de
cada uno de los elementos que componen el documento XML.
En el lugar de la descripcin-del-contenido, normalmente entre parntesis, se incluye la especificacin del contenido del elemento, pudiendo tener los
siguientes valores: EMPTY, m,elementos, datos o mezclas.
o

EMPTY (vaco) indica que el elemento no tiene contenido, esto es, que es un

elemento vaco, normalmente con informacin 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.
Tambin es posible que incluya una mezcla (mixed) de los valores anteriores.

Un ejemplo con el valor EMPTY sera:

Un ejemplo con el valor ANY podra ser:

Un ejemplo con valores de elementos, donde se indica que del elemento


autores y Precio,y tambin, 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]>

O [5]

Definicin de Tipo de Documento <OTO>

qemplo con valores de mezcla, utilizando el tipo #PCDATA (que viene de


Iharacter DATA, equivalente a texto de caracteres))),puede ser:

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

, admite mezclas de los valores anteriores, siendo perfectamente vlido un


como:

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

En el cdigo anterior aparece una nueva caracterstica 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 ) .
PRECAUCIN:
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 seala que los elementos relacionados son optativos y se puede elegir
cualquiera de ellos.

--- -

XML. Iniciacin y referencia

Seguro que el lector ha observado que en varias ocasiones los cdigos de los
) ejemplos
han incluido algunos caracteres especiales, como el signo .ms.
el
signo de .interrogacin final.
y el signo de rasteriscon
Cada uno de estos
3
caracteres es un operador,que puede aplicarse a la declaracin de tipo de eleO mento o a cada uno de los subelementos.
(+),

(*).

(?)

Cada operador es un indicador de frecuencia que indica las siguientes caractersticas:


Operador

Opcin

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 (slo uno)


subttuio dependiente de ~tuio,
aunque tambin permite que no se incluya,
puede ser:

Un ejemplo de operador ", que permite incluir ninguno, uno o ms elementos


Autor,dependientes de autores,sera:
c !EL-

autores (Autorf)>

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

autores (Autor, Autorf ) >

Pero el caso anterior se podra especificar ms fcilmente utilizando el operador

+, que obligara a la existencia de un elemento (o ms) 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 lnea lo que se puede expresar en las dos siguientes:

JLO [ 5 ]

Definicin de Tipo de Documento <DTD>

.mbin se puede aplicar un operador a toda la secuencia situndolo fuera del O


tesis, y as, en el ejemplo siguiente, se indica que los elementos Nombre,
lidos y annimo pueden existir o no, en cualquier nmero de veces:

PRECAUCIN:
Los operadores no pueden ir precedidos de espacios en

blanco.

~spusde 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 ((parntesis)) ( y ) se utilizan para agrupar.
en, seguro que ahora se puede entender la mayor parte del cdigo del [Link].

tinuacin de las declaraciones de tipo de elemento que contengan atributos


luyen las declaraciones de lista de atributos, que son una relacin de los atributos que intervienen en el documento XML, con indicacin de sus caractersticas.
Lo ms usual es incluir tantas declaraciones de lista de atributos como nmero
de atributos exista en el documento XML, pero se pueden describir todos los atributos en un nico listado (de ah el nombre) de una declaracin de lista de atributos.
El modelo de la declaracin de lista de atributos es el siguiente:

El trmino !ATTLIST debe ir en letras maysculas y seguido por el nombre-del-elemento, por el nombre (o nombres) del atributo correspondiente, por su tipo y por la descripcin del valor-por-defecto. Todo encerrado
entre signos de ngulos.
Se pueden declarar varios atributos en una sola declaracin de lista de atributos,
tambin 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 declaracin del atributo la que se tiene
en cuenta.
Un ejemplo de declaraciones de listas de atributos puede ser:

XML. Iniciacin y referencia

c!ATTLIST
<!ATTLIST
<!friTIST

C o n t a c t o C o r r e o - e CDATA #RBQUIRED>
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 tambin 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 mayora de los casos,
pero existen otros tipos posibles, como los relacionados a continuacin:
NMTOKEN, son similares a los CDATA, Con la salvedad de que, adems de
caracteres de texto, pueden incluir digitos, guiones y caracteres de punto, siendo
tiles para describir nmeros. Su nombre viene de NaMe TOKEN (seal de nombre). Un ejemplo de este tipo sera:
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 slo un atributo [Link] similar al atributo NAME de la
etiqueta <A> del HTML. Un ejemplo con este tipo sera:

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 <A> del HTML. Un ejemplo
de este tipo podra ser:

CAP/TULO 151 Definicin de Tipo de Documento cDTD>

...
<! ELEMENT alumnos [ N o m b r e ) *>
< !LLEMFNT
<!ATTLIST
< !Ai'rLIST
!A'T:LIST

-...

Nombre
Nombrr!
?Tambre
Nombre

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

<alumnos>
<Nombre nmsro='[Link]
P r i n ~ r o ic: i o m b r a i
< N o m 3 r e n m e r o = '2 '>J.?in'o .5=q v n d o c /:,iombre:.
C I : T R ~ I - " F ~ c=u' r s 0 2 = ~ K 7 = ~ ~ ~ 1X1 a~ni u' e l
< N o m b r e ni;:r,eii3='3"
? - ~ r r r c , ./ N ~ i r L U i r - </alumnos>
m . .

ENTITY, sirve para hacer referencia a entidades, normalmente de la Web


(archivos, direcciones, scripts, etc.), que no deben ser analizados con las reglas
XML. Se suele acompaar de una declaracin de entidad propia (< ! ENTITY . . .),
que acta como un alias. Un ejemplo de este tipo puede ser:

<memoria>
c f a t o Imqen='orla'
<memor i s r

/>

NOTATION, Se utiliza para indicar el formato de un elemento. Se suele acompaar de una declaracin de notacin propia (< ! NOTATION. . .), que acta como
un alias. Las declaraciones de notacin van delante de la declaracin de atributo
correspondiente. A continuacin se puede ver un ejemplo de este tipo, donde se
especifica el lenguaje utilizado para un determinado cdigo:

x m i "UELIC .XML 1.0'>


c d i g o 1m g u a j e NOTATION (m1

Otro ejemplo del tipo NOTATION,que permite elegir entre un visualizador


particular JPC y otro pblico CIF, puede ser:

XML. Iniciacin y referencia

El tipo de atributo denominado enumeracin permite indicar una lista reducida


de los posibles valores que puede tomar un determinado atributo, incluyndolos
entre parntesis y separados por el signo de ((barravertical)). Es como indicar un
men de opciones. Un ejemplo de este tipo de atributo es:

Valores por defecto


Ya slo nos queda por ver el valor por defecto (default value) que puede tomar un
determinado atributo. Los valores por defecto que pueden tener los atributos son
los que se indican a continuacin:
Valor

Descripcin

Obligatoriedad

#IMPLIED

Permite insertar cualquier valor que se


crea oportuno.

No obliga a nada.

#REQUIRED

Indica que hay que incluir un valor que


rena las condiciones expresadas.

Obliga a elegir un valor.

#FIXED

Seala un nico valor posible, marcado


entre comillas.

Obliga a insertar el
nico valor posible.

En los ejemplos anteriores se pueden estudiar diversos casos de valores por


defecto aplicados a los atributos, adems de los siguientes.
Un ejemplo del valor por defecto #IMPLIED (implcito), que deja libre la eleccin del valor para el atributo moneda del elemento precio,podra ser el siguiente cdigo:

. ..
...

c !XTTLIST precio moqeda CDAT.4 B IMPLiEXb

Definicin de Tipo de Documento <DTD>

del valor por defecto #REQUIRED (requerido), que obliga a elegir


es Euro O P e s e t a para el atributo moneda del elemento p r e c i o ,
digo:

.i
a!

ecio moneda m o I Peeeta) XRBQUIREDB

del valor por defecto #FIXED (fijo), que obliga a elegir el valor

I atributo moneda del elemento p r e c i o , sera el siguiente cdigo:


ecio rioneda CDATA XFZXED *Pesetaa>

:ION DE ENTIDAD
las declaraciones de atributos que tambin podemos utilizar las
e entidades. Una declaracin de entidad (entity declaration) pro~rmacinpara una referencia a entidad, por lo que puede ser aprotras aplicaciones ajenas a los atributos de elementos.
ulo anterior ya veamos el ejemplo de declaracin de entidad:
1

--,.

..<!EWTITY acta 'Asociacin

de Autores Cientifico-Tcnicos y

Acadmicos'>

que nos permita crear una especie de alias en el que acta era la referencia a la
entidad Asociacin de Autores Cientfico-Tcnicos y Acadmicos, y as, si en un
documento XML se incluye el cdigo:

La declaracin de entidad hace posible que la referencia &acta; sea sustituida


por la entidad Asociacin de Autores Cientfico-Tcnicos y Acadmicos.
Es fcil imaginar la utilidad de esta herramienta para trabajar con sustituciones
de entidades controladas por sus referencias, y por este sistema, por ejemplo,
sera prctico tener referencias a nombres largos, a direcciones postales, a logotipos
de empresas, a direcciones web complejas, a ciertos textos..., y a cualquier entidad
que se repita frecuentemente en un documento XML.
Las sustituciones pueden dar lugar a poder declarar referencias a caracteres
especiales, y as, una declaracin como:

XML. Iniciacin y referencia

<!ENTITY ycomercial *&#x0026;'>


< !ENTITY copy '&#xOOAg ;'>
< !KNTITY a r a 'Blx2 OAC;

...

permitira que cada vez que se inserten las referencias kmenos;,&ycomencial;,


&copy; O &euro;, se sustituyan por los caracteres del signo menor que (4,
por
el carcter de la y comercial)) (&) o por los smbolos de copyright (O) y del
curo (f), ya que las entidades indican las cantidades hexadecimales del correspondiente carcter Unicode (para indicar valores decimales, la entidad se marca
entre &# por delante y ; por detrs).
En la Figura 5.5 se pueden ver las referencias hexadecimales de los primeros
caracteres del subconjunto Latin de la tabla Unicode 3.0, disponible en la direccin
[Link]
PARA LOS MANITAS: Este sistema es el que se utiliza en la DTD del
HTML para trabajar con caracteres extendidos desde cdigo ASCII7bits, donde Biacaute; es la referencia de la a acentuada)), &tilde; es la
de-la letra ee, &amp; es la del smbolo de y comercial)), etc.

--.-

------ - - - - - - -

Tambin en el Captulo 2 se adelantaba el siguiente cdigo:

Figura 5.5.
Tabla Latin
Basic de los
caracteres
Unicode 3.0.

~ P ~ T U L151
O Definicin de Tipo de Documento <DTD>

Este sencillo documento XML puede contener toda la informacin de un extenso y excelente libro, como el presente, simplemente aadiendo algunas lneas
como:

...
<!PIM'ITY ind:ce SYSTEM m[Link]
c!ENTIlY grologo S Y S T W *[Link]
<!ENTITY capitulo-01 SYSTEM
'[Link]

- !iI4r?TY capi tillo,[Link]

'l~ttp://[Link]/libro/[Link]>

...

<!LTllITY apendice2 SYSTEM

'[Link]
< !EXTTT'L apendickB SYS'rEEI

'http: //[Link]/1 itiro/a~iiidic~~.


tx::'s

Por supuesto que para que el sistema funcione correctamente, en las direcciones apuntadas deben encontrarse los textos de los captulos del libro, cosa que no
ocurre en la realidad.
Por ltimo, nos queda por comentar las entidades de parmetro barameter
nntiti
L, I L I C j

) .

Una entidad de parmetro se diferencia de las entidades normales en que


aade el signo de por ciento)) (%) en vez del smbolo de y comercial (&), delante de la referencia, quedando como:
,---

...

--

--- -

-.--

--

--

--

-.

<! EMTITY % WA 'Ramn Moritero Ayala'>

Y como consecuencia, cuando se hace la llamada a la entidad de parmetro


RMA hay que utilizar el mismo carcter:

Dos cosas importantes sobre este tema:


En la declaracin de entidad, el signo de por ciento va separado de la
referencia por un espacio.
La entidad de parmetro slo puede ser referenciada dentro del propio
documento DTD, mientras que la entidad normal es referenciada en el
documento XML.
En realidad se puede decir que la entidad de parmetro acta como una variable, con la funcin de simplificar complejos documentos DTD definiendo secciones

XML. Iniciacin y referencia

repetidas. Un ejemplo prctico de utilizacin de entidades de parmetro seria el


siguiente cdigo DTD:
e !ELE!~ENT o p c i o ~ e s (categoria+, ventas+, ascenso+)
<!ENTITY % ratio 'preferencia (primerolsegundoltercerolotro)
'primero' '>
e!ELEMENT categora (#PC3ATA)>
<!A?TLiST categoria '%ratio;>
e !ELventas ( XPCDA'iA)
c!AWLIST ventas %ratio;>
e !ELEMENT ascenso ((IPCDATA)
>
e !ATTLIST ascenso %ratio; >

que nos permite ahorrar cdigo cada vez que se precisa indicar las condiciones del
atributo preferencia.
--

PARA
LOSMANITAS:Para ver

"C,

un uso intensivode las entidades de


parmetro es suficiente con estudiar el contenido de [Link], de la
especificacin HTML 4, accesible en la direccin htt~://www.w3.
or-/TR/REC-html40/[Link].

Tambin hemos visto en las declaraciones de atributos que se pueden utilizar las
declaraciones de notacin. Una declaracin de notacin (notation declaration)
permite la asociacin de un nombre con una accin particular. Una notacin del
contenido de los datos es una descripcin de la forma de interpretacin de los bits
de los objetos XML, sin pasar por el analizador sintctico.
Ya hemos visto que lo ms normal es que los documentos XML utilicen las
notaciones de los objetos para utilizarlos como notacin de atributos, pero las
declaraciones de notacin pueden utilizarse tambin como instrucciones de procesamiento, que pueden utilizar los conocidos modelos PUBLIC y SYSTEM.
Adems de los ejemplos de declaraciones de notacin ya vistos, a continuacin
se puede ver una aplicacin prctica y combinada del uso de las declaraciones de
notacin:
< ! EL9IEIPT loa0 [Link]
i NOTATION 'i f SYSTEM

.,='
h-Le:///C:/krcriivos
.
de Programa/Internet
Explorer/[Link]'>
jpg SYSTEM
"fLl~::///C:/Archivos de Programa/Internet E
"fLl~::///C:/Archivos
Explorer![Link]>
:
< ! A T T L i S T 10ff0
irmqin
irmcrin EF,lTIT'i
EFlTIT'. *RFr)UiRED
*RFWIiRED
formato NGT3TION (qif l jpg) WFEQLlIRED>
<!EKT--''
._ I L loqo-ramon .gi f SYSTEI.!
'[Link] NDATA gif>
e !NOT9TION

. a .

<lago imagen="[Link]'

...

formato="gifm />

CAPITULO[S]

_ Definicin de Tipo de Documento <DTD>

En las dos primeras declaraciones de notacin se indica que hay que utilizar el
programa lnternet Explorer para visualizar los archivos grficos GIF y JPG, actuana
do como instrucciones de procesamiento. En la declaracin de la lista de atributos m
del elemento logo,Se incluye un tipo de atributo NoTATION que obliga a elegir
uno de los dos formatos grficos posibles, actuando como un tipo de atributo 1I
capaz de regular entidades binarias, que precisan del identificador NDATA (uNparsed DATA)y de un nombre que describa el tipo de su contenido.

SECCIONES CONDICIONALES
Cuando se est depurando un cdigo DTD, al igual que ocurre con cualquier otro
cdigo, es muy til disponer de opciones que permitan activar o desactivar determinadas secciones para comprobar su comportamiento sin necesidad de tener
que borrarlas o escribirlas repetidamente. Estas secciones condicionales se regulan
con las expresiones IGNORE e INCLUDE, que permiten desactivar o activar unas
determinadas lneas de cdigo DTD.
Sus correspondientes modelos son:

.-

'1
..

- -

c ! [IGNORE[ c~;digo-que-debe-ser-desactivado]1 >

. ..
< ! [ INCLUDE [e66igo-que-debe-ter-c cti vado] 1 >

Un ejemplo en el que se puede ver una utilizacin prctica de las secciones condicionales es el siguiente:

...
< ! [ INCLlJLE[
c ! E X ! ~ ~ l l 'libro (Tliulo, Autor)>
].

:.

s!

:IGNORE [

.: ! E:,;PiENT

libro (Titulo, Aurnr , Resumen, Comentario) >

1:.

Ttulo ( CPmZCATA)>
Autor (PP?'T]XT.\)
:
.-!EI.T?.IENT Resumen (#PCD.k:A) >
< ! FT EMENT Ccirncnk3r io (SPCDATA) >
< ! i:;[Link]?T

! [Link]

--'

. ..

En el anterior cdigo se puede ver una seccin DTD ms simple con slo dos
elementos, que ser tenida en cuenta hasta que se compruebe el buen funcionamiento del sistema, en cuyo momento podr activarse y ser utilizada la seccin ms
compleja, que actualmente est ignorada. El cambio de seccin activada a desactivada, o viceversa, se consigue cambiando los trminos IGNORE por INCLUDE.
Hay dos reglas que deben cumplir las secciones condicionales:
Deben abarcar declaraciones completas.
Deben incluirse slo en DTD externas.

XML. Iniciacin y referencia

CONCLUSIONES FINALES

'

En este punto, el lector debe estar en condiciones de comprender perectamente el


cdigo del [Link] enlazado al archivo [Link] que vimos al principio de este captulo y que vamos a repasar con detalle.
La primera Inea describe el elemento raz catlogo,que permite incluir ninguno, uno o varios elementos libro:
!ELE'IENT cat: ogo (lihro)*>

La Inea siguiente muestra los subelementos que van a depender del elemento
libro,aclarando que Pginas es opcional, permitiendo su aparicin una vez o
ninguna, y que Precio puede tener uno o ms elementos en cada libro:
<!EL-

libro (Titulo, ~ditorial, autores, ISBM, ~dginas?,

Precio+)>

A continuacin se declaran todos los subelementos que van a soportar los


datos de cada elemento libro,indicando que todos los contenidos van a ser del
tipo caraderes (texto formado por caracteres), excepto el llamado autores,que
puede estar vaco o contener otros elementos Autor,que en caso de existir, tambin incluirn datos en forma de caracteres:
<!ELENEnIT Titulo (#lJCDATA)>
< !ELEEIENT Editorial ( CPCDATTO >
c! [Link] autores (Autor+)>
<!ELEMENT Autor, (1PCDATA)i

<!ELF&[Link]. ISBN (#FCATA)>


< !ELFMIPTT Pdginas (#PCRATA)>
c !El FJEFIT Precio (CPCDATA) >

Por ltimo se incluye una declaracin del atributo moneda para el elemento
Precio,indicando que es obligatorio y que debe ser del tipo de caracteres:

El documento XML [Link] cumple perectamente estas reglas,


cuestin fcilmente comprobable si se pasa por algn analizador validante, como
XML Validator.
El resumen prctico de este captulo debe ser que en algunos casos, en los que
intervienen varias personas, es mejor que los documentos XML se ajusten a ciertas
reglas de descripcin de datos, siendo las definiciones de tipo de documentos las
encargadas de describir esas reglas.
La informacin XML que cumple las reglas de una DTD se dice que es vlida,
denominndose validantes a las herramientas que son capaces de tener en cuenta
los documentos DTD cuando analizan datos XML.

CAP~TULO
[5]

Definicin de Tipo de Documento cDTD>

En caso de que un documento XML deba trabajar vinculado a una definicin de


tipo de documento, sta puede ser interna o externa y, adems, puede ser particular o pblica.
1
Tambin hay que recordar que no es obligatorio el uso de una DTD para trabajar con informacin XML.
Por ltimo es preciso tener en cuenta que se est elaborando una especificacin
capaz de sustituir a la DTD, ms eficaz y fcil de interpretar, que se denomina
Esquemas XML y que se comentar ms adelante.
*-m
' -

PARA LOS MANITAS: Es probable que el lector haya observado que en


algunas ocasiones me refiero a los nombres de los elementos empezando con MAYSCULA y otra lo hago empezando con minscula.
Es una regla particular que me ayuda a controlar los elementos que llevan contenido (mayscula) y los que no tienen contenido (minscula), estos ltimos, bien
porque estn vacos o bien
S

-m-

-*-=>w.

Opciones bsicas
del Lenguaje de Hoja
de Estilo Extensible

S imposible, totalmente imposible, encontrar alguna excusa para saltarse


ste (y el prximo) captulo. Si hubiese que dar una puntuacin a cada captulo que los pusiese por orden de importancia, sin duda alguna ste se Ilevara una de las mximas notas, y aunque las malas noticias son que hay que aprender un nuevo sistema de tratamiento de informacin, las buenas (muy buenas)
noticias son que despus de terminar con este tema el lector estar en condiciones
de controlar un documento XML con el mximo de capacidades.
Ya hemos comentado que XML se ha auxiliado, en los primeros tiempos (hace
ya unos... uno o dos aos), de las tecnologas existentes en esos momentos, como
CSS o HTML, pero ninguna de ellas ha sido creada especficamente para trabajar
con XML, por lo que presenta algunos inconvenientes difciles de subsanar, relacionados con la falta de recursos para un tratamiento avanzado de la informacin,
que el objetivo ltimo del XML.
Tanto CSS como HTML han sido creados pensando en una presentacin de
informacin web simple y esttica, por lo que es necesario recurrir a otros lenguajes, normalmente de guiones (scripts), para conseguir soluciones equivalentes a las
que se pueden obtener con los ms potentes lenguajes de programacin (C,
VisualBasic, COBOL, etc.). Incluir en una pgina web HTML-CSS operaciones con
clculos numricos, ordenaciones de datos, selecciones condicionadas, personalizaciones de la presentacin, interaces de usuario grficas y otras cuestiones tpicas
en las aplicaciones de computacin profesionales, slo es posible si se recurre
alternativamente a lava, JavaScript, VBScript, CGI... y otras tecnologas similares.
XML ha sido creado desde el primer momento para superar todas las limitaciones y dificultades del HTML, y sin ser propiamente un lenguaje de programacin,

XML. Iniciacin y referencia

al pretender ser un entorno avanzado de tratamiento de informacin precisa de


soluciones que le permitan conseguir, por s mismo, las ms modernas capacidades
de gestin de datos, siendo el Lenguaje de hoja de estilo extensible, o ms resumido, el XSL (Extensible Stylesheet Language) el encargado de proporcionar estas
caractersticas al XML.

XSL
Simplificando, se puede decir que XSL es a XML lo que CSS es a HTML, aunque
con muchas ms posibilidades. Fue elaborado tomando como base una combinacin de DSSSL (Document Style Semantics and Specification Language, lenguaje de
especificacin y semntica de estilo de documento), el lenguaje de estilo diseado
para controlar la presentacin de datos SGML y de CSS, el conocido proceso de
gestin de presentacin del HTML. XSL es un lenguaje especfico para tratar datos
de un documento XML, hacindose cargo tambin de su presentacin.
La normativa de la versin XSL 1.O, en el momento de escribir este captulo, se
encuentra en estado de borrador de trabajo del W3C ([Link]/TR/xsl/), tal
como se puede comprobar en la Figura 6.1, aunque con algunas particularidades
que se comentan a continuacin.
XSL es una norma un tanto peculiar, ya que se compone de dos partes principales.
Una de ellas, denominada XSLT (XSL Transformations, transformaciones XSL),
sirve para transformar un documento XML organizado con un rbol origen (source
tree) en un rbol resultante (result tree), que normalmente es otro documento XML,
todo ello mediante una serie de filtros y patrones relacionados en una hoja de estilo.
Desde el da 16 de noviembre de 1999 se encuentra disponible la recomendacin definitiva de XSLT ([Link]/xslt/), tal como se puede apreciar en la Figura 6.2.

Extensible 3 y lesheet Language (XSL)


Version 1 O
W?C Wnrking Drai 27 Merch 20'30

Figura 6.1.

Borrador oficial
de XSL.

CAP/TULO [6] Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

XSL Transformationr (XSLT)


Version 1.O

Figura 6.2.
Recomendacin
oficial de XSLT.

La segunda parte de XSL, conocida como FO (Formatting Objeds), es la encargada de describir el formato de presentacin de los elementos y objetos XML y sus
normas se incluyen en la especificacin principal XSL.
En resumen, XSL se compone de un lenguaje de transformacin y otro lenguaje
de formato.
El lenguaje de transformacin (XSLT) recoge un documento XML bien formado
o vlido y lo transforma en un documento XML alternativo.
El lenguaje de formato (XSL-FO) describe cmo debe ser visualizado el resultado de la transformacin. Es una operacin similar a la que realiza CSS, normativa
en la que se basa. En el momento actual, XSL-FO se encuentra en la misma fase de
borrador de trabajo que XSL, de la que forma parte.
De acuerdo con lo comentado, un documento XML que est vinculado a un
documento XSL realiza en primer lugar una transformacin de su contenido y,
ms tarde, se muestra de acuerdo al formato descrito Dara el documento resultante. Este prcceso se describe visualmente en el diagrama de la Figura 6.3.
Por suerte para nosotros, la versin 5 de lnternet Explorer soporta una buena
parte de XSLT, o que nos permite trabajar con esta tecnologa fcilmente. La parte
relativa al formato de salida de los documentos no est implementada en IE5,
por lo que tendremos que auxiliarnos de nuestro querido HTML-CSS todava,
dando como resultado un esquema de trabajo ligeramente distinto al anterior.
Esta nueva organizacin puede verse en la Figura 6.4.

Figura 6.3.
Transformacin
y formateado
mediante XSL.

XML. Iniciacin y referencia

Figura 6.,4.
Transformacion
mediante XSL y
formateado a
travs de CSS.

3
;
Para simplificar se ha comentado que XSL realiza la transformacin de un
documento XML en otro documento XML, pero esto no es siempre as, ya que, en
teora, una plantilla XSL es capaz de transformar un documento XML en otro
documento de diferente formato, como HTML o TXT, por ejemplo.
Para qu se puede necesitar que la transformacin se realice a otro formato
distinto?
Veamos dos ejemplos.
Imaginemos que se desea que el documento resultante se muestre como una
pgina web. En este caso es muy prctico que la transformacin produzca un
documento HTML (en la mayora de nuestros ejemplos, la transformacin se har
en formato HTML, ya que es la opcin por defecto en IE5).
Supongamos ahora que un visitante de nuestra pgina web solicita cierta informacin sobre datos que tenemos guardados en formato XML. Seria evidente la
ventaja de que la respuesta solicitada se crease en formato TXT para poder ser
enviada por correo electrnico.

XML Path Language (XPath)


Version 1 0

Figura 6.5.
Recomendacin
oficial de XPath.

IMPORTANTE: Cuando se termin IE5, XSL exista slo como borrador


de trabajo, por lo que el soporte dado a esta tecnologa est recortado,
y en algunos casos, personalizado para el visualizador de Microsoft. La
versin 5.5 soporta XSL de forma ms ajustada a la especificacin oficial, pero
mientras no se publique la recomendacin definitiva, ningn visualizador podr
soportar XSL de forma total.

CAPITULO [6] Opciones biisicas del Lenguaje de Hoja de Estilo Extensible cXSL-l>

XSL se completa con otras tecnologas complementarias, como XQL (XML


Query Language, lenguaje de consulta para XML) y XPath (XML Path Language,
lenguaje de ruta para XML) que, en algunos aspectos, se encuentran en estado de o
desarrollo y normalizacin. En la Figura 6.5 se puede ver la recomendacin oficial
de XPath 1.O,disponible desde el 16 de noviembre de 1999 en [Link] O

A partir de este punto, dada la situacin de falta de soporte en IE5 de XSL para dar
formato, siempre que hablemos de XSL nos estaremos refiriendo al recurso de
XS LT.
Puede que el lector no comprenda cmo puede existir una norma XSL que
incluye una parte de dicha norma (SXLT) publicada como una recomendacin
aparte, por lo que vamos a aclarar esta situacin.
En principio, toda la especificacin relacionada con la transformacin de datos
XML se contemplaba en la propia recomendacin XSL, pero el Consorcio WWW
(W3C), viendo la complejidad y la importancia que tomaba esta normativa, ha decidido separar esta parte para que pueda ser una tecnologa con autonoma propia.
Es ms, la recomendacin XSLT [Link] ntimamente relacionada con otra norma
denominada XPath (XML Path Language), encargada de describir los detalles del
direccionamiento de los componentes de un documento.
El trabajo de XSL se basa en dos actividades principales: sealar el nodo que se
desea transformar y realizar la operacin de transformacin adecuada, repitindose
este proceso en el rbol de origen cuantas veces sea preciso para obtener el rbol
resultante, que ser formateado mediante una plantilla CSS (o cuando se complete la disponibilidad de XSL, por unas reglas propias XSL de formato).
Vemoslo en la prctica.
En primer lugar creamos un sencillo documento XML, con la referencia normas06-01 .xml, como el siguiente:

<?m1versian="l.0*.encoding="ISO-8959-1"?>

<norma$>
.crmrm&t%
<Siglasr%MLc/SIgJas>
c T a x t g z E r t e n a e X a r h p Languagec /Texto>
/noima>
<norma,
~SiglaszHTMLc/Siglas>
4'esto>HyperText Markup Language</Texto>
</norma>
c/fiomas'

Despus aadimos una lnea de cdigo que le relacione con un determinado


archivo XSL (en este caso ejemplo06-02.~~1)y lo volvemos a guardar:

XML. Iniciacin 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 [Link] 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 todava no estamos en condiciones de entender bien los detalles (ms
adelante se estudiarn), 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 transformacin 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 adems de la


informacin relativa a las siglas,tambin incorpora datos sobre el Texto de las
normas reseadas. habiendo sido obviados estos ltimos.

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

CAPITULO 161 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-12

El segundo punto aclara el cometido de los documentos XSL, esto es, servir de
contenedor de las reglas de transformacin del documento origen.

PRECAUCIN: En este caso, IE5 ha tomado la decisin de mostrar el


documento resultante como un documento HTML (lo que nos evita
definir la parte del formato de presentacin), pero hay que tener en
cuenta que es una decisin particular de-este navegador. otros visualizadores
XML no tienen por qu realizar esta operacin por defecto.

--

---

- --

--.-

-.

- -

3
a
j

El documento XSL se puede visualizar por separado a travs de IE5, que lo


muestra en la conocida organizacin en forma de rbol jerrquico, tal como se
puede ver en la Figura 6.7.
Si observamos con atencin el cdigo de ejemplo06-02.~~1,podemos empezar
a descubrir algunas cuestiones importantes de los documentos XSL:
Mantiene las mismas reglas del XML.
Se soporta en un espacio de nombre particular (xsi:).
La plantilla de transformacin tiene dos partes que estn bien diferenciadas:
la definicin de la posicin del nodo adecuado del documento origen
(<xsl:template match="Siglas"z) y la descripcin del filtro que
determina la transformacin ( < x s i:value-of />).
El primer punto es lgico, ya que XSL es una aplicacin de XML, como puede
ser VML o WML (con el objetivo particular de la transformacin del documento
XML al que est vinculado), por lo que debe seguir las mismas reglas del XML,
soportando un vocabulario particular de rdenes o etiquetas predefinidas.
El segundo punto revela que XSL utiliza un espacio de nombre particular, que se
reconoce por el prefijo xel:, para evitar colisiones con otros elementos XML.
El ltimo punto subraya las dos partes bsicas de cualquier documento XSL,
soportadas en la descripcin exacta del patrn del nodo que deseamos transformar
y la declaracin del modelo que se desea aplicar a la transformacin.
El proceso general que realiza un procesador XSL, de acuerdo con las especificaciones de un documento XSL puede verse en el esquema de la Figura 6.8. En
dicho esquema se puede ver que partiendo del rbol de origen, busca una plantilla,
a continuacin busca un patrn de localizacin de un determinado nodo, despus
realiza la transformacin del nodo segn indique la plantilla, y sigue buscando plan-

Figura 6.7.
Resultado de abrir

[Link]
con IE5.

XML. Iniciacin y referencia

Figura 6.8.
Proceso de
actuacin del
procesador XSL.

tillas hasta realizar todas las transformaciones. Cuando ya no quedan plantillas, da


formato al rbol resultante y muestra el resultado en el sistema de salida.
Un documento XSL, como se ver en el resto de este captulo y en el siguiente,
permite toda clase de transformaciones del documento original.
Es probable que algn lector se est diciendo que no se ha hecho ninguna
transformacin importante, ya que slo se ha realizado una seleccin de datos.
Bien, cuando pensemos en las transformaciones del XSL, hay que tener en cuenta
que el trmino transformacin, aqu, se utiliza en el ms amplio sentido de la
palabra, abarcando selecciones selectivas, eliminacin de datos, modificacin de
informacin, ordenaciones alfanumricas, aadidos extras, y cualquier otra alteracin del documento original, ya que si slo se trata de mostrar toda la informacin
de un documento XML, tal como est organizada en el documento origen, es
mejor utilizar el sistema XML-CSS, ya visto en el Captulo 3.
PARA AHORRAR TIEMPO: No siempre es fcil decidir cundo es mejor
el sistema XML-CSS o el sistema XML-XSL. Para que el lector no pierda
tiempo haciendo pruebas, recomiendo aplicar la siguiente regla: Hay
que utilizar XML-CSS cuando se pueda y XML-XSL cuando se deba, o, lo que es lo
mismo: hay que utilizar CSS siempre
que
con este proceso resuelva el problema y
.
.
hay que utilizar XSL cuando CSS no sea suficiente:

----

- ---

---

---

Antes de empezar a analizar las posibilidades del XSL vamos a ver otro ejemplo
de transformacin ms fuerte de nuestro documento XML sobre normas de la Web,
en el que se van a sustituir algunos de los datos del documento XML original por
otros diferentes, obteniendo un rbol resultante totalmente distinto al de origen.
Para ello hay que crear el siguiente archivo [Link], muy parecido al
anterior, pero con ciertas diferencias importantes:
c?rsl:styleshtet ~1aiilns:xsl="h~t~://[Link]/T3/WD-xsl'>
ex- J.: template m ~ r h = "
"'i
- xz1:applytimple:es sslect='/normas/norma/Siglas' / >
r/xsl::niplate>

exs1:template match=a.*,

css

VlQl

xama

wwL

</xel:template>
c/xsl:stylesheet>

CAPITULO [6] Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

Tambin hay que modificar la Inea del primer documento XML que seala al
documento XSL para que apunte al nuevo archivo XSL, tal como se indica en el
siguiente cdigo:

1
'

.i

Este nuevo cdigo XML debe guardarse como [Link], proporcionando a travs de IE5 el resultado que se puede ver en la Figura 6.9.
En este ejemplo slo falta por definir un formato para la informacin de salida,
que ya hemos comentado, que mientras no exista un soporte generalizado de
XSL-FO lo realizaremos con CSS.
Ya que IE5 realiza la transformacin XSL con un formato de salida HTML,
vamos a aprovechar las etiquetas HTML-CSS para dar el formato adecuado. Es sufi-'ente con realizar dos sencillas operaciones:

Figura 6.9.
Resultado de
ejecutar
[Link].
o

Aadir las siguientes lneas de cdigo HTML-CSS en el ltimo archivo XSL y


guardarlo como ejemplo06-05.~~1:

<?m1
..er;ion='[Link] encoding='ISO-8859-l.?>
.:x-l : r t y l e s h e e t mlns:xs1="l~ttr,://www.~~~3
.o.--'-.'??ti~D-xslg>
:x~~l:[Link],[Link]
uat:?h--"/O-:app-y-ter~piates s e l e c t = ' / n o m a s / n n ~ - n a / S i g l a s ' / >
< 'xi'i: t e i i p l a ~ r .
c x s l : tirnpl.?.Le match=".">
<P STYLE="colorrnavy; f o n t - f d 1 y : s a . n ~ - s e r i f ;
<XF'

font-eize:lOptj
font-weight:boldern>
CSS VML XH'L'f:L hIML

</P>
c/xsl :tirnpl%tc
c/xsl: stylesWet>
o

Actualizar la Inea de cdigo del ltimo documento XML que lo vincula al


archivo XSL y guardarlo como [Link]:

XML. Iniciacin y referencia

Figura 6.10.
Resultado de
ejecutar
[Link].

El resultado puede verse en la Figura 6.10, que se diferencia de la anterior en el


control del color, tipo, tamao y estilo de letra, que proporciona el nuevo diseo
HTML-CSS aadido al proyecto.
IMPORTANTE: Es necesario resaltar las ventajas de este sistema, que
permite conseguir proyectos XML que aprovechan todas las caractersticas de los documentos XML, de las plantillas XSL, de las etiquetas
HTML y de las descripciones CSS, a gusto del diseador.

. - ~--

-- -

- -

--

--

Como es norma en este libro, aunque en el ejemplo anterior se ha utilizado un


diseo HTML-CSS interno para simplificar, en adelante, siempre que se utilice un
formato de salida CSS, se aplicar la plantilla correspondiente desde un archivo
externo CSS, lo que nos obligar a incluir una lnea de cdigo adicional en el
archivo XSL como la siguiente:

Y, por supuesto, tambin habr que crear la correspondiente plantilla CSS,


que en este caso particular se guardara con el nombre de [Link].
El ejemplo anterior, con la descripcin CSS interna, se puede estudiar con
una descripcin CSS externa observando los archivos ejemplo06-07.~~1,
[Link] y [Link].
PARA LOS MANITAS: La descripcin del formato de salida realizado en
un documento XSL puede combinarse mediante diseo conjunto HTMLCSS externo e interno, siendo lgico que el archivo CSS externo describa las caractersticas ms generales y se deje para la descripcin CSS interna la
labor de dar formato a elementos articulare es.
Ya conocemos todos los ingredientes necesarios para crear y controlar al detalle un proyecto XML de cualquier tipo, y, como ya hemos visto, las posibilidades de
los documentos XML, HTML y CSS toca ver ahora las diferentes capacidades que
nos brindan los documentos XSL.

CAPITULO 161 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1,

TIPOS DE NODOS XSL


Los documentos XSL son documentos XML, por lo que sus componentes tambin
se organizan en forma de rbol estructurado jerrquicamente.
Cada vez que se habla de rboles se trata de sus nodos y de sus relaciones.

iede existir un nodo raz en cada documento XSL, ya


ocumento XSL.
1. Los nodos de elemento representan a cada elemento
. Se organizan en niveles, pudiendo tener nodos padre
y/o nodos hijos (del nivel inferior). Tambin puede
ascendientes (de los niveles superiores) y edescen,eles inferiores).
3s nodos de texto consisten en conjuntos de datos de
1s definidos en las secciones CDATA.
Los nodos de atributo representan a los atributos de los
imento XSL.
de nombre. Cada elemento tiene tambin un nodo de
que se corresponde con su prefijo, normalmente xsi : .
iones de procesamiento. Toda instruccin de procesa,respondiente nodo, aunque no se incluye en el rbol de
rios. Los comentarios son partes del documento XSL, por
correspondientes nodos asociados a los valores de los

Jo hay que confundir el nodo raz con el elemento raz.


la raz del rbol del documento, representa al docun nico hijo: el elemento raz.

cesador se sita en un determinado nodo. Ese nodo se


rrrent node).

CUMENTOS XSL
! tenga que vincular con un documento XSL debe incluir,
u cdigo, una instruccin de procesamiento particular

~y similar a la que se utiliza para vincular un documento


? XSL y CSS se tratan como hojas de estilo.

XML. Iniciacin y referencia

Los archivos XSL se crean y editan tambin con cualquier editor de textos que
guarde su contenido sin formato alguno, diferencindose de los dems documentos mediante la extensin .xsl.
Los documentos XSL son aplicaciones particulares del XML, por lo que se rigen
por sus mismas normas y, en consecuencia, su primera Inea debe ser una instruccin de procesamiento igual a la que utilizamos en XML, o sea, todo documento
XSL debe empezar con una lnea de cdigo como:

Despus de la declaracin inicial se debe incluir la etiqueta raz XSL, y para que
no existan colisiones ni intererencias hay que describir los espacios de nombre en
los que se desea que trabaje XSL. Estos espacios de nombre, segn la especificacin
del W3C, suelen ser dos: uno para soportar las etiquetas de transformacin y
otro para incluir las correspondientes al formato, especificados como se indica en el
siguiente cdigo:
b

,.

Como se puede ver, la etiqueta raz stylesheet utiliza el prefijo xsl: caracterstico del XSL. Esta etiqueta es inexcusable, y aunque no es obligatorio, se recomienda que lleve el atributo version,que por ahora tiene el valor 1. O .
Los espacios de nombre se declaran como atributos de la etiqueta raz, existiendo una Inea correspondiente al espacio de nombre de la transformacin:

i y otra Inea relacionada con el espacio de nombre del formato:

Tambin se incluye una sentencia sobre el mtodo (el prefijo) empleado para
dar formato al documento resultante, o sea, el espacio de nombre aplicado al formato de salida:

En nuestra situacin, al no disponer de la posibilidad de dar formato con XSLFO a travs de IE5, y como IE5 utiliza HTML para dar formato al documento XSL

CAPITULO
161 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>
resultante, las lneas correspondientes al espacio de nombre del formato y al espacio de nombre resultante seran ms correctas si se cambian por otras que indiquen
una URI adecuada para HTML y marquen el formato de salida con una cadena
vaca (ya que HTML no tiene prefijo) como las siguientes:

IMPORTANTE: Estas lneas no tienen sentido en IE5 si se trabaja con las


libreras MSXMLZ.x, ya que son ignoradas, pero si lo tienen si se utilizan las libreras MSXML3.x.

----.

Ya que vamos a utilizar HTML para dar el formato de salida, lo adecuado es trabajar con un cdigo ajustado a las normas de HTML4, lo que se consigue operando con un cdigo XSL que siga el siguiente modelo:

En el cdigo anterior se puede ver que en primer lugar se define una plantilla
general con una estructura HTML tpica que se aplica a todo el documento y,
despus, se aaden tantas plantillas particulares como sean precisas.
--

- -

--

IMPORTANTE: El lector habr observado que los primeros ejemplos de


cdigo XSL comentados en este captulo no incluan los espacios de
nombre adecuados. E l motivo es que lnternet Explorer 5 necesita obligatoriamente que el espacio de nombre se describa exactamente de la forma:
Para mantener la mxima compatibilidad y facilitar la labor de los lectores, los
ejemplos que van a continuacin incluyen la lnea capaz de ser entendida por IE5,

XML. Iniciacin y referencia

quedar claro que poco a poco, segn se actualicen los visualizadores


)e .debiendo
XML. se debe utilizar el mktodo de descripcin recomendado por el
-- - -- W3C.

PARA AHORRAR TIEMPO: Es muy recomendable disponer de la ltima


versin del visualizador XML lnternet Explorer, que se puede recoger
desde [Link]/windows/ie intl/es/download/[Link].

--

---- -

---

PLANTILLAS XSL
Una plantilla XSL es un contenedor de instrucciones que gestiona el nodo (o
nodos) del rbol origen que se desea transformar, describe la transformacin y
marca el nodo (o nodos) del rbol resultante.
Normalmente, cuando se describe un documento XSL, se construye una serie
de plantillas que sealan los elementos sobre los que se desea aplicar una determinada transformacin, indican las transformaciones adecuadas y codifican el formato de salida idneo. Esta coleccin de plantillas o guiones de cdigo son las que
conforman el nuevo documento, que normalmente se muestra en la pantalla de la
computadora como una pgina web.
La etiqueta que controla las plantillas XSL es xsl: template,por lo que un
documento XSL estndar tendr la siguiente forma:

La plantilla XSL ms sencilla posible es:

En el cdigo anterior se pueden observar la etiqueta xsi: template,el atri(que en este caso seala al nodo
buto para la descripcin del nodo match=##/##
raiz), la instruccin del formato de salida <P>. </P> (prrafo HTML) y la eti-

..

T TU LO 161 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>


?ta de la transformacin xsi :vaiue-of (que indica que se muestre todo su
itenido). Este cdigo se puede leer como sitate en el nodo raz y muestra todo
exto del contenido de dicho nodo organizado en prrafos)).
En adelante vamos a manejar el ya conocido documento XML sobre Normas
!b, con algunas ampliaciones. El archivo normas06~[Link] el siguiente:
0

Para ver el resultado de la aplicacin de la plantilla simple comentada hay que


ar un archivo [Link] con el siguiente cdigo:

Este cdigo XSL est enlazado con un archivo CSS denominado normasxss,
e utilizaremos a menudo y que puede ser consultado por el lector entre los
:hivos bajados de [Link], aunque, si lo desea, puede crearlo por s
smo segn sus propios criterios de formato.
Observando el cdigo XSL anterior podemos ver una forma ms adecuada de
lizacin de las plantillas XSL, que se basa en la aplicacin de una nueva etiqueta
1 :apply-templatee select="nodoU,que permite definir al principio del
cumento todos los nodos que se van a utilizar despus.

XML. Iniciacin y referencia

i
Figura 6.11.
Resultado de abrir
normas06-11 .xml
con IE5.

Ni&.

Dd-

-rkl

B h c h F-*o.

Hirimd

1 HTML 4.01 HyperTe~tMrkup Lnguage 24-Diciembre-1999

Cono

T&

hn,m

En nuestro caso se ha marcado el nodo norma, que ha sido utilizado ms


tarde en la descripcin de la transformacin. Si se hubiese incluido otra lnea
xsi :appiy-tempiates select="normas/Ttulon con otra transformacin
<xsl: template match="TtuloW>,se mostrara el contenido del elemento
< ~ t u l o >en la pgina web.
En la Figura 6.1 1 se puede ver cmo presenta IE5 el archivo [Link],
observando que el procesador XSL ha hecho lo que se le ha ordenado, esto es, ha
presentado el contenido de cada nodo norma en forma de prrafos, sin tener en
cuenta los atributos.
El elemento XSL appiy-tempiates permite apuntar a cada nodo indicando
un determinado patrn de localizacin. El nodo se identifica mediante el atributo
select=nodo,debiendo incluir en el valor nodo el patrn adecuado. Esta
instruccin puede leerse como aplica las plantillas correspondientes al nodo seleccionado por el patrn de localizacin.
En nuestro ejemplo, el cdigo <xsl :apply-templates seiect=/normas/norma / >, situado al principio, indica que las plantillas que sealen al
elemento norma,se deben aplicar a los nodos que cumplan el patrn de localizacin /normas/[Link] existiesen otros elementos norma con distinta localizacin, no seran tenidos en cuenta en el momento de ejecutar la correspondiente
plantilla.
PARA LOS MANITAS: Haga la siguiente prueba:
Aada al final del cdigo de [Link] las siguientes lneas
de cdigo:

Gurdelo, ejecute otra vez el archivo [Link] y ver cmo no


aparece Texto de prueba en IE5, ya que su patrn de localizacin sera
/normas/prueba/norma,distinto del sealado en appiy-templates.
Ahora modifique el archivo ejemplo06-70.~~1
para que quede como:

CAPITULO [6] Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

Gurdelo, vuelva a ejecutar el archivo [Link] y ver cmo ahora s


barece Texto de prueba en IE5, ya que su patrn de ~oci~izacin
ha sido aado en appiy-templates.
No olvide devolver los archivos a sus estados originales!

---

Para terminar este apartado, y para ver cmo se pueden aplicar todos los con!ptos vistos hasta ahora, vamos a construir un proyecto ms completo que aproxhe mejor la informacin de nuestro documento XML y que permita ver ms
xibilidades de gestin.
En primer lugar, modificamos el ultimo documento XML para que enlace con el
levo documento XSL y lo guardamos como [Link]:

El nuevo documento XSL, guardado con el nombre ejemplo06~12.xs1,es:

XML.

Iniciacin y referencia

<x~I:templatematch='nonna'>
<[Link] sobie la norma:<BR />
<B>-xs1:value-of / x / B >
- /P>
'xsl:template>

<xs :terplate mate?-'Observac i f'.nm>


;">C~aervac;n particular de CSS:<BR / >
FO;;- COLO?.="t90803~'><B>
<xsi : v a l u e - o f / - i Y---/ FiI?lT>-/ p - 1 rw 1 :t emplate>

El resultado de este nuevo proyecto se puede ver en la Figura 6.12.


En el cdigo XSL se pueden distinguir: unas lneas de introduccin ajustadas a
las necesidades de IE5, una plantilla general que describe un diseo del nodo raz
del documento de salida basado en una codificacin HTML y las plantillas particulares de cada nodo de salida.
Hay que observar especialmente cmo se pueden mezclar diversas descripciones del formato de salida, segn interese en cada momento, aprovechando las descripciones CSS externas e internas, as como las etiquetas y atributos HTML.
El documento XSL anterior es fcilmente entendible por s i mismo, sobre todo
para los lectores que conocen HTML, pero quisiera llamar la atencin sobre un
punto concreto: por qu se han introducido las marcas de formato CHI> para
< ~ t u l o en
> la plantilla general, en vez de hacerlo en las particulares, como en
los restantes casos?
Un momento para pensar..., otro poco ms..., y... De acuerdo! Se ha optado
y si se
por esa solucin porque existen dos declaraciones distintas para <~tuio>
indicase el formato en la plantilla general, las etiquetas C H ~ se
> mostraran en la
barra de ttulo superior de IE5.

Normas Web
InfmiciCn sobre la norma:
XML 1.0 Extensible Markup Language

Informadon sobrp l a n m r m
HTML 4.01 HyperText Markup Language 21-Dicienibre-1999

Figura 6.12. i
Resultado de abrir j
nomas06~[Link] i
con IE5. ;

Infomacion sobre la norm.3CSS 2 Cascading Siyie Sheet 12-Mayo- 1998 Sirve para HTML y XML
ObsiwaclCin articular de CSS:
Sirve para HTML y XML

CAPTULO 161 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-11

Para seleccionar un determinado nodo (normalmente un elemento o un atributo)


de la estructura jerrquica del rbol de origen, utilizamos los patrones de localizacin, auxiliados por los de nominados operadores de ruta.
Ya hemos utjlizado operadores de ruta en los ejemplos anteriores, con los atributos match y select,aunque nos hemos limitado a descripciones muy sencillas
porque los ejemplos eran tambin muy simples.
Un documento XML muy complejo puede tener una estructura igualmente
compleja, por cuyo motivo existen varios operadores de ruta para facilitar y simplificar la descripcin de los patrones de localizacin.
En la tabla siguiente se relacionan los operadores de ruta disponibles:
Operador

Utilidad

Separa los niveles de los nodos de su izquierda y derecha y selecciona los


nodos hijos (de nivel inferior) del nodo especificado.

//

Selecciona todos los descendientes (niveles inferiores) del nodo especificado


a su izquierda.
Selecciona el nodo actual.
Selecciona el nodo padre (de nivel superior) del nodo actual.

Expresa alternativas.

Selecciona un nodo de atributo.

Selecciona todos los nodos.

Agrupa otros operadores.

El operador de ((barra inclinada ( / ) se utiliza de forma parecida a como se


hace cuando se describe una direccin URL. Por ejemplo, normas/norma selecciona todos los elementos <norma> que son hijos del elemento <normas> y
norma/Versin seala cada elemento <versin> que es hijo del elemento
<norma>.Este operador se utiliza para indicar el nodo raz (el documento) cuando
se sita a la izquierda, y as es apropiado declarar /normas/norma porque
<normas> es el elemento raz, y cuando se indica / en solitario se est seleccionado slo al nodo raz, esto es, a todo el documento.
El operador de ((doble barra inclinada ( / / ) se utiliza para indicar todos los
nodos que se encuentren entre los nodos relacionados a su izquierda y derecha. Por
ejemplo, normas//Siglas seala a los elementos <Siglas> que dependan
en cualquier nivel del elemento <normas>. Una declaracin como //Texto
seala a todos los elementos <Texto> situados en cualquier nivel. De igual
manera, cuando se indica / / en solitario se est seleccionando al nodo raz y a
todos los nodos de niveles inferiores.
El operador punto (.) se usa para marcar el nodo actual. Su uso es parecido
al que se hace en MS-DOS cuando se describe la ruta de los archivos. Por ejemplo,

XML. Iniciacin y referencia

3
i
i

t
t

. /Siglas slo tendra sentido si el nodo actual es <norma>,sin embargo, .//siglastiene sentido tanto si el nodo actual es <norma> como si es
<normas>.lndicando un . solitario se especifica que se desea trabajar en el nodo
actual.
El operador punto doble (. .) se usa para marcar el nodo padre del nodo
actual. Tambin se utiliza de forma similar a como se hace en MS-DOS. Por ejemplo, si el nodo actual es normas/Ttulo,indicando . . /normaestamos proponiendo un desplazamiento al nivel superior y una bajada de un nivel para seleccionar los elementos <norma>.lndicando un . . solitario se especifica que se desea
trabajar en el nodo padre, sea el que sea.
El operador barra vertical ( 1 ) se usa para indicar que se puede elegir cualquiera de los nodos que separa. Por ejemplo, al sealar Siglas 1 Versin,se permite seleccionar cualquiera de los elementos <Siglas> o <versin>.
El operador arroba (@)sirve para sealar un nodo de atributo. Debe situarse
al final de la cadena de caracteres. Por ejemplo, si se indica Fecha/@orden,se
est sealando al atributo orden de todos los elementos <Fecha>.
El operador asterisco(*) es utilizado para seleccionar todos los elementos o
atributos sin tener en cuenta su nombre. Por ejemplo, norma/* seala a todos los
elementos hijos del elemento <norma>,mientras que norma/@ *seala a todos los
atributos dependientes del elemento <norma>.
Las parejas de operadores ((corchetes. ( [ 1 ) se utilizan para agrupar otros operadores, aunque su uso ms normal es en las operaciones de filtrado, que veremos
ms adelante.
Los operadores de ruta pueden combinarse entre s consiguiendo operadores
complejos. Para dejar ms claras las posibilidades de los operadores de ruta vamos
a ver otros ejemplos basados en nuestro conocido documento Normas Web:
e normas/ * seala a todos los nodos hijos del elemento <normas>.
e normas / / * seala a todos los nodos descendientes de <normas>.
e */@ordenseala a todos los atributos de cualquier elemento que tengan el

nombre orden.
e * /norma/TextoI . . /norma//VersinSeala a los ~ ~ ~ ~ e<Texto>
n t 0 S

que son hijos de <norma>,que pueden estar a cualquier nivel del nodo
actual, pero, adicionalmente, tambin localiza a los elementos <versin>,
descendientes de <norma>,que a su vez debe ser hijo del padre del nodo
actual.

!
i

ste es un tema importante, as que vamos a ver ms ejemplos de localizacin


basados en otro nuevo documento XML, denominado [Link], con el
siguiente cdigo:

cescue! a-verano>
<curso.
<escancia>
<opci ones>
[Link].-habitacin/Opci6n>

rULO [61 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

!asndonos en el documento de la Escuela de Verano, se relacionan los siguienjemplos de localizacin:


o
o
o
o
o
o

o
o
o
o
o

/ seala al nodo raz, o sea al documento.

/escuela-verano seala al elemento raz <escuela-verano>.


/escue~a~verano/curso
seala al nodo del elemento <curso>.
/escue~a~verano/curso/estancia
seala al nodo del elemento
<estancia>.
/ escuela-verano/ curso/actividad seala al nodo del elemento
<actividad>.
/escue~a~verano/curso/estancia/opciones/Opcin
determina los nodos de los elementos <Opcin> que sean descendientes de
<estancia>.
/escuela~verano/curso/actividad/opciones/~pcindetermina los nodos de los elementos <Opcin> que sean descendientes de
<actividad>.
/escuela~verano/curso//opciones/Opcin
seala a todos los
nodos de los elementos <Opcin>.
/ . //estancia//Opcin seala a los nodos de los elementos <Opcin>
que sean descendientes de <estancia>.
/ . //opcinseala a todos los nodos de los elementos <Opcin>.
/ . / / @ * seala a todos los nodos de atributos.
/ . //@nmero seala a todos los nodos de atributos con nombre de
nmero.

El operador de ruta siempre selecciona todos los elementos o nodos que seala el patrn de localizacin. Si se desea seleccionar slo uno de los nodos de todos
los localizados, es preciso utilizar el ndice del nodo.

XML. Iniciacin y referencia

El ndice del nodo es un valor que seala el orden que ocupa dicho nodo en la
lista o coleccin de nodos que cumplen un determinado patrn.
Su posicin se seala con un nmero entre corchetes, teniendo en cuenta que
el primer elemento se corresponde con el valor 0 (cero), el segundo con e valor 1
(uno), el tercero con el valor 2 (dos), ..., y el ltimo con el valor que le corresponda
en cada caso o con la funcin esoec-alXSL end ( ) .
As, por ejemplo, el
/normas/norma [ 0 1 seala al primer nodo
<norma>,mientras que /normas/norma[ 2 ] seala al tercer nodo <norma>.Por
el mismo sistema, con el patrn /normas/norma[end( ) 1 se seala al ltimo
nodo <norma>,que en este caso coincide con el tercero.
Se pueden aprovechar los ndices de nodos para mejorar la presentacin de la
informacin. Como ejemplo podemos ver el cdigo XSL siguiente, que es una
modificacin del ltimo documento XSL (y que lleva el nombre de [Link]), donde se ha sustituido la plantilla particular relativa al elemento
<norma> por tres plantillas con algunos comentarios particulares:

<P>Informacin sobre la primera norma:<BR / >


.--:xsl:valii~.-DE
/-.c/Bx/P>
< I xsl: tcmpla~e::.<xel:template m a t ~ h = ~ n o r m a [ l l ~ >
<P>Informacin sobre la segunda norma:cBR / >
cE

Si ahora modificamos el documento XML de Normas Web para que enlace con
la ltima hoja de estilo XSL y lo guardamos como [Link], al visualizarlo con IE5 obtendremos una vista como la de la Figura 6.13.

Normas Web
Informacibn sobre 13 primera norma
XML 1 .O Extensible Markup Language 10-Febrei-0-1998
Inforrnacibn sobre la segunda norma.
HTML 4.01 HyperTent Markup Language 24-Diciembre-

Figura 6.13.
Resultado de abrir
[Link]
con IE5.

InFornaclbn sobre la ultima norma:


CSS 2 Cascading Style Sheet 12-Mayo-1998 Sirve para HTML y XML
-

uio

ri vid-

cas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

ficiente para complicar la vida al lector, por lo que dejo


y siguientes ejemplos la profundizacin en el manejo de
I y de los operadores de ruta.
TAS: La nica forma de dominar cualquier tcnica pasa
mltiples ejemplos y por observar las soluciones de
s que no queda ms remedio que disear un buen
os de documentos XML-XSL para conseguir un control
calizacin y de los operadores de ruta. sin olvidarse de
onibles en la Web.

una cuestin: qu pasa si el patrn de localizacin no


sitvos?
ncilla: si no existe ningn nodo que cumpla el patrn de
, o lo que es ms exacto, no se aplican las transforma-

olar la localizacin de los nodos de los documentos XML


n que incluyen, pero XSL va ms lejos y permite aplicar
!r condiciones a la salida de los datos. Estos filtros XSL se
de filtro y en los patrones de filtro.
imientas muy potentes y prcticas, permitiendo afinar al
la informacin XML, en forma similar a como actan los
I de alto nivel.
los filtros XSL es: [ o p e r a d o r p a t r n ] , donde o p e ine cmo se aplica el patrn de filtro, mientras que
ve para seleccionar uno o ms elementos mediante cierfiltrado es el que permite seleccionar un determinado
con otro nodo, tal como indica el siguiente patrn de
:cionar solamente la <norma> que incluye un elemento

'norma [ O b s e n & z * r

s de filtrado posibles son: la existencia de nodos y el


e se permiten combinaciones.

ie condiciona la seleccin de un nodo en la existencia de

CAP~TULO
[6] Opciones bAsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

El filtro Fecha [@orden] selecciona la informacin de los elementos


<Fecha>que tienen algn atributo orden,tal como se puede comprobar
con los archivos [Link] y [Link] (ver figura 6.17).

Seguro que el lector puede imaginar ahora otros filtros de seleccin de nodos
0
con condiciones de existencia, por lo que le invito (iqu
. . fcil es hacer invitaciones
gratis!) a que practique con sus
ejemplos.

Valor de nodos
En ciertas ocasiones puede ser interesante seleccionar nodos de acuerdo con su
contenido o, lo que es lo mismo, condicionar la seleccin segn sea el valor de los
nodos.
El caso ms tpico es el que localiza un elemento que tenga un determinado
contenido. Se puede comprobar su funcionamiento si se modifica el ltimo documento XSL, eliminando todas las plantillas particulares e incluyendo la siguiente:
T.....

--

-- -

--

cxsl: tempiate ri~lteh=*norma[Siglaa='H(PML'] *> .


@>Esta noma incluye un elemento 'Siglas' cuyo contenido,es
= H m -:<m*
/>
~Bxxal:valu&of I>= 5 > d P >
z/xsl:templatez

Guardando este documento como ejemplo06-25.~~1,y actualizando el documento XML (con nombre [Link]) adecuadamente para que se relacionen ambos, se obtiene el resultado de la Figura 6.18.

Estc es el cmtrnido del elemento " F i c h d ' que Incluye un atributo "orden"
10-Fehrc:ro- 1998

Este ps el m t e n l d n del elmeotr! 'Fecha" que imluye un otribiito "orden":


24-Dici(:mbre 1999
- .-

Normas Web
Ests n m 3 lmluye un elemento "Siylas" myo contenido es "HTML"
HTML 4.01 nyperText Markup Language 24-Oioenibre-1999

'.-m

Figura 6.17.
Resultado de
abrir
[Link]
con IE5.

Figura 6.18.
Resultado de
abrir
[Link]
con IE5.

XML. Iniciacin y referencia

El filtrado de valores para los atributos es similar al de los elementos, pero anteponiendo el signo de .arroba (@).Por ejemplo, un cdigo XSL como el siguiente:

......
<xsl:teinplate mtch='Pecha[80rden='ltimo'lw~
<P>Esta 'Pecha'
incluye un atributo 'orden'
cuyo contenido ee
'ltimo' :<BR />
<B><xsl:value-of /></B></P>

selecciona nicamente el elemento <Fecha> que incluya un atributo orden con


valor igual a ltimo,tal como puede verse en la Figura 6.19, correspondiente a los
archivos [Link] y [Link].

Figura 6.19.
Resultado de
abrir
[Link]
con IE5.

Normas Web

La comparacin de los valores de los elementos y de los atributos se realiza


tanto si son datos de caracteres alfabticos como si lo son de tipo numrico, ya que,
en realidad, XSL los trata a todos como caracteres alfanumricos.
PARA LOS MANITAS: Mediante las especificaciones de esquemas XML
y tipos de datos XML, actualmente en proceso de elaboracin, se pueden distinguir datos numricos de varios rangos y datos de caracteres
condicionados.

No slo se permite utilizar el signo igual a (=) en la localizacin de valores, ya


que existen otros factores de comparacin. Para ver las posibilidades de este sistema hay que manejar la tabla de operadores de comparacin siguiente:
Smbolo

Operador

Utilidad

$es$

Igual a,..
Es sensible a las maysculas y minsculas.
Distinto de...
Es sensible a las maysculas y rninsculas.
Menor que...
Es sensible a las maysculas y minsculas.
Menor o igual que...
Es sensible a las maysculas y minsculas.
Mayor que...
Es sensible a las maysculas y minsculas.
Mayor o igual que ...

SneS
$lt$
$le$
>

SgtS

>=

SgeS

Contina

CAPITULO 161 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>
Continuacin

Smbolo

Operador

Sies$
$ine$

$ilt$
$ile$

SigtS
Sb e $

Utilidad
Es sensible a las maysculas y minsculas.
Igual a...
No es sensible a las maysculas y minsculas.
Distinto de ...
No es sensible a las maysculas y minsculas.
Menor que...
No es sensible a las maysculas y minsculas.
Menor o igual que ...
No es sensible a las maysculas y minsculas.
Mayor que...
No es sensible a las maysculas y minsculas.
Mayor o igual que ...
No es sensible a las maysculas y minsculas.

i
6

Cuando hay dos alternativas se puede utilizar indistintamente el smbolo o el


operador, teniendo el mismo efecto el filtro norma [Siglas=' HTML ' 1 que el filtro norma [Siglas$eq$'HTML'1 .
Si se desea que no se tengan en cuenta las maysculas y las minsculas hay que
utilizar los operadores que anteponen la letra i,ya que permiten indicar, por
ejemplo, un mismo filtro, como norma [Siglas$ieq$'HtmL'1 , o Como
norma [Siglas$ieq$'hTMll1 , O como norma [Siglas$ieq$'htmll1 , o
con cualquier otra combinacin.
IMPORTANTE: Es preciso resaltar que los smbolos de las condiciones
menor que (4
y menor o igual que (c=) no pueden utilizarse tal
cual, ya que producen un cdigo que no cumple la condicin de buena
formacin. En estos casos se deben utilizar los operadores $ it$ y $le$.

------

----

Este sistema tiene muchas posibilidades, entre las que se encuentran:


o

El filtro norma [Versin> 2 1 selecciona la norma que tiene una versin


con un valor mayor que 2 (dos), tal como se puede comprobar con los archivos [Link] y [Link] (ver la Figura 6.20).

Esta n o n m Iricluyr una " V e r 5 1 o r i m n valor mayor que "2"


HTML 4.01 HyperText Ma~kupLanguage 24-Diciembre-1999

A
o

El filtro norma [@id&lt$*' 3 ' 1 selecciona la norma que tiene un identificador con un valor menor que 3 (tres), tal como se puede comprobar con los
archivos [Link] y [Link] (ver la Figura 6.21).

Figura 6.20.
Resultado de
abrir
[Link]
con IE5.

XML. Iniciacin y referencia

N o r m a s Web

Figura 6.21.
Resultado de

Est.9 ricrma Incluye un Jtrlbutii "lb' ccri val@-menor que "7".


XML 1.0 Extensible Markup Langua~e10-Febrero-1998

abrir

Esta m m incluye un 3 t r l b j t o "ldl ,m u a l v nwm que "3"


HTML 4.01 HypcrTextMarkup Language 24-Dicicrnbre-1999

[Link]
con IE5.
e

El filtro norma [Versin>= 1 1 selecciona las normas que tienen una


versin con un valor mayor o igual que 1 (uno), tal como se puede comprobar con los archivos [Link] y [Link] (ver la Figu-

N o r m a s Web
Esta norma Incluye WJ "VwslC.n" m n valor m l y o r o igual que "1"
WMI I .O Extensible Markup Language 10-Febrero-1998

Figura 6.22.
Resultado de

Esta n o r n i l In8:luuP w a "versibn" cor, val- rnavr o q ~ 3 que


I
"1":
HTML 1.01 HyperText Mxkup Language 24-Diaembre-1999

abrir

Esta norma incl~jyeL T ~"Verslar? xi valcr m.3yir n igual que "1"


csS 2 Cascading Style Sheet 12-Mayo-1998 Sirve para HTML v XWL

[Link]
con IE5.

-.

El filtro XSL norma[Versin>='l' ] [Fecha!='12-Mayo-1998'1


selecciona las normas que tienen una versin con un valor mayor o igual que
i (uno) y una fecha distinta de la indicada, tal como se puede comprobar
con los archivos [Link] y [Link] (ver la Figura 6.23).

N o r m a s Web

Figura 6.23.
Resultado de

abrir
[Link]
con IE5.

Esta norma I n c l w e una "Verslh" mn v.3br rnoynr o Ig1~3l


qiJe "1" y 'Feha" mn valor
distinto de "12-Mayc-l WB"
XML 1.O ExtensibleMarkup Language 10-Febrero- 1998

Esta mrma l r ~ l u y iuria


r
"Verslon" w n valor mvc e ipual que "1" v "Fecha"
.ii;t~nto d e "1 2-Mgyi3-19Qa"
HTM. 4.01 HyperTextMarkup Lanwage 24-Diciembre-1999

cfxm v 4 o r

El filtro XSL norma [versin$ltSf3' 1 [Fecha$ieq$' 10-feBREro1998 ' 1 selecciona la nica norma que tienen una versin con un valor
menor que 3 (tres) y una fecha igual a la indicada, aunque no coincidan las
maysculas y las minsculas, tal como se puede comprobar con los archivos
[Link] y [Link] (ver la Figura 6.24).

CAP~TULO[6] Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

i
nc~rm.3incluye una " V e ~ i o n "c m valctr menor que "3" y "Ferha" con valor igual a
"10-f4PErn-1'395" (no se tteren en cuenta las rn?yus~xlasy rnlnusculss):
XML 1.0 Extensible Markup Language 10-Febrero- 1998
E5t.3

a
Seguro que el lector puede imaginar ms ejemplos de filtros de seleccin de
nodos con condiciones de valores, por lo que vuelvo a invitarle (con todos los gastos a su costa, claro) a que practique con sus propios ejemplos.

COMBINACIONES D E FILTROS
Los patrones de localizacin y los filtros XSL pueden mezclarse para conseguir
selecciones complejas. Por ejemplo:

Siglas [ . = ' CSS ' 1 selecciona las siglas que tengan el valor CSS.
Fecha [@orden='primero' 1 / . . /Siglas [ .= 'HTML' 1 selecciona las
siglas que tengan el valor HTML de la norma que tenga una fecha con un
atributo orden con valor igual a primero.
e //norma[Versin>=' l . O ' 1 / * [@orden!= 'primero 1 selecciona
cualquier elemento que tenga un atributo orden distinto de primero,y
adems que tenga una versin con un valor mayor o igual que uno, y tambin que sea descendiente del elemento raz.
0 //norma[@id]/Fecha[@orden] selecciona los elementos norma que
tengan un atributo id y un nodo hijo Fecha con atributo orden.
e

Algunas veces puede resultar difcil describir el filtro adecuado. Para facilitar las
descripcin de los filtros de seleccin se pueden usar los operadores lgicos que se
describen en la siguiente tabla:
Smbolo

Operador

Utilidad

&&

SandS

Operacin lgica AND, equivalente a Y o


adicin.

Il

Sor$

Operacin lgica OR, equivalente a O o


separacin.

$not$

Operacin lgica NOT, equivalente a NO o


negacin.

Este mtodo tiene diversas posibilidades, entre las que se encuentran:

Figura 6.24.
Resultado de
abrir
[Link]
con IE5.

XML. Iniciacin y referencia

El filtro norma [Versin='2' $or$Siglas='HTML ' ] ~ e l e ~ ~ i 0lan a


norma que tiene un nodo hijo versin con un valor igual a 2 (dos),
o tambin, la que tiene un nodo hijo Siglas con valor igual a HTML,
tal como se puede comprobar con los archivos [Link]
norrnas06-40:xrni (ver la Figura 6.25).
v

1
Figura 6.25.
Resultado de
abrir
[Link]
con IE5.

N o r m a s Web

Esta r,c,ms incluye una " V e ~ i o r i "mn d u r igual 3 "2" u unas "Siglas" . x n volor 1 ~ 3a 1
''lilhll''
CSS 2 Cascading S t y l e Sheet 12-Mayo-1998Sirve para HTbL y X W

re

El filtro / / * [Versin$ne$' 2 ' $and$Siglas&ieq$ ' html ' 1 selecciona


el elemento que tiene una versin con un valor d i s t i ~ t ode 2 (dos), y adems, que tambin tiene unas Siglas igual a html (sin distincin de maysculas y minsculas), tal como se puede comprobar con los archivos
[Link] y [Link] (ver la Figura 6.26).

El filtro / / * [Versin!= ' 2 ' $and$$not$Siglas='HTML11 ~eleccionala


norma que tiene una versin con un valor distinto de 2 (dos), y que adems que no tiene unas Siglas con valor igual a HTML,tal como se puede

Figura 6.26.
Resultado de
abrir
[Link]
con IE5.

comprobar con los archivos [Link] y [Link] (ver la


Figura 6.27).

Figura 6.27.
Resultado de
abrir

[Link]
con IE5.

N o r m a s Web

Esta n m s Inarluy? un.3 "Vefil,)n" -3r1valor dlst~ntGq*? " 2 ' v unas "Slplas'' cm irlor
tg~na
l ''btml" (sin tener en m e n t a 1 - i ~ r n ~ u s a d mv m l r m m I ~ 5 )
HTML 4 . 0 1 HypcrText Mnrkup Language 24-Dicieiiibre-1999

CAPITULO 161 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

FILTROS D E CONJUNTOS
A estas alturas, el lector habr realizado tantos ejercicios por su cuenta que habr
encontrado una pega importante (por lo menos), sobre todo si ha dejado de lado el
documento XML de Normas Web y ha utilizado el de Escuela de Verano, ya que
dicho documento tiene la caracterstica de que se repiten algunos de los elementos
Opcin y Turno.
Cmo?, qu no ha encontrado pegas con los elementos repetidos? Seguro
que s, a no ser que sea de los que no han hecho sus deberes. iUhmm!
Vamos a aplicar el siguiente cdigo XSL (ejemplo06-45.~~1)al documento
XML de Escuela de Verano (es~uela06~[Link]):

......
-,ual:teaplatematch~~apcioaei[Llpcin=~habitaci6n~l~z
cP>Contenido de .opciones' con la condicin de que 'Opci6nm sea igual
'a 'habita

cP>Conte;iio d= 'opciones' con la condicin de que 'Opcin'


a 'cena" :cBR >
cB><xsl:value-of />c/B></P>
- /xsl:ternplate>

sea igual

<bContenido de 'opciones' con la condicin de que 'Opci6nn sea igual


a 'Disefloa:<BR />
cB><xsl:value-of /></B>c/P>
c/xsl:temnlate>

En este cdigo se solicita informacin sobre un nodo opciones que tenga un


nodo hijo opcin con un valor igual a habitacin,cena, Introduccin y
Diseo,cuestiones que son verdaderas y deben proporcionar cuatro salidas de
datos. Pero si se visualiza este proyecto a travs de IE5, se ver la Figura 6.28, en la
que se puede observar que slo aparecen los datos de las dos consultas que coinciden con el primer elemento de las listas correspondientes a opciones.
El motivo es que los filtros XSL slo actan si el nodo sealado por el filtro es el
primer elemento del nodo marcado en el patrn de localizacin. En nuestro ejemplo funciona perfectamente con habitacin y con Introduccin,pero no da
ningn resultado con cena o con Diseo.
Este problema se puede resolver con los denominados operadores de filtros de
conjunto relacionados en la siguiente tabla:

XML. Iniciacin y referencia

Operador

Utilidad

3
:a;:
a

Figura 6.28.
Resultado de
abrir

[Link]
con IE5.

Permite seleccionar a cualquiera de los elementos de la lista.


Permite seleccionar a todos los elementos de la lista.

I
I

Escuela de Verano
Contenido de "upclones" mn la cmdicibn da au? " O ~ i i 6 n U
cea lgual a ' h j h l t m d r ; ' :
habitacin desayuno comida cena

de "oppriur~~s"
03n la c'ndlclbn

QtJe"C@clbr? sea igual a "Introdurii~ri'.


Introduccin Bases de datos Hoja de & I d o Tratamiento de textos Diseno

Coritenldu

&?

el'ln

Ahora podemos arreglar nuestras consultas para que funcionen. Es suficiente


con utilizar el siguiente cdigo XSL ([Link]), enlazado con el documento
XML escuela06-48.xm1, para poder ver la informacin de los elementos opciones
que cumplan la condicin de tener un nodo hijo Opcin con un valor igual a cena
y a Diseo (situados el los ltimos lugares):

la c ~ c i de
n

pie

'Ogczy

sea igual

para conseguir la informacin deseada, tal como se puede comprobar observando


la figura 6.29.

Escuela de Verano

Figura 6.29.
Resultado de
abrir

[Link]
con IE5.

Contenido de "opclcn~s"c m la condir~ond i que "Opcion" sea lgual a "cena".


habitscibn desaflino comida cena
Contenido de "opciones' m n la condlcm & q i ~ e"Opclbn" sea igual a "DiseCo"
Introduccan Bascs de datos Hoja de cbiculo Tratamiento de textos Disefio

CAP~ITULO
[6] Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

Por el mismo sistema, con el siguiente cdigo XSL ([Link]), enlazacon el documento XML [Link], se puede ver la informacin de los
elernentos Turno que cumplan la condicin de tener todos ellos un atributo con
nonnbre nmero:

5a

El resultado de esta consulta puede verse en la Figura 6.30.


Si el cdigo anterior se aplicase al documento XML Normas Web, con la
iiente declaracin:

obtendramos informacin alguna, ya que no todos los elementos Fecha conien un atributo orden.
De los dos operadores comentados en este apartado, el que ms utilidad prctiene es $any$,ya que resuelve el problema de la bsqueda en listas de elentos con el mismo nombre.

)NFLICTOS Y COLISIONES
'xiste ms de una plantilla en una hoja de estilo XSL, es relativamente fcil que
mos elementos sean seleccionados por ms de un patrn de localizacin.
Para prevenir la duplicacin de la salida de informacin, el procesador XSL
mite aplicar slo una plantilla a cada elemento a travs de una seleccin applynplates. La decisin de la plantilla a aplicar se realiza chequeando todas las
itillas para ver la precisin que utiliza cada una en la seleccin, situndolas
orden de precisin y eligiendo la ms precisa.

Escuela de Verano
Figura 6.30.
Resultado de

Contenido de 'Turno" con la mndic~bnde que todos tengan un atributo "ncimero":


Julio
Contenido de 'Tummo" m n la condiiion de que todos tengm u- atributo "numero".

abrir
[Link]
con IE5.

XML.

Iniciacin y referencia

As, por ejemplo, tiene mayor preferencia una seleccin con el patrn de localizacin /normas/norma/Textoque otra con el patrn /normas/ /Texto,
que a su vez es ms precisa que //Texto,que lo es ms que / *.
NOobstante, es preferible evitar mltiples selecciones de elementos, ya que este
principio es difcil de evaluar en algunos casos.
Si es el caso de que existen varias selecciones con similares precisiones, IE5 trabaja desde la plantilia inferior (la indicada en el ltimo lugar) hacia la superior (la
indicada en primer lugar), en orden ascendente, por lo que es preferible situar las
plantillas ms especficas en lugar posterior a las ms generales.
Veamos un ejemplo.
Si creamos el siguiente documento XSL ([Link]), que se relaciona con el documento XML Escuela de Verano ([Link]), veremos
cmo se muestran todos los contenidos de las opciones dependientes de
//actividad//Opcinde forma correcta (ver la Figura 6.31), ya que las selecciones particulares se han situado despus de las particulares:

<xelctemplate 1uatch=~Opci6n[O]~>
&>Contenido del primer elemento *Ogci6nm:<BR />
cBxxs1:value-of / x / B x / P >
</xs;:template>
<xel:template m a t ~ h = ~ O p c i n I e n d O l ~
<P>Contenido del ltimo elemento *Opci6nB:cBR /s
<B>~xsl:value-of />c/B></Ps
~/xsl:template>
a - . . . .

Escuela de Verano
Ccntenido del primer elemento "actividad-O~cion"
Introduccibn
Cmtwildo de "actlvldad-C~~clOn"~
Bases de datos

Critiriido de 'actividad-Opc1~3n"
Hoja de c9lculo

Figura 6.31.
Resultado de
abrir
[Link]
con IE5.

Cuntenidn de "artlvidad-Dpcisiri":
Tratamiento de textos
Contenido di1 ultimo elemento "ectivldad-Opcirin":
Diserio

CAPITULO [6] Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>

Si el lector modifica este cdigo XSL de forma que la plantilla que empieza por
cxsl:template match=Opcin> est en ltimo lugar, podr comprobar
lo se impone esta ltima plantilla sobre las restantes, arruinndose el diseo de
oja de estilo xsL.

i
0

PARA LOS MANITAS: Esta cuestin es especialmente problemtica


cuando se importan hojas de estilo dentro de hojas de estilo. IE5 no
soporta esta opcin. pero la norma definitiva de XSL proporcionar una
forma de indicar un factor de prioridad que aclare la importancia de cada plantilla
sin depender de su situacin en el cdigo.

--

--

- ---

- .

--

RESUMEN
Ya tenemos suficiente para trabajar con proyectos XML-XSL combinados con
HTML y CSS, aunque en el siguiente captulo veremos otras posibilidades ms
avanzadas del XSL.
Debe quedar clara la completa compatibilidad que existe entre las tecnologas
ms comunes en el diseo web, permitiendo el aprovechamiento de las ventajas de
cada una de ellas, segn sea el caso de la pgina web o segn sean las costumbres
y conocimientos del diseador.
No deben quedar dudas en que el desarrollo de un buen proyecto XML precisa tanto del conocimiento de las posibilidades de los documentos XML, como del
dominio de las capacidades de las hojas de estilo XSL.
El correcto tratamiento de los patrones de localizacin, incluyendo los filtros y
operadores, es fundamental para el diseo de los documentos XSL, ya que son la

J
N o r m a s Wrb

Figura 6.32.
Resultado de

abrir
[Link]
con IE5.

XML. Iniciacin y referencia

base de las plantillas que controlan las reglas de transformacin del rbol origen en
el rbol resultante.

IE5, ya que, mientras no se desarrollen todas las normas implicadas, no


se pueden disear aplicaciones con naturaleza universal.
Bien, es probable que los ejemplos vistos en este captulo, dado su carcter
didctico, no proporcionen la sensacin de que XSL es una magnfica herramienta
para conseguir pginas web basadas en documentos XML, por lo que creo adecuado terminar con un ejemplo ms general que muestre toda la potencia de esta
tecnologa, por lo menos la potencia de la parte vista en este captulo, ya que todava no se han visto todas las posibilidades del XSL.
Es suficiente con estudiar con la debida atencin los archivos [Link]
y [Link] para ver cmo se puede conseguir la pgina web de la Figura 6.32.
Y visto lo visto, slo queda pasar al Captulo 7, donde terminaremos de estudiar
el XSL.

Opciones avanzadas
del Lenguaje de Hoja
de Estilo Extensible

NA vez vistos los aspectos ms importantes y bsicos del XSL, toca en este
captulo estudiar las opciones avanzadas del Lenguaje de Hoja de Estilo
extensible (XSL), lo que nos permitir trabajar con documentos XML gestionando sus datos de forma casi parecida a como se trata la informacin con los
lenguajes de automatizacin.
Antes de empezar vamos a ver una aplicacin que nos permite simplificar
algunas de las tareas necesarias con XSL.
En todo el captulo anterior se han utilizado localizadores de ruta con filtros de
seleccin realizados a mano, segn ciertas reglas, normalmente basadas en las
especificaciones XPath y XQL. Seguramente que el lector habr pasado ms de una
vez por la situacin de que los filtros introducidos en el cdigo XSL no daban los
resultados esperados, precisando de las rectificaciones adecuadas para cada caso,
rectificaciones que en ms de una ocasin habrn exigido mucho tiempo.
Este mtodo tiene la desventaja de que no se puede asegurar un comportamiento correcto del filtro mientras que no se ejecuta el correspondiente proyecto
XML-XSL, pero es el sistema ideal para aprender el proceso, ya que exige del
diseador un esfuerzo de imaginacin y anlisis anterior a la ejecucin, aprovechando el mtodo de ((pruebay error para asentar sus conocimientos.
Como imagino que el lector ya habr realizado tantos ejercicios que dominar
a fondo el control de la seleccin de elementos y atributos de los documentos XML,
para que ya no pierda ms tiempo con este tema le recomiendo que acceda a la
direccin web:
[Link] builder

XML. Iniciacin y referencia

donde puede recoger la aplicacin XSL Visual Pattern Builder (constructor visual de
patrones XSL), que permite realizar pruebas de patrones de localizacin de nodos
de un determinado documento XML de forma rpida y visual. sin necesidad de
crear el cdigo XSL.
Esta buena aplicacin es muy fcil de utilizar, por lo que no precisa de explicacin detallada, tal como se puede observar en la Figura 7.1.
Ya est instalado XSL Visual Pattern Builder?
Bien, si es as, dejo al lector diez minutos para que practique con algunos
ejemplos del captulo anterior.
Diez minutos ms tarde...
A que merece la pena? Una vez hecha mi buena accin de este captulo,
vamos a pasar a estudiar las opciones avanzadas del XSL.

Hasta ahora, cada vez que se deseaba mostrar el contenido de un determinado


pero este elemento no es adenodo se ha utilizado la opcin xsl :valuc'-of,
cuado en todos los casos, por lo que vamos a estudiar otro elemento XSL de similares caractersticas, pero con algunas diferencias.
Imaginemos el caso de que tenemos un documento XML que contiene etiquetas similares a las utilizadas en HTML, como <B>, c I > ,<P>, etc. En esta situacin,
cada etiqueta es tratada como un elemento XML ms si se trabaja con
xsl :value-of,pero si en su lugar se utiliza xsl : copy (copiar), se consigue
copiar el contenido del nodo actual en el sistema de salida tal como es.
Dicho de otro modo, el elemento xsi : copy permite copiar todo el contenido
de un nodo de rbol de origen en el rbol resultante.
As por ejemplo, si se tiene un documento XML (text007~[Link]) como el
siguiente:

Figura 7.1.
La aplicacin
XSL Visual
Pattern Builder
en accin.

CAP~TULO[ 7 ]

Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

enlazado con el sencillo cdigo XSL (ejemplo07~[Link])que sigue a continuacin:

se obtiene un resultado como el que se muestra en la Figura 7.2, donde se puede apreciar que se han respetado las etiquetas HTML incluidas dentro del documento XML.
que,
Esto no sera posible hacerlo con el anterior elemento x s l :value-of,
aplicado al mismo documento XML ([Link] y [Link]), dara el
resultado que se muestra en la Figura 7.3.

PARA LOS MANITAS: Sera interesante que el lector probase a modificar


el ejemplo anterior que utiliza xsl :value-of para obtener una solucin igual a la que se consigue con el ejemplo que usa xsl :copy .
--

Figura 7.2.
Resultado de
visualizar
texto07-01 .xml
con IE5.

Figura 7.3.
Resultado de
visualizar
[Link]
con IE5.

XML. Iniciacin y referencia

Otra diferencia entre xsi :copy y xsi :value-ofes que el primer elemento
soporta un subelemento xsi:apply-templates,mientras que el segundo no lo
hace.

ip
4

El elemento XSL xsl :for-each (por cada) se utiliza para englobar datos pertenecientes a elementos con el mismo nombre.
Mediante su utilizacin es posible controlar la salida de datos sin necesidad de
recurrir a series de elementos xsl :apply-templates.A travs del atributo
s e i e ~ t .=.~. ~ se define el nodo (o nodos) de aplicacin.
Su modelo de actuacin es el siguiente:

Para ver unos ejemplos de este elemento vamos a recuperar el documento XML
que contiene parte del catlogo de libros de la Editorial McCraw-Hill, que ya
vimos anteriormente, y para trabajar mejor vamos a aadirle los datos de otro libro.
Su cdigo queda como el siguiente:

CAP~TULO[ 7 ]

Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

A este documento le corresponde el nombre de archivo [Link],


que debe ser enlazado con el documento XSL ejemplo07-06.~~1,que contiene el
siguiente cdigo:

XML. Iniciacin y referencia

Este sencillo proyecto XML-XSL proporciona una salida de datos como la que se
puede ver en la Figura 7.4, siendo de destacar en el cdigo XSL la inexistencia de
las plantillas controladas por xsl : apply-templates y xsl : template,tpicas
de los ejemplos XSL del captulo anterior.

- -

PARA LOS MANITAS: Sera interesante tqueel lector


a modificar
el ejemplo anterior para obtener una solucin igual utilizando conjuntos
de plantillas definidas con xsi :appiy-ternplatesy x s l : template.

----

Esta nueva posibilidad de definir ciclos de localizaciones es ideal para mostrar listados de datos contenidos en elementos marcados con la misma etiqueta.
Otro ejemplo prctico de utilizacin de xsl:for-each podra ser el que se
muestra en el cdigo XSL que viene a continuacin, correspondiente al proyecto
formado por [Link] y [Link].

Figura 7.4.
Resultado de
visualizar
[Link]
con IE5.

CAPiTULO 171 Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

'

IL - ' :
Inf
E
<xsl:for-each e e l e ~ t = ~ / / l i b r o ~ >
Ttulo: ~xal:value-of ~ e l e c t = ~ T i t u l o/><BR/>
"
Editorial: <xsl:value-of eelect="EditorialW /><BR/>
ISBI: <xalrvalue-of eelect="ISBNn /><BR/>
Nmero de pdginae: <xilivalue-of eelect="Pdqinaen /><BR/>
Precio: <xel:value-of eelect="Precio[@moneda='Pta'l" / > peaetae<BR/>
Precio: <xel:value-of eelect="Precio[@.moneda=lEuro~ln / > euros<BR/>
<BR/>
</xal:for-ea&>

Este ltimo proyecto, muy fcil de confeccionar mediante ciclos controlados por

xsl : for-each,proporciona una salida de datos como la que se puede ver en la


Figura 7.5.
Para simplificar el cdigo no se han utilizado marcas HTML de formato, pero lo
lgico sera complementar el documento XSL de forma que se distinguiesen los
nombres de los datos de sus contenidos con diferentes colores, tamaos de letras,
negritas..., o en tablas, dejando esta tarea en manos del lector.

Hasta ahora los datos expuestos en un proyecto XML-XSL se han mostrado en el


mismo orden en el que se encuentran dentro del documento XML, pero existe la
posibilidad de marcar una ordenacin de datos de acuerdo con algn criterio Igi-

Figura 7.5.
Resultado de
visualizar
[Link]
con IE5.

XML. Iniciacin y referencia

co, como el orden alfabtico, en caso de que se trate de textos, o la regla ((de
mayor a menor, si se manejan cantidades.
Esto se consigue utilizando el atributo order-by (ordenar por) del elemento
xsl :apply-templateso de xsl:for-each,que permite definir el orden en
que se desea que se visualicen los datos, anteponiendo el signo ms (+) o el
signo menos (-) a los patrones de seleccin de los elementos que marcan el ordenamiento, que pueden ser distintos de los nodos seleccionados para el documento
de salida. El signo ms indica siempre un orden ascendiente y el signo
menos seala un orden descendiente.

q$?

PARA LOS MANITAS: En realidad, el elemento xsl:apply-templates siempre lleva el atributo order-by, aunque no se indique. Su
valor por defecto es: order-by="+. . . " , que quiere decir que se ordenen los nodos de arriba abajo o del primero al ltimo, o sea, en el orden en
el que figuran en el documento XML.
Otra utilizacin bsica de order-by
- sera: order-by="-. . . " , Que ~ e r m i te mostrar los datos de abajo a arriba o del ltimo al primeron, esto es, en el
orden contrario en el que figuran en el documento XML.
m

----

El cdigo del primer ejemplo que vamos a ver empieza por:

A este documento le corresponde el nombre de archivo [Link],


que debe ser enlazado con el documento XSL ejemplo07~[Link] el siguiente
cdigo:

CAP/TULO [ 7 ]

Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

En este cdigo XSL se puede ver fcilmente cmo se puede ordenar la salida de
datos, que debe coincidir con la Figura 7.6.
En el primer apartado se ha utilizado el mismo elemento de salida como criterio
de ordenacin, mientras que en los restantes se han utilizado criterios de ordenacin
diferentes de los datos, tanto de tipo numrico como de tipo alfabtico, habindose
especificado junto a cada dato (entre parntesis) el elemento utilizado para la
ordenacin, aunque muy bien podra no haberse indicado.
El atributo order-by soporta varios criterios consecutivos, siempre que se
separen por signos de punto y coma (;), y as, por ejemplo, si nuestro documento

McGrawHill
Microsolt Prcss
Hicrosoft Prcss
Osbomc

C * + (8448123638)
HTML avmianzado 18d4nm97081
Sistcnias infonndticosmdtniauario y cnrcd (8448105543)
XML in Action (Ii?505631

Sistemas inlari~ticosntu)tiusuarioy en red (192)


HTML avanzado (LEO)
WML in Acbon (3541
C++ m 7 1

Figura 7.6.
Resultado de
visualizar
[Link]
con IE5.

XML. Iniciacin y referencia

XML separa los datos del autor mediante <NOMBRE>, <APELLIDO-12 y


<APELLIDO-2>,se podra indicar una ordenacin como:

En nuestro ejemplo podemos aplicar varios criterios encadenados para ordenar


datos repetidos, como es el caso del apartado que muestra los ((Ttulos de libros
ordenados por orden alfabtico de sus editoriales:)),donde existen dos editoriales
con el mismo nombre (Microsoft Press). En este caso sera ms lgico que los
ttulos apareciesen ordenados alfabticamente, evitando que aparezca XML in
Actionn delante de ((HTML avanzado)).
Con el siguiente cdigo XSL ([Link]), enlazado al correspondiente
documento XML (catalogoO7~ll
.xml), se solucionara la ordenacin de los ttulos
que coincidiesen en las editoriales:

El resultado de la modificacin puede verse en la Figura 7.7, donde el ttulo


HTML avanzado)) aparece delante de XML in action)).
Tambin los atributos de los elementos XML pueden intervenir en la ordenacin, como seria el caso del precio de nuestros libros.
Un sencillo cdigo XSL con nombre [Link] (enlazado con el documento XML catalogo07~[Link])como el siguiente:

CAP~TULO171 Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

[Link]
Hicrosoft Pmss
Micmsoft Press
Osborne

Figura 7.7.
SIsrernds mlwmdocos mulinnuwla y en red (107)
HT(Mi avanzado do
J)
XML m Arnon 1.54,
C + + ( *'

eJh

---

?
-

--

Resultado de
visualizar
catalogo07-11 .xml
con IE5.

proporciona una salida de informacin como la que se puede ver en la Figura 7.8,
en la que se pueden distinguir con claridad los datos expresados en pesetas y en
euros.
Puede que el lector se extrae un poco de la definicin de los precios en pesetas con ceros a la izquierda. La cuestin es que existe un problema de comparacin
de cifras con distinto nmero de dgitos, dando resultados errneos los precios

Sistemec, InFmntims multiusurto y en red


C * + - Ci3995 peseta5
HiML evanzado 04pesetas
XML ln Adlon - t l Don p s e t 3 ~

- 02455 pesetls

X M L In Actlon - fi6 L 1 eums.


HTML avanzado - 29.45 euros.

C+ r- - 24.01 eums
SIstems :nfomdtims rnultiusuarlo y en red - 1 4 , R l eiaos

Figura 7.8.
Resultado de
visualizar
[Link]
con IE5.

XML. Iniciacin y referencia

*PY

declarados con cuatro cifras (2465, 3995 y 4900) cuando se mezclan con los de
cinco cifras (11000).
,Aunque existe un mtodo ms elegante para solucionar este problema, utilizando Esquemas XML, por ahora debemos tener claro que las cifras deben compararse con el mismo numero de dgitos.
Por el mismo motivo, cuando se ordenan los precios en euros no existen problemas, ya que todos ellos estn definidos con cuatro dgitos.
-

-~
--

---

--

IMPORTANTE: El atributo XSL order-by es una opcin de iE5 que


prximamente ser actualizada por el elemento xsi : sort,definido en
las ltimas versiones de la especificacin XSL.

El elemento XSL xsl :if (si ...) se utiliza para controlar salidas de datos condicionadas por el requisito de localizacin indicado en la propia expresin con el conocido atributo match=" . . . " . Se utiliza con el siguiente modelo:

Su uso es tan fcil que se entiende perfectamente observando algn ejemplo.


En el proyecto XML-XSL formado por [Link] y ejemplo07-16.~~1,
se
puede ver cmo, mediante la utilizacin de varias sentencias xsi : if, se puede
seleccionar la informacin de salida para que se adece a nuestras necesidades, que
en este caso se refieren a anotaciones adjuntas a los ttulos de los libros.
El cdigo XSL es el siguiente:

CAPITULO

[7] Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

c/xsl:if >
<BR/>
</xsl:for-each>
I - 1 ~ ~ i 1 0 s7 - lih
c m riqtas sobre
p&ginas:</P>
<xsl:for-each select="//libro">
<xel:value-of select="Titulo" / >
<xel:if match=n//libro[PAginae$lt$'200*lN~
i tamafo pequeflo)
</xel:if >
<xsl:if match=*//librotPAginas$gt$+2OO'$and$Pdginae$ltS'30O'ln~
(t-o
medio)
</xsi:if>
<xsl:if match=w//libro[PAginae$gt$'300']n~
(tamao grande)
</xel:if~

&R/>

</xel:for-each,
</?ODY>

' :Hl't:L
/xs1 :trmuLdte>
</xs~
: s t > [Link];'I. * > t m

En el cdigo expuesto se pueden ver dos apartados, ambos diseados para


iostrar listas de los ttulos.
En el primero se han insertado dos sentencias xsl :i f que permiten incluir
notaciones especiales para el libro que tiene un lSBN n o espaol
iatch="//libro[ISBN.: ' 0735605629' 1 ") y para los libros con un precio
ienor de 3.000 pesetas (match="//libro[~recio$lt$'03000'1").
En el segundo apartado se han creado tres expresiones xsl:if que permiten
asificar los libros por su nmero de pginas en ((tamao pequeon o menos de
30 (match="//libro[Pginas$lt$'200 ' 1 "), ((tamao medio o entre
00 y 300 pginas (match="//libro[PginaeSgt $ ' 200 ' $and$
ginas$it$~300']") y tamao grande* cuando son ms de 300 pginas
~atch="//libro[~gina~$gt$'300']'').
El resultado de este sencillo proyecto puede verse en la Figura 7.9.

C++

X M L In AdlDn (este libro no estb en espanol)


Cisternas lnformatiios rrultlffiuario y en red (oferta, precio 02465 p e s e t x )
KTML avanzado

Figura 7.9.
\k Actlon (tsmako grande)
Sistemm lnForm3tlcos multi~~suilrlo
y en red (tarnario pequeno)
MM avnnzado (tarnano medio)
XML

Resultado de
visualizar

[Link]
con IE5.

XML. Iniciacin y referencia

C'

El elemento xsi:if no slo puede utilizarse como seledor condicional para


mostrar notas adjuntas, ya que tambin es un mtodo idneo para ayudar en la
seleccin de datos.
Por ejemplo, si en vez de incluir la sentencia xsi:if despues del elemento
xsl :value-of principal, se inserta delante, se puede seleccionar la informacin
de salida de acuerdo con la condicin marcada.
Vamos a ver una aplicacin de lo comentado en el prrafo anterior, por lo que
debemos crear otro proyecto XML-XSL con los archivos catalogo07~[Link]
ejemplo07-18.~~1,siendo el cdigo del ltimo el siguiente:

Con el diseo anterior se consigue que slo se muestren los contenidos de los
que pasen el test de la sentencia xsi :if,o sea, que no tenelementos <~tulo>
gan un ISBN no espaol (match="//libro[$not$ISBN=' 0 7 3 5 6 0 5 6 2 9 ' ] ").
En la Figura 7.10 puede verse el ltimo proyecto XML-XSL realizado.
Para terminar esta seccin quiero mostrar otra utilidad de xsl : i f en la que se
utiliza para mejorar el aspecto visual de una lista de datos.

Figura 7.10.
Resultado de
visualizar
catalog007~[Link]
con IE5.

I =++

Sistemas InFomdticos multiusuario y en red


HTML avarizodo

CAPITULO [7]

Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible cXSL-2>

Cuando se precisa visualizar un listado de datos separados por algn elemento


do separacin, como la coma, el apunto y coma)), el guin..., o la etiqueta
TML <BR/;.,se suele disear un cdigo como:

'3

indose el caso de que despus del ltimo dato de la lista, tambin se muestra el
gno de la coma*, lo que no es muy correcto.
Esta situacin se puede arreglar con la ayuda de una sentencia xsi: i f que
mtrole al ltimo elemento a travs de la funcin end ( ) , tal como se puede ver en
siguiente cdigo XSL:

incluso podra mejorarse ms aadiendo otra lnea xs:if que dejase claro
~ es
l el ltimo elemento. Algo como:
--

-----S-

----

El resultado de este ltimo diseo es el que puede verse en la figura 7.1 1, perteeciente al proyecto XML-XSL formado por [Link] y ejern1007-20.~~1.

J
CATLOGO

DE LIBROS

Listado d~ titulos do l i b m
"C++" , "XML in Action" , "Sistemas lnfomaticos multiusumlo y en r e d , y por ultlmo,
"HTML avanza&'

al&

_I

Figura 7.1 1.
Resultado de
visualizar
[Link]
con IE5.

XML. Iniciacin y referencia

# $ Existen tres elementos XSL que pueden utilizarse conjuntamente para disear una
ramificacin condicional con restricciones variadas. Se denominan xsl:choose
(elegir), xsl:when (cuando) y xsl:otherwise (de otra manera) y juntas tienen
ms posibilidades que el elemento xsi : if.
El modelo que se utiliza para estos elementos es el siguiente:

Este diseo nos indica en primer lugar, a travs de xsl:choose,que se va a


relacionar una lista de salidas condicionadas. Despus se describen las diferentes
salidas (xs1 :when . . .) relacionadas con la localizacin del patrn adecuado
(match=". . "), que se activarn si la condicin del patrn es verdadera. Si no se
cumple ninguna de las condiciones, se activa la salida alternativa expresada mediante xsl : otherwise.

IMPORTANTE: Cada elemento XML del nodo actual va pasando por


las expresiones xsi :when por orden de primera a ltima. Cuando
cumple alguna sentencia, la activa y sale del proceso sin evaluar las restantes. Si no cumple ninguna, se activa la expresin xsl : otherwise.
Teniendo en cuenta esto, si se intuye quealgn elemento XML puede cumplir
varias de las condiciones xsl:when, se deben situar en orden de mayor a menor
importancia.

-- -

Para ver su funcionamiento prctico vamos a crear un proyecto XML-XSL


basado en los archivos catalogo07-21 .xml y ejempl007~[Link],siendo el cdigo
del ltimo el que se indica a continuacin:

<xsl:template match="/">
'HE.:41)..-.TlTLE>Cat61ogo
de librosc/TITLE></HEAD>
cBODY>
<link r~l="stylecli~~t'
tpe='text/cssm hrei-'[Link]"/>
~ - H ~ > c A T . ; DE
.~
LTF,[Link]/Hl.
~
x:P:-1 istado de titu!,-#: de libroi;:c/P>
.-xsi:for-each selrrt="iilibro'r

WITULO 171 Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2,

-- .
.
;uc1 :vaJue-of select='~itulo~ i >
cxel :chooae>
cxe1:when rnatch=".[Pdginae$gt$'300'1">
(libro de tamao
gr~de)<BR/>c/xel:when>
txe1:when match=".IPdginas$gt$'ZOO']">
(libro de tamaflo
mediano).rBR/>c/xel:when>
txe1:when match=".IPdginae$gt$'1008]",
(libro de tamafio
pequeRo)cBR/>c/xal:when>
txa1:otherwieew (demasiado pequeo para eer un
libro)<BR/>c/xal:otherwise>
c/xel:chooee>

imos en otro apartado, pero es ms


de modificacin.
cada una de las tres expresiones
el libro para tener una determinada
ondiciones sea verdadera, se activa
no tiene efecto, ya que siempre se
del ltimo proyecto.
ue se han situado las condiciones

xsl :when,los libros con ms de 300 pginas activan la primera salida


y salen del proceso. Los que tienen entre 200 y 300 pginas pasan la
primera, activan la segunda y abandonan el proceso. Por el mismo motivo, los
libros con un nmero de pginas entre 100 y 200 pasan las dos primeras, activan
la tercera salida y dejan el proceso.
Si las expresiones xsl :when se hubiesen insertado en el orden contrario, o
sea, situando primero la condicin para libros con ms de 100 pginas, todos los
libros cumpliran esta condicin y saldran del proceso con la anotacin falsa de
libro ~eaueon.

C+ + (libro de tarnao grande)


XML in Action (libro de tamafio mande)
Sistemas Inforrnatccos multiusuerio y en red (libro de tarnario pequeno)
HTML avanzado (1 ibrn de tamario medtano)
l

Figura 7.12.
Resultado de
visualizar
catalogo07-21 .xml
con IE5.

XML. Iniciacin y referencia

Estos elementos XSL no slo permiten activar notas aclaratorias, ya que, al igual
que pasa con xsi : if,tambin sirven para seleccionar la informacin de salida de
acuerdo con ciertas condiciones.
En el siguiente proyecto, formado por los archivos catalogoO7-23,xml y ejemplo07-24.~~1,muestra cmo se puede seleccionar la informacin de salida, controlando su formato de presentacin.
El cdigo XSL es el siguiente:

Cada apartado del documento XSL deja claro que se desea conseguir una
relacin de datos relacionados con los libros ( < x s l : f o r - e a c h
s e l e c t = " / / l i b r o m > ) . Tambin se indica que se desea seleccionar slo a los
autores que aparecen en primer lugar (match=". [ a u t o r e s [ O ] 1"), mostrando
el nombre del autor y el ttulo del libro correspondiente precedidos por un nmero
indicativo correspondiente al orden en la lista ( l . - < x s i : v a i u e - o f
select="autores/Autorll/>(<xsl:value-ofs e l e c t = " ~ t u l o " / > ) ) .
En el segundo caso, para que slo aparezcan los autores de libros espaoles, se
incluye una expresin xsl :when que hace salir del proceso (sin activar ninguna
salida) el dato sobre el autor que no cumple correctamente con el ISBN adecuado
(match=".[1~~~$lt$84481000001").

CAP~TULO[ 7 ]

Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

Listado de los primeros autores de libros:


1 - bis Joyene5 (C+ +)
1.- W i l l l m l. Psrdl ( X M L Ir1 Actlon)
1 - Purlficscibn Cprrato (Skternas i n b n n ~ t 1 c ~
n su l t i i ~ s i ~ ~yr en
i o red)
1 tnnrris (HTM aaozado)

.-

Listado de los primeros autores de libros espaoles:


l . - Luis l o y a n ~ s(C++)
1.- Furificacij5n Cerrato (Sistemas infunn~ticosmuitiuwa-io y en red)
1 - Mrirris i,HTML avanzado)
7-

Una de las cuestiones que se pueden observar es que se han suprimido las
expresiones xs 1 :o t herwi se, ya que, en este caso, todos los elementos afectados
entran en las condiciones marcadas en las sentencias xsl :when.
En la Figura 7.13 se puede observar la solucin al ultimo proyecto.
Despus de ver los anteriores ejemplos puede parecer que el elemento
x s l : o t h e r w i s e no tiene mucho valor, pero no es as, pues simplemente ha
coincidido que no se ha necesitado.
Vamos a ver un proyecto XML-XSL, formado por [Link] y ejemplo07-26.~~1,que aprovecha especialmente las posibilidades del elemento
xs 1:otheroii se., en el primer apartado para dar salida a los elementos que no
interesa mostrar y en el segundo apartado para lo contrario. El cdigo XSL es:

Figura 7.13.
Resultado de
visualizar
[Link]
con IE5.

XML Iniciacin y referencia

. .
+xal:when m a t c h = a . f ~ l t o r i a l = ~ M c G r a ~ i l l ~ l n ~ ~ / x e l r w h e n ~
+xsl:otherwise~cxel:value-oF e e l e ~ t = ~ T i t u i/ o
> ~ (Editorialr
/>)<BR/>c/xal:otherprire+
rxs1:value-of aele~t=~Editoriai"
r/xel:chwse>

--

: v
r
ODY
,'tl,' /
1 : ' L lT171 j V <
.
1: I - , I , - h c ~1

</x

J.

En este ejemplo, salvo la importancia dada al elemento xsl :otherwise,no


hay ninguna cuestin nueva digna de mencin, ya que el empleo del atributo
order-by para ordenar la salida de los ttulos no es ninguna novedad.
En la Figura 7.14 se puede ver la salida de informacin del ltimo proyecto.

Listado de ttulos:
Libros de la e~jitorislMcGraw-HilI

Sistemas ~ r i f o m A t i m srnultiusue*io v en red

Figura 7.14.
Resultado de
visualizar
[Link]
con 1E5.

C++ (Editorial: Osborne)


HTML avanzado (Editoril: Mlcmsoft Press)
XML In Action (Editorial: MICTUSOR
Pres5)

El elemento XSL denominado xsi :node-name (nombre de nodo) inserta el nombre de la etiqueta del elemento XML actual.
En ciertos casos, la utilizacin de xsl : node-name ahorra un esfuerzo considerable al diseador, ya que si se trata de mostrar la etiqueta correspondiente a
unos determinados elementos, xsl :node-name evita tener que incluir el nombre
de las etiquetas en cada caso, anulando as toda posibilidad de error.
IMPORTANTE: La utilizacin de xsl :node-name slo es t i l si los
nombres de etiquetas se definen con nombres completos escritos correctamente.
nicamente, si se utiliza para estudiar o depurar un documento XML, se
pueden utilizar con etiquetas con nombres abreviados o mal escritos ortogrficamente (sin acentos, por ejemplo), costumbres muy usuales entre los diseadores
para ahorrar espacio y para evitar problemas de compatibilidad.

- - - ---

--

- --

- - -.

CAP~TULO[71

Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

El primer ejemplo que vamos a ver tiene relacin con la segunda observacin de
la nota IMPORTANTE anterior, ya que nos proporciona un listado de todos los
nombres de etiquetas del documento X M L de nuestro catlogo, siendo til para
cualquier persona que se enfrente con un documento XML desconocido.
El proyecto queda definido con los archivos [Link] y [Link], siendo el cdigo del ltimo el que se muestra seguidamente:

Como se puede observar, el cdigo se ha simplificado al mximo, ya que se


supone que es slo una herramienta de anlisis, no teniendo especial importancia su
aspecto visual.
La aplicacin de este proyecto proporciona una informacin como la que se
puede ver en la Figura 7.15, donde se observa que la mayora de los datos proporcionan los nombres de las etiquetas, pero algunas lneas dan datos en blanco.
i Por qu?

Nonicrr dr nodc [Link] irni


ljornhrt de nodolchqwte yml-sipiesheet
Nombrr de nodolehqmta catalogo
Nombrt de ncdolctiqucta hbro
Nombre d t nodoltbqucta Tihilo
Nombre de nodolchqiieta
Nombrc de nodolchqucta Editorial
Nombrc dc nodotrtiqueta
Nombre de nodoletiqucta autures
Nombrc de nodolraqueta Autor
Nombre & nodnlehqwta
Hombre dc nadolchqueta Autor
Nombre de nodolcnqueta
Nombrt de nodolcnqiieta ICBN
Nombre de nodolchqufta
Nombre de nodoltbqurta P@as
Nombrt de noddchqucta
Nombre de noddthqueta Precio
Nombre de nodolequrta
Nombre d s nodokhqueta Pncio
Nombrc de nodolehqueta
Nombre de nodolrtiqucta hbro
Nombre de noddehqieta Xhdo
Nombrc de noddthqucta
Nombre de nodolehque~Eriitonai
Nombre de n o d o h q u e t a

--

L do

--

-7,

-1 Mi ff

Figura 7.15.
Resultado de
visualizar
[Link]
con IE5.

XML. Iniciacin y referencia

La respuesta es que por cada elemento con contenido de texto se crean dos
nodos: uno con el nombre de la etiqueta y otro con su contenido, mientras que los
elementos vacos o con otro contenido slo tienen un nodo. Por este motivo,
cuando el procesador XSL encuentra un elemento con contenido de texto muestra
en primer lugar el nombre del nodo de la etiqueta y despus, consecuente con el
otro nodo que soporta el contenido, no muestra nada.
-

PARA LOS MAN~TAS:La aparicin de nombrecde nodos en blanco no

debe tomarse como informacin superflua, ya que nos est indicando


que el nodo anterior es un elemento que contiene algn texto o algn
comentario.
Es suficiente que el lector elimine el contenido de cualquier elemento del
documento X M L para comprobar que el procesador XSL muestra slo un nodo con
el nombre de su etiaueta.
Adems de esta utilizacin especial de xsl : node-name,vamos a ver otro
ejemplo que muestre una aplicacin ms prctica de este elemento XSL.
El prximo proyecto se basa en los archivos [Link] y ejemplo07-30.~~1,
teniendo este ltimo el siguiente cdigo:

CAP~TULO
171 Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

Se puede observar que el elemento xsl :node-nameslo aparece una vez en


el cdigo anterior, aunque es casi omnipresente en la salida de datos (ver la Figura 7.16). El resto de las caractersticas del cdigo XSL, han sido ya estudiadas, sien- 0
')
do de destacar el uso principal que se hace del elemento xsl : otherwise,as 1
como la insercin de una lnea de separacin (<BR/>===.. ===) adjunta a la 6
expresin xsl :when que sirve paralocalizar al ltimo elemento de cada libro
(match="precio [@moneda= ~ u r o l
1I r ) .

CREACION D E N O D O S E N L A SALIDA
Hasta ahora hemos visto cmo modificar con XSL el rbol origen de nodos XML
para conseguir un rbol resultante adecuado a nuestros intereses, pero XSL tambin
nos permite crear nuevos nodos inexistentes en el documento original.
Los elementos XSL capaces de crear nodos son: xsi :pi,xsi :comment,

xsl :element,xs1 :attribute,xs1 :cdatayxs1:entity-ref.

El elemento xsl :pi sirve para crear un nodo XML de instruccin de procesamiento (~rocessing~nstruction
node),indicando el nombre especfico de la
instruccin de procesamiento como el valor del atributo nanie y el valor de la PI
como su contenido.
Su modelo es el siguiente:

Listado de datos:

Pnn0i5

Figura 7.16.
Resultado de

192

02365 m t ~
14.81 ~
~
o
i
------.-.---.=-==-...--.-Ti:vlr. HTWL awnmrln
Er:,twioi M i o m o f t Preis
Pri

11-

Pr-i

: ,8

bitTeC.

icw R

9,-. -

visualizar
[Link]

'7.' 715
U A T ~ ~ ~ ~ R

[Link]

con IE5.

XML. Iniciacin y referencia

Si, por ejemplo, deseamos crear una instruccin de procesamiento como <?-m1

versin="i.O r l ? > , debemos incluir una Inea como la siguiente:

El elemento xsl : comment sirve para crear un nodo XML de comentario (comment node),indicando el valor del comentario como su contenido.
Su modelo es el siguiente:

De esta forma, y si se quisiera crear una lnea de comentario como


~ s t oe s un comentario -->, habra que incluir una lnea como la
siguiente:

..

,, I - -

-,-.h. : o t , ! r ~ i & r ~ f .t . : ! ' .~


::Y

un conlw r,-..? i r ~ - .:

,;

:g-,-,-r-r~,:mn~.

El elemento xsl:element sirve para crear un nodo XML de elemento (


ment node), indicando el nombre del elemento como el valor del atributo
y el valor del elemento como su contenido.
Su modelo es el siguiente:

As, crear un elemento XML como por ejemplo <PROFESOR>Ramn


ivlontero</PROFESOR>,es tan fcil como insertar en el documento XSL una
Inea como la siguiente:

El elemento xsl :at tribute sirve para crear un nodo XML de atributo (attribute node),indicando el nombre del atributo como el valor de su atributo name
y el valor del atributo como su contenido.
Su modelo es el siguiente:

-.

- . . . ., - - ,
Imaginemos que en un documento XML tenemos un elemento <ENLACE>
yo contenido sea la direccin URL de una determinada pgina web, algo como
N L A I - E > h t t p : /,'[Link]/ENLACE>. Con esta base, para crear un
~erenlaceen el documento XSL, habra que incluir una plantilla XSL similar a la
uiente:
A

>

XML. Iniciacin y referencia

.--

.
i

v
-

Pgina web de [Link]


</A>
..,:.: ;1 : ,. ,- ,- .
,,>7

......

El resultado sera la expresin HTML:

-<A href="[Link] web de [Link]</A>

Aprovechando el mismo proceso se puede crear un elemento HTML que permita incluir una imagen mediante la etiqueta <IMG>.
Imaginemos que en un documento XML tenemos un elemento <FIGURA>
cuyo contenido es la localizacin de una determinada imagen CIF, algo como
<FIGURA:>
iys/[Link] </FIGURA.-(la imagen [Link] situada en la
carpeta figs). Con esta base, para crear un enlace a la imagen en el documento
XSL habra que incluir una plantilla XSL como la siguiente:
?

El resultado sera el cdigo HTML:

Hay que comentar que, aunque en HTML no es necesario, es de buena educacin (educacin XML) disear con etiquetas de principio (<IMG>)y de final
(< / IMG>).

El atributo creado con xsl : attribute se puede aadir a otros atributos, y


as, si conocemos los datos concretos de la imagen, el cdigo anterior se puede
mejorar dejndolo como el siguiente:

El resultado de esta variante sera una lnea HTML como:

El elemento xsl : c d a t a sirve para crear una seccin CDATA XML (CDATASec:ion), indicando su valor como el contenido del elemento xsl :c d a t a .
Recuerde el lector que las secciones CDATA tienen la propiedad de que no son
xocesadas por el procesador XSL, por lo que pueden ser utilizadas para crear elenentos directamente en la salida, si es necesario.
Su modelo es el siguiente:

De esta manera, para crear un nodo XML como <: ! [CDATA [ E s t a es una
seccin CDATA] ] >, es suficiente con insertar en el documento XSL una lnea
:omo la siguiente:
txml:cdata>Eata ea una seccin CDATA</xaltcdataz

El elemento xs1:entity-ref sirve para crear un nodo XML de referencia de


indicando el nombre especfico como el valor de su
entidad (~ntity~eference),
atributo name y su valor el contenido de xsl :entity-ref.
Hay que recordar que una referencia de entidad es una especie de alias que
permite incluir un conjunto de datos determinado en el lugar donde se declara la
referencia de entidad afectada.
Su modelo es el siguiente:

Basndonos en el modelo, para crear un nodo XML como < ! E N T I T Y c o p y

l1o-,, slo hay que incluir en el documento XSL un cdigo como el siguiente:

Ejemplos de creacin de nodos


Despus de ver los elementos XSL que permiten crear nodos en el documento de
salida, con sus modelos y ejemplos correspondientes, es adecuado ver las posibilidades de estas entidades a travs de algunos ejemplos globales.

XML. Iniciacin y referencia

IMP0RTANTE:La gestin de nuevos nodos XML creados en el documento XSL no tiene un control fcil con IE5, ya que en muchos casos
hay que recurrir a guiones de automatizacin (JavaScript, JScript, VBScript, etc.), por lo que no se van a tratar en este libro dado su carcter de iniciacin. En la sede XML de Microsoft ([Link]
se pueden estudiar algunos ejemplos de creacin y modificacin de nodos XML.
Lo que s permite IE5 de forma automtica es crear elementos HTML y XSL
con facilidad, por lo que los ejemplos de este apartado se van a ajustar exclusivamente a estas tecnologas.

---

--

--

En primer lugar vamos a crear un documento XML capaz de describir una


sencilla agenda con datos de direcciones web. Para ello partimos de una estructura XML denominada con el nombre de [Link], que tiene el siguiente
contenido:

Este documento XML se enlaza con el cdigo XSL [Link] que se


muestra a continuacin:

CAPITULO [ 7 ]

'

Opciones avanzadas <del Lenguaje de Hoja de Estilo Extensible <XSL-2>

Con este cdigo XSL se crean varios elementos HTML a travs de la expresin
xsi : eiement, un comentario mediante xsl : cornrnent, los hiperenlaces y los
enlaces a imgenes, ambos con las correspondientes plantillas basadas en la creacin de atributos con xsl : a t t r i b u t e que ya se han explicado. La informacin
ms importante se ha recogido del documento XML, incluyendo el ttulo del documento (<TITLE>)y el ttulo principal de la pgina web (<~1;.).
Entre los dos documentos XML-XSL se consigue una informacin como la que
se puede ver en la Figura 7.17, en la que merece destacar la inclusin de los hiperenlaces y las imgenes.

XML. Iniciacin y referencia

L i s t a de direcciones

El [Link] ACTA ,.nritiene Irif,?m-?cioncobr* As.:i:il+rcn


rd~w,::fir,w:.b~
":, , , , , v J.I-

.:-

web

cs

C % ~ , : , I ~ F )m
cl?

I i i c j ~ l z a?TI

13

-w

m--

Figura 7.17.
Resultado de
visualizar
agenda07-31 .xml
con IE5.

Cuando IE5 se actualice (ilE6?) y cuando se generalicen las aplicaciones con


procesadores XSL ajustados a normas, se podrn realizar modificaciones de documentos XML en otros documentos XML, e incluso creaciones de nuevos documentos XML, con la misma facilidad con la que se ha creado el documento HTML,
pero, por ahora, estos procesos quedan relegados a aplicaciones reservadas para
programadores o usuarios avanzados.

GUIONES (SCRIPTS) EN XSL


Cualquier diseador que haya creado alguna pgina web interadiva o dinmica se
habr visto en la necesidad de trabajar con alguno de los lenguajes de automatizacin conocidos como guiones, aunque en este caso se suele utilizar ms a menudo la denominacin anglosajona scripts.
Es de sobra conocido que los problemas que no se pueden resolver con HTML
se puede solucionar mediante los lenguajes de guin, como son JavaScript, VBScript o JScript (entiende ahora el lector por qu se les conoce como scripts?),
aunque en algunos casos hay que recurrir a lenguajes ms completos, como Java.
Tambin acabamos de ver en el apartado anterior que en ciertas ocasiones se precisa de los lenguajes de guin para solucionar algunas deficiencias del XSL.
Pues bien, para poder incluir guiones capaces de automatizar acciones que no
puedan ser realizadas con las propias funciones XSL, se dispone de las instrucciones
especiales x s i :script y x s i :eval,capaces de vincular cdigo de guiones con
los documentos XML.
-

---

PRECAUCI~N:Las funciones xsl : script y x s l :eval son extensiones propietarias de Microsoft. por lo que no funcionan en las aplicaciones con procesadores XSL de otros fabricantes.

---

--

--

XML. iniciacin y referencia

IMPORTANTE: Si en el cdigo del guin se incluyen caracteres reservados para XML, el modelo del elemento x s l : s c r i p t debe seguir la
siguiente estructura:

que tambin sirve para preservar los espacios en blanco (white spaces).

El elemento x s i :e v a l evala un cdigo de un lenguaje de guin e inserta el


resultado en la informacin de salida. El cdigo puede ir dentro de la propia expresin
de evaluacin o en un elemento x s i : s c r i p t . Se suele especificar el lenguaje de
guin utilizado por medio de su atributo language. Si no se indica nada, se toma
por defecto el lenguaje JScript (compatible con la norma ECMA 262). El modelo es:

Con este elemento XSL se pueden activar los cdigos de guiones vistos en el
apartado anterior, y as, para activar el cdigo VBScript que muestra la fecha y hora
del momento, es suficiente con incluir una lnea como:

No obstante, como ya hemos comentado, el elemento x s l :e v a l no necesita


recurrir a otro elemento x s i :s c r i p t , ya que puede incluir el cdigo de guin que
se desea ejecutar. Por este motivo, en nuestro ejemplo de la fecha y hora actual se
puede suprimir la expresin x s l : s c r i p t y dejar nicamente la siguiente sentencia:

PARA LOS MANITAS: Es ms cmodo utilizar combinaciones de elementos xs 1: s c r i p t y xs 1: e v a l , salvo en los casos en los que el
cdigo de los guiones sea muy reducido.

- -

Para ver un ejemplo de utilizacin de cdigo de guiones con un proyecto XML-XSL,


vamos a aprovechar nuestro ltimo documento XML con la informacin de direcciones web, que toca denominar [Link], y lo vamos a combinar con el
documento [Link] que viene a continuacin:

CAP/TULO [ 7 ]

Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

XML. Iniciacin y referencia

'-h

Como es norma, en el cdigo anterior se han resaltado las partes ms importantes relacionadas con este apartado.
Vemos al principio una declaracin general del lenguaje VBScript que nos evita
tener que repetirla en cada elemento. Tambin se puede observar cmo se ha
incluido la direccin de correo electrnico, aprovechando el elemento de evaluacin, donde el contenido ((entre comillas)) se computa como texto. Por ltimo, se
debe observar cmo se activan las dos funciones especializadas en mostrar el da y
la hora actual y en calcular los centmetros de un determinado valor dado en pulgad as.
El resultado del proyecto XML-XSL anterior se puede ver en la Figura 7.18.
-

---

PARA LOS MANITAS: Si se incluye una sentencia como la del tipo


<xsl:eval>"Texto de prueba"i/xsl:eval>, en laqueel contenido se encuentre entre comillas, se consigue que salga dicho contenido en forma de texto en el documento de salida directamente, por lo que, en
nuestro ejemplo, se mostrar Texto de prueba como si se encontrase en la forma

ACLARACIONES
En el momento de terminar este captulo se distribuye la versin 5.5 de Microsoft
lnternet Explorer, que se basa en el analizador-procesador MSXML 2.5, incluido en
la librera [Link], encontrndose en versin beta (julio 2000) la nueva versin
MSXML 3.0 con nuevas caractersticas XSL.
Es muy probable que cuando se publique este libro ya se encuentre disponible
la versin definitiva de MSXML 3, por lo que existirn ms posibilidades de aplicacin del procesador XSL de lnternet Explorer (5.x o 6.x), y lo que es ms importante, se'ajustar mejor a la especificacion XSL del W3C. -

Figura 7.18.
Resultado de
visualizar
[Link]
con IE5.

CAP~TULO171 Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

Con estas aclaraciones quiero avisar al lector de que la implementacin que


tiene IE5 para XSL es un subconjunto del borrador del trabajo de XSLT con fecha de
18 de diciembre de 1998, por lo que es normal que existan muchas diferencias con
respecto a la versin definitiva.
No obstante, las ideas bsicas sern siempre las mismas, y aunque se amplen
algunas cuestiones y se aadan otras, siempre se podrn ejecutar los cdigos antiguos y aprovechar las nuevas posibilidades, siendo una obligacin del lector
interesado en estar al da, la conexin a la sede de Microsoft para XSL
I[Link]
Seguramente que el lector se estar preguntando el porqu de estudiar las
extensiones XSL de Microsof? en vez de analizar las que se tratan en la norma del
W3C.
La respuesta a esta cuestin es una decisin personal basada en tres puntos
principalmente: a) IE5 es la aplicacin con procesador XML-XSL ms extendida
entre los usuarios en la actualidad; b) Microsof? se ha comprometido a actualizar
regularmente sus aplicaciones XML para ajustarse a las normas oficiales, y c),
segn se puede concluir de las declaraciones de las otras empresas con visualizadores web generalizados entre los usuarios (Netscape, Opera), sus navegadores no
soportarn XSL como sistema de dar formato a los documentos XML, adoptando
CSS como el procedimiento de formateo por defecto.
Entonces, todo el cdigo XSL que diseemos puede ser tratado slo por los
usuarios que naveguen con IE5?
La respuesta es un rotundo NO, ya que como se ver en el siguiente captulo,
existen medios para que todo cdigo XSL diseado de acuerdo con Microsof?,
pueda ser visualizado por otros navegadores de terceras partes.
PARA LOS MANITAS: En el Apndice B de este libro se encuentran las
direcciones de algunas de las aplicaciones XSL disponibles en el mercado.

Con todo lo visto sobre XSL, especialmente sobre XSLT y XPath, tenemos suficiente para confeccionar documentos de salida avanzados mediante el tratamiento adecuado de la informacin contenida en los documentos XML.
XSL es una tecnologa moderna y, por tanto, poco extendida, pero gracias al
soporte que proporciona lnternet Explorer 5 para XSL, ya se pueden aprovechar sus
potentes caractersticas en la gestin de los datos XML.
La implementacin que hace IE5 del XSL, basada en un borrador de esta especificacin de 1998, no permite aplicar toda la potencia que se incluye en la norma
definitiva, pero es una magnfica base para el aprendizaje de este lenguaje y, adems, en breve plazo se actualizar el procesador XSL de IE5 para adecuarse a la
normativa ms reciente.
Un cdigo XSL debe ir enlazado a un documento XML, adoptando en IE5 un
modelo similar al siguiente:

59
( '1

XML. Iniciacin y referencia

Para terminar este importante captulo vamos a ver un ltimo ejemplo que nos
sirve de resumen de los conceptos XSL ms importantes vistos hasta ahora.
Vamos a partir de un documento XML que incluye una relacin de datos relacionados con las ventas de una empresa. En dicha relacin se indica el nombre del
producto, su tipo, el nmero de unidades vendidas y el precio de cada unidad.
El contenido de dicho documento XML, denominado [Link], es el
siguiente:

CAP~TULO171 Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

La informacin incluida en este documento no representa novedad alguna


para el lector, salvo en lo que respecta al cdigo resaltado.
Esa parte es un adelanto de un apartado que veremos en el siguiente captulo,
pero que bsicamente se refiere a una declaracin que describe el contenido del
e , numrico,
elemento <TotVentas> como un tipo de datos ( ~ a t a ~ y pdt)
necesaria para realizar los clculos que se desea realizar en el cdigo XSL, que con
una denominacin de ejemplo07-36.~~1,tiene el siguiente contenido:
: ;:y 1 e a h e e t vc I-S ion;" : .u' i , ~ : ! ~ ~ ~ ~ q e = " " ~ : : ~ : r i ~ - i ~
;.-::,ln-:xsl-'h;t p : / / w . n . . i . w 3 . . i , - ; Ti;/?!I).
xsl"
m . n r = ' h t t p : / 'brurw.w3 .org/'rRi 3 E C - i - ~ t m i L i ) "
.;;::l

rt?~1-11
t-n5=' ">

XML. Iniciacin y referencia

CAP~TULO[ 7 ]

Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>

Tampoco hay nada en este cdigo que no se haya visto ya, aunque para dejar
todo ms claro vamos a repasar los puntos ms llamativos.
Un examen detallado a sus sentencias revela que incluye dos guiones VBScript
capaces de mantener un contador para indicar el orden de ventas y de calcular el
total de euros conseguido por cada producto:

Estas funciones son activadas desde sus correspondientes opciones xsl : eval:
- -- - .-- - - - - -----.- -

-----

-~

Tambin se han incluido dos disposiciones capaces de marcar con distintos


colores (que no se distinguen bien en este libro, pero que se pueden observar perfectamente con IE5) las lneas de la tabla con los productos que han sobrepasado
(mayor que 5.000) o rebajado (menor que 2.000) las ventas previstas:

Se ha aprovechado la funcin que calcula los totales de ventas de cada producto para dibujar un sencillo y prctico grfico de barras basado en dichas cantidades:

<?

XML. Iniciacin y referencia

Por ltimo, en la columna final se declaran los tipos de productos de acuerdo a


los valores de sus atributos tipo:

En la Figura 7.19 se puede ver una captura de la salida en pantalla de este proyecto XML-XSL que sirve de resumen final.
El lector debe tomarse ahora el tiempo necesario para asimilar todo lo visto sobre
XSL para, una vez seguro de su manejo con soltura, pasar al capitulo siguiente.

Resumen de Ventas de la empresa INTERNETY.OR6 p a r a el ao 1999:

Figura 7.19.
Resultado de
visualizar
[Link]
con IE5.

Notas:
V e n t m superiores a las preulstes
V e n t a s inferior~5a las p r e v l s t ~

Tcn icas
complementarias

1, ya nos acercamos al final del libro, porque, usted no ser de los que
empiezan por el final? (los que tenemos esa costumbre disfrutamos menos de
los libros, pero lo hacemos a nuestra manera).
En este captulo vamos a ver algunas tcnicas, normas, utilidades, ejemplos,
aplicaciones y tecnologas complementarias de todo lo visto sobre XML. Es una
especie de contenedor donde cabe todo, eso s, todo lo que sea importante y
relacionado con XML.
En realidad, cada uno de los apartados que vamos a estudiar aqu se merece un
espacio ms amplio, y en muchos casos un captulo completo, e incluso un libro
propio, pero ya sabemos que el espacio disponible en un libro de iniciacin es limitado y no da para ms, por lo que, en mi opinin, ahora es preferible tratar por
encima algunas de las muchas cuestiones relacionadas con XML que quedan por
ver, para que el lector tenga una base que le permita entender mejor la situacin
general y las posibilidades reales del XML, que estudiar en profundidad slo alguna de las tecnologas pendientes.
Sin ms introduccin, pasamos a ver una tecnologa especialmente importante
para XML.

DOM
Algunas personas piensan que el Modelo de objeto de documento o D O M (Document Objed Model) es el soporte ms importante del XML, ya que sin l XML no

XML. Iniciacin y referencia

5
e

seria ms que otro sistema de depsito de datos con sus procesos internos propietarios particulares de gestin.
El DOM es el sistema por el que se puede acceder y modificar un determinado documento XML. con la particularidad de que su mtodo de actuacin est definido por una recomendacin del W3C, haciendo posible que XML deje de ser una
especificacin particular y entre en el concepto del lenguaje universal, independientemente de la plataforma y de la aplicacin que se utiliza para su tratamiento.
D O M est controlado por un grupo de trabajo del W3C, que es el responsable
de su aplicacin al HTML y XML. En la direccin [Link] se
puede ver todo lo concerniente a su situacin.
Segn se indica en el W3C, el DOM es una interfaz neutral de plataforma y
lenguaje que permite a los programas y guiones (scripts) acceder y modificar
dinmicamente a l contenido y a la estructura de los documentos.
La explicacin de la importancia del D O M es que elimina la utilizacin de sintaxis y mtodos particulares en la manipulacin de los documentos XML, haciendo
posible que cualquier herramienta XML maneje las mismas instrucciones para realizar las mismas acciones.
En la prctica, D O M no es un lenguaje de programacin, es una API que
puede ser utilizada por casi cualquier lenguaje de programacin (Delphi, Visual
Basic, Acces, Fox, VBScript, Java Script, Java,C++ ..J.

IMPORTANTE: Una API es una interfaz de programacin de aplicaciones


(Application Program Interface) que permite el dilogo entre una aplicacin y los servicios de menor nivel del sistema.

Docurnent Object Model (DOM)


The nist publlc workhg dram for DOM Leve13 have been publlshed:

'DmnrRIML'iiiismu<*dbyim*~to&Nn&dxc~~~m.***ndiopiibr&~&~tobc~
-id
W?C hy rccnved 3
4 -nnu
C m i d n r r a i g n c s na hr a w n wbrh hr &lnt 4
DTrmdL -NI
CM
bcripowd (n -4
7)urs h s v & wi propose n p m h7ML usr or np(e d e n i & ~
ik W3C DC1M W ( j n
wobng h d lo miLc mr m o p n i r k .FA < - - m e
m l h l I&
m wedllpm

Figura 8.1.
Pgina web del
grupo de
trabajo sobre
DOM.

W3C Actlvliy Stalemsnt on the DOM

Questlons. cornrnents. and suggertlons about me DOM

CAPITULO
[8] Tcnicas complementarias
Despus de leer lo anterior sobre D O M parece que es una panacea, y puede I
que el lector se est planteando la cuestin por qu no profundizamos en el
DOM para tratar documentos XML con cualquier herramienta?
1
iBuena pregunta!
Si el lector ha consultado algunos libros sobre XML, habr constatado que 1
siempre hay un captulo sobre DOM, pero tambin habr comprobado que en la
mayora de los casos no habr podido aplicar los ejemplos, ya que los conceptos
que trata el DOM. sin ser cosa de extraterrestres, son suficientemente tcnicos
como para necesitar de conocimientos profesionales de programacin para ser
aplicados con facilidad y, adems, exige disponer de la aplicacin que permita
ejecutarlos en un determinado lenguaje de programacin, lenguaje que hay que
conocer, claro.
Teniendo este libro un nivel de introduccin, he considerado que no es el lugar
adecuado para tratar el DOM con detalle, dedicando ms espacio a las cuestiones
ms prcticas y fciles de aplicar.
Bien, una vez explicada la gran importancia del D O M para el tratamiento
avanzado de los documentos XML, y comentado el motivo por el que no lo vamos
a estudiar con profundidad, ha llegado el momento de ver lo que es realmente
importante y permite acometer cualquier tratado sobre D O M con la base necesaria para entender sus principios.

Principios del DOM


Para trabajar con el D O M de XML es preciso disponer de una aplicacin que
incorpore un D O M y que trabaje con un determinado lenguaje que incluya una
API-DOM. lnternet Explorer 5.x incorpora un DOM-XML ajustado a la normativa
del W3C, aunque tambin aade algunas extensiones particulares.
El usuario que desee trabajar con DOM-XML debe conocer algn lenguaje de
programacin que disponga de una API-DOM. En el caso de IE5, lo ms fcil es
hacerlo a travs de guiones JavaScript o VBScript. Todas las aplicaciones que soporten el mismo D O M podrn acceder a los mismos datos con las mismas sentencias
sin importar el lenguaje que utilicen.
La especificacin D O M no est totalmente desarrollada en este momento,
pues existen tres niveles de soporte, de los cuales se ha publicado la recomendacin
del nivel 1 (1 de octubre de 1998); est en fase cercana a la publicacin final el
nivel 2 y se encuentra en fase de borrador de trabajo el nivel 3. Existe otro nivel O
(cero) que permite manipular documentos HTML en JavaScript.
Un D O M puede ser completo, como el que se describe en el W3C, haciendo
posible el tratamiento de cualquier componente del documento, o puede ser
incompleto, permitiendo nicamente un acceso parcial, como el DOM-JavaScript
para HTML.
Aunque existen otros modelos, el DOM-XML del W3C se basa principalmente
en la organizacin de los datos en forma de estructura de rbol jerrquico donde los
elementos, los nodos y los objetos, aunque son entidades distintas y tienen algunas
particularidades, coinciden bsicamente con los componentes del rbol.
Los objetos de alto nivel que representan tipos de nodo especficos son los que
se relacionan en la siguiente tabla:

XML. Iniciacin y referencia

Nombre de objeto

Nodo

Descripcin

Representa un nodo de elemento (el texto del


contenido del elemento no se guarda en este nodo).

Attribute(Attr)

Representa un atributo.

Text

Representa un nodo Text que es hijo de un nodo


Element .

CDATASection

Representa una CDATASection del documento


XML.

EntityReference

Representa una referencia a entidad dentro del


documento XML.

Entity

Representa una entidad no analizada en el DTD.

Processing
Instruction

Representa una instruccin de procesamiento.

Comment

Representa un comentario del documento XML.

Document

Representa el nodo raz del documento XML.

l Element

DocumentType

10

Representa la DTD o declaracin de esquema del


documento XML.

DocumentFragment

11

Representa un objeto utilizado para guardar


secciones de un documento XML temporalmente.

Notation

12

Re~resentauna notacin declarada en el DTD.


- -

CharacterData

Proporciona mtodos y propiedades adecuados para


10s nodos [Link] y CDATASection.

Implementation

Proporciona acceso a mtodos y propiedades


especficas de la aplicacin e independientes del
DOM.

Estos objetos disponen de sus propias interfaces, que trabajan con sus respectivos atributos y mtodos.
PARA LOS MANITAS: En la direccin:
[Link]/library/[Link]~?URL=/librarv/psdk
/xmlsdk/xml Zrll .htm
da sobre el D O M de Microsoft.

Con la observacin de algunos ejemplos prcticos de gestin con el D O M se


entendern mejor sus posibilidades y, de paso, aprenderemos algunas soluciones
prcticas de aplicacin directa.

Ejemplo de gestin DOM


Vamos a ver un ejemplo que nos permita descubrir las posibilidades de gestin del
DOM-XML.

CAP~TULO[S]

Tcnicas complementarias

Se trata de mostrar el conocido documento XML del catlogo de libros de


McGraw-Hill en diferentes formas. Para ello vamos a incluir el cdigo de gestin del
DOM en un archivo HTML denominado catalogo08-01 .htm, que nos proporciona
el efecto que se puede ver en la Figura 8.2.

Ejemplos de gestin del documento XML "[Link]" con el DOM


Ver el ~ClilswX N a

1Ver el

tr.w%del DDM - & ~ w + F pu159r [ A C ~ U B I ~ Z B T ~

C ~ S C ~ YtAL
I ~ G C1.t~el mPtor?i3 cIRil.:,3

' i r r In Ii'ta

d i r~cclr85> trove? dcl EOM -

- deSC&

E * J I S ~[AtrCIS]
T

r t ~ p u ~s ~ 1 s[Actudir,irl
-

Su cdigo se puede analizar al detalle editando el archivo catalogo08-01 .htm,


cuyas partes principales se muestran a continuacin:

T s : . ~ - i ~ , t" >

JL; 1 ::y -,;p;Gl;~i;~="

function LietaCod()

f... \

function verArbol(baee1
, . . . (

Eunction verAtributo (elerm)


?...,
--ISTFTFi-

- 7

9.

pt">

function verNodosCat()
{...)

function verNodoeHijo(objt?0do)
t...
*, - L s F T L l

Figura 8.2.
Resultado de ver
catalogo08-01 .htm
con IE5.

XML. Iniciacin y referencia

Ver el cddigo X M L a travs del DOM


despus pulsar <B>[Actualizarl</B></P>
<P -&nbsg; Lnbsp: hnbsp;
<INPUT TYPE='BUTIYINm VALUE='&nbsg;
&nbsp; hnbsp;'
OmrCLICK=[Link]=~catal-ogo.~~w>
Ver el cdigo LXL por el mtodo cl&eico - despus gulear
-:B.- [Atrds] </E-</e>

<P>&nbsg; &nbsp; &Ilbsg;


<INPUT TYPE="BIPPrON= VALUE=*&nbeg; &nbap: &nbsg:'
Catom>

Ver la lista de nodoe a traves del DOM


zarl</B></P>

(RICLIChwmrgodoO-

despues pulaar <B>[Actuali-

Este listado tiene una estructura tpica HTML: una cabeza (<HEAD>)que
incluye el ttulo (<TITLE>) y el enlace al archivo CSS (<LINK>) que sirve de
plantilla para el formato, y un cuerpo (<BODY>)en el que se incluyen las sentencias finales (<INPUT>)que describen los botones de activacin, las funciones
JScript y JavaScript que realizan las acciones de control del DOM y que son llamadas cuando se pulsan los botones, una etiqueta <XML> capaz de cargar el documento XML [Link] y dos lneas <DIV> donde se incluyen los resultados de
ejecucin de las funciones.
Al pulsar sobre el primer botn se activa la funcin JScript LietaCod( ) , que
apoyada por las funciones verArbol ( ) y verAtributo ( ) , obtiene el resultado
divlResultado que se visualiza a travs de su correspondiente sentencia <DIV>.
En la Figura 8.3 se puede ver la consecuencia de este proceso.

Ejemplos de gerti6n del documento XML "[Link]' ron el DOY


C6+

XML - para volver, pulse [Aclualizar]


< U l O l ~ >

Figura 8.3.
Resultado de
activar el primer
bot6n en
catalogo08-01 .htm.

CAPITULO181 Tecnicas complementarias

Si se pulsa sobre el segundo botn se activa el archivo [Link] desde IE5,


mostrndolo con el sistema propio del visualizador que ya conocemos. En la Figura 8.4 se puede ver el producto de esta accin.
Cuando se ~ u l s asobre el tercero de los botones se activa la funcin JavaScri~t
v e r ~ o d o s ~ a( 1,
t que, auxiliada por la funcin verNodosHij o ( ) , obtiene 'el
resultado div2Resultado que se visualiza a travs de su correspondiente sentencia <DIV>.En la Figura 8.5 se puede ver la consecuencia de este ltimo proceso.

Figura 8.4.
Resultado de
activar el segundo
botn en
catalogo08-01 .htm

Ejemplos de gestin del docinento XHL " c n t n l o g o r n l ' ron e l 0 0 M


[Link] dc nados - cara volver. pulse [AQuiifizor]

. . --

--

'1

tidocrnmt
rml
crltdlow
C3r..ilow
llbrc.
Tliuio
ltent

Edtorial
Rtevt
,l,tCTeFi

Aut~r

Figura 8.5.
Resultado de
activar el tercer
botn en
catalogo08-01 .htm

XML. Iniciacin y referencia

j)

Como comentario final sobre el cdigo de este ejemplo hay que decir que se
han implementado dos sistemas distintos de recogida del documento XML.
En el primer caso (primer botn) se realiza en el propio cdigo de gestin del
DOM con las sentencias:
-.
- - origen = new A c t i v e X O b j e c t ( ~ M i c r o e o f t . ~ " ) t
0rigen'.load(~catalogo.8al")t
-

--

Y en el segundo caso (tercer botn) se consigue mediante la conocida etiqueta


<XML>:

Con este ejemplo se puede ver el control total que se consigue de un determinado documento XML a travs del DOM, siempre que se domine la programacin
en lenguajes que posean un API-DOM.

Activacin XML-XSL-DOM en el cliente


Si disponemos de un proyecto XML-XSL, podemos visualizarlo por el sistema ya
explicado en los captulos anteriores, pero tambin es posible hacerlo utilizando el
DOM.
El proceso es tan fcil como utilizar el siguiente modelo HTML:

/ / ' - r TAra y carga ~h m i ' n , ~ p , i a d:J


do, imento X!;L
var %al = new ActiveXObject("[Link]~
[Link] = faltae
%el. load("; - 3 ~ r n ~ n t o - xxss
i .l " )

Es suficiente con incluir los datos reales de los archivos correspondientes a


los documentos XML y XSL, donde se indica (documento~[Link] [Link]) para finalizar el proyecto.
i Para qu puede servir este sistema de activacin de proyectos XML-XSL?, se
preguntar ms de un lector cansado de aprender el mtodo explicado en el capitulo anterior.

CAPTULO 181 Tcnicas complementarias

Resumen de Ventas de la empresa INTERNETY.OR6 p a r a el ao 1999:


Orden ombre

Unidades vendidas Precio Dor unidad Total de ventas/Grafico

Tiw

1 Notas:
Ventas superlores a las previstas
Ventas InFrrlores a las pr~vlsto;

Figura 8.6.
Resultado de
activar
ventas08-02. htrn
en IE5.

La verdad es que tiene muchas ventajas, entre las que se encuentran: que
puede ser ejecutado desde cualquier aplicacin que soporte el API de JavaScript
para el DOM-XML, que se puede mezclar con otro cdigo HTML, que se le puede
dar formato con estilos CSS gestionados desde HTML y que admite distintas hojas
de estilo ajustadas a los visualizadores o a condiciones particulares.
Vamos a probarlo con un caso concreto. Recogemos el proyecto XML-XSL
del captulo anterior que mostraba un resumen de las ventas de productos de
computacin y los pasamos a la carpeta de este Captulo 8. Renombramos a estos
archivos como [Link] y [Link] y creamos un cdigo HTML con nombre
[Link] que siga el modelo anterior con los correspondientes cambios
adecuados a los archivos XML y XSL. El resultado debe ser como el que se muestra
en la Figura 8.6.
Si se observan detenidamente los cdigos XML y XSL de este proyecto, se echarn en falta la lnea que en el documento XML enlazaba con el documento XSL y la
lnea que en el documento XSL enlazaba con el archivo de formato CSS, ya que no
son necesarias, pues estos datos se incluyen ahora en el cdigo HTML, integrador
de todos los dems.
Este proceso permite ejecutar proyectos XML-XSL desde el cliente siempre
que la aplicacin utilizada cumpla las condiciones requeridas.
PRECAUCIN: Este sistema no se puede emplear para visualizar proyectos XML-XSL desde Netscape Navigator 4.x. ya que no es capaz de
trabajar con el API-JavaScript del DOM-XML.
F

Activacin XML-XSL-DOM desde el servidor


Si se desea que cualquier visualizador web pueda mostrar en h pantalla un determinado proyecto XML-XSL, la mejor solucin pasa por crear un cbdigo ASP ( A d i -

ve Server Page) que tenga el siguiente modelo:

XML. Iniciacin y referencia

'Lectura del documento XML


aet mml = [Link]~t(Yahi~[Link])(l~)
[Link] = falee

3
e

'Lert-lira del oocumento XSL


aet xal = Se~[Link])(~te~j~t(Yilic~~[Link]>DOH~)
[Link] = falee
x d . load ([Link](udocumento-xsl . x s l a ) )

Este cdigo es fcilmente reconocible como ASP, ya que se incluye entre las
marcas <% y %>, estando creado con VBScript.
Cualquier cdigo VBScript puede ser ejecutado desde el cliente o desde el servidor. Para hacerlo desde el cliente es preciso que la aplicacin utilizada incluya un
intrprete VBScript, caracterstica que slo se da en uno de los visualizadores web
generalizados: Microsoft lnternet Explorer. Sin embargo, los archivos ASP (con
extensin .asp) pueden ser ejecutados en la parte del servidor, generando un cdigo HTML entendible por cualquier visualizador web que es enviado al cliente, eliminando as cualquier tipo de incompatibilidad.
IMPORTANTE: Para poder trabajar con archivos ASP es preciso que
estn instalados en un servidor web que disponga de un motor ASP,
como son el llS (Internet lnformation Server, de Windows NT/2000) y el
PWS (Personal Web Server de Windows 9x/Me) de Microsoft.

- - -- - - - - - - - - -

---

PARA LOS MANITAS: Cualquier usuario puede instalar en su equipo


un servidor web con caractersticas ASP si dispone de Windows
9x/Me/NT/2000 desde el propio CD-ROM.
S i desea disponer en lnternet de un servidor virtual con posibilidad de trabar
con ASP, puede~solicitarel servicio a su proveedor habitual, o si desea uno gratuito, puede seleccionar alguno de los que se relacionan en la direccin
htt~://w~[Link]/asp/freeas~[Link].

----

--

Para ver cmo acta este proceso vamos a crear un archivo ASP con el nombre
de [Link] y el siguiente contenido:

- h-nl
haid:
< t ' t l Ventas

de [Link] t i t l e ,
type='[Link]/cssa h t t L "[Link]'

- r T lK rel="i'[Link]'
e

hradr
body>
1

<%

set mi

Berver .CreateObject(#icrosof t. XaaDOMw)

/r

CAPITULO [8]

Tcnicas complementarias

En este cdigo se puede ver que se ha seguido el modelo ASP comentado anteriormente, ajustndolo a los archivos ventasxml y [Link], que contienen los
documentos XML y XSL sobre las ventas de la empresa [Link]. En la
Figura 8.7 se puede observar la informacin que proporciona [Link], con
la novedad de que en esta ocasin se puede ver desde otro visualizador web,
como Netscape Navigator 4.7 (NN4).

Rrsumcn de Ventas dc lo empreca [Link] p r a el aiio 1999:

Notar:

Despus de ver la compatibilidad que posee este sistema con cualquier navegador HTML, queda demostrada la gran ventaja de la utilizacin de ASP para
controlar proyectos XML-XSL desde un punto de vista de universalidad.

Proyectos complejos XML-XSL-DOM


El ltimo ejemplo de D O M que vamos a ver explica cmo se pueden controlar,
desde una misma pgina web, varias salidas de datos aplicando distintas plantillas
XSL a un mismo documento XML.
Aprovechando el modelo utilizado para ver proyectos XML-XSL mediante
JavaScript, podemos crear fcilmente el siguiente cdigo HTML, al que vamos a
denominar [Link]:

Figura 8.7.
Resultado de
activar
[Link]
con NN4.

XML. Iniciacin y referencia

!
S C R I P T type=.text i w a s c r i p t ' language='JavaScrigt'>
function opcionl0 E
var x m l = new A c t i v e X O b j e c t ( " 1 L i c r o s o f t ~ ~ " )
[Link] = falea
xml. l ~ a d ( ~ v e n t a
. xem l m )
var xel = new ActiveXObj~t(~[Link])
xel-async = falee
~[Link](~ventae.xe1")

&[Link](~.transfo~o~(xsl))
1

function opcion20 (
var xml = new A c t i v e X O b j e c t ( ' l l l c r ~ a o f t . ~ ~ ~
[Link] = falss
w l .load ("[Link]")
ver xel = new A c t i v e X O b j e c t ( Y l l i c r o n o f t . ~ n )
[Link] = false
[Link]("[Link]")

- 90DY>
H I .~Fjer?rl.r,'. de

Y>?+:./Hl:.,Hi-

y r ~ r i nd - l d o c u i , ~ c - :.:l.,],
~ ~ t ~"ver,.:[Link]"
~
con e l

>

>&n.t,:p; t , .-,l:,sp;L:-.l-m:=~>;
'TYF'T=" ? ! " r ' ( Y m 1'?.;,I;E:
a & n b ~ p ;;. q osp; ;, 1 b s p ; m
ONCLICK=aopcionl0":.
.:nb~p;Ver e; i n r o r r ~ ?[Link] - +spues pulsar <B> [ A t r ? ~ ]-,P:.--/
?

. TP:rl:?

L,

. ? - . i n b s ~ s ;brihc';
I:!FY'?

61ibsp;
'7Y?E.-" BUiTON" VALUEzUt -:i.,sp; &nbsp; &nbsp;'

0NCLICK=nopcion2()">
rii-~;!rb;Ver el i n f i ~ ~ mreducido
e
S\,

d~sp-;rLr:pulsar

E--[;r.~

6 : 1 .-./? - . r / P >

/ E,CiE+::.

</ET::L--

Es fcil observar que se han creado dos funciones JavaScript (opcioni( ) y


opcion2 ( ) ) que se diferencian nicamente en que cada una carga un archivo XSL
distinto (ventas.xs1 y ventas2 .xsi),dando resultados diferentes, dependiendo del contenido de cada documento XSL.
Al activar cada uno de los botones <INPUT> se llama a alguna de las diferen( ) l1 u ONCLICK="opcion2 ( ) ", mostrando
tes funciones ONCLICK=llopcionl
en la pantalla el proyecto XML-XSL correspondiente.
En la Figura 8.8 se puede ver la pantalla que se visualiza al activar [Link], con las dos posibles opciones.
Pulsando sobre el primer botn se da paso al proyecto XML-XSL que muestra la
informacin completa sobre las ventas de la empresa [Link], que se
corresponde con el informe que ya conocemos de otros ejemplos anteriores.

CAP/TULO181 Tcnicas complementarias

Ejemplos de gestin del documento XML "[Link] con el DOM

Figura 8.8.
Resultado de
activar
ventas08-04. htm
con IE5.

Cuando se pulsa sobre el segundo botn se activa el proyecto XML-XSL que


muestra un informe reducido de [Link], tal como se puede ver en la
Figura 8.9.
Por supuesto que con un sistema semejante se puede conseguir que un mismo
documento XML se pueda ver desde mltiples plantillas XSL, simplemente aadiendo ms botones relacionados con las correspondientesfunciones JavaScript que
activen las pertinentes plantillas XSL.

No siempre es conveniente que el procesador XML gestione la organizacin interna de los datos de un documento XML por medio del DOM, sobre todo en los
casos en los que el rbol generado es muy grande o cuando slo se precisa el acceso a unos nodos determinados.
Existe otra solucin denominada SAX (Simple API for XML, API simple para
XML) que, como indica su nombre, es un sistema de gestin ms simple y, en consecuencia, ms fcil de utilizar, ya que realiza una buena parte de su trabajo con
unas pocas llamadas, con gran flexibilidad y rendimiento.
SAX no ha sido adoptado todava como estndar por el W3C, pero su importancia es cada vez mayor, y aumentar ms desde que Microsoft ha decidido
implementarlo en sus libreras MSXML3, incluyendo soporte para Visual Basic y
Visual C++.

Resumen de Ventas de la empresa [Link] paiw el ao 1999


(opcin reducida):
O i h

N-mbn

[Link]. n a 6 d a ~
Rmi pm mudad T i t i l de nu<u

Figura 8.9.
Resultado de
activar el
segundo botn
en
[Link].

XML. Iniciacin y referencia

PRECAUCIN:En el momento actual, las libreras MSXML que se distribuyen con la ltima versin 5.5 de lnternet Explorer pertenecen a la
versin 2.5, pero estn a punto de salir (ya existen en versin beta) las
1 ..
libreras MSXML3. esto es. la versin 3 de MSXML.
Hoy por hoy, la mayor parte de la programacin SAX se realiza en lava.

ESPACIO DE NOMBRE Y URI


Aunque ya hemos trabajado en otros captulos con los espacios de nombres, creo
que es adecuado aclarar algunas ideas sobre este asunto.
XML es un metalenguaje capaz de permitir la existencia de vocabularios de
marcas personalizados, tales como WML, XHTML, VML, MIL, etc. Si utilizamos
alguno de estos vocabularios en un entorno cerrado, los nombres de sus etiquetas
no pueden interferir entre s, ya que son nicos, pero si mezclamos varios vocabularios XML en un cdigo comn, las posibilidades de colisin entre los nombres de
sus elementos aumentan considerablemente, siendo necesaria la existencia de
algn sistema que evite estos conflictos.
Los espacios de nombre XML (XML Namespaces) son la solucin a este problema, siendo una recomendacin del W3C desde el 14 de enero de 1999 accesible en la direccin [Link]/TR/REC-xml-names (ver la Figura 8.10).
PARA AHORRAR TIEMPO: Si el ingls es un problema para el lector, le
recomiendo que acceda al documento Word en espaol:

Narnespaces in XML
World Wlde Wob COnsORlum 14January-1880

Status o thls document

Figura 8.10.
Recomendacin
oficial de X M L
Namespaces.

CAP~TULO[8]

Tcnicas complementarias

Cmo resuelven el problema de posibles coincidencias de nombres de elementos los espacios de nombre XML?
(
La solucin implica la utilizacin de una tcnica denominada URI (Uniform A
Resource Identifier, identificador uniforme de recursos), que es un sistema de 1
referencia nica a un determinado recurso de Internet, por lo que se puede decir (
que un espacio de nombre est definido por un URI.
La indicacin de un espacio de nombre se realiza con el atributo xmins:,
seguido del prefijo identificativo del espacio de nombre y del valor URI siguiendo el
modelo:

De esta forma, si, por ejemplo, yo deseo garantizar la exclusividad de un


determinado vocabulario particular sobre fotos que deseo identificar con el prefijo foto y mi direccin en la Web es ht tp : / /www. [Link],la declaracin
de mi vocabulario tendr la forma:

,..

..-

-.

-.

-.

..
. .

. . .- .

<Foto8 xmlns :foto="http: //[Link]/fr~toe~


/>

Es casi imposible que se le ocurra la utilizacin de este URI a otro usuario o


diseador web, por lo que se garantiza la originalidad del identificador, y cualquier
elemento del vocabulario se distinguir de los restantes por su prefijo, por lo que un
elemento <Nombre> de mi vocabulario tendra la forma:

El lector no debe pensar que el URI se corresponde con una URL (Universal
Resource Location, direccin universal de recurso), que es el sistema que se utiliza
para definir la localizacin exacta de un recurso determinado. Tambin se puede utilizar un URN (Universal Resource Name, nombre universal de recurso) como identificador de un nombre de espacio.
En realidad, aunque se utilizan direcciones web para describir los URI, se puede
utilizar cualquier tipo de descripcin, como DFT12345jkl,o pepePEPIT0, o
HTML67,o cualquier otro con la nica condicin de que sea nico.
PARA LOS MANITAS: En la direccin [Link] se
puede encontrar informacin detallada sobre URI, URL y URN, siendo
importante tener claro que URI abarca a URL y URN.

- -------

- ---

En muchos de los ejemplos vistos en este libro ya se han utilizado algunos nombres de espacio para ciertos vocabularios, como m l n s :html="uri:html" en el
p .w3 .org
distante e importante Captulo 3 , o xmlns : x s ~ = ~ ~ h :t/ t/www
/TR/WD-xsl"en los recientes Captulos 6 y 7, o xmlns:dt="urn:schemasmicrosof t-com:datatypes" en el anterior captulo, observando que en este
ltimo se ha utilizado un URN para la descripcin.

XML. Iniciacin y referencia

Por ltimo hay que recordar que siempre existe un espacio de nombre por
defecto, siendo normal que no se distinga con un prefijo, ahorrando as tiempo y
espacio. Tal es el caso del espacio de nombre que hemos utilizado en los Captulos 6 y 7 para describir el lenguaje HTML como vocabulario utilizado para dar
formato de salida a los proyectos XML-XSL, con la declaracin
xmlns="[Link]

ESPACIOS EN BLANCO
Ya sabemos que cuando introducimos varios ((espaciosen blanco seguidos en un
cdigo HTML o XML, el procesador utiliza slo uno de ellos, sirviendo slo para
ayudas a una mejor visualizacin de su contenido.
Al igual que en HTML, cuando se desea respetar los espacios en blanco de un
determinado cdigo se puede recurrir a la etiqueta <PRE> @reserve, preservar), en
XML existe la posibilidad de incluir en la DTD, dentro de una definicin de elemento, el atributo mi:space, capaz de controlar si se ignoran (def a u i t ) o se
preservan (preeerve) los espacios en blanco de ese elemento.
El modelo de una declaracin de atributo con la capacidad de decidir si se ignoran o se preservan los espacios en blanco de un elemento es:

ESQUEMAS XML Y TIPOS DE DATOS


En el Captulo 5 hemos visto las definiciones de tipo de documento, que se regan
por normas emanadas de SCML, motivo por el que utilizan un mtodo poco intuitivo.
Para facilitar la declaracin de las particularidades que deben seguir los documentos XML, Microsoft desarroll una normativa que permita hacer lo mismo que
una DTD, pero con las diferencias fundamentales de que utiliza un lenguaje derivado del XML (ms fcil de entender y manejar) y de que se apoya en otra especificacin que permite describir los tipos de datos (Data Types).
Estas normas han sido asumidas y reformadas por el W3C, denominndose
Esquemas XML (XML Schemas), encontrndose actualmente en fase de borrador
de trabajo. La especificacin Esquemas XML del W3C est dividida en tres partes
(Part O, Part 1 y Part 2), de las cuales la ltima describe lo concerniente a los
Tipos de datos (datatypes), estando accesible en la direccin [Link]/
TR/xmlschema-2, tal como se puede ver en la Figura 8.11.
Existe otra gran ventaja en trabajar con esquemas XML en vez de DTD, ya que
Microsoft ya soporta esta tecnologa en sus visualizadores web IE5/6, aunque tienen la problemtica de que se ajusta ms a su especificacin particular que a la
norma que se est desarrollando por el W3C.
(Cmo puede decidir un diseador web si debe utilizar DTD o Esquema
XML?

CAPiTULO

183 Tcnicas complementarias

XML Schema Pan 2 Datatyper

Figura 8.11.
Borrador de
trabajo de XML
Schema Part 2:
Datatypes.

La respuesta depende de su espacio de trabajo, pues si desea ajustarse a normas generales definitivas, la decisin debe ser DTD, y si se desenvuelve en un
entorno controlado por IE5/6 y/o Office 2000, es ms eficaz que trabaje con
Esquemas XML.
La tendencia actual es que cuando se termine de desarrollar la especificacin
que regula los Esquemas XML, sea ste el mtodo ms utilizado, no debiendo asustarse los lectores que decidan trabajar por ahora con DTD, ya que existen utilidades
de transformacin automtica que pasan cdigo DTD a ~ s ~ u e mXML
a sin gran
esfuerzo, como es XML Authority, disponible enla direccin [Link].
La utilizacin de los esquemas XML es similar a la de DTD, debiendo utilizar el
siguiente modelo si se desea aplicar en 1E5/6:

donde vemos que la declaracin de tipo de documento DOCTYPE se ha sustituido


por un elemento <Schertia>, ms acorde con XML.
PARA LOS MANITAS: Se pueden ver las posibilidades de Esquemas
XML con IE5 en [Link]/xmI/reference/schema/[Link].

Nosotros hemos utilizado los tipos de datos en el ejemplo de las ventas de


[Link] para poder realizar operaciones numricas, ya que sin esta ayuda
todos los contenidos de los elementos XML son tomados como cadenas de texto.

XML. Iniciacin y referencia

Hay que tener en cuenta que el procesador XML de E5/6 incluye un validador
de esquemas XML, siempre que se haga una declaracin conforme al modelo
antes comentado.

m
XML no se puede conformar con las posibilidades actuales de los hiperenlaces, ya
que, aunque los diseadores web estamos acostumbrados a resolver nuestras
necesidades con la etiqueta HTML <A>,existen otras posibilidades que no contempla esta utilizada marca, uno de los fundamentos de la Web.
Vamos a imaginar que queremos que al activar un hiperenlace se muestre un
listado de posibles saltos, o que deseamos que el contenido del enlace se incorpore al documento activo, o que nos interesa que exista un proceso de ida y vuelta al
activar un enlace web. Estos casos, y otros ms, no pueden implementarse directamente con la etiqueta <A>, debiendo recurrir a programacin con lenguajes de
guin para conseguir estos procesos.
Las especificaciones XLink y XPointer del W3C son las nuevas soluciones que
permiten controlar al mximo los hiperenlaces entre los documentos web. En la
actualidad estn en fase ltima de desarrollo, por lo que seguro que cuando se
publique este libro ya estarn en fase de recomendacin.
Las versiones [Link] las normas XLink y XPointer se pueden localizar en las
direcciones [Link]~/TR/xlinky [Link]/TR/xptr, tal como puede verse
en las Figuras 8.12 y 8.13.

Figura 8.12.
Especificacin
de XLink 1.O.

XML Lnking Language (XLink) veroion 1 0

CAPITULO 181 Tcnicas complementarias

XML Pointer Language (XPointer) Version 1 G


'N3C Candidate Recommendalion 7 June 2000

Abslract

Figura 8.13.
Especificacin de
XPointer 1.O.

XLink (XML Linking Language) es la norma encargada de controlar los enlaces


externos entre documentos XML y se apoya en XPointer para gestionar partes de
los documentos.
XPointer (XML Pointer Language) es la norma encargada de controlar los enlaces internos entre las partes de los documentos XML y se apoya en XPath para su
gestin.
Por desgracia, IE5 no soporta XLink ni XPointer, por lo que, por ahora, hay que
seguir recurriendo a nuestra amada <A> del HTML para crear hiperenlaces en los
proyectos XML-XSL. En algunos ejemplos del Captulo 7 se pueden ver soluciones
de hiperenlaces prcticos.

XFORMS
Los formularios de HTML (<FORM>) fueron introducidos en la Web en 1993, por lo
que no es de extraar que en la actualidad se consideren inadecuados para las
necesidades de los nuevos documentos web.
Un grupo de trabajo del W3C est encargado de definir las normas que deben
regular los nuevos formularios que poblarn los modernos documentos, describiendo caractersticas como la interaccin con el usuario, la personalizacin condicionada, el clculo progresivo o la autogeneracin automatizada dependiente de los
datos que se vayan introduciendo. Esta especificacin se conoce como XForms
(XML Forms, formularios XML).
En este momento se pueden consultar algunos documentos relativos a XForms
en perodo de borrador de trabajo, localizables en la seccin XForms del W3C
([Link]), siendo de destacar la decisin de su aplicacin tanto en HTML
(XHTML) como en XML.

XML. Iniciacin y referencia

Ninguna utilidad actual admite la utilizacin directa de XForms, aunque es


posible implementar solucDnes prhcticas basadas en lavaScript o VBScript con
caractersticas de XForms.
-

--

---

--

PARA LOS MANITAS: Ya se pueden utilizar formularios avanzados en los


documentos web a travs de la aplicacin MOZQUITO, disponible en la
direccin [Link].

--

VOCABULARIOS XML
XML permite crear diversos vocabularios o aplicaciones especializados en el tratamiento de sectores especficos.
El primer paso que hay que dar para crear un vocabulario XML es disear su
DTD o Esquema XML, en donde se indique con exactitud la relacin de elementos
y atributos disponibles, junto con sus caractersticas y posibilidades.
Pero esto slo funciona si trabajamos con datos de cadena de texto o de tipo
numrico predefinidos en el analizador XML de la herramienta que se utilice.
Qu pasa si se desea crear una aplicacin XML que pueda trabajar con otras
entidades, como grficos, vdeos, sonido, etc. ?
La respuesta es que hay que disear un procesador que sea capaz de interpretar las etiquetas particulares de la aplicacin XML. Este procesador especializado
debe ser capaz de analizar sintcticamente el cdigo, de procesar sus elementos
(con el DOM, por ejemplo), de obtener un resultado y de darle salida por el medio
adecuado (pantalla, altavoces, brazo-robot, etc.).
Esto es lo que hace cualquier visualizador web cuando carga un cdigo HTML,
por ejemplo, ya que dispone de un procesador capaz de interpretar sus etiquetas y
de renderizar (mostrar en la pantalla) el resultado en forma de pgina web.
Existen tres formas bsicas de trabajar con una aplicacin XML determinada: utilizar un visualizador web que posea un procesador adecuado, aadir un mdulo
(plug-in) al visualizador web que utilicemos o utilizar una aplicacin especializada.
Un caso concreto del primer sistema es VML (Vector Markup Language), que se
encuentra incluido en las posibilidades de IE5/6, o tambin MathML (Mathematica Markup Language), accesible desde Amaya. Un ejemplo del segundo mtodo es
SVG (Scalable Vector Craphics), que dispone de plugs-in para lnternet Explorer y
Netscape Navigator. Una muestra del tercer procedimiento es SMIL (Synchronized
Multimedia lntegration Language), que puede utilizarse con la conocida herramienta RealPlayer de RealNetworks, entre otras.

VML
VML es una aplicacin XML especializada en el tratamiento de grficos vedoriales,
aunque tambin es capaz de controlar grficos de mapa de puntos (bitmap).
Ha sido creada por Microsoft para su paquete Office 2000, capaz de trabajar en
XML a todos los niveles. Se integra en su visualizador web lnternet Explorer desde
la versin 5, pero hay que activarlo expresamente.

CAP~TULO[8] Tcnicas complementarias

En la Figura 8.14 se puede ver un ejemplo de diseo VML, integrado en una


pgina web HTML, visto a travs de IE5.
En la sede de Microsoft existe un tutorial en lengua inglesa sobre VML
([Link]/standardr/vml/). En la direccin [Link] tambin se puede ver una gua sobre VML, en este caso en espaol.
Existen algunas aplicaciones, como Visio 2000, capaces de exportar sus diseos
en formato VML.

MATHML
El lenguaje de marcas MathML es especialmente adecuado para visualizar expresiones matemticas complejas.
Se puede trabajar directamente con MathML si se dispone de Amaya, el visualizador-editor web distribuido por W3C. En la Figura 8.15 se puede ver un desarrollo matemtico creado con MathML, integrado en una pgina web HTML,
visto desde Amaya.
Existen algunos programas comerciales, como Mathematica, que son capaces
de importar expresiones hechas con MathML y evaluar sus resultados.

SVG
SVC es un vocabulario XML especfico para disear y gestionar imgenes, ya sean
del tipo vectorial, como de mapa de puntos, disponiendo tambin de caractersticas
de sonido y de animacin.

Figura 8.14.
Diseo VML
activado con

IE5.

XML. Iniciacin y referencia

Figura 8.15.
Desarrollo
MathML
activado desde
Amaya.

SVC ha sido adoptado por el W3C, estando encargado del desarrollo de su


especificacin, por lo que es previsible que sea aceptado por la mayor parte de las
empresas desarrolladoras de software grfico como formato de publicacin en la
Web.
En este momento, SVC 1.O est en la ltima fase de desarrollo, por lo que,
cuando se publique este libro, estar publicada su recomendacin definitiva, localizada en la direccin [Link]/TR/SVC/, tal como se puede observar en la
Figura 8.16.

1
1

Figura 8.16.
Especificacin
oficial de SVC
1 .o.

Scalable Vector Graphics (SVG) 1 0 Spectfication


W3C Candldaie Recomrnendation 2 August 2003

Abstract

CAPITULO [S]

Tcnicas complementarias

Figura 8.17.
Diseo SVC
activado desde
NN4.

La forma ms cmoda de trabajar con SVG es instalar un mdulo que proporcione al visualizador web de cada usuario capacidades de procesamiento SVG, lo
cual se hace descargando el plug-in adecuado a cada configuracin desde la pgina web de Adobe ([Link]/sv~/viewer/[Link]), una de las
empresas que han apostado fuerte por este formato.
Una vez instalado el mdulo, el visualizador queda capacitado para visualizar
diseos SVG, tal como se puede ver en la Figura 8.17.
Se puede encontrar un buen tutorial sobre SVG (en ingls) en la direccin
[Link]/sv~/tutorial/[Link].
Muchas empresas de diseo grfico estn incluyendo en sus programas filtros
de exportacin y exportacin SVG, entre los que se encuentran CorelDRAW y
Adobe Illustrator.

SMIL
SMIL es un vocabulario XMP creado para la gestin de diseos multimedia, capaz
de integrar objetos de imgenes, sonido y vdeo, sincmnizando su secuenciacin.
SMIL ha sido desarrollado por el W3C, estando publicada la recomendacin de la
versin [Link] el 15 de junio de 1998, disponible en [Link]@R/REC-smil/,
tal como se puede observar en la Flgura 8.18.
La forma ms fcil de trabajar con SMIL pasa por la utilizacin de la herramienta de reproduccin multimedia RealPlayer, que est disponible en la pgina
web de RealNetworks ([Link]/sva/viewer/[Link]), una de

XML. Iniciacin y referencia

Sjmchronized AIultimedia Integration Language (ShIIL) 1.0


Specification

About this Dociimenl

Figura 8.18.
Recomendacin
oficial de SMIL
1.o.

las empresas ms conocidas entre los usuarios por sus productos gratuitos y de calidad. En la Figura 8.19 se puede ver a RealPlayer ejecutando un diseo S M I L .
Algunas empresas han empezado a incluir el formato S M I L entre las posibilidades de sus reprodudores y a desarrollar herramientas de creacin de diseos multimedia SMIL, siendo RealProducer y RealSlideShow, ambas de RealNetworks
([Link]), dos de las ms utilizadas.

Figura 8.19.
Aplicacin SMIL
activada desde
RealPlayer.

CAP~TULO 181 Tcnicas complementarias

Hemos llegado al final del libro y ya sabemos bastante de XML, y si se han realizado todos los ejercicios propuestos, tambin seremos capaces de disear nuestros
propios proyectos XML con la ayuda de alguna de las tcnicas adicionales existentes
en el extenso mundo del diseo web.
Yo no tengo la menor duda de que XML ir aumentando en importancia
segn se vayan terminando las especificaciones relacionadas, que darn lugar a una
multitud de filtros, visualizadores, vocabularios, aplicaciones y herramientas de
todo tipo, haciendo del XML el fundamento de la mayor parte de los lenguajes de
marcas que proliferan por lnternet y, en consecuencia, el lenguaje universal que
esperaba desde hace tiempo la computacin.
El lmite del XML est sin delimitar, pues incluso se est trabajando en lenguajes XXML (Extensible XML), capaces de proporcionar al XML facultades avanzadas
de los lenguajes de automatizacin (Java, VBasic, C), como es el caso de XFA
(XML For All) disponible en [Link].
Por otro lado, puede dar la impresin de que XML est todava sin desarrollar,
dada la cantidad de especificaciones dependientes que todava estn en desarrollo,
pero la mayora de ellas estn a punto de terminar su proceso y, en muchos casos,
las empresas y desarrolladores disponen de aplicaciones que van actualizando
segn se publican las nuevas modificaciones, para que, una vez publicada su recomendacin, estn dispuestas para su utilizacin prctica.
Slo me queda por puntualizar al lector que tenga la seguridad, que con lo visto
en este libro, puede desarrollar pginas web basadas en XML de calidad similar a las
pginas web realizadas con HTML, con las ventajas aadidas de gestin de datos
que proporciona XML, pero tambin quiero recordar que para aprovechar XML al
mximo de sus posibilidades es preciso que ample sus conocimientos por medio de
otros libros ms avanzados y especializados y, por supuesto, con el aprovechamiento de las posibilidades de Internet, disponiendo en el Apndice B de una relacin de recursos tiles para la ampliacin de conocimientos.

N este apndice se incluyen tablas y resmenes de algunas normas y especificaciones tiles para el seguimiento del libro.

RELACIN
DE CARACTERES ISO 8859-1
Carcter
&

<
>
espacio sin rotura
i
U

f
D
Y
1

5
O
a

a
7

Cdigo

Nombre de entidad

&#34;
&#38;
&#60;
&#62;
&#160;
&#161;
&#162;
&#163;
&#164;
&#165;
&#166;
&#167;
&#168;
&#169;
&#170;
&#171;
&#172;

&quot;
&amp;
&It;
&gt;
&nbsp;
&iexcl;
&cent;
&pound;
&curren;
&yen;
&bwbar;
&sect;
&uml;
&copy;
&ordf;
&Iaquo;
&not;
(Contina)

XML. Iniciacin y referencia


(Continuacin)

Carcter

Cbdigo

~226;

Nombre de entidad

&acirc;
(Contina)

APNDICE

[A]

Resmenes y tablas

(Continuacin)

Car-cter

Cdigo

Nombre de entidad

TABLA DE RELACIN:ISO Latin-1 / UNICODE


000 001 002 003 004 005 006 007 008 009 OOA 00B OOC 00D 00E OOF

XML. Iniciacin y referencia

TABLA RESUMEN CSS

Relacin de las principales propiedades ( S S - 2 organizada por temas relacionados.

3
a

Propiedades de caja (Box Model)


Nombre de
propiedad

Valores
principales

Valor
inicial

Se
aplica a:

Se
hereda?

Descripcin

margin-top
margin-rigth
margin-left
margin-bottom

distancia-margen
porcentaje

Todo

No

Especifican el tamao
del margen de la caja

margin

distanciamargen
porcentaje

Indefinido

Todo

No

Forma abreviada de
introducir el tamao de
los cuatro mrgenes

padding-top
padding-right
padding-left
padding-botton

di~tancia~relleno O
porcentaje

Todo

No

Especifican el tamao
del relleno de la caja

padding

distancia-relleno
porcentaje

Todo

No

Forma abreviada de
introducir el tamao de
los rellenos

border-top-width
border-rigth-width
border-left-width
border-bottom-width

distancia-borde
thin
medium
thick

Indefini- Todo
do

No

Especifican el tamao
del borde de la caja

border-width

distancia-borde
thin
medium
thick

medium

Todo

No

Forma abreviada de
introducir el tamao de
los cuatro bordes

border-top-color
border-rigth- color
border-bottom-color
border-left-color

color

La proTodo
piedad
color del
elemento

No

Especifican el color del


borde

border-color

color
transparent

La proTodo
piedad
color del
elemento

No

Forma abreviada de
introducir el color de
los cuatro bordes

border-top-style
border-rigth-style
border-bottom-style
border-left-style

none
hidden
dotted
dashed
solid
double
groove
ridge
inset
outset

none

No

Especifican el estilo del


borde

Todo

(Contina)

APNDICE [A]

Resmenes y tablas

Propiedades de caja (Box Model) (Continuacin)


Nombre de
propiedad

Valores
principales

Valor
inicial

Se
aplica a:

Se
hereda?

Descripcin

border-style

none
hidden
dotted
dashed
solid
double
groove
ridge
inset
outset

None

Todo

No

Forma abreviada de
introducir el estilo de
los cuatro bordes

border-top
border-rigth
border-bottom
border-lefi

distancia-borde
estiloborde
color

Indefinido

Todo

No

Forma reducida de
introducir las propiedades de tamao, estilo y
color de los bordes
superior, izquierdo,
inferior y derecho

border

distanciaborde
estiloborde
color

Indefinido

Todo

No

Forma abreviada de
introducir el tamao, el
color y estilo de los
cuatro bordes

Propiedades de visualizacin (Formafting Model)


Nombre de
propiedad
display

Valores posibles
inline
block
list-item
run-in
compact
marker
table
inline-table
table-row-group
table-column-group
table-header-group
table-footer-group I
table-row
table-cell
table-caption
none

Valor
inicial
inline

Se aplica a:
Todo

Se
hereda?
No

Descripcin
Controla el modelo de
visualizacin para los
diversos elementos

(Contina)

XML. Iniciacin y referencia

Propiedades de visualizacin (Formatting Model) (Continuacin)


)

Nombre de
propiedad

Valores posibles

Valor
inicial

Se aplica a:

Se
hereda?

Descripcin

position

static
relative
absolute
fixed

static

Todo, salvo el
No
contenido generado

Controla el posicionamiento de los elementos en el rea de visualizacin

t OP

medida-margensuperior
porcentaje
auto

auto

Elementos con No
posicionamiento

Controla el margen
general superior

left

medida
-margen-izquierdo
porcentaje
auto

auto

Elementos con No
posicionamiento

Controla el margen
general izquierdo

rigth

medida-margen-derecho
porcentaje
auto

auto

Elementos con No
posicionamiento

Controla el margen
general superior

bottom

medida-margen-inferior
porcentaje
auto

auto

Elementos con No
posicionamiento

Controla el margen
general superior

float

let3
rigth
none

none

Todo, salvo ele- No


mentos con
posicionamiento
y contenido
generado

Indica si un elemento
debe flotar o no a
derecha o izquierda

clear

block
inline
ilst-item
none

none

Elementos de
bloque

No

Controla el flujo en los


elementos contiguos a
elementos flotantes

z-index

cantidad-deorden
auto

auto

Elementos con No
posicionamiento

Controla la posicin de
las capas

direction

Itr
rtl

Itr

Todo

Controla la direccin
del texto

width

medida-ancho
porcentaje
auto

auto

Todo, pero no
No
reemplaza los
elementos en
Inea, columnas
de tabla y grupos de columnas

Especifica el ancho de
una caja de bloque

heigth

medidaplto
porcentaje
auto

auto

Todo, pero no
reemplaza los
elementos en
Inea, filas de
tabla y grupos
de filas

Especifica el alto de
una caja de bloque

No

(Contina)

APNDICE [A]

Resmenes y tablas

Propiedades de visualizacin (Formaffing Model) (Contnuacin)


-

Nombre de
propiedad
he-heigth

Valores posibles
normal
coeficiente-multiplicador
medidaalto
porcentaje

vertical-align baseline
sub
super
t0P
text-top
middle
bottom
text-bottom
porcentaje
medida

Valor
inicial

Se aplica a:

normal Todo

Se
hereda?
S

baseline Elementos en
No
lnea y celdas de
tabla

Descripcin
Especifica el alto de la
caja

Controla la alineacin
vertical

Propiedades de lista (List)


Nombre

Valores

Valor
inicial

Se aplica a:

$e
Descripcin
hereda?

list-style-type disc
circle
square
decimal
decimal-leading-zero
lower-roman
upper-roman
lower-greek
lower-alpha
upper-alpha
lower-latin
upper-latin
hebrew
armenian
georgian
cjk-ideographic
hiragana
katakana
hiragana-iroha
katakana-iroha
none

disc

Elementos con
la propiedad
display fijada a
list-item

Controla la apariencia
de los marcadores de
los elementos de lista

list-styleimage

<urb
none

none

Elementos de
lista

Indica la imagen que


puede ser utilizada
como marcador de los
elementos de lista

list-styleposition

nside
outside

outside

Elementos de
lista

Indica la posicin del


marcador respecto al
elemento de lista
(Continua)

1
0
a
F

XML. Iniciacin y referencia

Propiedades de lista (List) (Continuacin)

list-style

Valor
inicial

Valores

Nombre

clist-style-type>
<list-style-position>
<M-style-image>

Indefinido

Se aplica a:
Elementos de
lista

Se
hereda?
S

Descripcin
Forma abreviada de
introducir las tres propiedades

Contenido generado y numeracin automtica


(Generated Content, Automatic Numbering)
Valor
inicial

Valores

Nombre

Se aplica a:

Se
hereda?

Descripcin

content

<string>
<uri>
<counter>
attr(X)
open-quote
close-quote
no-open-quote
no-close-quote

Cadenavaca

quotes

<string> <string>
none

Depen- Todo
de del
visualizador

Especifica el tipo de
comillas

counterincrement

<identifier> <integer>
none

none

Todo

No

Controla el incremento
de la numeracin

counter-reset <identifier> <integer>


none

none

Todo

No

Controla la numeracin
automtica

market-offset distancia
auto

auto

Elementos con la No
propiedad display fijada a
market

pseudo-elemen- No
tos :before y
:after

Se utiliza para crear


contenido en un documento

Especifica la distancia
entre los limites de la
caja del marcador y de
la caja principal

Paginacin (Paged Media)


Valor
inicial

Valores

Nombre

Se aplica a:

Se
hereda?

Descripcin

marks

crop
cross
none

none

Contexto de
pgina

N/A

Controla las marcas de


impresin fuera de la
caja

orphans

cantidad

Elementos de
bloque

Controla las lneas


hurfanas

Page

identificador
auto

auto

Elementos de
bloque

Indica un tipo de pgina para un elemento


(Contina)

APNDICE

[A]

Resmenes y tablas

Paginacin (Paged Media) (Continuacin)


Nombre

Valor
inicial

Valores

Se aplica a:

Se
hereda?

Descripcin

auto
always
avoid
left
rigth

auto

Elementos de
bloque

No

Controla la ruptura de
pgina despus del elemento

page-breakbefore

auto
always
avoid
left
rigth

auto

Elementos de
bloque

No

Controla la ruptura de
la pgina antes del elemento

page-breakinside

auto
avoid

auto

Elementos de
bloque

Controla la ruptura de la
pgina en el elemento

size

auto
portrait
landscape

auto

Contexto de
pgina

N/A

Indica el tamao y
orientacin de la pgina

widows

cantidad

Elementos de
bloque

Controla las lneas viudas

--

Propiedades de color y de fondo (Colors and Backgrounds)


Nombre

Valores

Valor
inicial

Se aplica a:

se
hereda?

3
e

page-breakafter

Descripcin

color

color

Depende
del visualizador

Todo

indica el color del texto

backgroundcolor

color

tramparent
tramparent

Todo

No

Indica el color de
fondo de un elemento

backgroundimage

URI
none

none

Todo

No

Indica, mediante su
URI, la imagen del
fondo de un elemento.

backgroundrepeat

repeat
repeat-x
repeat-y
no-repeat

repeat

Todo

No

Controla la repeticin
de la imagen del fondo

backgroundattachment

scroll
fixed

scroll

Todo

No

Controla la fijeza o el
desplazamiento de la
imagen del fondo
(Continua)

XML. Iniciacin y referencia

Propiedades de color y de fondo (Co/ors and BarkgroundI) (iontinuacibn)


Nombre
backgroundposition

Valores
porcentaje
distancia

Valor
inicial
O%, 0%

~ O P

Se aplica a:
Bloques y elementos reemplazados

Se
hereda?

Descripcin

No

Indica la posicin de la
imagen del fondo

No

Indica todas las propiedades individuales

center
botton
left
rigth
background

background-color
Indefinido Todo
background-image
background-repeat
background-attachent
background-position

Propiedades de tipos de letra (Font)


Nombre

Valores

Valor
inicial

Se aplica a:

Se
hereda?

Descripcin

font-family

nombrede-fuente
nombre~enrico

Depende Todo
del visualizador

Indica un listado de
nombres de familias de
fuentes o nombres
genricos de familias
de fuentes

font-style

normal
italic
oblique

normal

Todo

Indica el aspecto de
una familia de fuentes

font-variant

normal
small-caps

normal

Todo

Si

Indica una fuente normal o versalles

font-weight

normal
bold
bolder
lighter

normal

Todo

Indica el aspecto de la
fuente

1O0
200

...
800
900

font-sizeadjust

cantidad
none

none

Todo

Indica el valor
tamao de fuente/
altura x

font-size

tamao-absoluto
tamao-relativo
cantidad
porcentaje

medium

Todo

Indica el tamao de la
fuente

(Contina)

APNDICE

[A]

Resmenes y tablas

Propiedades de tipos de letra (Font) (Continuacin)


Nombre

Valor
inicial

Valores

Se aplica a:

Se
hereda?

Descripcin

font-stretch

normal
wider
narrower
ultra-condensed
extra-condensed
semi-condensed
condensed
ultra-expanded
extra-expanded
semi-expanded
expanded

normal

Todo

Especifica el aspecto de
compresin o expansin de una determinada fuente

font

font-style
font-variant
font-weight
font-size
font-family
caption
icon
menu
messagebox
small-caption
status-bar

Indefinido Todo

Si

Indica las propiedades


individuales y las del
sistema juntas

Propiedades de texto (Text)


Nombre

Valores

Valor
inicial

Se

a:

Se
hereda?

Descripcin

normal

Todo

Si

Indica el espacio entre


palabras

normal

Todo

Indica el espacio entre


letras

none
underline
overline
he-trough
blink

none

Todo

No

Indica los efectos decorativos del texto

capitalize
uppercase
lowercase
none

none

Todo

Controla las maysculas y las minsculas

word-spacing

normal
valor

letter-spacing

normal
valor

text-decoration

text-transform

'

(Contina)

3
6

XML. Iniciacin y referencia

Propiedades de texto (Text) (Continuacin)

Nombre

Valor
inicial

Valores

Se

Se
hereda?

a:

Descripcin

text-align

eft
right
center
justify

Depende Elementos de
del visuali- bloque
zador

Indica la alineacin de
un bloque de texto

text-indent

valor
porcentaje

Elementos de
bloque

Si

indica la sangra de la
primera lnea de un
bloque de texto

ext-shadow

none
color
valor, valor, ...

none

Todos

No

Indica un listado de
efectos de sombra del
texto

white-space

normal
Pre
nowrap

normal

Elementos de
bloque

Controla el comportamiento de los espacios en blanco

Propiedades de tabla (Table)


Nombre

Valor
inicial

Valores

Se aplica a:

Se
hereda?

Descripcin

border-collap- collapse
se
separate

collapse

Elementos de
tabla y en lnea
de tabla

Indica un sistema de bordes de tablas

caption-side

toP

Elementos de
ttulo de tabla

indica la posicin del ttulo


respecto a la tabla

border-spacing valor

Elementos de
tabla y en lnea
de tabla

Indica la separacin de las


celdas adyacentes

empty-cells

show
hide

show

Elementos de
celda de tabla

Controla la presentacin
de las celdas vacas

table-layout

auto
fixed

auto

Elementos de
tabla y en lnea
de tabla

No

Controla el sistema de
gestin de las celdas

top
bottom
left
rigth

APNDICE [Al

Resmenes y tablas

lnterfaz de usuario (User Interface)


Nombre

Valores

cursar

URI
auto
crosshair
default
pointer
move
e-resize
ne-resize
nw-resize
n-resize
se-resize
sw-resize
S-resize
w-resize
text
wait
help

outline

outline-color
outline-style
outline-width

outline-color

Valor
inicial
auto

Se aplica a:

Todo

Se
hereda?

Descripcin

Indica el modelo de cursor

Ver propie- Todo


dades individuales

No

Forma abreviada de especificar las propiedades del


contorno

border-color
invert

invert

Todo

No

Color del contorno

outline-style

border-style

none

Todo

No

Estilo del contorno

outline-width

border-color

medium

Todo

No

Ancho del contorno

XML. Iniciacin y referencia

TABLA RESUMEN H T M L
ISTADO ordenado por orden alfabtico de las etiquetas HTML ms importantes, con indicacin de los atributos ms usuales en cada caso y de su utilidad. Tambin se indica si se precisa etiqueta de cierre o no. Algunas etiquetas
no son estndar, pero se aceptan en ciertos visualizadores web.

<!- * * ->
Comentario
<!DOCTYPE HTML PUBLlC "'*"
Prlogo (TEXTO) (TEXTO)

"**">

<A HREF="**"> </A>


Enlace hipewnculo (URL)
<A HREF=""#**" > </A>
Enlace hipewncuio a marcador (URL#MARCA)
<A HREF="#""> </A>
Enlace a marcador del propio documento (#MARCA)
<A HREF="'*" TARCET="""> </A>
Enlace hipewncuio con indicacin de destino (URL) (NOMBRE)
<A NAME="" "> </A>
Descripcin de marcador (MARCA)
<ABBR> </ABBR>
Estilo de abreviatura
<ACRONYM> <IACRONIM>
Estilo de acrnimo
<ADDRESS> </ADDRESS>
Estilo para la direccin del documento, normalmente en cursiva
<APP> </APP>
Igual que <APPLET>
<APPLET NAME="**" CLASS=""" WIDTH="""
HEICHT=""">
Aplicacin ejecutable (NOMBRE) (URL) (VALOR) (VALOR)

</APPLET>

<AREA SHAPE="""
COORDS="* * " HREF=""">
Enlace hipewncuio en mapa grfico (FIGURA) (COORDENADAS) (URL)
<AU> </AU>
Nombre del autor
<B> </B>
Negrita
<BANNER> </BANNER>
Visualiza lonotipos o avudas mviles
<BASE HREF=""">
Direccin del documento (URL)
<BASE TARCET="**">
Nombre de la sesin base (NOMBRE)
<BASEFONT SIZE="** ">
Tamao del tipo de letra base (VALOR)

APNDICE [A]

Resmenes y tablas

<BDO DIR="" "> </BDO>


Indica la direccin de escritura (Itr/rtl)
<BGSOUND>
Sonido de fondo
<BIG> </BIG>
Tamao grande de letra
<BLINK> </BLINK>
Efecto de parpadeo
<BLOCKQUOTE> </BLOCKQUOTE>
Sangrado de bloque de texto
<BODY> </BODY>
Cuerpo del documento
<BODY ALINK="""> </BODY>
Cuerpo con indicacin del color del enlace activo (COLOR)
<BODY BACKGROUND="""> </BODY>
Cuerpo con indicacin de la imagen del fondo (URL)
<BODY BGCOLOR="" "> </BODY>
Cuerpo con indicacin del color del fondo (COLOR)
<BODY LINK="""> </BODY>
Cuerpo con indicacin del color del enlace (COLOR)
<BODY ONLOAD="""> </BODY>
Cuerpo con indicacin de la accin a ejecutar en la activacin (ACCIN)
<BODY TEXT=" * * "> </BODY>
Cuerpo con indicacin del color del texto (COLOR)
<BODY VLINK="**"> </BODY>
Cuerpo con indicacin del color del enlace visitado (COLOR)
<BQ> </BQ>
Igual que <BLOCKQUOTE>
<BR>
Rotura de lnea
<BUTTON> </BUTTON>
Botn
<CAPTION> </CAPTION>
Cabecera de tabla
<CENTER> </CENTER>
Centrado
<CITE> </CITE>
Cita
<CODE> </CODE>
Cdigo
<COL>
Columna de tabla
<COLGROUP> </COLGROUP>
Grupo de columnas
<CREDIT> </CREDIT>
Crditos del documento

XML. Iniciacin y referencia

<DD> </DD>
Definicin de lista de definicin

) <DEL> </DEL>
Texto eliminado
<DFN> </DFN>
Definicin
<DIR> </DIR>
Lista de directorio sin numerar
<DIV> </DIV>
Divisin de contenedor eenrico
<DL> </DL>
Lista de definicin
<DT> </DT>
Definicin de elemento de lista de definicin
<EM> </EM>
nfasis, normalmente cursiva
<EMBED SRC="**" WIDTH="""
HEICHT=""">
Incrustacin de objeto (URL) (VALOR) (VALOR)
<FIELDSET>
Agrupacin de campos de formulario
<FIC SRC="**"> </FIC>
Insercin de figura (URL)
<FN ID="""> </FN>
Nota en el pie de pgina (NOMBRE)
<FONT COLOR=""" FACE="**" SIZE="**" > </FONT>
Definicin del tipo de letra (COLOR) (TIPO o FAMILIA) (VALOR)
<FORM ACTION="** " METHOD="**"> </FORM>
Formulario (URL) (get/post)
<FRAME NAME="**" SCROLLINC="**" SRC="**">
Descripcin de cuadro o marco (NOMBRE) (yes/no/auto) (URL)
<FRAMESET ID="*"' ROWS="**" COLS="""> </FRAMESET>
Definicin de cuadros o marcos (NOMBRE) (VALOR) (VALOR)
<He ALICN="""> </H>
Ttulos (1 a 6) (left/center/right)
<HEAD> </HEAD>
Cabeza
<HR ALICN="**" SIZE=""" WIDTH="*"'>
Lnea horizontal (left/center/right) (VALOR) (VALOR)
<HTML> </HTML>
Lmites del documento
<I> <A>
Cursiva
<IFRAME> </IFRAME>
Subventana del documento

APNDICE [A]

Resmenes y tablas

<INPUT MAXLENCHT="**" NAME=""" SIZE="**" VALUE="**">


Entrada de formulario (VALOR) (NOMBRE) (VALOR) (NOMBRE)
Tipo de entrada (text/password/checkbox/radio/image/hidden/submit/reset)
<INS> </INS>
Texto insertado
<ISINDEX> </ISINDEX>
Entrada de texto para bsqueda de ndice
<KBD> </KBD>
Estilo de texto de teclado
<LABEL> </LABEL>
Etiqueta de campo de formulario
<LANC> </LANC>
Idioma
<LECEND> </LECEND>
Etiqueta de grupo de campos de formulario
<LH> </LH>
Cabecera de una lista
<LI TYPE="**"> < / L b
Elemento de lista con vieta (disc/circle/square)
<LI TYPE="**" VALUE="*"'> < / L b
Elemento de lista ordenada (A/a/l/i/l) (VALOR)
<LINK HREF="**"> </LINK>
Relacin de enlace (URI)
<MAP NAME="**"> </MAP>
Mapa (NOMBRE)
<MARQUEE> </MARQUEE>
Efecto de texto desplazable
Lista de men
<META NAME="**" CONTENT="**">
Informacin adicional (NOMBRE) (TEXTO)
-- -

<META http-EQUIV="**" CONTENT="**">


Metaenlace (NOMBRE) (VAL0R;URL)
<NOBR> </NOBR>
Anulacin de rotura de lneas
<NOEMBED> </NOEMBED>
Instrucciones para visualizadores que no soportan <EMBED>
<NOFRAMES> </NOFRAMES>
Contenido para visualizadores sin cuadros
<NOSCRIPT> </NOSCRIPT>
Alternativa a visualizadores que no soportan lenguajes de gui6n
<NOTE> </NOTE>
Anotacin

XML. Iniciacin y referencia

COL TYPE=""" VALUE="""> </OL>


Lista ordenada (A/a/l/i/l) (VALOR)
<OPTGROUP> </OPTGROUP>
) Lista de opciones
<OPTION> </OPTION>
Opcin de formulario
<OVERLAY SRC="'*"> </OVERLAY>
Superposicin de imgenes (URL)
<P ALIGN="**"> </P>
Prrafo (left/center/right/justify)
<PARAM NAME="*'" VALUE="**">
Especificacin de valor de propiedad (NOMBRE) (VALOR)
<PERSON> </PERSON>
Nombre de persona
<PRE WIDTH=""">
</PRE>
Presentacin preformateada (VALOR)
<Q> </Q>
Cita interna, normalmente entre comillas
<S> </S>
Estilo de tachado
<SAMP> </SAMP>
Texto de muestra
<SCRIPT TYPE="*'" LANGUAGE="**"> </SCRIPT>
Contenedor de cdigo (TIPO-MIME) (LENGUAJE)
<SELECT NAME="""> </SELECT>
Seleccin de lista en formulario (NOMBRE)
<SMALL> </SMALL>
Tipo de letra pequea
<SOUND>
Sonido de fondo
<SPAN> </SPAN>
Contenedor genrico en lnea
<STRIKEs </STRIKE>
Estilo de tachado
<STRONG> </STRONG>
Estilo resaltado de texto, normalmente negrita
<STYLE> </SRLE>
Informacin de estilo
<SUB> </SUB>
Subndice

- -

<TAB ID=""">
Tabulador (NOMBRE)

APNDICE

[A]

Resmenes y tablas

<TBODY> </TBODY>
Cuerpo de tabla
<TD COLSPAN=""" ROWSPAN=""" WIDTH=""
Celda de tabla (VALOR) (VALOR) (VALOR)

"> </TD>

Entrada de datos con varias lneas de texto en formulario (NOMBRE) (VALOR) (VALOR)
Pie de tabla
<TH> </TH>
Cabecera de tabla
<THEAD> </THEAD>
Cabecera de tabla
<TITLE> </TITLE>
Titulo
<TR BCCOLOR="""> </TR>
Fila de tabla (COLOR)
<TT> </TT>
Efecto de tipo de letra de mquina de escribir
<U> </U>
Subrayado

<UL TYPE="""> </UL>


Lista desordenada (disc/cirle/square)
<VAR> </VAR>
Estilo de variable
<WBR>
Particin de palabra
<XML> </XML>
Contenedor de documento XML
<XMP> </XMP>
Texto respetando los saltos de lnea

ELEMENTOS HTML RELACIONADOS CON DSO

OS elementos HTML que pueden vincularse a DSO disponen de atributos


especiales que proporcionan la informacin de conexin que precisan. Los
principales atributos son DATASRC (para el identificador del DSO) y DATAFLD
(para el nombre del campo que se desea controlar).
A continuacin se muestra la lista de los elementos HTML que pueden participar en la vinculacin de datos con IE5,debiendo tener en cuenta que solamente
TABLE es capaz de conseguir una vinculacin tabular.

XML. Iniciacin y referencia

3
0

Propiedad de vinculacin

Actualiza los datos? Se muestra como...

href

No

Texto

kLET

pararn

Texto

BUTON

innerText, innerHTML

No

HTML

Elemento HTML

DIV

innerText. innerHTML

No

HTML

FRAME

src

No

Texto

IFRAME

src

No

Texto

IMC

S rc

No

Texto

INPUT TYPE=CHECKBOX

checked

Texto

INPUT TYPE=HIDDEN

value

Texto

INPUT TYPE=LABEL

value

Texto

INPUT TYPE=PASSWORD value

Texto

INPUT TYPE=RADIO

checked

Texto

INPUT TYPE=TEXT

value

Texto

LABEL

innerText, innerHTML

No

HTML

MARQUEE

innerText, innerHTML

No

HTML

OBJECT

~ararn

Texto

SELECT

Text, option

Texto

SPAN

innerText, innerHTML

TABLE
TEXTAREA

value

No

HTML

No

Texto

Texto

Recursos, Enlaces
y Bibliografa

N este apndice se incluyen listados, clasificados por apartados, de recursos y


enlaces a sus direcciones web, relacionados con XML. Tambin existe una relacin de la bibliografa ms importante editada en espaol sobre XML.
La seleccin de datos se ha realizado de forma selectiva, de acuerdo con el contenido del libro, existiendo muchos ms recursos accesibles en lnternet sobre XML.
En el interior del libro se hace continua referencia a otros recursos relacionados
con cada captulo.
Se recuerda al lector interesado en XML la facilidad de recurrir a sus buscadores
de recursos favoritos para conseguir informacin especfica sobre este tema.
Este apndice se encuentra disponible en [Link] para facilitar la conexin con los recursos sin necesidad de teclear sus direcciones.

VISUALIZADORES Y PROCESADORES
Amaya
Visualizador oficial de W3C
DocZilla
Editor-visualizador XML
[Link]
InDelv
Visualizador y editor XML
htt~://[Link]/

XML. Iniciacin y referencia

lnternet Explorer 5.5


Visualizador XML de Microsoft
[Link]

MSN Explorer (beta)


Visualizador web y centro de utilidades de Microsoft
htt~://~[Link]/[Link]
MSXML 3 (beta)
Procesador XML de Microsoft
[Link]
Netscape 6 (beta)
Visualizador XML de Netscape
Opera 4
Visualizador de Opera con capacidades XML
htto://www.o~[Link]
Oracle XML
Parser para lava, de Oracle
[Link]
XML4J
Parser para lava, de IBM

NORMAS Y ESPECIFICACIONES
Annotated XML Specification
La especificacin de XML comentada
[Link]
CSS
Informacin oficial sobre CSS
[Link]
DOM
Informacin oficial sobre DOM
htt~://[Link]/DOM/
DSSSL
Informacin sobre DSSSL
[Link]
HTML / XHTML
Informacin oficial sobre HTML y XHTML
[Link]
HyTime
Informacin sobre HyTime
htt~://[Link]/
ISO
Sede de ISO
[Link]
MathML
Informacin oficial sobre MathML
[Link]

APNDICE [B]

Recursos, Enlaces y Bibliografa

Namesapace
Informacin oficial sobre Namespace
SGML
Informacin sobre SCML
[Link] .ore/cover/
SMIL
Informacin oficial sobre SMIL
htt~://[Link]/AudioVideo/
SVG
Informacin oficial sobre SVC
UNICODE
Sede de Unicode
htt~://[Link]/
URI / URL
Informacin oficial sobre URI y URL
htt~://[Link]/Addressine/
VML
Estndar VML de Microsoft
[Link]
[Link]
World Wide Web Consortium
Consorcio World Wide Web, encargado de los principales estndares relacionados con XML
htt~://[Link]
XForms
Informacin oficial sobre XForms
[Link]
XML
Informacin oficial sobre XML
[Link] .org/XMLI
XML 1.0 Second Edition
Recomendacinoficial de W3C
XML 1.0
Recomendacin XML 1.O traducida al espaol por el Grupo de Trabajo SCML-ESP
[Link]
XML 1.O
Traduccin al espaol de la especificacin de XML. realizada por Fabio Arciniegas A
htt~://[Link]/-I-arcini/S~[Link]
XML 1.O
Traduccin de la especificacin 1.O de XML realizada por Jaime Sagarduy
XML Path
Informacin oficial sobre XPath
htto://www.w3 .ore/Style/XSL/
XML Pointer / XML Link
Informacin oficial sobre XPointer y XLink
htto://www.w3 .ore/XML/Linking

3
0

XML. Iniciacin y referencia

XML Query
Informacin oficial sobre XML Query
htt~://[Link]/XML/Query

) xML Schema
Informacin oficial sobre XML Schema
htt~://[Link]/XML/Schema
XSL / XSLT
Informacin oficial sobre XSL y XSLT
[Link]

UTILIDADES Y HERRAMIENTAS
1st Page 2000

Editor web
[Link]
[Link] stpaae/
EXml
Sencillo y til editor XML/XSL de CUESoft
htt~://[Link]/~roducts/[Link]~
Extensebility
Editores y herramientas para XML
[Link]
HTML-Kit
Editor para lenguajes de marcas
[Link]
Near & Far
Herramientas de autor para XML
htt~://www.o~[Link]/near
and far/
Tidy
Corrector de cdigo HTML, XHTML y XML
[Link]
Visual Markup
Editor XML
[Link]
WebWriter
Herramientas de autor
htt~://[Link]/
XMetal
Completo editor XML
htt~://[Link]/~roducts/xmetal
XML for All
XFA Script (metaXML) y XFA Editor (editor XML)
htt~://[Link]
XML Notepad (beta)
Sencillo editor XML no validante de Microsoft
[Link]
XML Pro
Editor XML
htt~://[Link]~[Link]/

APNDICE [E]

Recursos. Enlaces y Bibliografa

XML Resources

Utilidades de Jarnes Clark


[Link]
XML Spy
Editor XML muy completo
htt~://[Link]~[Link]/
XMLWriter
Editor XML, DTD, XSL, CSS ,...
[Link]

RECURSOS Y TUTORIALES
Alfredo Reino
Cursos e informacin sobre XML de Alfredo Reino, en espaol
htt~://[Link]/alf/[Link]~
Algoritmo
Artculos sobre XML, en espaol
htt~://[Link]
AlphaWorks
Desarrollos XML basados en Java, de IBM
[Link]
Aula Digital
Tutoriales de diseo web en espaol
htt~://[Link]/
Binding HTML Elernents to Data
Vinculacin DSO de datos con elementos HTML. por Microsoft
[Link]
BizTalk
Desarrollo de XML para empresas
[Link]
Caf con Leche
Recursos XML
htt~://[Link]/xrnl/[Link]
Curso HTML
Curso sobre HTML
[Link]
Cybercursos
Cursos de todo tipo, en espaol
[Link]
Data Binding
Vinculacin de datos DSO, por Microsoft
[Link] [Link]
[Link]
Herramientas para desarrolladores
[Link]
[Link]
Herramientas XML
htt~://~~~.[Link]/

XML. Iniciacin y referencia

[Link]
Todo sobre DTD
[Link] coml

) Free XML
Utilidades y herramientas XML gratis
htt~://[Link].~[Link]/download/xmItools/
Grupo de Trabajo SCML-ESP
Grupo de trabajo sobre SCML y XML, en espaol
httP://[Link]/-olea/sgml-es?/
IBM-XML
Apartado de IBM dedicado al XML
htt~://[Link]/xml/
Introduccin al XML en castellano
Curso de introduccin al XML, en espaol
htt~://[Link]/alf/xml/[Link]~
lntroduction to XSL
Tutorial de XSL
James Clark
Pgina web de James Clark
[Link]
La Variable
Artculos para programadores sobre XML, en espaol
htt~://[Link]/[Link]?tema=XML
Los Recursos
Herramientas para desarrolladores
[Link]
LT XML
Conjunto de herramientas para XML
[Link]
Microsoft-XML
Apartado de Microsoft dedicado al XML
htt~://[Link]/xml/
Mulberry Technologies
Informacin sobre XML y XSL
htt~://[Link]~[Link]/
OASIS
Informacin extensa sobre XML
[Link]
[Link]
Tutoriales e informacin sobre programacin, en espaol
[Link]
[Link]
Informacin, tutoriales y recursos sobre XML, XHTML y VMLISVC (en espaol)
[Link]
Schema Net
El mundo de los esquemas
[Link]

APNDICE [B]

Recursos, Enlaces y Bibliografa

SCML/XML home page


Informacin sobre SCML y XML
[Link]
Tejedores del Web
Diseo HTML y JavaScript, en espaol
[Link]
Tutorial XML
Tutonal sobre XML de Daniel M. Cermn. en espaol
[Link]
Wmaestro
Diseo web con HTML y VRML, en espaol
[Link]
Wrox
Librera especializada en XML
[Link]
XHTML Designers Resource
Informacin sobre XHTML
htt~://[Link]~[Link]/
[Link]
Recursos para desarrolladores
[Link]
[Link]
Exclusivamente XML, dependiente de OASIS
[Link]
XML 101
Tutorial sobre XML
[Link] .corn/
XML-ES
Pgina sobre XML de la Universidad Carlos III de Madrid, en espaol
htt~://[Link]/-xml/
XML lnfo
Recursos de referencia y de aprendizaje
[Link]
XML Journal
Revista sobre XML
[Link]
XML Magazine
Revista sobre XML
htt~://[Link]
XMLPITSTOP
Informacin y recursos sobre XML
[Link]
XML School
Tutorial sobre XML
[Link]
XML Software
Software relacionado con XML
htt~://[Link]

XML. Iniciacin y referencia

3
e

Noticias e informacin sobre acontecimientos relacionados con XML


[Link]
XML Webring
Anillo de recursos sobre XML
[Link]
XML / XSL Portal
Portal sobre XML y XSL
htt~://[Link]/xml/[Link]
XML Zone
Recursos variados sobre XML
[Link]

B ~ B L ~ O C R A FEN
~ A ESPAOL
Creacin de sitios Web con XML (CD-ROM)
Michael Floyd
Ed. Prentice Hall
Creacin de sitios Web con XML y Java (CD-ROM)
Maruyama, Tamura, Urarnoto
Ed. Prentice Hall
Desarrollo de soluciones con XML (CD-ROM)
Sturrn
d. McCraw-Hill
Gran libro de HTML XML
Oliver Pott
Ed. Marcornbo
-

Manual de XML
Charles F. Coldfarb y Paul Prescod
Ed. Prentice Hall
XML
Natanya Pitts
Ed. Anaya
XML Al descubierto (CD-ROM)
Michael Morrison
Ed. Prentice Hall
XML Iniciacin y Referencia (ejercicios en Internet)
Ramn Montero
Ed. McCraw-Hill
XML Paso a paso (CD-ROM)
Young
Ed. McCraw-Hill

ndice

Activacin XML-XSL-DOM en el cliente,


220
Activacin XML-XSL-DOM en el servidor,
23 1
Agrupaciones, 56
Anidados, 34
ANY, 116
API, 214
API simple para XML, 225
Arboles, 29, 134
ASP, 223
Atributos, 31,91, 119, 120
ATRIBUTE, 194
Ayuda de HTML, 68
Base de datos XML, 79
Bibliografa, 265
Buena formacin, 32

Cajas o bloques, 56
Canales activos, 17
Caracteres admisibles, 35

Caracteres ISO 8859-1, 241


Cascada (Hojas de estilo en), 10,47
CDATA, 120
CDATA, 41,197
CDF, 109
Codificacin, 37
Colisiones, 165
Colores, 60
Combinaciones de filtros, 161
Comentarios, 43,61
COMMENT, 194
Conflictos, 165
Consorcio W3C, 10
Contenido generado, 248
Control de atributos XML. 91
Control de textos, 61
COPY, 172
Creacin de nodos, 197
Creacin de nodos en la salida, 193
CSS, 10,47, 55, 244
CHOOSE, 186

DATAFLD, 82,96
DATAPACESIZE, 99
DATASRC, 82,96,99
DATATYPE, 207,228
Datos tabulados, 80
Declaracin de entidad, 123
Declaracin de lista de atributos, 119
Declaracin de notacin, 126
Declaracin de tipo de documento, 114

Declaracin de tipo de elemento, 115


Declaracin XML, 36
Definicin de tipo de documento, 107,
110
Documento CSS, 54
Documento XML-CSS, 49,63
Documentos asimtricos, 88
Documentos bien formados, 32
Documentos vlidos, 105, 1O7
Documentos XML, 25
Documentos XSL, 143
DOM, 213
D O M en el cliente, 220
D O M en el servidor, 232
DSO, 78
DTD, 27,105,107,110,228

Editor de textos ASCII, XII


Ejemplo de gestin DOM, 216
Ejemplos de creacin de nodos, 197
Ejemplos del libro, 23, 27
ELEMENT, 194
Elemento raz, 33
Elementos, 29, 31, 115
EMPTY, 116
ENCODINC, 37
Enlaces XML, 229
Entidad, 123
ENTITY, 121
ENTITY-REF, 197
Espacio de nombre, 68, 144,226
Espacios en blanco, 228
Especificaciones, 266
Esquemas XML, 106, 108, 228
Etiqueta de final, 29, 33
Etiqueta de principio, 29, 33
Etiqueta vaca, 33
Etiquetas, 5, 29, 33
EVAL, 202
Existencia de nodos, 155

Facilidades del texto, 100


Filtros de conjuntos, 163
Filtros XSL, 155
FISTPACE, 100
FIXED, 122
FO, 135
FOR-EACH, 174
Formularios XML. 231

CML, 6
Guiones en XSL, 200

Herramientas, 270
Hipertexto, 9
Hipervnculos XML, 230
Hojas de estilo, 10, 47, 133, 171
HTML, 9,76,109,255

ID, 120
IDREF, 120
IF, 182
IGNORE, 127
Imgenes, 63
IMPLIED, 122
INCLUDE, 127
Informacin XML, 26
Instrucciones de procesamiento, 36
lnterfaz de usuario, 253
lnternet Explorer, XII, 135, 204
Introduccin a XML, 3
ISO, 38,115
ISO Latin-1, 243

LASTPACE - 100
Lenguaje HTML, 9
Lenguaje XML, 11
Lenguajes de marcas, 4

Marcado de documentos, 6
Marcado de formato, 4
Marcado generalizado, 5
Marcas, 5
MathML, 109, 233
Maysculas, 35
Mejoras de documentos XML-CSS, 63
Minsculas, 35
Modelo de caja, 57
Modelo de objeto de documento, 213
MOVEFIRST, 96
MOVELAST, 96
MOVENEXT, 96
MOVEPREVIOUS, 96
MSXML, 145,204,225

Namespace, 68, 226

Navegacin controlada, 98
Netscape Navigator, XII, 108, 221, 223
NEXTPACE, 100
NMTOKEN, 120
NODE-NAME, 190
Nodos, 30, 143
Normas, 15, 16, 266
Notacin, 126
NOTATION, 121
Numeracin automtica, 248

Operadores, 118, 158


ORDENACI~N,177
ORDER-BY, 178, 182
OTHERWISE, 186

Patrones de localizacin, 151


PCDATA, 117
PI, 193
Plantillas XSL, 146
Posicionamiento, 58
PREVIOUSPACE, 100
Principios del DOM, 215
Procesadores, 265
Propiedades de caja, 244
Propiedades de color, 250
Propiedades de fondo, 250
Propiedades de lista, 248
Propiedades de tabla, 252
Propiedades de texto, 251, 252
Propiedades de tipos de letra, 251
Propiedades de visualizacin, 245, 246
Proyectos XML-XSL-DOM, 223
PWS. 17

[Link], XIV
Recursos, 269
Referencia de entidades, 41, 197
Reglas de estilo, 55
REQUIRED, 122

SAX, 225
SCRIPT, 201
Scripts en XSL, 200
Secciones CDATA, 41, 197
Secciones condicionales, 127
SCML, 6
SMIL, 12, 109, 235

STANDALONE, 40
SVC, 118,109,233

Tags, 5
TEXT, 100
Tipo de datos, 207, 228
Tipos de atributos, 120
Tipos de nodos XSL, 143
Transformacin, 135
Tratamiento de informacin, 26
Tutoriales, 269

UNICODE, 37,243
Unidades de medida, 59
URI, 226
URL, 227
URN, 227
UTF, 38
Utilidades, 268

Valor de nodos, 157


Valores de atributos, 34
Valores entre comillas, 34
Valores por defecto, 122
Variantes de presentacin, 83
VERSION, 37
Versin, 37
Visualizadores, 265
VML, 12,109,232
Vocabularios XML, 232

W3, 9
W3C, 10, 17, 18
Well formed, 32
WHEN, 186
Whitespace, 228
WML, 12,109
World Wide Web, 9
www, 9
WSIWC, 4

XForms, 231
XHTML, 11,109,231
XLink, 230
XML, 10, 11, 23
XML en HTML, 77
XML Schemas, 106,109,228

3
;

XPath, 137
XPointer, 2 3 0
XQL, 137
XSL, 1 3 3 , 1 3 4
XSL:APPLY-TEMPLATES, 147.176
XSL:A'TTRIBUTE, 194

XSL:FOR-EACH, 174
XSL:IF, 182
XSL:NODE-NAME, 190
XSL:OTHERWISE, 186
XSL:PI, 193
XSL:SCRIPT, 201
XSL:TEMPLATE, 1 4 6 , 1 7 6
XSL:VALUE-OF, 147
XSL:WHEN, 186
XSL-FO, 135
XSLT, 134, 137
XXML, 237

También podría gustarte