You are on page 1of 41

Extensible Markup Language eXtensible Markup Language (XML

)

Desarrollador World Wide Web Consortium Información general Extensión de archivo Tipo de MIME Tipo de formato Estándar(es) .xml application/xml, text/xml Lenguaje de marcado 1.0 (Fourth Edition) 1.1 (Second Edition) ?

Formato abierto

XML, siglas en inglés de eXtensible Markup Language ('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium (W3C). Deriva del lenguaje SGML y permite definir la gramática de lenguajes específicos (de la misma manera que HTMLes a su vez un lenguaje definido por SGML) para estructurar documentos grandes. A diferencia de otros lenguajes, XML da soporte a bases de datos, siendo útil cuando varias aplicaciones se deben comunicar entre sí o integrar información. (Bases de datos Silberschatz). XML no ha nacido sólo para su aplicación para Internet, sino que se propone como un estándar para el intercambio de información estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de cálculo y casi cualquier cosa imaginable.

XML es una tecnología sencilla que tiene a su alrededor otras que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. Tiene un papel muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la información de una manera segura, fiable y fácil. Índice [ocultar] 1 Historia 2 Críticas 3 Ventajas del XML 4 Estructura de un documento XML 4.1 Documentos XML bien formados y control de errores 4.2 Partes de un documento XML 4.2.1 Prólogo 4.2.2 Cuerpo 4.3 Elementos 4.4 Atributos 4.5 Entidades predefinidas 4.6 Secciones CDATA 4.7 Comentarios 5 Validez 5.1 Document Type Definition 5.1.1 Declaraciones tipo elemento 5.1.2 Modelos de contenido 5.1.3 Declaraciones de lista de atributos 5.1.4 Tipos de atributos 5.1.5 Declaración de entidades 5.1.6 Espacios de nombres 5.2 XML Schemas (XSD)

5.2.1 Ventajas de los Schemas frente a los DTD 6 Herramientas para trabajar con documentos XML 7 Lenguajes creados usando XML 7.1 Extensible Stylesheet Language (XSL) 7.2 Lenguaje de enlace XML (XLINK) 7.3 Otras tecnologías 8 Véase también 9 Referencias 10 Enlaces externos Historia [editar] XML proviene de un lenguaje inventado por IBM en los años setenta, llamado GML (Generalized Markup Language), que surgió por la necesidad que tenía la empresa de almacenar grandes cantidades de información. Este lenguaje gustó a la ISO, por lo que en 1986 trabajaron para normalizarlo, creando SGML (Standard Generalized Markup Language), capaz de adaptarse a un gran abanico de problemas. A partir de él se han creado otros sistemas para almacenar información.1 En el año 1989 Tim Berners Lee creó la web, y junto con ella el lenguaje HTML. Este lenguaje se definió en el marco de SGML y fue de lejos la aplicación más conocida de este estándar. Losnavegadores web sin embargo siempre han puesto pocas exigencias al código HTML que interpretan y así las páginas web son caóticas y no cumplen con la sintaxis. Estas páginas web dependen fuertemente de una forma específica de lidiar con los errores y las ambigüedades, lo que hace a las páginas más frágiles y a los navegadores más complejos. Otra limitación del HTML es que cada documento pertenece a un vocabulario fijo, establecido por el DTD. No se pueden combinar elementos de diferentes vocabularios. Asimismo es imposible para un intérprete (por ejemplo un navegador) analizar el documento sin tener conocimiento de su gramática (del DTD). Por ejemplo, el navegador sabe que antes de una etiqueta <div> debe haberse cerrado cualquier <p> previamente abierto. Los navegadores resolvieron esto incluyendo lógica ad hoc para el HTML, en vez de incluir un analizador genérico. Ambas opciones, de todos modos, son muy complejas para los navegadores. Se buscó entonces definir un subconjunto del SGML que permita: Mezclar elementos de diferentes lenguajes. Es decir que los lenguajes sean extensibles. La creación de analizadores simples, sin ninguna lógica especial para cada lenguaje. Empezar de cero y hacer hincapié en que no se acepte nunca un documento con errores de sintaxis.

Para hacer esto XML deja de lado muchas características de SGML que estaban pensadas para facilitar la escritura manual de documentos. XML en cambio está orientado a hacer las cosas más sencillas para los programas automáticos que necesiten interpretar el documento. Críticas [editar] XML y sus extensiones han sido regularmente criticadas por su nivel de detalle y complejidad.2 El mapeo del modelo de árbol básico de XML hacia los sistema de tipos de lenguajes de programación o bases de datos puede ser difícil, especialmente cuando se utiliza XML para el intercambio de datos altamente estructurados entre aplicaciones, lo que no era su objetivo primario de diseño. Otras críticas intentan refutar la afirmación de que XML es un lenguaje autodescriptivo3 (aunque la especificación XML no hace ninguna afirmación de este tipo). Se propone a JSON yYAML frecuentemente como alternativas, centrándose ambas en la representación de datos estructurados, en lugar de documentos narrativos. Ventajas del XML [editar] Es extensible: Después de diseñado y puesto en producción, es posible extender XML con la adición de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicación alguna. El analizador es un componente estándar, no es necesario crear un analizador específico para cada versión de lenguaje XML. Esto posibilita el empleo de cualquiera de los analizadores disponibles. De esta manera se evitan bugs y se acelera el desarrollo de aplicaciones. Si un tercero decide usar un documento creado en XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir, podríamos tener una aplicación en Linux con una base de datos Postgres y comunicarla con otra aplicación en Windows y Base de Datos MS-SQL Server. Transformamos datos en información, pues se le añade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos. Estructura de un documento XML [editar] La tecnología XML busca dar solución al problema de expresar información estructurada de la manera más abstracta y reutilizable posible. Que la información sea estructurada quiere decir que se compone de partes bien definidas, y que esas partes se componen a su vez de otras partes. Entonces se tiene un árbol de trozos de información. Ejemplos son un tema musical, que se compone de compases, que están formados a su vez por notas. Estas partes se llaman elementos, y se las señala mediante etiquetas. Una etiqueta consiste en una marca hecha en el documento, que señala una porción de éste como un elemento. Un pedazo de información con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se está señalando. A continuación se muestra un ejemplo para entender la estructura de un documento XML:

0" encoding="UTF-8" ?> <!DOCTYPE Edit_Mensaje SYSTEM "Edit_Mensaje..dtd»: <?xml version="1.0" encoding="ISO-8859-1" ?> .dtd"> <Edit_Mensaje> <Mensaje> <Remitente> <Nombre>Nombre del remitente</Nombre> <Mail> Correo del remitente </Mail> </Remitente> <Destinatario> <Nombre>Nombre del destinatario</Nombre> <Mail>Correo del destinatario</Mail> </Destinatario> <Texto> <Asunto> Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades....<?xml version="1. </Parrafo> </Texto> </Mensaje> </Edit_Mensaje> Aquí está el ejemplo de código del DTD del documento «Edit_Mensaje. </Asunto> <Parrafo> Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades.

Este es el DTD de Edit_Mensaje --> <!ELEMENT Mensaje (Remitente. El XML es sensible a mayúsculas y minúsculas. tipos de elementos. Es necesario asignar nombres a las estructuras. retornos de carro. Parrafo)> <!ELEMENT Asunto (#PCDATA)> <!ELEMENT Parrafo (#PCDATA)> Documentos XML bien formados y control de errores [editar] Los documentos denominados como «bien formados» (del inglés well formed) son aquellos que cumplen con todas las definiciones básicas de formato y pueden. Los elementos con contenido deben estar correctamente cerrados. Las construcciones como etiquetas. entidades. las etiquetas deben estar correctamente anidadas. Existe un conjunto de caracteres llamados espacios en blanco (espacios.<!-. Los valores atributos en XML siempre deben estar encerrados entre comillas simples o dobles. En XML los nombres tienen alguna característica en común. . es decir. etc. Una etiqueta debe estar correctamente incluida en otra. referencias de entidad y declaraciones se denominan marcas. Los documentos XML sólo permiten un elemento raíz del que todos los demás sean parte. analizarse correctamente por cualquier analizador sintáctico (parser) que cumpla con la norma. son partes del documento que el procesador XML espera entender. Se separa esto del concepto de validez que se explica más adelante. solo pueden tener un elemento inicial. tabuladores. saltos de línea) que los procesadores XML tratan de forma diferente en el marcado XML. El resto del documento entre marcas son los datos «entendibles» por las personas. Mail)> <!ELEMENT Nombre (#PCDATA)> <!ELEMENT Mail (#PCDATA)> <!ELEMENT Destinatario (Nombre. es decir. elementos particulares. Los documentos han de seguir una estructura estrictamente jerárquica con lo que respecta a las etiquetas que delimitan sus elementos. Texto)*> <!ELEMENT Remitente (Nombre. Mail)> <!ELEMENT Nombre (#PCDATA)> <!ELEMENT Mail (#PCDATA)> <!ELEMENT Texto (Asunto. Destinatario. por lo tanto.

. o bien ser elementos vacíos.) </Edit_Mensaje> Elementos [editar] Los elementos XML pueden tener contenido (más elementos. Sin embargo es necesaria la adquisición de datos para su buen funcionamiento. hay que tener mucho cuidado de esa parte de la gramática léxica para que se componga de manera uniforme. Uno o más comentarios e instrucciones de procesamiento. los documentos XML pueden empezar con unas líneas que describen la versión XML. el cuerpo debe contener solo un elemento raíz. Atributos [editar] Los elementos pueden tener atributos. el cuerpo no es opcional en un documento XML. o el DTD puede estar incluido en la propia declaración o ambas cosas al mismo tiempo. Deben ir entre comillas. Prólogo [editar] Aunque no es obligatorio.. caracteres o ambos).0" encoding="UTF-8"?> Cuerpo [editar] A diferencia del prólogo. EJEMPLO: <Edit_Mensaje> (. el tipo de documento y otras cosas.Partes de un documento XML [editar] Un documento XML está formado por el prólogo y por el cuerpo del documento así como texto de etiquetas que contiene una gran variedad de efectos positivos o negativos en la referencia opcional a la que se refiere el documento. EJEMPLO: <?xml version="1. Enlaza el documento con su DTD (definición de tipo de documento). característica indispensable también para que el documento esté bien formado. Una declaración de tipo de documento. Por ejemplo. . un elemento «estudiante» puede tener un atributo «Mario» y un atributo «tipo». Es la sentencia que declara al documento como un documento XML. que son una manera de incorporar características o propiedades a los elementos de un documento. El prólogo de un documento XML contiene: Una declaración XML. con valores «come croquetas» y «taleno» respectivamente.

cada lenguaje definido con esta tecnología. Ejemplo: entidad predefinida: & carácter: &. No confundir con 2(#PCDATA) que es para los elementos. Secciones CDATA [editar] Artículo principal: Anexo:Etiquetas HTML/XHTML.Otro comentario --> Validez [editar] Que un documento esté «bien formado» solamente se refiere a su estructura sintáctica básica. y puede expresar algunas limitaciones para combinarlos. es decir. Permite que caracteres especiales no rompan la estructura. atributos y comentarios como XML especifica que se escriban. Ahora bien. Los documentos XML que se ajustan a su DTD son denominados válidos. es decir. Es una construcción en XML para especificar datos utilizando cualquier carácter sin que se interprete como marcado XML. Los comentarios en XML tienen el siguiente formato: <!--. Declaraciones tipo elemento [editar] . atributos y entidades permitidas. que se componga de elementos. de esta forma. Document Type Definition [editar] La Document Type Definition o DTD (en español "definición de tipo de documento") define los tipos de elementos. no sean interpretados como marcado en el procesador XML. Esta relación entre elementos se especifica en un documento externo o definición (expresada como DTD —Document Type Definition. Crear una definición equivale a crear un nuevo lenguaje de marcado. necesitará especificar cuál es exactamente la relación que debe verificarse entre los distintos elementos presentes en el documento.<Estudiante Mario="come croquetas" tipo="taleno">Esto es un día que Mario va paseando…</Estudiante> Entidades predefinidas [editar] Entidades para representar caracteres especiales para que. para una aplicación específica. 'Definición de Tipo de Documento'— o como XSchema).Esto es un comentario ---> <!-. Ejemplo: <![CDATA[contenido especial: áéíóúñ&]]> Comentarios [editar] Comentarios a modo informativo para el programador que han de ser ignorados por el procesador. cada aplicación de XML.

Tipos de atributos [editar] Atributos CDATA y NMTOKEN Atributos enumerados y notaciones Atributos ID e IDREF Declaración de entidades [editar] XML hace referencia a objetos que no deben ser analizados sintácticamente según las reglas XML. Las entidades pueden ser: Internas o externas Analizadas o no analizadas Generales o parametrizadas Espacios de nombres [editar] Los espacios de nombres XML permiten separar semánticamente los elementos que forman un documento XML. Modelos de contenido [editar] Un modelo de contenido es un patrón que establece los subelementos aceptados. Permiten especificar los tipos de datos. Define qué elementos puede contener un documento XML. Son extensibles. Declaraciones de lista de atributos [editar] Los atributos se usan para añadir información adicional a los elementos de un documento. XML Schemas (XSD) [editar] Un Schema es algo similar a un DTD. cómo están organizados y qué atributos y de qué tipo pueden tener sus elementos.Los elementos deben ajustarse a un tipo de documento declarado en una DTD para que el documento sea considerado como válido. mediante el uso de entidades. y el orden en que se aceptan. Herramientas para trabajar con documentos XML [editar] . Ventajas de los Schemas frente a los DTD [editar] Usan sintaxis de XML. al contrario que los DTD.

ya que reconoce los formatos y ayuda a generar un XML bien formado. que sea capaz de producir archivos . XSL Formatting Objects (XSL-FO)y XML Path Language. XSL) es una familia de lenguajes que permiten describir como los archivos codificados en xml serán formateados (para mostrarlos) o transformados. Otras tecnologías [editar] Hojas de estilo XSL-FO XSLT XLink XPointer XSL hojas de estilo en cascada (CSS) XLT (XML representation of Lexicons and Terminologies) Programación JDOM SAX StAX VTD-XML Consulta de datos XQuery Xpath Seguridad .txt es capaz de generar XML. Hay tres lenguajes en esta familia: XSL Transformations (XSLT). se facilita. aunque en los entornos de desarrollo como Eclipse o Visual Studio. XLink 1.1 es ya una recomendación W3C. Lenguaje de enlace XML (XLINK) [editar] XLink es una aplicación XML que intenta superar las limitaciones que tienen los enlaces de hipertexto en HTML. Lenguajes creados usando XML [editar] Extensible Stylesheet Language (XSL) [editar] El Lenguaje de Hoja de Estilo Extensible (eXtensible Stylesheet Language.De hecho cualquier procesador de texto.

Contenido relacionado con informática. ↑ Jeff Atwood (2009): XML: The Angle Bracket Tax ↑ Eric Brown (2003): Eric Brown (2003): The Myth of Self-Describing XM The Myth of SelfDescribing XML . YAML y OGDL. HL7 v3 — estándar de interoperabilidad de datos de salud. También hay por lo menos un lenguaje basado en XML en formato binario. Los lenguajes de marcas ligeros: Simple Outline XML: es un XML simplificado que se puede convertir sin problemas en XML completo. Véase también [editar] Portal:informática.Xades (XML Advanced Electronic Signatures) Hay quien opina que XML es demasiado pesado para algunas aplicaciones y difícil de editar con un editor de texto simple. Por ello merece la pena mencionar algunas alternativas más ligeras y simples. llamado EBML. BBCode. RI5. antes comentado. Éste tiene un uso muy restringido para dar formato nada más. OpenDocument Editor XML DTD XML Schema RELAX NG Schematron Simple API for XML Document Object Model Referencias [editar] ↑ «Qué es XML y para qué sirve». SOAP — protocolo de llamadas a métodos remotos e intercambio de mensajes XML utilizando tecnología de objeto. Estos dos son ficheros de solo texto que no están emparentados con XML como el SOX. que utiliza mensajes y documentos electrónicos XML. XML-RPC — protocolo de llamada de procedimiento remoto (RPC) que utiliza XML para codificar los datos. Consultado el 2 de noviembre de 2012.

tutoriales.org (en inglés).Enlaces externos [editar] Conjunto de información XML (segunda edición).0. El estándar XML (en inglés). XML. video introductorio a XML. etc. Traducción de la recomendación del W3C sobre enlaces de protocolo con características de seguridad para la Especificación de Gestión de Claves XML (XKMS). vídeo que explica las diferencias entre XML.Awardspace — introducción básica al XML. XML: Introducción. Enlaces de la Especificación de Gestión de Claves XML (XKMS 2. Traducción de la recomendación del W3C sobre los espacios de nombres en XML 1. The Extensible Stylesheet Language Family (XSL) (en inglés). Página web sobre XML de Microsoft (en inglés). como CML.0). trucos. Traducción de la recomendación del W3C sobre xml:id 1. Espacios de nombres en XML 1. HTML y XHTML. XML Software Guide (en inglés).com — cursos. Traducción de XML Inclusions (XInclude) Version 1. XML módulos Perl en CPAN (en inglés). xml:id Versión 1. SoaAgenda — ejemplo de traspaso XML a DOM.0. XML Schema (en español). Inclusiones XML. XML: Ejemplos de uso. vídeo que explica diferentes ejemplos de uso de XML. XML Document Authoring Tools (en inglés).1. MathML o SVG. Página web oficial de W3C sobre XML (en inglés). XML: HTML y XHTML. Introducción al XML — introducción conceptual al XML.0. Introducción a XML (en español).1. Traducción de la recomendación del W3C sobre conjunto de información XML (segunda edición). programación. . XML.

Extensible Markup Language (XML) Prólogo y declaración de tipo de documento Declaración de documento Standalone Elementos Atributos Comentarios Entidades predefinidas Secciones CDATA Intrucciones de procesamiento . por ejemplo. optimizado para su uso en la WWW. por ejemplo. Los fundamentos del XML son muy sencillos y en principio.Lenguaje extensible de marcas) es un un lenguaje abierto. derivado de SGML. a diferencia del HTML. que permite la definición de lenguajes concretos de representación de documentos. XML es un Meta-Lenguaje. separa el contenido de la presentación.Documentos XML Introducción Documento XML "bien formado" Tipos de letra y fines de línea Estructura jerárquica de los elementos Espacios en blanco Nombrando cosas Marcas y datos Ejercicios 2. y que va a permitirnos describir el sentido o la semántica de los datos.. el notepad en Windows y el xemacs en Linux Un procesador o parser XML.X o el Mozilla INDICE 1.. usaremos los parsers que incorporan el Internet Explorer 5.El XML (eXtensible Markup Lenguage . las únicas herramientas que nos harán falta son: Un editor para poder escribir los documentos XML. El XML.

....Enlaces y sitios de referencia.0" encoding="UTF-7" ?> <album> . un documento XML y un documento HTML puedan parecernos muy parecidos. mientras que el XML contiene datos que se autodefinen: describe el contenido de lo que etiquetan.. hay una diferencia principal y es que el HTML no indica lo que se está representando..Introducción Aunque.XHTML Introducción Diferencias con HTML 4.Identificación del lenguaje Ejercicios 3. Una forma rápida de entender la estructura de un documento XML es viendo un ejemplo: <?xml version="1. a primera vista. tiene datos mal definidos con elementos de formato.0 Ejercicios 5.DOCUMENTOS XML 1.Parsers XML y el Modelo Objeto Documento (DOM) Introducción: Parsers con validación y sin validación Parsers XML Modelo de Objeto Documento (Document Object Model -DOM) Trabajando con DOM en Perl:XML::DOM Ejercicios 4.Espacios de nombre (Namespaces) Introducción Definir un Espacio de Nombres Referenciar un Espacio de Nombres Definir un Prefijo De Espacio de Nombres Ejercicios 6. 1.

como en el resto de SGML). el documento debe comenzar con un Declaración de Documento Standalone todas las etiquetas deben estar balanceadas: esto es. un documento XML está bien formado si: Tomado como un todo. aquellos que no tienen etiqueta final como <IMG>. que se indican en el documento mediante marcas explícitas. elementos. si no ocurre esto como final de una sección marcada como CDATA.). y <BR> y otros de HTML) deben terminar con '/>' o deben hacerse no VACÍOS añadiéndoles una etiqueta de fin. los elementos deben anidar dentro de sí sus propiedades (no se deben sobreponer etiquetas. El tipo CDATA (character DATA) son caracteres. indica los datos que contendrá el documento. debe darse como &lt. Las estructuras lógica y física deben anidarse de forma correcta. todos los elementos que contengan datos de tipo carácter deben tener etiquetas de principio y fin todos los valores de los atributos deben ir entrecomillados (el carácter comilla simple [el apóstrofe] puede utilizarse si el valor contiene caracteres comillas dobles. Según la especificación de XML del W3C. y &quot. Respeta todas las restricciones de buena formación dadas en la especificicación. Los ficheros bien-formados sin-DTD pueden utilizar atributos en sus elementos.. etc. utiliza &apos. <HR>. comentarios.<titulo>Joaquín Sabina</titulo> <autor>SABINA Y CIA Nos sobran los motivos</autor> <formato>MP3</formato> <localizacion>Varios CD5 </localizacion> </album> Cada documento XML posee una estructura lógica y una física. cualquier elemento VACÍO (p. cumple la regla denominada "document". lo que significa que se debe cumplir lo siguiente: si no se utiliza DTD.e.e. y viceversa): si necesitas ambos. La estructura física del documento es una serie de unidades llamadas entidades. y &amp. es decir. por defecto. .Documento XML "bien formado" Todo documento XML deben estar bien formado. no debe haber etiquetas aisladas (< ó &) en el texto (p. 2. y la secuencia ]]> debe darse como ]]&gt. pero éstos deben ser todos del tipo CDATA. La estructura lógica del documento es una serie de declaraciones.

Es decir. en el que están contenidos todos los demás. Además. Cumplir la regla "document" antes mencionada significa: Que contiene uno o más elementos.0" ?> <nombre>Richal </nombre> Sólo puede haber un elemento raíz. los elementos con contenido deben estar correctamente cerrados.com</email> Ejemplo correcto: . Para el resto de elementos.Estructura jerárquica de los elementos Los documentos XML deben tener una estructura jerárquica con lo que respecta a las etiquetas que delimitan sus elementos.0" ?> <nombre>Richal Ejemplo correcto: <?xml version="1. si la etiqueta de comienzo está en el contenido de algún otro elemento. Esto significa que los elementos deben estar correctamente anidados y que los elementos no se pueden solapar entre ellos. Ejemplo incorrecto: <?xml version="1. es decir. llamado raíz. los elementos delimitados por etiquetas de principio y final se anidan adecuadamente mutuamente..0" ?> <nombre>Richal</nombre> <email>richal@ejemplo. Ejemplo incorrecto: <?xml version="1. la etiqueta de fin está en el contenido del mismo elemento.Cada una de las entidades analizadas que se referencia directa o indirectamente en el documento está bien formada. o elemento documento. 3. Hay exactamente un elemento. del cual ninguna parte aparece en el contenido de ningún otro elemento. la jerarquía de elementos XML sólo puede tener un elemento inicial.

trata a las mayúsculas y las minúsculas como caracteres diferentes..Tipos de letra y fines de línea El XML.com</email> <nombre>Chicho</Nombre> <email>chicho@ejemplo. Un parser XML pasa únicamente a la aplicación el carácter de fin de línea. es decir. se suele organizar en varias líneas. aunque también existen ocasiones en los que es deseable la representación de esos "espacios en blanco" (por ejemplo. no podemos usar "elemento" para referirnos a él.<?xml version="1.. <?xml version="1. que normalmente son innecesarios en una versión distribuible a través de la red. normalmente.Espacios en blanco En la edición de documentos XML. tabuladores y líneas en blanco).0" ?> <alumnos> <Nombre>Richal</nombre> <email>richal@ejemplo.com</email> </alumnos> En la edición de documentos XML . es "case sensitive". Si un elemento de XML está definido como "Elemento". por claridad. código fuente). para conservar los espacios en blanco o aplicar el tratamiento por defecto.0" ?> <alumnos> <nombre>Richal</nombre> <email>richal@ejemplo. . a diferencia del HTML. Ejemplo con Case sensitive y solapamiento. Para que las aplicaciones preserven la representación de esos espacios en blanco en un elemento se utiliza el atributo xml:space que puede tomar los valores preserve o default. 5.com</email> </alumnos> 4. suele ser conveniente utilizar "espacios en blanco" (espacios. que. se componen de carácter de fin de línea y otro de retorno de carro. respectivamente.

referencias de entidad y declaraciones (ya veremos que es cada cosa) se denominan "marcas". no se pueden crear nombres que empiecen por la cadena "xml". descripción del hotel. es decir.. por ejemplo. <Hola>. El resto del documento que se encuentra entre las marcas. son los datos entendible por las personas. Los nombre que empiezan por "xml" están reservados. Ejercicio: Hacer un segundo ejemplo de XML (o continúa el anterior) que tenga una parte donde se preserven los espacios en blanco. dos puntos o puntos. empiezan por "&" y acaban con ".Nombrando cosas Un nombre en XML empieza con una letra y continúa con letras. ciudad. dirección(calle y número). país. habitaciones triples. habitaciones dobles. denominados de forma global como caracteres de nombre. mete en la parte de descripción un listado de servicios que estén tabulados. o bien. rayas. Ejercicios Ejercicio: Hacer un ejemplo de XML donde las diferentes etiquetas (que las puedes llamar como quieras. "Xml" o cualquier otra variante. numero de estrellas. Estas son las parte del documento XML que entiende el parser. Las marcas en un documento XML son aquellas partes que empiezan con "<" y que acaban con ">" (por ejemplo. número habitaciones individuales. el agua incolora y a mi no se me ocurre una rima </poema> </textos> 6. haz un documento xml sobre hoteles. suites. 8.Marcas y datos Las construcciones como etiquetas. para representar las comillas dobles). 7. si es en XML) estén siguiendo una jerarquía.. donde tengas nombre. el atributo xml:space visto en el apartado anterior. lo puedes probar en el Internet Explorer o en el Mozilla.Si no se te ocurre ningún ejemplo.Ejemplo <?xml version="1. . dígitos." (por ejemplo.0"?> <textos> <cita> A quien madruga Dios le ayuda ?</cita> <poema xml:space="preserve"> El monte es verde. &quot. teléfono. en el caso de las referencias de entidad. "XML". Si sigues el ejemplo anterior. Como antes. probar en el Internet Explorer o en el Mozilla.

hasta el momento.0 Strict//EN" "DTD/xhtml1-strict. en el que están .xml/ejemplo.0" encoding="UTF-7" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.dtd"> <html> <body bgcolor="yellow "> <p> Ejemplo </p> </body> </html> <?xml version="1.dtd"> <nada> Ejemplo </nada> Un documento XML es válido si tiene asociado una DTD y el documento cumple las restricciones que la DTD expresa. UTF-8. y deberían.0" y la codificación de caracter (US-ASCII.0" encoding="UTF-7" ?> <nada> Ejemplo </nada> La segunda línea.Document Type Definition) cumple y define los datos que de contiene el documento XML. los documentos XML pueden. comenzar con una línea que describa la versión de XML. usamos UTF-7 (código Unicode del que ASCII es un subconjunto) o ISO8859-1.0" encoding="UTF-7" ?> <!DOCTYPE ejemplo SYSTEM "http://www. Ejemplos: <?xml version="1. define que tipo de documento estamos creando. el tipo de documento y otras cosas. BIG5. es decir. para el castellano.). Ejemplo: <?xml version="1.. La primera línea del prólogo o "declaración" permite especificar la versión de XML usada.Prólogo y declaración de tipo de documento Aunque no es obligatorio.. o "declaración de tipo de documento XML". definimos que Declaración de Tipo de Documento (DTD . ISO-8850-7. En general. Sólo puede haber un elemento raiz.ejemplos.2.etc. sólo existe la "1.EXTENSIBLE MARKUP LANGUAJE 1.

dtd"> .0" standalone='yes'?> <nombre>Richal</nombre> El valor "yes" indica que no existen declaraciones de marcas externas a la entidad documento. El los siguientes ejemplos se ve esto: Ejemplos: <identificador DNI="23123244"/> <?xml version="1. El valor "no" indica que existe o que pueden haber dichas declaraciones de marcas. Ejemplo: <?xml version="1. Para usar ciertos símbolos se usarán las entidades predefinidas.0 Strict//EN" "DTD/xhtml1-strict. y termina con </etiqueta> que debe tener el mismo nombre. esto es debido que no hay una etiqueta de cierre que delimite el contenido . 3.. el documento no estará bien-formado. Si no es el caso.contenidos todos los demás. en XML siempre se debe cerrar un elemento. pero la etiqueta debe ser de la siguiente forma: <elemento-sin-contenido/>. es decir.Elementos Los elementos XML pueden tener contenido (más elementos. Un elemento con contenido es.. 2. XML también. que puede contener atributos o no. por ejemplo: Ejemplo: <nombre>Richal</nombre> Siempre empieza con <etiqueta> que puede contener atributos o no. La declaración de un documento standalone sólo denota la presencia de declaraciones externas. Hay que tener en cuenta que el símbolo "<" siempre se interpreta como inicio de una etiqueta XML. la jerarquía de elementos XML sólo puede tener un elemento inicial. o bien ser elementos vacíos. Ejemplo: <nombre>Fulanito</nombre> <aviso tipo="emergencia" gravedad="mortal">Que no cunda el pánico</aviso> HTML permite elementos sin contenido.Declaración de documento Standalone En la parte del prólogo dentro de la "declaración" se puede incluir una declaración de documento standalone que controla qué componentes de la DTD son necesarios para completar el procesamiento del documento. caracteres o ambos a la vez). Al contrario que en HTML.0" encoding="UTF-7" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.

es decir. así como sus valores y tipos de valor posible.. Ejemplo: <noticia titulo="Richal O'Donnel gana el pulitzer" autor='Pepe "Porras"'> </noticia> A veces. Cuando se usa uno para delimitar el valor del atributo.Comentarios Los comentarios pueden aparecer en cualquier punto del documento. Ejemplo: <alumno nota="5 pelón" asistencia="Nula">Richalson</alumno> En una Definición de Tipo de Documento. un elemento con contenido puede modelarse como un elemento vacío con atributos.<html> <body bgcolor="yellow "> <hr/> <p> Entre lineas </p> <hr/> </body> </html> 4.Atributos Los elementos pueden tener atributos. fuera de las declaraciones etiquetas u otros comentatios.. fuera del resto de las marcas. Ejemplo: <gato><nombre>Micifú</nombre><raza>Persa</raza></gato> <gato raza="Persa">Micifú</gato> <gato raza="Persa" nombre="Micifú"/> 5.Tienen el mismo . el otro se puede usar dentro. que son una manera de incorporar características o propiedades a los elementos de un documento. Los atributos tienen que estar delimitado con comillas dobles ( " ) o comilla simple ( ' ). se especifica los atributos que puede tener cada tipo de elemento.

&apos.Que gran gato es Micifú --> <gato raza="Persa" nombre="Micifú"/> 6. &gt. &lt.Rock &amp.-Entidades predefinidas En XML 1. por lo que comienzan con "<!--" y terminan con "-->".TITLE&gt.0" encoding="UTF-7" standalone='yes'?> <ejemplos> <descripcion>Lo siguiente es un ejemplo de HTML. por ejemplo. &quot. Es decir. </ejemplo> </ejemplos> & < > ' " . ENTIDAD CARACTER &amp. &lt.</descripcion> <ejemplo> &lt. Ejemplo: <!-. el carácter "<" sin que se interprete como comienzo de una etiqueta XML.HTML&gt./TITLE&gt. Roll&lt.formato que los comentarios de HTML./HEAD&gt. Ejemplo: <?xml version="1. La cadena "--" no puede aparece dentro de un comentario. asi podemos utilizar. &lt. &lt.0 se definen cinco entidades para representar caracteres especiales y que no se interpreten como marcas por el parser XML.HEAD&gt.

No se pueden anidar secciones CDATA Ejemplo: <?xml version="1. La razón es que asi se puede leer más fácilmente el documento XML sin tener que descifrar los códigos de las entidades..Identificación del lenguaje .Secciones CDATA Las secciones CDATA también nos van a permitir especificar datos.0" encoding="UTF-7" standalone='yes'?> <ejemplos> <descripcion>Lo siguiente es un ejemplo de HTML.. pero deben ser pasadas a la aplicación.</descripcion> <ejemplo> <![CDATA[ <HTML> <HEAD> <TITLE>Rock & Roll</TITLE> </HEAD> ]]> </ejemplo> </ejemplos> 8.Instrucciones de procesamiento Las intrucciones de procesamiento permiten a los documentos XML contener instrucciones para las aplicaciones. especial o no.0"?> <?cocoon-process type="xslt"> no son parte del documento. utilizando cualquier carácter. van entre <? y ?> Ejemplo: <?xml version="1.7.. sin que se interprete como una marca XML. se le dice al cocoon (herramienta para publicar xml en la web) que la página XML es un XSLT (que ya vereis lo que es). Las secciones CDATA empiezan por la cadena "<![CDATA" y terminan con la cadena "]]>" y sólo ésta última se reconoce como marca. 9. En el ejemplo.

las etiquetas y contenidos de HEAD (cabecera). DNI.</l> <l>Juristerei. Ejercicios Todos los ejercicios que se proponen a continuación deben de usar un prólogo y hacer uso de los comentarios. usando atributos. en el que está escrito el contenido. ach! Philosophie. Ejercicio: Hacer un documento standalone de XML sobre una base de datos de alumnos usando sólo elementos con contenido (por ejemplo.</p> <p xml:lang="en-GB">What colour is it?</p> <p xml:lang="en-US">What color is it?</p> <sp who="Faust" desc='leise' xml:lang="de"> <l>Habe nun.</ul>). Ejemplo: <?xml version="1.</l> </sp> <sp who="yo" desc='comentario' xml:lang="es"> <l>No me entero de un pimiento</l> </sp> </ejemplos> 10..0" encoding="UTF-7" standalone='yes'?> <ejemplos> <p xml:lang="en">The quick brown fox jumps over the lazy dog. Ejercicio: Pasar el anterior documento XML a elementos sin contenido. nombre. Ejercicio: Haz un documento XML que contenga secciones de una página HTML (estamos rizando el rizo). Prueba que esté bien formado en el Internet Explorer o en el Mozilla. Prueba que esté bien formado en el Internet Explorer o en el Mozilla. Una atributo especial denominado xml:lang puede ser insertado en los documentos para especificar el lenguaje utilizado en los contenidos y los valores de atributo de cualquier elemento en un documento. la etiqueta P (párrafo) y una lista sin orden (<ul> <li> ... e-mail). apellidos. nota. Usa para esto secciones CDATA y entidades . por ejemplo.En el procesado de documentos puede ser útil la identificación entre el lenguaje natural o el lenguaje formal. und Medizin</l> <l>und leider auch Theologie</l> <l>durchaus studiert mit heißem Bemüh'n.

3. Introducción: Parser con validación y sin validación Un parser o procesador o analizador sintáctico lee el documento XML y verifica que es XML bien formado. Teclea o copia el código XML aquí y pulsa en "Procesar" Principio del formulario . Mediante el parser no solamente podemos comprobar si nuestros documentos son bien formados o válidos. con validación: además de comprobar que el documento está bien formado según las reglas anteriores. 2. de manera que estas puedan manipular y trabajar con documentos XML.Hazlo primero con entidades predefinidas y luego con una sección CDATA. Parsers XML Normalmente no nos tendremos que preocupar de buscar un parser concreto para comprobar la validez de nuestros documentos XML. ya que los desarrolladores de las aplicaciones que utilizaremos como navegadores o visualizadores o transformadores de esos documentos en el documento final que el usuario ve. Un ejemplo de esto es el caso del Microsoft Internet Explorer 5. Si no se ocurre ningún ejemplo. El parser o procesador de XML es la herramienta principal de cualquier aplicación XML.predefinidas. sino que también podemos incorporarlos a nuestras aplicaciones. algunos también comprueban que el código XML sea válido.DLL). Prueba que esté bien formado en el Internet Explorer o en el Mozilla . Presenta el árbol del documento a comprobar. que utiliza el parser de MS (incluido en la librería MSXML. o el caso de Mozilla. que internamente utiliza el parser EXPAT (escrito en C).x. las etiquetas están cerradas. incluirán sus propios parsers. es preferible utilizar un parser con validación. coge una de los descripciones del ejercicio de los hoteles y escribe sus caracteríscas en un listado. En el caso de utilizar un DTD.PARSERS XM L 1. Ejercicio: Haz un documento XML con un par de elementos cuyo contenido varíe dependiendo del lenguaje. sino que sólo chequea que el documento esté bien formado de acuerdo a las reglas de sintaxis de XML (sólo hay una etiqueta raíz. Prueba que esté bien formado en el Internet Explorer o en el Mozilla. Si no se te ocurre ninguno coge el ejercicio de los hoteles y escribe descripciones en un par de idiomas. Podemos dividir los parsers XML en dos grupos principales: sin validación: el parser no valida el documento utilizando un DTD. A continuación teneis un parser sin validación escrito en JavaScript. etc).. comprueba el documento utilizando un DTD (ya sea interno o externo).

microsoft. DOM para XML es un modelo de objetos estándar (propuesto por el W3C) que muestra el contenido de un documento XML. Un analizador de XML compatible con DOM toma los datos de un documento XML y los expone mediante un conjunto de objetos que se pueden programar.ibium. DOM define un conjunto estándar de comandos que los parsers devuelven para facilitar el acceso al contenido de los documentos XML desde sus programas. pues no deja de ser un archivo de texto. métodos y eventos.asp pue des ver una introducción de com se haría en Visual Basic.Q301101 como hacerlo en .com/directory/article.net/projects/expat/ como hacerlo en C usando expat (el parser del Mozilla) y en http://support.html como hacerlo con Perl.com/alf/xmlcomo poder hacerlo con JAVA. supongamos el siguiente trozo de código XML: <TABLE> <TBODY> <TR> <TD>Shady Grove</TD> .erols.microsoft.NET Veamos un ejemplo. esta solución no es muy aconsejable y desaprovecharía una de las ventajas de XML: el ser una forma estructurada de representar datos. La Especificación del Modelo de Objeto de documento (DOM) del W3C define actualmente lo que debería mostrar un DOM como propiedades.com/enno/xml/index. se podría escribir código para analizar el contenido del archivo XML. que sea compatible con el modelo de objeto de documento (DOM) de XML. Sin embargo. Modelo de Objeto Documento (DOM) Para extraer la información que contiene un documento XML.asp?ID=KB. en http://sourceforge. tal y como lo podríamos hacer con HTML.EN-US.com/spain/msdn/articulos/archivo/051299/dhtml/beginner. enhttp://users. En http://www.Final del formulario 3. en http://www. La mejor forma de recuperar información de archivos XML es utilizar un parser de XML.

0" standalone="yes"?> <noticias> <!--Noticia 1 --> <noticia tipo="economia"> <titulo url="http://www.html?anchor=elpepieco&amp.es/~javi/dbi/modulos.ca/CPAN/data/libxml-enno/XML/DOM.com/perl/index.elpais.granavenida. Para consultar los métodos y objetos del módulo XML::DOM podeis mirar enhttp://theoryx5. para los que no sepan Perl en http://www.d_date=20010215"> Microsoft. Trabajando con DOM en Perl: XML::DOM En este apartádo vamos a ver como trabajar con el Modelo de Objeto Documento (DOM) usando Perl.org/search?dist=libxml-enno. vamos a a usar el siguiente documento XML de ejemplo: <?xml version="1.es/articulo. Charlie</TD> <TD>Dorian</TD> </TR> </TBODY> </TABLE> 4. El módulo XML::DOM se basa en el módulo XML::Parser y éste a su vez en la librería del expat (parser de libre distribución del Mozilla).cpan.uwinnipeg. Para manejar el DOM bajo Perl vamos a utilizar el módulo XML::DOM que lo podeis encontrar en http://search.xref=20010215elpepieco_14 &amp.htm como instalar módulos en perl.type=Tes&amp.ugr.html. pendiente . investigado por invertir en un rival </titulo> <fecha>15 de febrero de 2001</fecha> <contenido> El gigante de la informatica Microsoft.htm hay un tutorial en castellano de Perl muy bueno y enhttp://geneura.<TD>Aeolian</TD> </TR> <TR> <TD>Over the River. Para comprender mejor como se trabaja con el DOM en Perl.

usando Perl y el módulo XML::DOM. Lo que vamos a hacer es. #!/usr/bin/perl #Indicamos al perl que use el modil XML::DOM . </contenido> </noticia> </noticias> En el ejemplo anterior se tiene un documento XML que está pensado para trabajar con noticias que aparecen en Internet. un programa que procese el documento xml y muestre el titulo de las noticias. reales o virtuales. la "dependencia" a internet.dia=18022001"> Clinicas reales y virtuales para tratar adictos a Internet </titulo> <fecha>18 de febrero de 2001</fecha> <contenido> La aparicion de una nueva patologia. </contenido> </noticia> <!--Noticia 2 --> <noticia tipo="internet"> <titulo url="http://www.165 millones de pesetas) en su rival Corel.asp?id=13298&amp. esta confirmada por la creacion de numerosas clinicas en Estados Unidos.abc.de una apelacion para evitar ser dividido en dos por vulnerar la competencia. para tratar de remediar las enfermedades de la red. está siendo investigado otra vez por las autoridades antimonopolio...es/Internet/noticia. que sospechan de por que el mayor fabricante de programas invirtio 135 millones de dolares (24..

} # Escribimos la salida del parser (el documento XML) en un fichero $doc->printToFile ("salida. #Cogemos el número de noticias $n = $noticias->getLength. #Imprimimos el nombre de la etiqueta print $noticia->getTagName. #Imprimimos el contenido del hijo print $noticia_contenido->getData. # Cogemos el titulo todas las noticias del documento XML $noticias = $doc->getElementsByTagName ("titulo").use XML::DOM. #Cogemos el hijo (texto) de la etiqueta que estamos procesando my $noticia_contenido = $noticia->getFirstChild.xml"). print "\n". #Hacemos el parser XML al fichero ejmploDOM. #Escribimos el título de cada noticia for (my $i = 0. . print ": ". $i++) { #Cogemos el tiltulo de la noticia i my $noticia = $noticias->item ($i). # Escribimos el documento XMl en pantalla #print $doc->toString.xml y obtenemos el DOM $doc = $parser->parsefile ("ejemploDOM. $i < $n.xml"). #Creamos un parser XML $parser = new XML::DOM::Parser.

#Cogemos el hijo (texto) de la etiqueta que estamos procesando my $noticia_contenido = $noticia->getFirstChild. #Imprimimos el nombre de la etiqueta print $noticia->getTagName. #Creamos un parser XML $parser = new XML::DOM::Parser. # Cogemos los nodos del DOM cuyas etiquetas sean titulo $noticias = $doc->getElementsByTagName ("titulo"). print ": ". #Escribimos el título de cada noticia for ($i = 0. #Imprimimos el contenido del hijo print $noticia_contenido->getData. $i < $n. y la url correspondiente #!/usr/bin/perl #Usamos el módulo XML::DOM de Perl use XML::DOM.xml"). . Ahora vamos a hacer un segundo ejemplo donde mostraremos las noticias.xml $doc = $parser->parsefile ("ejemploDOM. #Cogemos el número de noticias $n = $noticias->getLength. #Hacemos el parser XML al fichero ejmploDOM. $i++) { #Cogemos el tiltulo de la noticia i $noticia = $noticias->item ($i).# Limpiamos la memoria ocupada por el documento XML $doc->dispose.

Ahora vamos a hacer un tercer ejemplo donde recorremos el DOM #!/usr/bin/perl #Usamos el módulo XML::DOM de Perl use XML::DOM. #Cogemos el nodo raiz my $raiz = $doc->getFirstChild. #Hacemos el parser XML al fichero ejmploDOM. #Imprimimos el contenido de dicho atributo print " (href=". #Mostramos el árbol xml muestra_arbol($raiz. print $mi_url->getValue. # Limpiamos la memoria ocupada por el documento XML $doc->dispose.#Cogemos el valor del atributo url $mi_url= $noticia->getAttributeNode("url"). } # Limpiamos la memoria ocupada por el documento XML $doc->dispose.xml").xml my $doc = $parser->parsefile ("ejemploDOM.$profundidad). ponemos profundidad =0 my $profundidad=0. #Creamos un parser XML my $parser = new XML::DOM::Parser. print " )\n". #------------------------------------------------------------------------ . #Como el nodo raiz está en lo alto de la jerarquía.

si es de texto (hoja del DOM) decimos que hay datos if ($nodo->getNodeType==TEXT_NODE) { for (my $i=0. $i < $profundidad. $i++) {print " "}. #Cojemos los nodos hijos y el número que hay . print "\n". $i++) {print" "}. #Mostramos la etiqueta del nodo print $nodo->getTagName. print "COMENTARIO\n". $profundidad)=@_. lo mostramos y recorremos sus hijos else { #Nos vamos a la derecha dependiendo de la profundidad for (my $i=0. #Miramos el tipo de nodo. $i < $profundidad. } #No es nodo hoja. si es un comentario elsif ($nodo->getNodeType==COMMENT_NODE) { for (my $i=0.sub muestra_arbol() { #Cogemos los dos parámetros el nodo del árbol y la profundidad my ($nodo. print $nodo->getData. } #Miramos el tipo de nodo. $i++) {print " "}. $i < $profundidad. print "\n".

#Exploramos el subarbol del hijo i muestra_arbol($hijo. y como manipulareis el árbol generado por un documento XML desde vuestra aplicación . Ejercicios Ejercicio: Probar alguno de los códigos que se han escrito anteriormente en el parser XML online que teneis aquí.$i < $n. my $n=$hijos->getLength.my $hijos=$nodo->getChildNodes. como podemos ver. #Para cada nodo hijo. con XML es mucho más fácil (dentro de lo que cabe) procesar la información que lo era antes con HTML. 5. $i++) { #Cogemos el hijo i my $hijo=$hijos->item($i). Este ejercicio os ayudará a comprender cómo trabajan las aplicaciones sobre XML. ya que para procesar una página HTML (no XHTML) teníamos que trabajar con ella como si fuera texto plano.profundidad+1). por ejemplo. mostramos su etiqueta y mostramos su subarbol for (my $i. Probad como no funciona bien si el código XML está no está bien formado (Si es que no lo habeis probado anteriormente) Ejercicio: Dibuja cual sería el DOM de uno de los documentos XML realizado en ejercicios anteriores (Escoge. el ejercicio del hotel). } } } #------------------------------------------------------------------------ Resumiendo.

4. tiene que cambiar y son las siguientes: Los nombres de las etiquetas de elementos y de los atributos tienen que estar en minúscula Los valores de los atributos tienen que estar entre comillas dobles (") o simples (') Todos los elementos tienen que estar cerrados. Si sigues con el ejemplo de los hoteles que escriba una página html con los nombres de los hoteles.Teléfonos. Diferencias con HTML 4.dtd"> .body.Ejercicio:Coge el documento XML del ejercicio anterior y muestra el contenido de algún elemento del mismo. </p>) o no (<br/>) Los elementos deben de estar correctamente anidados Los valores de atributos iguales sin variantes no pueden ser simplificados Algunos elemento son obligatorios (html. Como XHTML es una aplicación del XML. Introducción XHMTL es una especificación del W3C que define un HTML escrito de forma que cumpla las normas sintácticas del XML.pl > pagina. XHTML ha sido diseñado pensando en la portabilidad. PDAs. ciertas prácticas que eran perfectamente válidas en HTML 4. en la práctica es algo fácil de conseguir.html).. generando una página HTML.. que se repita varias veces (si has cogido el ejemplo del hotel. el tipo de documento y otras cosas. que escriba los nombres de los hoteles> Ejercicio:Coge el documento XML del ejercicio anterior y muestra el contenido de algún elemento del mismo. Tiene que ser una de tres las siguientes: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.XHTM L 1. (para guardar la salida por pantalla del ejemplo se haría de la siguiente forma: ejercicio. y deberían. ha sido diseñado para ser ampliable (eXtensible). etc.0. Aunque no es obligatorio. Aunque no hay ninguna obligación de que los documentos XHTML sean compatibles con las aplicaciones existentes.. 2. head.. los documentos XML pueden. Basta que la página se vea por pantalla y luego podeis verla con el mozilla.0 Strict//EN" "DTD/xhtml1-strict. y en su visualización en diferente hardware (PCs.) Se debe incluir una declración de tipo de documento.. ya tenga contenido (<p> . comenzar con una línea que describa la versión de XML.).0 Debido al hecho de que XHTML es una aplicación XML.

select. Habrá elementos . Es decir. button. por lo que esto sólo tiene sentido si se usa más de un DTD. Probad como no funciona bien si el código XHTML está no está bien formado. sub o sup button no puede contener los elementos input.0 Frameset//EN" "DTD/xhtml1-frameset. 5. Ejercicios Ejercicio: Escoger una página HTML y pasarla a XML. que para una etiqueta se especifica que DTD usar. label. form. iframe o isindex. Introducción El objetivo principal de la especificación de espacios de nombre es permitir que el autor del documento le diga al analizador o parser qué DTD usar cuando analice un elemento dado.. Por ejemplo. label no puede contener otros elementos label. form no puede contener otros elementos form. Si no se os ocurre ninguna escoged esta misma.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.dtd"> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.ESPACIOS DE NOMBRE 1. que no está bien formada :( . Esta prohibición es aplicable a todas las profundidades de anidamiento: a no puede contener otros elementos a pre no puede contener los elementos img.dtd"> El contenido de los elementos <script> y <style> tienen que ser una sección CDATA Incompatibilidades entre elementos. supongamos que tenemos una hoja xml con libros y otra con discos (con sus correspondientes DTD) y queremos mezclar ambas páginas. usad el Internet Explorer o el Mozilla. object big small . fieldset. A continuación se detallan las incompatibilidades en el anidamiento de elementos.0 Transitional//EN" "DTD/xhtml1-transitional. 3. textarea.

se necesita algún tipo de cualificación (nombre de disco y nombre de libro. puedes ver la especificación del W3C enhttp://www. es necesario añadir un atributo a la definición de elemento.xml/slideshow" > Declarar el atributo como FIXED tiene varias características importantes: Evita que el documento especifique cualquier valor no correspondiente al atributo xmlns. Pero cuando se usa un nombre de elemento que tiene varias definiciones. Los espacios de nombres se aplican tanto a atributos como a elementos. podemos hacer esto añadiendo una entrada como la siguiente en la lista de definición de atributos de un elemento title: <!ELEMENT title (%inline. el nombre no necesita estar cualificado(tiempo y páginas en el ejemplos de los discos y de los libros).ejemplos. autor). el documento selecciona la definición de elemento con un atributo correspondiente.org/TR/REC-xml-names 2.w3. pero otros que si (titulo. es decir. Definir un espacio de nombres Para definir un espacio de nombres al que pertenece un elemento. XHTML o WML. Cada nombre de elemento en nuestro DTD obtendría exactamente el mismo atributo con el mismo valor. Entonces se usarían ambos DTD y utilizaríamos los espacios de nombre para distinguir aquellos elementos en los que no esté claro a que DTD pertenecen. al menos. por eso no genera conflictos con un elemento que tenga el mismo nombre en otro DTD. en la realidad ninguna herramienta soporta más de un DTD (yo. aunque por convención suelen ser URLs. Referenciar un espacio de nombres Cuando un documento usa un nombre de elemento que existe sólo en uno de los ficheros DTD que referencia. Esto permite que múltiples DTDs usen el mismo nombre de elemento sin generar un error del analizador Cuando un documento especifica el atributo xmlns para una etiqueta. por lo que sólo se utilizan los prefijos de espacios de nombres (que veremos dentro de poco) en XSLT(que se verá más tarde). donde el nombre del atributo sea xmlns ("xml namespace") y el valor puede ser una cadena cualquiera. Aunque el motivo de la especificación de los espacios de nombres fue usar más de un DTD. Para más información sobre los atributos. 3. se utilizan para distinguir las etiquetas propias de XSLT con las etiquetas del formato de salida .)*> <!ATTLIST title xmlns CDATA #FIXED "http://www. En este apartádo sólo hemos considerado elementos.que no se llamen igual (páginas o tiempo). Por ejemplo. por ejemplo. por . Un elemento definido en este DTD se hace único (como el parser entiende el atributo xmlns). no he visto ninguna).

como se muestra aquí: <sl:slideshow xmlns:sl='http://www.. añadir dicho atributo se convierte en una tarea algo pesada.com/slideshow" > Tutorial </title> El espacio de nombres se aplica a ese elemento. y a cualquier elemento contenido dentro de él. pero cuando necesitamos hacer la misma referencia varias veces.> . La alternativa es definir un prefijo de espacio de nombres.example.. dos puntos (:) y el nombre del prefijo antes del valor del atributo. Como el prefijo puede usarse en cualquier elemento contenido. que es tan sencillo como especificar xmlns.. Cualificamos una referencia a un nombre de elemento especificando el atributo xmlns.example/slideshow' . no es mucho trabajo.. </sl:slideshow> Finalmente podemos observar que se pueden definir varios prefijos en el mismo elemento.. como se ve a continuación: < title xmlns="http://www. en caso de que se quiera modificar posteriormente. tiene más sentido definirlo en el elemento raiz del documento XML. cuando necesitamos una sóla referencia a un espacio de nombres. como se muestra a continuación <sl:slideshow xmlns:sl='http://www. la etiqueta final también incluye el prefijo.. Cuando el prefijo se usa para cualificar un nombre de elemento. Definir un prefijo de espacio de nombres Usando el atributo xmls. <slide> <sl:title> Tutorial <sl:title> </slide> . </sl:slideshow> Esta definición configura sl como un prefijo que puede usarse para cualificar el nombre del elemento actual y cualquier elemento dentro de él. También hace dificil cambiar el nombre del espacio de nombres.example/slideshow' .> .. como se ve a continuación: <sl:slideshow xmlns:sl='http://www.ejemplo). 4....example/slideshow' .

Laurent</xdc:author></h:td> <h:td><xdc:price>31. mientras que los que tienen el prefijo h están asociados con un espacio de nombres cuyo identificador es . a su vez...w3..com/books. </sl:slideshow> 3.com/books" xmlns:h="http://www. pero.org/HTML/1998/html4"> <h:head><h:title>Book Review</h:title></h:head> <h:body> <xdc:bookreview> <xdc:title>XML: A Primer</xdc:title> <h:table> <h:tr align="center"> <h:td>Author</h:td><h:td>Price</h:td> <h:td>Pages</h:td><h:td>Date</h:td></h:tr> <h:tr align="left"> <h:td><xdc:author>Simon St.xml.98</xdc:price></h:td> <h:td><xdc:pages>352</xdc:pages></h:td> <h:td><xdc:date>1998/01</xdc:date></h:td> </h:tr> </h:table> </xdc:bookreview> </h:body> </h:html> En el ejemplo los elementos que tiene el prefijo xdc están asociados a un espacio de nombres cuyo identificador es http://www.xmlns:chtml="urn: ."> . se quiere usar HTML para mostrar la información: <h:html xmlns:xdc="http://www. Ejercicios Ejercicio: Veamos un ejemplo..xml. donde se tiene información de libros en XML.

ENLACES http://www.com/spain/msdn/articulos/archivo/051299/dhtml/beginner.xmlsoftware.htm#A6: Un tutorial de XML.es/~juange/lro/9798/copia/~kris/lro9798/documentos.arcos. para principiantes.com/enno/xml/index.http://www.com/: Todo tipo de software relacionado con XML http://www.).w3. etc.xml.w3.org/TR/REC-xml-names:Referencia oficial del W3C sobre espacios de nombres http://www. haced primero una página en XHTML y.org/TR/REC-xml: Referencia oficial del W3C sobre XML http://leo. fecha.uc3m.org/HTML/1998/html4. El ejercicio tratará de hacer lo mismo que en el ejemplo anterior pero para mostrar música en MP3 en HTML. Si no sabeis como empezar.net/projects/expat/: Direcció de Expat el parser del Mozilla. http://sourceforge.html: Módulos de Perl. © 2001 Javier de Lucas ORGANIZACION DE ARCHIVOS ACTUALES PROCESAMIENTO DE ARCHIVO CSV .worldonline. 6.es/jlgranad/xhtml/xhtml1. para hacer parser y trabajar con el DOM.ibium.erols.w3.com/alf/xml: Un Magnífico tutorial en castellano sobre XML y tecnologías asociadas.inf. http://www.microsoft. http://www.. estilo. otra siguiendo un formato de vuestra invención (por ejemplo autor. segundo. disco.htm: Referencia oficial del W3C sobre XHTML traducido al castellano http://users.asp: Artículo sobre el Modelo de Objeto Documento desde el punto de vista de Microsoft http://www.com/:Un completo sitio de recursos sobre XML http://www.

Archivos secuenciales es la forma mas simple de almacenar y recuperar un archivo nuevo ya que sirve para representar datos en forma de tabla tiene distintas características las columnas se encuentran separadas por comas y las filas por saltos de lineas Ya que en este caso las utilizamos en hojas de calculo ya que este también guarda uncamente el texto y los valores que aparezcan en dichas hojas. Proporciona un estándar de datos que puede codificar el contenido. un objeto condatos . PROCESAMIENTO DE ARCHIVO XML Es un formato de datos estructurados esto facilita unas declaraciones de contenido más precisas y unos resultados de búsquedas más significativos en varias plataformas. la semántica y los esquemas de una gran variedad de casos como un documento normal. un registro estructurado.

Lectura: localizar un registro a partir de algun valor de clave primaria Lectura consecutiva: tras haber realizado una lectura. consiste en leer el siguiente registro segun el criterio de búsqueda establecido. Borrado: Eliminar el registro del archivo. sin ordenar.ORGANIZACION DE ARCHIVOS NO ESTRUCTURADOS La organizacion no estrucurada basicamente se basa en un identificador mas un separador un valor y otro separador ya que esto se almacena informacion a cerca de su contenido. Inserción : incluye un nuevo registro en el archivo de datos. Actualización : Modificar los valores de un registro .Reorganizacion : Compactar el archivo eliminando los huecos dejados por los registros borrados o actualizados . de forma ordenada. Lectura exhaustiva: Listar todos los registros desde el principio hasta el final. Lectura ordenada: Listar todos los registros desde el principio hasta el final. ordenados por clave.