


















Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Encuentra los documentos específicos para los exámenes de tu universidad
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Asignatura: Logoterapia, Profesor: Gaby Gaby, Carrera: Psicología, Universidad: UFV
Tipo: Apuntes
1 / 26
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!



















Tabla de contenidos
Introducción .................................................................................................................................. Objetivos de XML ................................................................................................................. Separación: semántica - representación ....................................................................................... 4 El lenguaje XML 1.0 ...................................................................................................................... 5 XML-data y sintaxis del marcado .............................................................................................. 6 Validación de XML ................................................................................................................ Implementaciones de parsers XML ............................................................................................ 12 Y ... ¿ por qué debería usar XML? ............................................................................................ 12 Validación de XML ........................................................................................................................ DTDs................................................................................................................................... XML-Schema ........................................................................................................................ Por qué debemos usar DTDs o XML-Schemas ............................................................................. 18 HTML válido = XHTML ......................................................................................................... 19 Herramientas para trabajar con XML ................................................................................................. 20 Herramientas para GNU/Linux ................................................................................................. Herramientas para Microsoft(TM) Windows(TM) ........................................................................ 21 Presentación de XML ..................................................................................................................... CSS: Cascading Style Sheets .................................................................................................... 22 XSL Básico .......................................................................................................................... Motores XSLT y Aplicaciones prácticas. ............................................................................................ 25 Aplicaciones prácticas .............................................................................................................
Copyright (C) 2003, Ignacio Barrancos Martínez . Se garantiza el permiso para copiar, distribuir y/o modificar este docu- mento bajo los términos de la Licencia de Documentación Libre GNU, versión 1.1 (GNU Free Documentation Li- cense, Versión 1.1) o cualquier otra versión posterior publicada por la Free Software Foundation; este documento se presenta sin Secciones Invariables (no Invariant Sections), sin Textos de Tapa (no Front-Cover Texts) y sin Textos de Contratapa (no Back-Cover Texts). GNU Free Documentation License: http://www.gnu.org/copyleft/fdl.html
El presente documento pretende acercar XML al programador, al administrador, al usuario avanzado, al alumno de una Facultad, a un escritor, a un futuro ingeniero, a las amas de casa... en fín... a todos. XML se presentará como una herramienta con la que podrá realizar su trabajo diario de una forma más fácil y cómoda, con la garantía de que siempre podrá reutilizar el esfuerzo inicial en el futuro.
Para lograr esto, se descubrirán los principios teóricos sobre los que se fundamenta la tecnología XML, a fín de si- tuar al lector en el conjunto de términos y herramientas que actualmente se usan en cualquier plataforma informá- tica, ya sea de desarrollo o de consumo final, para que sea él, quien decida cuán útil es la tecnología y cómo puede servirse de ella. Por tanto, un estudio más en profundidad quedará fuera del ámbito de este documento.
Introducción
Como se sabe, XML es el acrónimo de eXtensible Markup Language , o lo qué es lo mismo: Lenguaje Extensible de Marcado... pero ... ¿qué es un lenguaje de marcado?:
Esto introduce otro término nuevo:
Si reunimos todas las piezas, podemos hacernos una idea de lo que es XML: XML es un conjunto de reglas que des- criben cómo podemos escribir metainformación en un texto. Para entenderlo un poco mejor, observaremos el si- guiente texto:
Juan Antonio Delos Palotes Cuatro esquinas 30190
El texto anterior es poco explícito para nosotros: 4 líneas que pueden significar cualquier cosa: Un nombre de per- sona, de empresa, un número de lotería, un fragmento de una conversación, etc... y pueden significar cualquier cosa para nostros, dependiendo de la interpretación que queramos darle. Ahora, en cambio observaremos el siguiente texto.
Juan Antonio Delos Palotes Cuatro esquinas 30190
El texto anterior ya empieza a tomar sentido para nostros, y podemos deducir que se trata de los datos personales de un alumno. Si piensa que siempre estuvo claro el significado de las cuatro líneas, observe el siguiente ejemplo:
<007_mision> Juan Antonio Delos Palotes Cuatro esquinas 30190
El mismo texto incial adquiere de nuevo sentido y no deja pensar en que se trate de los datos personales de un alumno : Ahora el mismo texto son palabras claves de una misión para 007. ¿Qué es lo que ha cambiado para que cambiemos nuestra interpretación? ... a poco que nos fijemos, caeremos en la cuenta que lo que han cambiado son las marcas o tags y como acabamos de decir, las marcas son Metadatos, información que habla sobre el significado de otro conjunto de datos: Al cambiar la metainformación del texto, cambió por completo su interpretación. Si vol- vemos a leer la definición de XML, la entenderemos un poco mejor.
Una vez que tenemos una ligera idea de lo que significa XML, podemos empezar a descubrir los orígenes de XML, porque esta idea de introducir marcas en un texto nos es nueva, y la encontramos en el lenguaje en el que se constru- yen las páginas que forman la WWW: HTML. XML es un lenguaje relativamente moderno ( Febrero de 1998 ), y al igual que su homólogo HTML, está basado un lenguaje maduro de marcado llamado SGML: Standard Generalized Markup Languaje.
En 1969, tres señores de IBM Research inventaron el primer lenguaje moderno de marcado: GML (Generalized Markup Languaje). Este, describía cómo acotar mediante marcas la estructura arbitraria de un conjunto de datos, y llegó a convertirse en un metalenguaje: Un lenguaje que puede ser usado para describir otros lenguajes, sus gramáti- cas y sus vocabularios. GML se convirtió en SGML, y en 1986 fue adoptado por la ISO como un estándard interna- cional de almacenamiento e intercambio de datos. Cuando a principios de los 90, se desarrolla HTML este se con- cibe como aplicación directa de SGML. El impacto que supuso la World Wide Web para el comercio y las comuni- caciones , la complejidad de SGML y la carencia de metadatos en el marcado de HTML, desembocan en la necesi-
En HTML se combinan un rudimentario marcado descriptivo (los tags aportan poca meta-información) para descri- bir los datos, con un extenso marcado para indicar la representación y presentación de los mismos. Observemos de- tenidamente el siguiente fragmento de código HTML:
Separación
En vista de este fragmento de código, podemos decir que se trata de un título alineado a la derecha, cuyo tipo de fuente es sans-serif, de tamaño 2 y un color fucsia claro, en negrita e itálica, cuyo contenido es “Separación” ... pero a qué puede referirse esa palabra “Separación” : ¿ a separación de parejas?, ¿a la separación entre dos párrafos?, ¿a la separación mínima entre dos coches en una autovía?. El no encontrar claramente una respuesta es síntoma de ha- ber perdido el contexto semántico del documento, y por contra, hemos ganado muchísimo en cuanto a información de la visualización de ese texto.
Con XML se quería evitar esta pérdida de semántica en los documentos, y ello fué uno de los objetivos principales durante la fase de diseño: En un documento XML , sólo encontraremos la descripción de los datos que forman el do- cumento, y no encontraremos referencias a la representación del mismo.
Esto nos permite independizar el contenido de un documento XML de su representación, mantener separada la infor- mación en sí de un documento de su visualización, y tiene como principal ventaja que a partir de un mismo docu- mento XML, podremos obtener diferentes representaciones mediante un proceso intermedio de transformación, tal y como se ilustra en la figura y se puede apreciar en el ejemplo 1.
El lenguaje XML 1.
En la introducción se adelantaron los objetivos perseguidos por los desarrolladores de XML 1.0 en la fase de diseño, y completamente logrados en la especificación final, la cual, no sólo describe el formato de XML-data y su gramá- tica, sino también especifica dos capas cliente en la arquitectura de manipulación de XML-data:
En la introducción, se dijo que uno de los objetivos en el diseño de XML era la Extensebilidad: que cada uno pu- diera definir los tags del fichero XML como le viniera en gana, sin limitar para nada el conjunto y la estructura de estos. La consecuencia directa de ello es, que nos podemos definir nuestro propio lenguaje de marcado similar a HTML, pero ... si nos inventamos nuestro propio lenguaje ... ¿cómo podríamos comprobar que un determinado fichero cumple con las reglas que nos acabamos de inventar? ¿debemos usar lex y yacc? ...
No, es más sencillo que esto: XML contempla este hecho y nos permite especificar la estructura de nuestros len- guajes de marcado en ficheros independientes, llamados DTDs o XML-schemas. De manera opcional, nosotros podemos decirle al parser XML que nos compruebe si un fichero XML, es correcto de acuerdo con las reglas de formación de uno de estos ficheros y él, así lo hará dentro del proceso de validación del XML.
El procesado del XML es necesario si queremos separar la información en sí de su presentación, puesto que re- sultaría muy incómodo leer los documentos en el XML plano, y siempre es preferible leerlos en PDF, HTML, en un móvil WAP, en papel, etc, etc...
Para realizar estas transformaciones, la especificación propone el uso de hojas de estilo XSLs, que serán para el XML, como CSS para el HTML. En las hojas de estilo se especificarán las transformaciones que deben aplicarse sobre cada tag de nuestro documento XML, para obtener su representación en el formato de salida. Sería algo así como indicarle que el tag ...
Juan Antonio
... deberá transformarse para su representación en HTML en ...
Como se puede intuir las reglas de sintaxis para el marcado de XML, son muy similares a las de HMTL (ambas pro- vienen de SGML): Están basadas en cadenas de símbolos ASCII delimitadas por los símbolos “< ”y “>”. Las reglas de formación de los identificadores de los tags, las podemos resumir en:
El símbolo de subrayado
El símbolo de los puntos “:”, el “-” (menos) y el “.” (punto)
Esto significa, que ...
... son identificadores distintos, y por tanto denotan tags distintos, al contrario que pasaba en HTML.
123456
sería incorrecto. Los identificadores son distintos debido a la sensibilidad entre mayúsculas y minúsculas.
123456
sería incorrecto. Lo correcto sería:
123456
Esta regla nos permite abreviar los Tags sin contenido de la siguiente manera:
... equivalente a ... ... equivalente a ...
Básicamente un elemento de XML-data es un contenedor de contenido, dónde por contenido entendemos una cadena de caracteres, entidades especiales, otro elemento o una sección CDATA. Los elementos siempre estarán delimita- dos por un Tag de apertura y otro de cierre, que podrá contener cero o más atributos.
En base a esta definición, deberíamos definir:
¿Cómo podríamos escribir un documento en xML, sobre XML a base de ejemplos, sin que el parser intentara in- terpretar continuamente todos los ejemplos?. Para esto sirven los bloques CDATA
Todo documento XML tendrá la siguiente estructura:
Si observamos bien el XML, también podríamos decir que codigopostal es el siguiente del mismo padre a calle, o en nomenclatura XML:
codigopostal= following-sibling(calle) calle=preceding-sibling(codigopostal)
Si entendiéramos una elemento XML, como el nombre de una frase, los atributos serían los adjetivos. Básicamente los atributos proporcionan metainformación sobre un elemento: son un medio para añadir información adicional so- bre el contenido de un elemento. Si nos fijamos en este fragmento de fichero XML:
Juan Antonio Delos Palotes
Podemos deducir que este XML describe los datos de un alumno, gracias a la metainformación que aportan los iden- tificadores de los elementos, pero ...
Juan Antonio Delos Palotes
El fragmento anterior, nos permite precisar mucho más, sobre qué tipo de alumno es. Por tanto es justo decir , que un atributo nos aporta metainformación sobre un elemento de nuestro XML.
Las reglas de construcción formación de atributos en XML, son muy escuetas, y las podríamos resumir en:
Hola
Hola
... que en XML, no nos funcionará.
No existe una regla infalible y eficaz que nos ayude a decidir cuando usar atributos y cuándo usar elementos: Como se suele responder en Informática a este tipo de preguntas: “No existe una bala de plata”. Se ha escrito mucho sobre ello y aún hoy se sigue debatiendo en foros de XML. Normalmente antes de tomar una decisión deberemos tener en cuenta que:
Hola
Teniendo en cuenta estas afirmaciones, la decisión será acertada siempre que solucione nuestro problema, indepen- dientemente de cómo lo hayamos hecho.
XML Namespace , lo podemos traducir por Espacio de nombres XML. Básicamente, un espacio de nombres XML es un grupo de nombres que comparten un mismo contexto o propósito, agrupados bajo un nombre único. Al igual que sucede en Internet, nosotros podemos tener un conjunto de nombres:
del que diríamos que están dentro del mismo espacio de nombres: lanasa.com
XML namespace, nos proporciona un mecanismo para que podamos indicar elementos de otros lenguajes XML o ti- pos de documentos, en nuestros propios XMLs. Esto significa que en un documento CML , podremos incrustar una fórmúla matemática (MathML) o viceversa, sin esfuerzo ninguno: El parser se encargará de comprobar que todo sea correcto de acuerdo, con las reglas de cada lenguaje.
Podemos usar XML namespaces, añadiendo el atributo xmlns, a cualquier elemento de nuestro archivo, y especifi- cando cómo su valor una URI ( Uniform Resource Identifier [http://www.ietf.org/rfc/rfc2396.txt] ). Existen dos sub- conjuntos de URIs:
Un ejemplo de uso de namespaces en XML, podría ser:
Como se ha presentado al principio de este segundo punto, la Recomendación XML propone una arquitectura a dos capas para las aplicaciones que trabajen con XML. La primera de las capas es el Parser de XML, que como ya se dijo, realiza una validación de XML-data. En este proceso de validación encontramos dos etapas :
Un fichero XML-data se dice que está bien formado cuando cumple la especificación XML, es decir, cuando ...
Aunque enitendo que cada persona deberá decidir en base a sus preferencias, prioridades y necesidades, considero que las siguientes razones tienen el peso suficiente como para obligarnos a una pequeña reflexión:
Actualmente, la mayoría de los grandes productos informáticos entienden XML, de alguna manera:
Podríamos seguir y seguir recapitulando ejemplos de productos que trabajan con XML, pero lo interesante de ellos, es que son las empresas que desarrollan Software las que se encargan de añadir XML a sus productos, no- sotros somos meros expectadores. Por tanto, XML no es un producto concreto que me obliga a comprar un soft- ware a una empresa concreta para beneficiarme de él.
Podemos decir de XML, que es una herramienta que nos permite intercambiar información entre distintas apli- caciones.
Gracias a que XML desliga el contenido de su presentación, ambas cosas se pueden tratar por separado. Si usted no tiene gusto para la presentación de documentos, puede reutilizar las plantillas escritas por otra persona, para cambiar el formato o la presentación de sus documentos. ¿Cuántas veces no hemos publicado en HTML porque no conocemos el lenguaje, o no tenemos gusto para el diseño?
Latex, es una buena herramienta para la publicación escrita, pero las herramientas de transformación a HTML son poco personalizables, y nuestros documentos no los podemos publicar en la web con el aspecto que quera- mos. Si usáramos XML para escribir nuestros documentos, con un simple procesado podríamos tener publicacio- nes en HTML, LATEX, WAP, etc ...
Validación de XML
En numerosas circunstancias, el que un documento XML esté bien formado no será suficiente y necesitaremos ade- más que, su estructura jerárquica se ciña a una estructura que nosotros mismos podamos definir, de acuerdo con nuestras necesidades. Cuando un documento bien formado verifique las reglas que nosotros hayamos especificado en otro documento independiente, podremos decir que el documento es válido, con respecto a nuestro tipo de docu- mento, lo que nos permitirá definir nuestro propio lenguaje XML.
Surge la necesidad por tanto, de un mecanismo que nos permita especificar nuestros propios tipos de documentos XML.
El primero de los mecanismos que se verán es el uso de DTDs. DTD significa Document Type Definition [http://www.w3.org/TR/REC-xml] que, como su nombre indica, permite la definción de tipos de documentos, me- diante un vocabulario SGML.
Las DTDs usan una gramática formal para describir la estructura y la sintaxis de un documento XML, incluyendo los posibles valores que este puede contener. Un documento XML se asociará con su DTD mediante el tag en el prólogo del mismo. En este tag se podrá especificar una DTD completa (DTD interna), o la URL donde encontrar la DTD (DTD externa) que permite validar el XML.
Un documento XML se puede vincular sólo con una DTD, y esta asociación se puede indicar de dos formas:
......
......
......
...
... y si no, no será válido. -->
A la hora de especificar el contenido de colecciones , podemos indicar la cardinalidad de las ocurrencias de un ele- mento o una colección de ellos, mediante :
A la hora de definir los atributos que tiene un determinado elemento se usará:
Donde ...
Si se quieren indicar más de un atributo para un mismo elemento, se podrán hacer en la misma línea :
DocBook es una DTD desarrollada por O'Reilly y HaL Computer Systems en 1991, y actualmente mantenida por Oasis donada al estandard, que modela documentos técnicos. Por documentos técnicos entenderemos cualquier ma- nual de usuario, memorias de prácticas, libros técnicos, documentación de una API, una secciónde preguntas fre- cuentes, etc, etc, etc... En ningún caso modela una carta de amor, un informe de resultados, o un listado.
La idea original de los creadores de DocBook era la de poder generar documentación de Unix de manera que fuera intercambiable, pero actualmente se ha universalizado y su uso es generalizado en cualquier plataforma: Práctica- mente todos los editores de XML son capaces de construir documentos en base a esta DTD.
El hecho de generar nuestros documentos usando docbook, nos permitirá benerficarnos de la gran cantidad de pro- gramas, y hojas de estilo que existen para este tipo de documentos, con lo que nuestro tiempo se limitará sóla y ex- clusivamente a escribir, sin preocuparnos de cómo se visualizarán nuestros documentos.
Actualmente se encuentra liberada la versión 4.1.2, disponibleen http://www.oasis-open.org/docbook/sgml/index.shtml [http://www.oasis-open.org/docbook/sgml/index.shtml]
. A poco que busquemos en google docbook2 , encontraremos cantidad de herramientas y scripts que transforman nuestros documentos docbook a páginas man, info, latex, html, etc ...
Este documento que usted leyendo ahora mismo ha sido escrito usando DocBook.
La espiral [http://www.laespiral.org] es un proyecto abierto que facilita la colaboración de la comunidad hispano- hablante dentro del proyecto Debian. Para la entrega de documentación han construido una DTD simplificada y compatible al 100% con DocBook, además de proporcionarnos las herramientas necesarias para transformar docu- mentos escritos a HTML y LATEX, dentro de lo que llaman LE-document, desarrollado Jaime Villate.
Oracle, por ejemplo, es capaz de construir un esquema relacional a partir de un XML-Schema. También es capaz de introducir datos en tablas, interpretando un XML válido.
A poco que conozcamos HTML, todo lo que llevamos visto nos habrá resultado familiar y ayudado a entender mu- chos otros conceptos relacionados con HTML. Entonces, nos podríamos preguntar: ¿Html es XML?: La respuesta es no por los motivos siguientes:
Hola esto un párrafo
Este párrafo se podría visualizar
Esto está permitido
Esto que podríamos llamar vicios, tienen gran parte de la culpa los navegadores, que han interpretado siempre cual- quier cosa con tal, de no ceder en la guerra de los navegadores.
Por lo tanto podríamos decir que HTML no es XML, aunque está muy cercano. Si construyéramos HTMLs , aten- diendo a las siguientes reglas:
Esto es ilegal
Los correcto abría sido ...