Está en la página 1de 41

Extensible Markup Language eXtensible Markup Language (XML)

Desarrollador World Wide Web Consortium Informacin general Extensin de archivo Tipo de MIME Tipo de formato Estndar(es) .xml application/xml, text/xml Lenguaje de marcado 1.0 (Fourth Edition) 1.1 (Second Edition) ?

Formato abierto

XML, siglas en ingls 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 gramtica de lenguajes especficos (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 informacin. (Bases de datos Silberschatz). XML no ha nacido slo para su aplicacin para Internet, sino que se propone como un estndar para el intercambio de informacin estructurada entre diferentes plataformas. Se puede usar en bases de datos, editores de texto, hojas de clculo y casi cualquier cosa imaginable.

XML es una tecnologa sencilla que tiene a su alrededor otras que la complementan y la hacen mucho ms 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 informacin de una manera segura, fiable y fcil. ndice [ocultar] 1 Historia 2 Crticas 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 Prlogo 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 Declaracin 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 tecnologas 8 Vase tambin 9 Referencias 10 Enlaces externos Historia [editar] XML proviene de un lenguaje inventado por IBM en los aos setenta, llamado GML (Generalized Markup Language), que surgi por la necesidad que tena la empresa de almacenar grandes cantidades de informacin. 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 informacin.1 En el ao 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 aplicacin ms conocida de este estndar. Losnavegadores web sin embargo siempre han puesto pocas exigencias al cdigo HTML que interpretan y as las pginas web son caticas y no cumplen con la sintaxis. Estas pginas web dependen fuertemente de una forma especfica de lidiar con los errores y las ambigedades, lo que hace a las pginas ms frgiles y a los navegadores ms complejos. Otra limitacin 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 intrprete (por ejemplo un navegador) analizar el documento sin tener conocimiento de su gramtica (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 lgica ad hoc para el HTML, en vez de incluir un analizador genrico. 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 creacin de analizadores simples, sin ninguna lgica 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 caractersticas de SGML que estaban pensadas para facilitar la escritura manual de documentos. XML en cambio est orientado a hacer las cosas ms sencillas para los programas automticos que necesiten interpretar el documento. Crticas [editar] XML y sus extensiones han sido regularmente criticadas por su nivel de detalle y complejidad.2 El mapeo del modelo de rbol bsico de XML hacia los sistema de tipos de lenguajes de programacin o bases de datos puede ser difcil, especialmente cuando se utiliza XML para el intercambio de datos altamente estructurados entre aplicaciones, lo que no era su objetivo primario de diseo. Otras crticas intentan refutar la afirmacin de que XML es un lenguaje autodescriptivo3 (aunque la especificacin XML no hace ninguna afirmacin de este tipo). Se propone a JSON yYAML frecuentemente como alternativas, centrndose ambas en la representacin de datos estructurados, en lugar de documentos narrativos. Ventajas del XML [editar] Es extensible: Despus de diseado y puesto en produccin, es posible extender XML con la adicin de nuevas etiquetas, de modo que se pueda continuar utilizando sin complicacin alguna. El analizador es un componente estndar, no es necesario crear un analizador especfico para cada versin 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, podramos tener una aplicacin en Linux con una base de datos Postgres y comunicarla con otra aplicacin en Windows y Base de Datos MS-SQL Server. Transformamos datos en informacin, pues se le aade un significado concreto y los asociamos a un contexto, con lo cual tenemos flexibilidad para estructurar documentos. Estructura de un documento XML [editar] La tecnologa XML busca dar solucin al problema de expresar informacin estructurada de la manera ms abstracta y reutilizable posible. Que la informacin 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 informacin. Ejemplos son un tema musical, que se compone de compases, que estn formados a su vez por notas. Estas partes se llaman elementos, y se las seala mediante etiquetas. Una etiqueta consiste en una marca hecha en el documento, que seala una porcin de ste como un elemento. Un pedazo de informacin con un sentido claro y definido. Las etiquetas tienen la forma <nombre>, donde nombre es el nombre del elemento que se est sealando. A continuacin se muestra un ejemplo para entender la estructura de un documento XML:

<?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE Edit_Mensaje SYSTEM "Edit_Mensaje.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... </Asunto> <Parrafo> Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades... </Parrafo> </Texto> </Mensaje> </Edit_Mensaje> Aqu est el ejemplo de cdigo del DTD del documento Edit_Mensaje.dtd: <?xml version="1.0" encoding="ISO-8859-1" ?>

<!-- Este es el DTD de Edit_Mensaje -->

<!ELEMENT Mensaje (Remitente, Destinatario, Texto)*> <!ELEMENT Remitente (Nombre, Mail)> <!ELEMENT Nombre (#PCDATA)> <!ELEMENT Mail (#PCDATA)> <!ELEMENT Destinatario (Nombre, Mail)> <!ELEMENT Nombre (#PCDATA)> <!ELEMENT Mail (#PCDATA)> <!ELEMENT Texto (Asunto, Parrafo)> <!ELEMENT Asunto (#PCDATA)> <!ELEMENT Parrafo (#PCDATA)> Documentos XML bien formados y control de errores [editar] Los documentos denominados como bien formados (del ingls well formed) son aquellos que cumplen con todas las definiciones bsicas de formato y pueden, por lo tanto, analizarse correctamente por cualquier analizador sintctico (parser) que cumpla con la norma. Se separa esto del concepto de validez que se explica ms adelante. Los documentos han de seguir una estructura estrictamente jerrquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente incluida en otra, es decir, las etiquetas deben estar correctamente anidadas. Los elementos con contenido deben estar correctamente cerrados. Los documentos XML slo permiten un elemento raz del que todos los dems sean parte, es decir, solo pueden tener un elemento inicial. Los valores atributos en XML siempre deben estar encerrados entre comillas simples o dobles. El XML es sensible a maysculas y minsculas. Existe un conjunto de caracteres llamados espacios en blanco (espacios, tabuladores, retornos de carro, saltos de lnea) que los procesadores XML tratan de forma diferente en el marcado XML. Es necesario asignar nombres a las estructuras, tipos de elementos, entidades, elementos particulares, etc. En XML los nombres tienen alguna caracterstica en comn. Las construcciones como etiquetas, referencias de entidad y declaraciones se denominan marcas; son partes del documento que el procesador XML espera entender. El resto del documento entre marcas son los datos entendibles por las personas.

Partes de un documento XML [editar] Un documento XML est formado por el prlogo 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, hay que tener mucho cuidado de esa parte de la gramtica lxica para que se componga de manera uniforme. Prlogo [editar] Aunque no es obligatorio, los documentos XML pueden empezar con unas lneas que describen la versin XML, el tipo de documento y otras cosas. El prlogo de un documento XML contiene: Una declaracin XML. Es la sentencia que declara al documento como un documento XML. Una declaracin de tipo de documento. Enlaza el documento con su DTD (definicin de tipo de documento), o el DTD puede estar incluido en la propia declaracin o ambas cosas al mismo tiempo. Uno o ms comentarios e instrucciones de procesamiento. EJEMPLO: <?xml version="1.0" encoding="UTF-8"?> Cuerpo [editar] A diferencia del prlogo, el cuerpo no es opcional en un documento XML, el cuerpo debe contener solo un elemento raz, caracterstica indispensable tambin para que el documento est bien formado. Sin embargo es necesaria la adquisicin de datos para su buen funcionamiento. EJEMPLO: <Edit_Mensaje> (...) </Edit_Mensaje> Elementos [editar] Los elementos XML pueden tener contenido (ms elementos, caracteres o ambos), o bien ser elementos vacos. Atributos [editar] Los elementos pueden tener atributos, que son una manera de incorporar caractersticas o propiedades a los elementos de un documento. Deben ir entre comillas. Por ejemplo, un elemento estudiante puede tener un atributo Mario y un atributo tipo, con valores come croquetas y taleno respectivamente.

<Estudiante Mario="come croquetas" tipo="taleno">Esto es un da que Mario va paseando</Estudiante> Entidades predefinidas [editar] Entidades para representar caracteres especiales para que, de esta forma, no sean interpretados como marcado en el procesador XML. Ejemplo: entidad predefinida: & carcter: &. Secciones CDATA [editar] Artculo principal: Anexo:Etiquetas HTML/XHTML. Es una construccin en XML para especificar datos utilizando cualquier carcter sin que se interprete como marcado XML. No confundir con 2(#PCDATA) que es para los elementos. Permite que caracteres especiales no rompan la estructura. Ejemplo: <![CDATA[contenido especial: &]]> Comentarios [editar] Comentarios a modo informativo para el programador que han de ser ignorados por el procesador. Los comentarios en XML tienen el siguiente formato: <!--- Esto es un comentario ---> <!-- Otro comentario --> Validez [editar] Que un documento est bien formado solamente se refiere a su estructura sintctica bsica, es decir, que se componga de elementos, atributos y comentarios como XML especifica que se escriban. Ahora bien, cada aplicacin de XML, es decir, cada lenguaje definido con esta tecnologa, necesitar especificar cul es exactamente la relacin que debe verificarse entre los distintos elementos presentes en el documento. Esta relacin entre elementos se especifica en un documento externo o definicin (expresada como DTD Document Type Definition, 'Definicin de Tipo de Documento' o como XSchema). Crear una definicin equivale a crear un nuevo lenguaje de marcado, para una aplicacin especfica. Document Type Definition [editar] La Document Type Definition o DTD (en espaol "definicin de tipo de documento") define los tipos de elementos, atributos y entidades permitidas, y puede expresar algunas limitaciones para combinarlos. Los documentos XML que se ajustan a su DTD son denominados vlidos. Declaraciones tipo elemento [editar]

Los elementos deben ajustarse a un tipo de documento declarado en una DTD para que el documento sea considerado como vlido. Modelos de contenido [editar] Un modelo de contenido es un patrn que establece los subelementos aceptados, y el orden en que se aceptan. Declaraciones de lista de atributos [editar] Los atributos se usan para aadir informacin adicional a los elementos de un documento. Tipos de atributos [editar] Atributos CDATA y NMTOKEN Atributos enumerados y notaciones Atributos ID e IDREF Declaracin de entidades [editar] XML hace referencia a objetos que no deben ser analizados sintcticamente segn las reglas XML, mediante el uso de entidades. 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 semnticamente los elementos que forman un documento XML. XML Schemas (XSD) [editar] Un Schema es algo similar a un DTD. Define qu elementos puede contener un documento XML, cmo estn organizados y qu atributos y de qu tipo pueden tener sus elementos. Ventajas de los Schemas frente a los DTD [editar] Usan sintaxis de XML, al contrario que los DTD. Permiten especificar los tipos de datos. Son extensibles. Herramientas para trabajar con documentos XML [editar]

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

Xades (XML Advanced Electronic Signatures) Hay quien opina que XML es demasiado pesado para algunas aplicaciones y difcil de editar con un editor de texto simple. Por ello merece la pena mencionar algunas alternativas ms ligeras y simples. Los lenguajes de marcas ligeros: Simple Outline XML: es un XML simplificado que se puede convertir sin problemas en XML completo. YAML y OGDL. Estos dos son ficheros de solo texto que no estn emparentados con XML como el SOX, antes comentado. BBCode. ste tiene un uso muy restringido para dar formato nada ms. Tambin hay por lo menos un lenguaje basado en XML en formato binario, llamado EBML. Vase tambin [editar] Portal:informtica. Contenido relacionado con informtica. XML-RPC protocolo de llamada de procedimiento remoto (RPC) que utiliza XML para codificar los datos. SOAP protocolo de llamadas a mtodos remotos e intercambio de mensajes XML utilizando tecnologa de objeto. HL7 v3 estndar de interoperabilidad de datos de salud, que utiliza mensajes y documentos electrnicos XML. 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. RI5. Consultado el 2 de noviembre de 2012. 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

Enlaces externos [editar] Conjunto de informacin XML (segunda edicin). Traduccin de la recomendacin del W3C sobre conjunto de informacin XML (segunda edicin). Espacios de nombres en XML 1.1. Traduccin de la recomendacin del W3C sobre los espacios de nombres en XML 1.1. Enlaces de la Especificacin de Gestin de Claves XML (XKMS 2.0). Traduccin de la recomendacin del W3C sobre enlaces de protocolo con caractersticas de seguridad para la Especificacin de Gestin de Claves XML (XKMS). Inclusiones XML. Traduccin de XML Inclusions (XInclude) Version 1.0. xml:id Versin 1.0. Traduccin de la recomendacin del W3C sobre xml:id 1.0. Pgina web oficial de W3C sobre XML (en ingls). XML Schema (en espaol). Introduccin a XML (en espaol). Introduccin al XML introduccin conceptual al XML. programacin.com cursos, tutoriales, trucos, etc. El estndar XML (en ingls). The Extensible Stylesheet Language Family (XSL) (en ingls). XML.org (en ingls). XML Software Guide (en ingls). Pgina web sobre XML de Microsoft (en ingls). XML Document Authoring Tools (en ingls). XML mdulos Perl en CPAN (en ingls). XML.Awardspace introduccin bsica al XML. SoaAgenda ejemplo de traspaso XML a DOM. XML: Introduccin, video introductorio a XML. XML: Ejemplos de uso, vdeo que explica diferentes ejemplos de uso de XML, como CML, MathML o SVG. XML: HTML y XHTML, vdeo que explica las diferencias entre XML, HTML y XHTML.

El XML (eXtensible Markup Lenguage - Lenguaje extensible de marcas) es un un lenguaje abierto, derivado de SGML, optimizado para su uso en la WWW, y que va a permitirnos describir el sentido o la semntica de los datos. El XML, a diferencia del HTML, separa el contenido de la presentacin. XML es un Meta-Lenguaje, que permite la definicin de lenguajes concretos de representacin de documentos. Los fundamentos del XML son muy sencillos y en principio, las nicas herramientas que nos harn falta son: Un editor para poder escribir los documentos XML, por ejemplo, el notepad en Windows y el xemacs en Linux Un procesador o parser XML; por ejemplo, usaremos los parsers que incorporan el Internet Explorer 5.X o el Mozilla INDICE 1.- Documentos XML Introduccin Documento XML "bien formado" Tipos de letra y fines de lnea Estructura jerrquica de los elementos Espacios en blanco Nombrando cosas Marcas y datos Ejercicios 2.- Extensible Markup Language (XML) Prlogo y declaracin de tipo de documento Declaracin de documento Standalone Elementos Atributos Comentarios Entidades predefinidas Secciones CDATA Intrucciones de procesamiento

Identificacin del lenguaje Ejercicios 3.- Parsers XML y el Modelo Objeto Documento (DOM) Introduccin: Parsers con validacin y sin validacin Parsers XML Modelo de Objeto Documento (Document Object Model -DOM) Trabajando con DOM en Perl:XML::DOM Ejercicios 4.- XHTML Introduccin Diferencias con HTML 4.0 Ejercicios 5.- Espacios de nombre (Namespaces) Introduccin Definir un Espacio de Nombres Referenciar un Espacio de Nombres Definir un Prefijo De Espacio de Nombres Ejercicios 6.- Enlaces y sitios de referencia.

1.- DOCUMENTOS XML 1.- Introduccin Aunque, a primera vista, un documento XML y un documento HTML puedan parecernos muy parecidos, hay una diferencia principal y es que el HTML no indica lo que se est representando, tiene datos mal definidos con elementos de formato, mientras que el XML contiene datos que se autodefinen: describe el contenido de lo que etiquetan. Una forma rpida de entender la estructura de un documento XML es viendo un ejemplo: <?xml version="1.0" encoding="UTF-7" ?> <album>

<titulo>Joaqun 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 lgica y una fsica. La estructura lgica del documento es una serie de declaraciones, elementos, comentarios, etc. que se indican en el documento mediante marcas explcitas. La estructura fsica del documento es una serie de unidades llamadas entidades, es decir, indica los datos que contendr el documento. Las estructuras lgica y fsica deben anidarse de forma correcta. 2.- Documento XML "bien formado" Todo documento XML deben estar bien formado, lo que significa que se debe cumplir lo siguiente: si no se utiliza DTD, el documento debe comenzar con un Declaracin de Documento Standalone todas las etiquetas deben estar balanceadas: esto es, todos los elementos que contengan datos de tipo carcter deben tener etiquetas de principio y fin todos los valores de los atributos deben ir entrecomillados (el carcter comilla simple [el apstrofe] puede utilizarse si el valor contiene caracteres comillas dobles, y viceversa): si necesitas ambos, utiliza &apos; y &quot; cualquier elemento VACO (p.e. aquellos que no tienen etiqueta final como <IMG>, <HR>, y <BR> y otros de HTML) deben terminar con '/>' o deben hacerse no VACOS aadindoles una etiqueta de fin. no debe haber etiquetas aisladas (< &) en el texto (p.e. debe darse como &lt; y &amp;), y la secuencia ]]> debe darse como ]]&gt; si no ocurre esto como final de una seccin marcada como CDATA; los elementos deben anidar dentro de s sus propiedades (no se deben sobreponer etiquetas, como en el resto de SGML); Los ficheros bien-formados sin-DTD pueden utilizar atributos en sus elementos, pero stos deben ser todos del tipo CDATA, por defecto. El tipo CDATA (character DATA) son caracteres. Segn la especificacin de XML del W3C, un documento XML est bien formado si: Tomado como un todo, cumple la regla denominada "document". Respeta todas las restricciones de buena formacin dadas en la especificicacin.

Cada una de las entidades analizadas que se referencia directa o indirectamente en el documento est bien formada. Cumplir la regla "document" antes mencionada significa: Que contiene uno o ms elementos. Hay exactamente un elemento, llamado raz, o elemento documento, del cual ninguna parte aparece en el contenido de ningn otro elemento. Para el resto de elementos, si la etiqueta de comienzo est en el contenido de algn otro elemento, la etiqueta de fin est en el contenido del mismo elemento. Es decir, los elementos delimitados por etiquetas de principio y final se anidan adecuadamente mutuamente. 3.- Estructura jerrquica de los elementos Los documentos XML deben tener una estructura jerrquica con lo que respecta a las etiquetas que delimitan sus elementos. Esto significa que los elementos deben estar correctamente anidados y que los elementos no se pueden solapar entre ellos. Adems, los elementos con contenido deben estar correctamente cerrados. Ejemplo incorrecto: <?xml version="1.0" ?>

<nombre>Richal

Ejemplo correcto: <?xml version="1.0" ?>

<nombre>Richal </nombre> Slo puede haber un elemento raz, en el que estn contenidos todos los dems, es decir, la jerarqua de elementos XML slo puede tener un elemento inicial. Ejemplo incorrecto: <?xml version="1.0" ?>

<nombre>Richal</nombre> <email>richal@ejemplo.com</email> Ejemplo correcto:

<?xml version="1.0" ?> <alumnos> <nombre>Richal</nombre> <email>richal@ejemplo.com</email> </alumnos> 4.- Tipos de letra y fines de lnea El XML, a diferencia del HTML, es "case sensitive", es decir, trata a las maysculas y las minsculas como caracteres diferentes. Si un elemento de XML est definido como "Elemento", no podemos usar "elemento" para referirnos a l. Ejemplo con Case sensitive y solapamiento. <?xml version="1.0" ?> <alumnos>

<Nombre>Richal</nombre> <email>richal@ejemplo.com</email>

<nombre>Chicho</Nombre> <email>chicho@ejemplo.com</email>

</alumnos> En la edicin de documentos XML , por claridad, se suele organizar en varias lneas, que, normalmente, se componen de carcter de fin de lnea y otro de retorno de carro. Un parser XML pasa nicamente a la aplicacin el carcter de fin de lnea. 5.- Espacios en blanco En la edicin de documentos XML, suele ser conveniente utilizar "espacios en blanco" (espacios, tabuladores y lneas en blanco), que normalmente son innecesarios en una versin distribuible a travs de la red, aunque tambin existen ocasiones en los que es deseable la representacin de esos "espacios en blanco" (por ejemplo, cdigo fuente). Para que las aplicaciones preserven la representacin de esos espacios en blanco en un elemento se utiliza el atributo xml:space que puede tomar los valores preserve o default, para conservar los espacios en blanco o aplicar el tratamiento por defecto, respectivamente.

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

2.- EXTENSIBLE MARKUP LANGUAJE 1.- Prlogo y declaracin de tipo de documento Aunque no es obligatorio, los documentos XML pueden, y deberan, comenzar con una lnea que describa la versin de XML, el tipo de documento y otras cosas. La primera lnea del prlogo o "declaracin" permite especificar la versin de XML usada; hasta el momento, slo existe la "1.0" y la codificacin de caracter (US-ASCII, UTF-8, BIG5, ISO-8850-7,etc.). En general, para el castellano, usamos UTF-7 (cdigo Unicode del que ASCII es un subconjunto) o ISO8859-1. Ejemplo: <?xml version="1.0" encoding="UTF-7" ?> <nada> Ejemplo </nada> La segunda lnea, o "declaracin de tipo de documento XML", define que tipo de documento estamos creando, es decir, definimos que Declaracin de Tipo de Documento (DTD - Document Type Definition) cumple y define los datos que de contiene el documento XML. Ejemplos: <?xml version="1.0" encoding="UTF-7" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd"> <html> <body bgcolor="yellow "> <p> Ejemplo </p> </body> </html> <?xml version="1.0" encoding="UTF-7" ?> <!DOCTYPE ejemplo SYSTEM "http://www.ejemplos.xml/ejemplo.dtd"> <nada> Ejemplo </nada> Un documento XML es vlido si tiene asociado una DTD y el documento cumple las restricciones que la DTD expresa. Slo puede haber un elemento raiz, en el que estn

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

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

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

7.- Secciones CDATA Las secciones CDATA tambin nos van a permitir especificar datos, utilizando cualquier carcter, especial o no, sin que se interprete como una marca XML. La razn es que asi se puede leer ms fcilmente el documento XML sin tener que descifrar los cdigos de las entidades. Las secciones CDATA empiezan por la cadena "<![CDATA" y terminan con la cadena "]]>" y slo sta ltima se reconoce como marca. No se pueden anidar secciones CDATA Ejemplo: <?xml version="1.0" encoding="UTF-7" standalone='yes'?> <ejemplos> <descripcion>Lo siguiente es un ejemplo de HTML.</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, van entre <? y ?> Ejemplo: <?xml version="1.0"?> <?cocoon-process type="xslt"> no son parte del documento, pero deben ser pasadas a la aplicacin. En el ejemplo, se le dice al cocoon (herramienta para publicar xml en la web) que la pgina XML es un XSLT (que ya vereis lo que es). 9.- Identificacin del lenguaje

En el procesado de documentos puede ser til la identificacin entre el lenguaje natural o el lenguaje formal, en el que est escrito el contenido. 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. Ejemplo: <?xml version="1.0" encoding="UTF-7" standalone='yes'?> <ejemplos> <p xml:lang="en">The quick brown fox jumps over the lazy dog.</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, ach! Philosophie,</l> <l>Juristerei, und Medizin</l> <l>und leider auch Theologie</l> <l>durchaus studiert mit heiem Bemh'n.</l> </sp> <sp who="yo" desc='comentario' xml:lang="es"> <l>No me entero de un pimiento</l> </sp> </ejemplos> 10. Ejercicios Todos los ejercicios que se proponen a continuacin deben de usar un prlogo y hacer uso de los comentarios. Ejercicio: Hacer un documento standalone de XML sobre una base de datos de alumnos usando slo elementos con contenido (por ejemplo, nombre, apellidos, nota, DNI, e-mail). Prueba que est bien formado en el Internet Explorer o en el Mozilla. Ejercicio: Pasar el anterior documento XML a elementos sin contenido, usando atributos. Prueba que est bien formado en el Internet Explorer o en el Mozilla. Ejercicio: Haz un documento XML que contenga secciones de una pgina HTML (estamos rizando el rizo), por ejemplo, las etiquetas y contenidos de HEAD (cabecera), la etiqueta P (prrafo) y una lista sin orden (<ul> <li> ...</ul>);. Usa para esto secciones CDATA y entidades

predefinidas. Prueba que est bien formado en el Internet Explorer o en el Mozilla . Si no se ocurre ningn ejemplo, coge una de los descripciones del ejercicio de los hoteles y escribe sus caracterscas en un listado.Hazlo primero con entidades predefinidas y luego con una seccin CDATA. Ejercicio: Haz un documento XML con un par de elementos cuyo contenido vare dependiendo del lenguaje. 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.

3.- PARSERS XM L 1. Introduccin: Parser con validacin y sin validacin Un parser o procesador o analizador sintctico lee el documento XML y verifica que es XML bien formado; algunos tambin comprueban que el cdigo XML sea vlido. El parser o procesador de XML es la herramienta principal de cualquier aplicacin XML. Mediante el parser no solamente podemos comprobar si nuestros documentos son bien formados o vlidos, sino que tambin podemos incorporarlos a nuestras aplicaciones, de manera que estas puedan manipular y trabajar con documentos XML. Podemos dividir los parsers XML en dos grupos principales: sin validacin: el parser no valida el documento utilizando un DTD, sino que slo chequea que el documento est bien formado de acuerdo a las reglas de sintaxis de XML (slo hay una etiqueta raz, las etiquetas estn cerradas, etc). con validacin: adems de comprobar que el documento est bien formado segn las reglas anteriores, comprueba el documento utilizando un DTD (ya sea interno o externo). En el caso de utilizar un DTD, es preferible utilizar un parser con validacin. 2. 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, incluirn sus propios parsers. Un ejemplo de esto es el caso del Microsoft Internet Explorer 5.x, que utiliza el parser de MS (incluido en la librera MSXML.DLL); o el caso de Mozilla, que internamente utiliza el parser EXPAT (escrito en C). A continuacin teneis un parser sin validacin escrito en JavaScript. Presenta el rbol del documento a comprobar. Teclea o copia el cdigo XML aqu y pulsa en "Procesar" Principio del formulario

Final del formulario 3. Modelo de Objeto Documento (DOM) Para extraer la informacin que contiene un documento XML, se podra escribir cdigo para analizar el contenido del archivo XML, pues no deja de ser un archivo de texto, tal y como lo podramos hacer con HTML. Sin embargo, esta solucin no es muy aconsejable y desaprovechara una de las ventajas de XML: el ser una forma estructurada de representar datos. La mejor forma de recuperar informacin de archivos XML es utilizar un parser de XML, que sea compatible con el modelo de objeto de documento (DOM) de XML. DOM define un conjunto estndar de comandos que los parsers devuelven para facilitar el acceso al contenido de los documentos XML desde sus programas. 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. DOM para XML es un modelo de objetos estndar (propuesto por el W3C) que muestra el contenido de un documento XML. La Especificacin del Modelo de Objeto de documento (DOM) del W3C define actualmente lo que debera mostrar un DOM como propiedades, mtodos y eventos. En http://www.microsoft.com/spain/msdn/articulos/archivo/051299/dhtml/beginner.asp pue des ver una introduccin de com se hara en Visual Basic, en http://www.ibium.com/alf/xmlcomo poder hacerlo con JAVA, enhttp://users.erols.com/enno/xml/index.html como hacerlo con Perl, en http://sourceforge.net/projects/expat/ como hacerlo en C usando expat (el parser del Mozilla) y en http://support.microsoft.com/directory/article.asp?ID=KB;EN-US;Q301101 como hacerlo en .NET Veamos un ejemplo, supongamos el siguiente trozo de cdigo XML: <TABLE> <TBODY> <TR> <TD>Shady Grove</TD>

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

de una apelacion para evitar ser dividido en dos por vulnerar la competencia, est siendo investigado otra vez por las autoridades antimonopolio, que sospechan de por que el mayor fabricante de programas invirtio 135 millones de dolares (24.165 millones de pesetas) en su rival Corel. </contenido> </noticia>

<!--Noticia 2 --> <noticia tipo="internet"> <titulo url="http://www.abc.es/Internet/noticia.asp?id=13298&amp;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, la "dependencia" a internet, esta confirmada por la creacion de numerosas clinicas en Estados Unidos, reales o virtuales, para tratar de remediar las enfermedades de la red.... </contenido> </noticia>

</noticias> En el ejemplo anterior se tiene un documento XML que est pensado para trabajar con noticias que aparecen en Internet. Lo que vamos a hacer es, usando Perl y el mdulo XML::DOM, un programa que procese el documento xml y muestre el titulo de las noticias. #!/usr/bin/perl #Indicamos al perl que use el modil XML::DOM

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

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

#Cogemos el valor del atributo url $mi_url= $noticia->getAttributeNode("url"); #Imprimimos el contenido de dicho atributo print " (href="; print $mi_url->getValue; print " )\n"; } # 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 mdulo XML::DOM de Perl use XML::DOM; #Creamos un parser XML my $parser = new XML::DOM::Parser; #Hacemos el parser XML al fichero ejmploDOM.xml my $doc = $parser->parsefile ("ejemploDOM.xml"); #Cogemos el nodo raiz my $raiz = $doc->getFirstChild; #Como el nodo raiz est en lo alto de la jerarqua, ponemos profundidad =0 my $profundidad=0; #Mostramos el rbol xml muestra_arbol($raiz,$profundidad); # Limpiamos la memoria ocupada por el documento XML $doc->dispose; #------------------------------------------------------------------------

sub muestra_arbol() { #Cogemos los dos parmetros el nodo del rbol y la profundidad my ($nodo, $profundidad)=@_; #Miramos el tipo de nodo, si es de texto (hoja del DOM) decimos que hay datos if ($nodo->getNodeType==TEXT_NODE) { for (my $i=0; $i < $profundidad; $i++) {print " "}; print $nodo->getData; print "\n"; }

#Miramos el tipo de nodo, si es un comentario elsif ($nodo->getNodeType==COMMENT_NODE) { for (my $i=0; $i < $profundidad; $i++) {print " "}; print "COMENTARIO\n"; } #No es nodo hoja, lo mostramos y recorremos sus hijos else { #Nos vamos a la derecha dependiendo de la profundidad for (my $i=0; $i < $profundidad; $i++) {print" "};

#Mostramos la etiqueta del nodo print $nodo->getTagName; print "\n";

#Cojemos los nodos hijos y el nmero que hay

my $hijos=$nodo->getChildNodes; my $n=$hijos->getLength;

#Para cada nodo hijo, mostramos su etiqueta y mostramos su subarbol for (my $i;$i < $n; $i++) { #Cogemos el hijo i my $hijo=$hijos->item($i);

#Exploramos el subarbol del hijo i muestra_arbol($hijo,profundidad+1); }

} } #------------------------------------------------------------------------

Resumiendo, como podemos ver, con XML es mucho ms fcil (dentro de lo que cabe) procesar la informacin que lo era antes con HTML, ya que para procesar una pgina HTML (no XHTML) tenamos que trabajar con ella como si fuera texto plano. 5. Ejercicios Ejercicio: Probar alguno de los cdigos que se han escrito anteriormente en el parser XML online que teneis aqu. Probad como no funciona bien si el cdigo XML est no est bien formado (Si es que no lo habeis probado anteriormente) Ejercicio: Dibuja cual sera el DOM de uno de los documentos XML realizado en ejercicios anteriores (Escoge, por ejemplo, el ejercicio del hotel). Este ejercicio os ayudar a comprender cmo trabajan las aplicaciones sobre XML, y como manipulareis el rbol generado por un documento XML desde vuestra aplicacin

Ejercicio:Coge el documento XML del ejercicio anterior y muestra el contenido de algn elemento del mismo, que se repita varias veces (si has cogido el ejemplo del hotel, que escriba los nombres de los hoteles> Ejercicio:Coge el documento XML del ejercicio anterior y muestra el contenido de algn elemento del mismo, generando una pgina HTML. Basta que la pgina se vea por pantalla y luego podeis verla con el mozilla. (para guardar la salida por pantalla del ejemplo se hara de la siguiente forma: ejercicio.pl > pagina.html). Si sigues con el ejemplo de los hoteles que escriba una pgina html con los nombres de los hoteles.

4.- XHTM L 1. Introduccin XHMTL es una especificacin del W3C que define un HTML escrito de forma que cumpla las normas sintcticas del XML. Como XHTML es una aplicacin del XML, ha sido diseado para ser ampliable (eXtensible). XHTML ha sido diseado pensando en la portabilidad, y en su visualizacin en diferente hardware (PCs, PDAs,Telfonos, etc.). Aunque no es obligatorio, los documentos XML pueden, y deberan, comenzar con una lnea que describa la versin de XML, el tipo de documento y otras cosas. Aunque no hay ninguna obligacin de que los documentos XHTML sean compatibles con las aplicaciones existentes, en la prctica es algo fcil de conseguir. 2. Diferencias con HTML 4.0 Debido al hecho de que XHTML es una aplicacin XML, ciertas prcticas que eran perfectamente vlidas en HTML 4.0, tiene que cambiar y son las siguientes: Los nombres de las etiquetas de elementos y de los atributos tienen que estar en minscula Los valores de los atributos tienen que estar entre comillas dobles (") o simples (') Todos los elementos tienen que estar cerrados, ya tenga contenido (<p> ... </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,body, head...) Se debe incluir una declracin de tipo de documento. Tiene que ser una de tres las siguientes:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "DTD/xhtml1-strict.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "DTD/xhtml1-transitional.dtd">

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN" "DTD/xhtml1-frameset.dtd">

El contenido de los elementos <script> y <style> tienen que ser una seccin CDATA Incompatibilidades entre elementos. A continuacin se detallan las incompatibilidades en el anidamiento de elementos. Esta prohibicin es aplicable a todas las profundidades de anidamiento: a no puede contener otros elementos a pre no puede contener los elementos img, object big small , sub o sup button no puede contener los elementos input, select, textarea, label, button, form, fieldset, iframe o isindex. label no puede contener otros elementos label. form no puede contener otros elementos form. 3. Ejercicios Ejercicio: Escoger una pgina HTML y pasarla a XML. Si no se os ocurre ninguna escoged esta misma, que no est bien formada :( . Probad como no funciona bien si el cdigo XHTML est no est bien formado, usad el Internet Explorer o el Mozilla.

5.- ESPACIOS DE NOMBRE 1. Introduccin El objetivo principal de la especificacin 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. Es decir, que para una etiqueta se especifica que DTD usar, por lo que esto slo tiene sentido si se usa ms de un DTD. Por ejemplo, supongamos que tenemos una hoja xml con libros y otra con discos (con sus correspondientes DTD) y queremos mezclar ambas pginas. Habr elementos

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

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

xmlns:chtml="urn: ..."> ... </sl:slideshow> 3. Ejercicios Ejercicio: Veamos un ejemplo, donde se tiene informacin de libros en XML, pero, a su vez, se quiere usar HTML para mostrar la informacin: <h:html xmlns:xdc="http://www.xml.com/books" xmlns:h="http://www.w3.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. Laurent</xdc:author></h:td> <h:td><xdc:price>31.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 estn asociados a un espacio de nombres cuyo identificador es http://www.xml.com/books, mientras que los que tienen el prefijo h estn asociados con un espacio de nombres cuyo identificador es

http://www.w3.org/HTML/1998/html4. El ejercicio tratar de hacer lo mismo que en el ejemplo anterior pero para mostrar msica en MP3 en HTML. Si no sabeis como empezar, haced primero una pgina en XHTML y, segundo, otra siguiendo un formato de vuestra invencin (por ejemplo autor, disco, fecha, estilo, etc.).

6.- ENLACES http://www.ibium.com/alf/xml: Un Magnfico tutorial en castellano sobre XML y tecnologas asociadas. http://www.w3.org/TR/REC-xml: Referencia oficial del W3C sobre XML http://leo.worldonline.es/jlgranad/xhtml/xhtml1.htm: Referencia oficial del W3C sobre XHTML traducido al castellano http://users.erols.com/enno/xml/index.html: Mdulos de Perl, para hacer parser y trabajar con el DOM. http://sourceforge.net/projects/expat/: Direcci de Expat el parser del Mozilla. http://www.microsoft.com/spain/msdn/articulos/archivo/051299/dhtml/beginner.asp: Artculo sobre el Modelo de Objeto Documento desde el punto de vista de Microsoft http://www.w3.org/TR/REC-xml-names:Referencia oficial del W3C sobre espacios de nombres http://www.xmlsoftware.com/: Todo tipo de software relacionado con XML http://www.xml.com/:Un completo sitio de recursos sobre XML http://www.arcos.inf.uc3m.es/~juange/lro/9798/copia/~kris/lro9798/documentos.htm#A6: Un tutorial de XML, para principiantes. 2001 Javier de Lucas

ORGANIZACION DE ARCHIVOS ACTUALES

PROCESAMIENTO DE ARCHIVO CSV

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 caractersticas 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 tambin guarda uncamente el texto y los valores que aparezcan en dichas hojas.

PROCESAMIENTO DE ARCHIVO XML

Es un formato de datos estructurados esto facilita unas declaraciones de contenido ms precisas y unos resultados de bsquedas ms significativos en varias plataformas. Proporciona un estndar de datos que puede codificar el contenido, la semntica y los esquemas de una gran variedad de casos como un documento normal, un registro estructurado, un objeto condatos

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.

Insercin : incluye un nuevo registro en el archivo de datos. 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 bsqueda establecido, de forma ordenada. Lectura exhaustiva: Listar todos los registros desde el principio hasta el nal, sin ordenar. Lectura ordenada: Listar todos los registros desde el principio hasta el nal, ordenados por clave. Borrado: Eliminar el registro del archivo. Actualizacin : Modicar los valores de un registro .Reorganizacion : Compactar el archivo eliminando los huecos dejados por los registros borrados o actualizados

También podría gustarte