XML
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.:,.
Contenido
Antes de comenzar
..............................................................................XI
Caractersticas ............................................................................
Condicionantes ..........................................................................
Objetivos ....................................................................................
Contenido ..................................................................................
Complementos ............................................................................
Convenios utilizados ..................................................................
XI
XII
Xll l
XIV
XIV
XV
4
6
9
11
13
16
18
Contenido
..............
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
Contenido
115
119
120 1
122
123
126
127
128
172
177
182
182
186
190
193
193
194
194
194
197
197
197
200
201
202
204
205
Contenido
...................................... 261
263
264
266
267
270
.................................................................................................. 271
Antes de
comenzar
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,
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.
Contenido
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.
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.
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
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 ~
--
--
---- - -
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:
---
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]->
< 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
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
'
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.
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
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
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-
'
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.
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:
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.
Figura 1.9.
Traduccin
espaola de la
recomendacin
XML 1.0.
- - -- --
- --
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
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.
WCA-Z
Figura 1-10.
Pgina principal
del Consorcio
WWW.
i
'
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]
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.
Figura 1.11.
EXml es un
editor XML
sencillo y
gratuito.
."1
I .-',M
L..
, : . , .m
Conceptos principales
del X M L
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.
- --
- -
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-
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.
e
e
Pues bien, para empezar, esto es todo. Un ejemplo sencillo de informacin marcada con etiquetas ajustadas a las normas XML sera:
- -
- -
.- -
* -
- - -- -
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:
- -- -
--
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.
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.
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
.-
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
Figura 2.4.
Partes que
componen un
elemento.
<ELESmTO_1>
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
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.
Figura 2.6.
Ejemplo de
organizacin en
forma de rbol.
CAPITULO 123
1,
--
- - - ---
- -
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.
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
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]
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:
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
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,
milero
. !ROJO>
,
</CLARO> necio
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]
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:
---~
--
Ejemplo incorrecto:
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:
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]).
--
--
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
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:
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(
9
m
Referencia textual
Referencia numrica
- -
----
ctl'iiim X i I O >
El eiguiente cdigo ee legal: kltrPelcula>r Tom
</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:
donde cada referencia sera sustituida por el contenido del documento correspondiente.
--
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:
--
. .. . . .
--
<! - -
<!--
......
......
c!. Esto
......
c!-- Esto
......
-
es un
es un
-->
<!--
A--
-->
-->
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
Figura 3.1.
Recomendacin
css2.
CAP~TULO131
Ramn Montero
En
;.,;c,t-
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.
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
Noncero
Una introduccin:
...*-,
Sistema de marcado
......
Aclaracirn
Unos prrafos:
1
ED realidad, l a 0
...
i d e a s de eSta 'nueva* t e c n o l o g a .
s e baza
en
...
.,. ,
.. .
.?
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
---
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.
.:
-
, .
->,,cm,l?
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:
briis~:~lay:i-,lark;
font-fami1y:Verdana: font-si -=: l0pt;
text-align:i : i s t i ty )
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
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.
3
o
Propiedad
Comentario
Display:
Font -family :
Color:
Text-align:
'
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)
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:
(font-family:Verdana;color:r-~~-i;font-.-~z~:12ptl
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]
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:
borler-right-style:scml id;
bordec-bottom-wi3th:i.p~; boraer bottom-co1or:red;
~rd~r-b~~~+om-atyle:gr~ve;
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
CAP~TULO131
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.
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 %
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
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 * /
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
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
Figura 3.7.
-I
Un ejemplo de cdigo CSS que define el estilo de varios elementos 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:
Grupos de tipos
de letras
principales.
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:
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]
Figura 3.8.
Documento
[Link]
poco
R P O C ~ ,siendo
P F ~ C ?Ccmstanre
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].
CAPITULO [3]
..
--
. .. .
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.
'
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).
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.
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:
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:
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>
'
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
. ~;"I,os iicrmat:
.:j
, <= . :m
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.:.
. riicblu .
!
i f i .iri 5n
e-
cirro
m.+?,
CAP~TULO[3]
Figura 3.10.
Documento
[Link]
visto con IE5.
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.
Visualizacin
de documentos
X M L con HTML
o
o
e
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
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.
id-'nombre-id"
...
--
n r ~ - ~ d o c m r n t o - X I ~ . x n i l ~ > </script>
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.
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:
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.
Numero
Nombre
Apellido
Rdmbn P-ro
Curso
'
Nivel
Iniciacl6n
la&
3
d
Figura 4.4.
Resultado de
visualizar el
ejemplo04-03. htn
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]
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.
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.
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-
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.
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>
LISTA DE A L W S
Figura 4.7.
Documento
[Link]
USTA
DE A
L W S
nam
Figura 4.8.
Documento
ejemplo04-1 [Link]
CAPITULO [4]
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:
LISTA DE ALVMNOS
Jaime Segundo
Figura 4.9.
Documento
ejemplo04_12.htm
visto desde IE5.
CAP~TULO143
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]:
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.
DE PLLWIOC
m
---
Figura 4.10.
Documento
[Link]
visto desde IE5.
ctheadxtr bgcoloi
......
c/tr>c/thea&
ctbody>ctr bgcolo1
ctd align=*centerl
CAPITULO [4]
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.
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.
<center *
~ 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
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:
</-:>.
: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~
 ihnbep;Ihlt~hlt;hnbepr&nbept </buttonr&nbepl
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 ~ ~ ) .
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].
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:
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:
. . .</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,
..
...
......
</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.
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.
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
Definicin de Tipo de
Documento cDTD>
como el que viene a continuacin, que aprovecha al mximo la utilidad de los atributos:
--
- - - -
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
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 ]
HTML
MathML
SMIL
SVC
VML
W ML
XHTML
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
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.
[5]
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.
-
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>
<?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-
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?,
Figura 5.4.
Documento
ejernplo05-01 .xrnl
visto desde IE5.
(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
s&&to-rafz
PUBLIC 'nambr&&~'
<2TNL
HTMLc
il8ITLE>
e-BODY -
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>
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
tenido.
Es posible que incluya una lista de posibles elementos (element) dependientes.
Tambin es posible que incluya una mezcla (mixed) de los valores anteriores.
i
i
...
O [5]
--- -
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.
(+),
(*).
(?)
Opcin
Frecuencia
Opcional
Opcional y repetible
Necesario y repetible
O o 1 vez
O o mds veces
1 o mds veces
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+)>
Se pueden combinar varios operadores en una misma secuencia (en este ejemplo se han anidado varios subelementos):
!BLEMEXT autores (Autor+ (Nombre*, Apellido;?)
)N
JLO [ 5 ]
PRECAUCIN:
Los operadores no pueden ir precedidos de espacios en
blanco.
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:
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>
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
--
--
...
<! 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 . .
<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:
Descripcin
Obligatoriedad
#IMPLIED
No obliga a nada.
#REQUIRED
#FIXED
Obliga a insertar el
nico valor posible.
. ..
...
.i
a!
del valor por defecto #FIXED (fijo), que obliga a elegir el valor
: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
--,.
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:
...
--.-
------ - - - - - - -
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]
'l~ttp://[Link]/libro/[Link]>
...
'[Link]
< !EXTTT'L apendickB SYS'rEEI
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
) .
...
--
--- -
-.--
--
--
--
-.
que nos permite ahorrar cdigo cada vez que se precisa indicar las condiciones del
atributo preferencia.
--
PARA
LOSMANITAS:Para ver
"C,
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]
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
..
- -
. ..
< ! [ 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
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.
CONCLUSIONES FINALES
'
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-
Precio+)>
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:
CAP~TULO
[5]
-m-
-*-=>w.
Opciones bsicas
del Lenguaje de Hoja
de Estilo Extensible
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.
Figura 6.1.
Borrador oficial
de XSL.
CAP/TULO [6] Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>
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.
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.
Figura 6.5.
Recomendacin
oficial de XPath.
CAPITULO [6] Opciones biisicas del Lenguaje de Hoja de Estilo Extensible cXSL-l>
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'
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
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.
--
---
- --
--.-
-.
- -
3
a
j
Figura 6.7.
Resultado de abrir
[Link]
con IE5.
Figura 6.8.
Proceso de
actuacin del
procesador XSL.
----
- ---
---
---
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
<?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
Figura 6.10.
Resultado de
ejecutar
[Link].
. - ~--
-- -
- -
--
--
CAPITULO 161 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1,
CUMENTOS XSL
! tenga que vincular con un documento XSL debe incluir,
u cdigo, una instruccin de procesamiento particular
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:
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:
----.
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.
--
- -
--
--
---- -
---
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:
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-
..
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.
i
Figura 6.11.
Resultado de abrir
normas06-11 .xml
con IE5.
Ni&.
Dd-
-rkl
B h c h F-*o.
Hirimd
Cono
T&
hn,m
CAPITULO [6] Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>
---
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]:
XML.
Iniciacin y referencia
<x~I:templatematch='nonna'>
<[Link] sobie la norma:<BR />
<B>-xs1:value-of / x / B >
- /P>
'xsl:template>
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
Utilidad
//
Expresa alternativas.
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
cescue! a-verano>
<curso.
<escancia>
<opci ones>
[Link].-habitacin/Opci6n>
rULO [61 Opciones bsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>
o
o
o
o
o
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.
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:
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.
uio
ri vid-
'norma [ O b s e n & z * r
CAP~TULO
[6] Opciones bAsicas del Lenguaje de Hoja de Estilo Extensible <XSL-1>
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.....
--
-- -
--
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
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.
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>
Figura 6.19.
Resultado de
abrir
[Link]
con IE5.
Normas Web
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
------
----
A
o
El filtro norma [@id<$*' 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.
N o r m a s Web
Figura 6.21.
Resultado de
abrir
[Link]
con IE5.
e
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
abrir
[Link]
con IE5.
-.
N o r m a s Web
Figura 6.23.
Resultado de
abrir
[Link]
con IE5.
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).
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
Il
Sor$
$not$
Figura 6.24.
Resultado de
abrir
[Link]
con IE5.
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
Figura 6.26.
Resultado de
abrir
[Link]
con IE5.
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
sea igual
Operador
Utilidad
3
:a;:
a
Figura 6.28.
Resultado de
abrir
[Link]
con IE5.
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
Coritenldu
&?
el'ln
la c ~ c i de
n
pie
'Ogczy
sea igual
Escuela de Verano
Figura 6.29.
Resultado de
abrir
[Link]
con IE5.
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
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
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
--
--
- ---
- .
--
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.
base de las plantillas que controlan las reglas de transformacin del rbol origen en
el rbol resultante.
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
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.
Figura 7.1.
La aplicacin
XSL Visual
Pattern Builder
en accin.
CAP~TULO[ 7 ]
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.
Figura 7.2.
Resultado de
visualizar
texto07-01 .xml
con IE5.
Figura 7.3.
Resultado de
visualizar
[Link]
con IE5.
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 ]
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.
- -
----
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
Figura 7.5.
Resultado de
visualizar
[Link]
con IE5.
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
----
CAP/TULO [ 7 ]
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
Figura 7.6.
Resultado de
visualizar
[Link]
con IE5.
[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
- 02455 pesetls
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.
*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.
-
-~
--
---
--
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:
CAPITULO
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
C++
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.
C'
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 =++
CAPITULO [7]
'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.
# $ 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:
-- -
<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>
Figura 7.12.
Resultado de
visualizar
catalogo07-21 .xml
con IE5.
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 ]
.-
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.
. .
+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.
Listado de ttulos:
Libros de la e~jitorislMcGraw-HilI
Figura 7.14.
Resultado de
visualizar
[Link]
con 1E5.
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
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:
--
L do
--
-7,
-1 Mi ff
Figura 7.15.
Resultado de
visualizar
[Link]
con IE5.
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.
-
CAP~TULO
171 Opciones avanzadas del Lenguaje de Hoja de Estilo Extensible <XSL-2>
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,
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.
Si, por ejemplo, deseamos crear una instruccin de procesamiento como <?-m1
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:
..
,, I - -
un conlw r,-..? i r ~ - .:
,;
:g-,-,-r-r~,:mn~.
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
>
.--
.
i
v
-
......
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:
?
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 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
l1o-,, slo hay que incluir en el documento XSL un cdigo como el siguiente:
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.
---
--
--
CAPITULO [ 7 ]
'
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.
L i s t a de direcciones
.:-
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.
---
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.
---
--
--
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).
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:
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.
- -
CAP/TULO [ 7 ]
'-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.
-
---
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.
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
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:
rt?~1-11
t-n5=' ">
CAP~TULO[ 7 ]
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:
- -- - .-- - - - - -----.- -
-----
-~
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:
<?
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.
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
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.
'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.
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.
Nombre de objeto
Nodo
Descripcin
Attribute(Attr)
Representa un atributo.
Text
CDATASection
EntityReference
Entity
Processing
Instruction
Comment
Document
l Element
DocumentType
10
DocumentFragment
11
Notation
12
CharacterData
Implementation
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.
CAP~TULO[S]
Tcnicas complementarias
1Ver el
C ~ S C ~ YtAL
I ~ G C1.t~el mPtor?i3 cIRil.:,3
' i r r In Ii'ta
- deSC&
E * J I S ~[AtrCIS]
T
r t ~ p u ~s ~ 1 s[Actudir,irl
-
T s : . ~ - i ~ , t" >
function LietaCod()
f... \
function verArbol(baee1
, . . . (
- 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.
(RICLIChwmrgodoO-
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.
Figura 8.3.
Resultado de
activar el primer
bot6n en
catalogo08-01 .htm.
Figura 8.4.
Resultado de
activar el segundo
botn en
catalogo08-01 .htm
. . --
--
'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
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
-
--
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.
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
3
e
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 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
/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).
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.
Figura 8.7.
Resultado de
activar
[Link]
con NN4.
!
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; '
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--
Figura 8.8.
Resultado de
activar
ventas08-04. htm
con IE5.
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++.
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].
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.
Narnespaces in XML
World Wlde Wob COnsORlum 14January-1880
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:
,..
..-
-.
-.
-.
..
. .
. . .- .
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.
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:
CAPiTULO
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:
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.
Abslract
Figura 8.13.
Especificacin de
XPointer 1.O.
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.
--
---
--
--
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.
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.
Figura 8.15.
Desarrollo
MathML
activado desde
Amaya.
1
1
Figura 8.16.
Especificacin
oficial de SVC
1 .o.
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
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.
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
"
&
<
>
 
¡
¢
£
¤
¥
¦
§
¨
©
ª
«
¬
"
&
&It;
>
¡
¢
£
¤
¥
&bwbar;
§
¨
©
ª
&Iaquo;
¬
(Contina)
Carcter
Cbdigo
~226;
Nombre de entidad
â
(Contina)
APNDICE
[A]
Resmenes y tablas
(Continuacin)
Car-cter
Cdigo
Nombre de entidad
3
a
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
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
Todo
(Contina)
APNDICE [A]
Resmenes y tablas
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
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)
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
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
Indica si un elemento
debe flotar o no a
derecha o izquierda
clear
block
inline
ilst-item
none
none
Elementos de
bloque
No
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
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
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
list-styleposition
nside
outside
outside
Elementos de
lista
1
0
a
F
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
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
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
Especifica la distancia
entre los limites de la
caja del marcador y de
la caja principal
Valores
Nombre
Se aplica a:
Se
hereda?
Descripcin
marks
crop
cross
none
none
Contexto de
pgina
N/A
orphans
cantidad
Elementos de
bloque
Page
identificador
auto
auto
Elementos de
bloque
APNDICE
[A]
Resmenes y tablas
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
--
Valores
Valor
inicial
Se aplica a:
se
hereda?
3
e
page-breakafter
Descripcin
color
color
Depende
del visualizador
Todo
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)
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
center
botton
left
rigth
background
background-color
Indefinido Todo
background-image
background-repeat
background-attachent
background-position
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
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
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
Valores
Valor
inicial
Se
a:
Se
hereda?
Descripcin
normal
Todo
Si
normal
Todo
none
underline
overline
he-trough
blink
none
Todo
No
capitalize
uppercase
lowercase
none
none
Todo
word-spacing
normal
valor
letter-spacing
normal
valor
text-decoration
text-transform
'
(Contina)
3
6
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
Valor
inicial
Valores
Se aplica a:
Se
hereda?
Descripcin
border-collap- collapse
se
separate
collapse
Elementos de
tabla y en lnea
de tabla
caption-side
toP
Elementos de
ttulo de tabla
border-spacing valor
Elementos de
tabla y en lnea
de tabla
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
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
No
border-color
invert
invert
Todo
No
outline-style
border-style
none
Todo
No
outline-width
border-color
medium
Todo
No
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)
"**">
</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
<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
- -
<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
3
0
Propiedad de vinculacin
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
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
VISUALIZADORES Y PROCESADORES
Amaya
Visualizador oficial de W3C
DocZilla
Editor-visualizador XML
[Link]
InDelv
Visualizador y editor XML
htt~://[Link]/
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]
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 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]
XML Resources
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]/
[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]
3
e
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
Cajas o bloques, 56
Canales activos, 17
Caracteres admisibles, 35
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
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
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
[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
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