qué es XML? por qué es necesario XML? XML vs. SGML y HTML Hacía la estandarización de los datos



Documentos relacionados
XML: extensible Markup Language (Parte I) Ingeniería de la Información

Fundamentos de las tecnologías de la información

Sistemas de Información 12/13 XML (extensible Mark-up Language)

XML. Introducción. Cómo se usa? XML Tree. Sintaxis XML

1 Introducción a XML

XML Namespaces. Sergio Luján Mora.

DAW LENGUAJES DE MARCAS. Tema 1: Reconocimiento de las características de los Lenguajes de Marcas

IES Pablo Serrano-ASIR1D/DAM1D-B.Soler XML

Introducción a XML - Validación y Parseo. Huibert Aalbers, Senior Certified Software IT Architect

2 Estructura de un Documento XML

TEMA 35: Estándares SGML y XML. Entornos de aplicación.

Transformación de documentos XML con

Análisis de esquemas XML [1]

Ejercicios del bloque de Web de Sistemas de Información:

GUÍA Nro. 1 TECNOLOGÍA DE INTERNET. TIII PIII

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

Capítulo 1 Documentos HTML5

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

3.1 Tipos de DTDs. ! Si queremos validar un documento XML (para comprobar si cumple las normas de un dialecto) tendremos que validarlo contra el DTD.

Práctica 4 Manejo avanzado de Bison

GENERAR DOCUMENTOS HTML USANDO LENGUAJE PHP. EJERCICIO RESUELTO EJEMPLO SENCILLO. (CU00733B)

UNIVERSIDAD DE EL SALVADOR FACULTAD MULTIDISCIPLINARIA DE OCCIDENTE TEMA: XHTML CATEDRA: INTRODUCCION A LA PROGRAMACION EN INTERNET

XIII Reunión de Usuarios Aleph México. MarcXML. Egar Arturo Garcia Cárdenas

M. Carmen Fernández Panadero

Tecnologías XML y Web Semántica. Departamento de Informática Universidad de Oviedo

LEER Y ESCRIBIR ARCHIVOS O FICHEROS EN C. FOPEN, FCLOSE, MODOS DE ACCESO READ, WRITE Y APPEND (CU00536F)

DIRECCIONAMIENTO IPv4

Creación de documentos XML

Tabla de Contenidos. xii

Capítulo 3: XML Spy como editor de documentos XML. 2. La interfaz de usuario de XML Spy

Visualización y Transformaciones en XML

Programa de Nuevos Dominios Genéricos de Alto Nivel (gtld): Variantes de Nombres de Dominio Internacionalizados (IDN)

extensible Markup Language (XML)

Matemática de redes Representación binaria de datos Bits y bytes

GUÍA RÁPIDA DE TRABAJOS CON ARCHIVOS.

Operación de Microsoft Word

MATERIAL 2 EXCEL 2007

XML para FP : Introducción

Generación de DTD para archivos XML utilizando una gramática visual relacional

Depto de Cs e Ing. de la Computación Universidad Nacional del Sur

Unidad 1. Introducción a HTML (I)

Servicio de estadísticas de Alojamiento Fecha de revisión: 19/09/2005

Datos Estadísticos y el Lenguaje XML

RESOLUCIÓN DE ERRORES EN MOODLE CAMPUS VIRTUAL-BIRTUALA UPV-EHU

Centro de Capacitación en Informática

Ingeniería de Software I

Práctica de introducción a

Presentacion de Declaraciones Juradas de Retenciones de Sellos. <Cuit> </Cuit> Etiqueta de Apertura

Carteleras. Elaborar una agenda de conciertos y actividades musicales

Lección 6 Codificación de caracteres

La ventana de Microsoft Excel

RECUPERAR DATOS DE UN FORMULARIO HTML USANDO PHP. USO DE $_GET. EJEMPLOS Y EJERCICIOS RESUELTOS. (CU00833B)

XML. Necesitamos un formato de datos: Posibles usos. Estandard Robusto Extensible

Para obtener una cuenta de padre

Documento XML (receta.xml)

CASO PRÁCTICO DISTRIBUCIÓN DE COSTES

Tecnología Multimedia

UTILIZACION DE ESQUEMAS XML DE LA AGENCIA TRIBUTARIA PARA CALCULO RETENCIONES

CAPAS O CONTENEDORES EN HTML. ETIQUETAS DIV Y SPAN. EJEMPLOS. MAQUETAR O DAR ESTRUCTURA A LAS PÁGINAS WEB. (CU00726B)

EXTENSIÓN DE UML PARA APLICACIONES WEB

Unidad I. 1.1 Sistemas numéricos (Binario, Octal, Decimal, Hexadecimal)

Requisitos para la generación de Xml válido

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

LABORATORIO Nº 2 GUÍA PARA REALIZAR FORMULAS EN EXCEL

TEMA 1: SISTEMAS INFORMÁTICOS. Parte 2: representación de la información

Transformación de documentos : XSLT

XML. Escuela Técnica Superior de Ingeniería de Telecomunicación Universidad Rey Juan Carlos. Marzo de gsyc-profes (arroba) gsyc.urjc.

Tema 3.1: Principios de diseño web accesibles

XSL: extensible Style Language. Anabel Fraga

Mi propuesta consiste en crear un portal Web que contemple las siguientes funcionalidades:

1.1.- Introducción a la Web Vemos una introducción al medio donde se encajan los lenguajes que vamos a tratar: la web.

Estándares SGML y XML. Entornos de aplicación

Funciones en Excel (II)

BASE DE DATOS RELACIONALES

Importador Universal - Operaciones

Manual del estudiante

En cualquier caso, tampoco es demasiado importante el significado de la "B", si es que lo tiene, lo interesante realmente es el algoritmo.

Base de datos relacional

2.3 Declaraciones de listas de atributos para los tipos de elementos... 8

Para ingresar a la aplicación Microsoft Word 97, los pasos que se deben seguir pueden ser los siguientes:

extensible Markup Language

Desarrollo de software para navegación web desde terminales celulares de 3ª generación

UNIDADES DE ALMACENAMIENTO DE DATOS

Operación Cross Docking Centro Distribución Chilemat S.A.

TEMA 2: Representación de la Información en las computadoras

PROCESADORES DE LENGUAJES I PRÁCTICA DE LABORATORIO 7

MANUAL DE USUARIO UTILIZACIÓN DE LA EXTRANET

CÓMO CREAR UNA PÁGINA WEB v.1

QUÉ ES Y PARA QUÉ SIRVE UML? VERSIONES DEL LENGUAJE UNIFICADO DE MODELADO. TIPOS DE DIAGRAMAS. INGENIERÍA DEL SOFTWARE (DV00205D)

Manual de adminitración web

Tabla de contenido. Manual B1 Time Task

Para ingresar a la aplicación Microsoft PowerPoint 97, los pasos que se deben seguir pueden ser los siguientes:

Lenguajes de Marcas y Sistemas Gestores de Información

Lección 1-Introducción a los Polinomios y Suma y Resta de Polinomios. Dra. Noemí L. Ruiz Limardo 2009

Cómo gestionar menús en Drupal 7

Instructivo de Microsoft Excel 2003

5.1 Introducción a XSL

Módulo mod_banners para insertar y visualizar anuncios o publicidad (banners) en Joomla. Contador. (CU00446A)

HERRAMIENTA DE CONTROL DE PLAGIOS MANUAL DE AYUDA

Introducción: Modelos, Escalas y Métricas. Valentin Laime. Calidad de Software

Transcripción:

qué es XML? Hacía la estandarización de los datos César Ignacio García Osorio Surgió para superar la complejidad de SGML y la inflexibilidad de HTML. Es un meta lenguaje de etiquetado/marcado que permite la creación de lenguajes de marcado para documentos y dominios particulares. Las etiquetas XML describen la estructura y semántica del contenido de un documento, no el formato del contenido. El formato se describe por separado, en las hojas de estilo. Las etiquetas que se creen pueden estar documentadas en una Definición de Tipo de Documento (DTD). Estándar del W3C:! http://www.w3.org/tr/2000/rec-xml-20001006! http://www.w3.org/xml/xml-v10-2e-errata 2 XML vs. SGML y HTML HTML simplifica SGML limitándose a un vocabulario de etiquetas específico, con la intención de describir la visualización de los datos. HTML es una aplicación SGML, uno de los muchos vocabularios que se pueden definir usando SGML (otros son TEI, DocBook, ATA 2100, MIL-STD-38784). XML simplifica SGML eliminando sus opciones sintácticas, permitiendo describir una estructura abstracta de los datos usando un vocabulario de etiquetas a medida. XML es una evolución de SGML, una nueva forma de definir vocabularios cuyo análisis sintáctico sea eficiente. XHTML es una redefinición de HTML usando XML en vez de SGML. 3 por qué es necesario XML? Originalmente HTML era un lenguaje de marcado puramente basado en contenido. Esto fue así hasta que Netscape añadió las etiqueta <img> y <blink>, Microsoft añadio también sus propias etiquetas, y a partir de ese momento HTML fue un caos que mezclaba marcado con presentación. Los navegadores son demasiado generosos, se tragan todo lo que se parezca a un documento HTML. HTML esta predefinido no se puede adaptar a nuestras necesidades. Las etiquetas HTML no describen el contenido de un documento. XML proporciona los medios para inventarse las etiquetas que necesitamos en cada momento, y para decir al visualizador como queremos que se muestren estas etiquetas. Un visualizador no necesita saber de antemano los múltiples vocabularios de etiquetado existentes. En vez de eso, averigua el vocabulario que usa un documento a través de la DTD de ese documento. Las instrucciones detalladas de cómo mostrar el contenido del documento se proporcionan en una hoja de estilo separada que se asocia al documento. 4

Objetivos de diseño Un primer ejemplo 1. XML debe ser utilizable directamente sobre internet. 2. XML debe soportar una amplia variedad de aplicaciones. 3. XML debe ser compatible con SGML. 4. Debe ser fácil escribir programas que procesen documentos XML. 5. El número de características opcionales en XML debe ser mantenido en un mínimo, idealmente cero. 6. Los documentos XML deben ser legibles por un humano y razonablemente claros. 7. El diseño de XML debe ser preparado rápidamente. 8. El diseño de XML debe ser formal y conciso. 9. Los documentos XML deben ser fáciles de crear. 10.La brevedad en la marcación es de mínima importancia. 11.Esta especificación, junto con los estándares asociados (Unicode and ISO/IEC 10646 para caracteres, Internet RFC 1766 para las marcas de identificación de lenguaje, ISO 639 para los códigos de nombre de lenguaje, ISO 3166 para los códigos de nombre de país), provee toda la información necesaria para entender XML v 1.0 y construir programas de computador que lo procesen. <B>Reunión <EM>urgente</EM> </B> <UL> <LI>Asistentes: Marcos Alfayate, Carlos López, César Osorio <LI>Lugar: Despacho dirección <LI>Inicio: 12:15 <LI>Asunto: Convalidaciones ITIG </UL> <reunion urgencia="alta"> <asistentes> Marcos Alfayate, Carlos López, César Osorio </asistentes> <lugar> Despacho de dirección </lugar> <inicio>12:15</inicio> <asunto> Convalidaciones ITIG </asunto> </reunion> 5 6 Tecnologías relacionadas Aplicaciones XML En torno a XML han surgido un gran número de tecnologías. Unas totalmente innovadoras, otras adaptadas del mundo HTML:! Las hojas de estilo en cascada: CSS (Cascading Style Sheets).! Los localizadores e identificadores universales de recursos: URLs y URIs (Uniform Resource Locators y Uniform Resource Indentifiers).! Los conjuntos de caracteres Unicode.! El lenguaje de estilo extensible: XSL (extensible Style Language).! El lenguaje XPath.! Los enlaces XLink entre documentos, y referencia a partes específicas de un documento con los punteros XPointer.! La API SAX (Simple API for XML).! El modelo de objeto de documento DOM. Los vocabularios definidos usando XML reciben el nombre de aplicaciones XML. Algunas aplicaciones: http://www.xml.org/xmlorg_registry/index.shtml! XHTML: replanteamiento de HTML 4.0 usando sintaxis XML.! MathML: lenguaje para el marcado de notaciones matemáticas.! VoxML: lenguaje para la respuesta vocal automatizada.! CML (Chemical Markup Language)! SVG (Scalable Vector Graphics)! RDF (Resource Description Framework)! XSLT (extensible Style Language Transformations)! SMIL (Synchronized Multimedia Integration Language)! XQL (XML Query Language)! CDF (Channel Definition Format) 7 8

<?xml version="1.0" standalone="yes"?> <SALUDO> < > Instrucción de procesado (PI): decláración XML. Hola mundo! Comienzan con <? y finalizan con?> </SALUDO> Elemento SALUDO Tienen un nombre y unos datos Etiqueta de inicio En la declaración XML los datos aparecen como pares atributo-valor: Contenido version: específica la versión de XML que Etiqueta de fin se esta usando. standalone: nos dice si el documento esta al completo en un único fichero o si necesita importar el contenido de otros ficheros <COSA> Hola mundo!</cosa> <P> Hola mundo!</p> <DOCUMENTO> Hola mundo!</documento> 9 Asignando significado a las etiquetas Las etiquetas de marcado pueden tener tres tipos de significado: estructural, semántico o de estilo.! La estructura divide los documentos en un árbol de elementos. Los nombres de las etiquetas no tienen relevancia desde el punto de vista estructural.! La semántica relaciona los elementos individuales con el mundo real (el universo del discurso) que esta fuera del propio documento. Existe en la mente del autor, del lector o del programa que los genera o lee.! El estilo específica como debe ser mostrado un elemento. En XML el significado de estilo se aplica a través de las hojas de estilo. 10 <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <?xml-stylesheet href="receta.css" type="text/css"?> <!DOCTYPE receta SYSTEM "receta.dtd" [ <!ENTITY comer "Bon appétit! "> ]> <receta tipo="postre" tiempoprep="15" comensales="4"> <titulo>tarta de queso</titulo> <lista-ingredientes> <item>3 yogures naturales</item> <item>3 huevos</item> <item>una cucharada de maicena</item> <item>1 tarrina de crema de queso</item> <item>6 cucharadas de azúcar</item> </lista-ingredientes> <preparacion> <paso necesario="no">tener a mano todos los ingredientes, la batidora y el recipiente para la tarta.</paso> <paso>batir todos los ingredientes.</paso> <paso>verter en un molde previamente caramelizado y cocer durante 13 minutos en el microondas a máxima potencia.</paso> <paso necesario="no">servir cubierta de mermelada.</paso> <paso necesario='no'>&comer;</paso> </preparacion> </receta> 11 <?xml version="1.0" encoding="iso-8859-1" PI para asociar hoja de estilo standalone="no"?> <?xml-stylesheet href="receta.css" type="text/css"?> <!DOCTYPE receta SYSTEM "receta.dtd" [ <!ENTITY comer "Bon appétit! "> ]> <receta tipo="postre" tiempoprep="15" comensales="4"> Declaración de tipo de documento <titulo>tarta de queso</titulo> <lista-ingredientes> Elemento raíz <item>3 yogures naturales</item> <item>3 huevos</item> <item>una cucharada de maicena</item> Referencia a DTD externa <item>1 tarrina de crema de queso</item> DTD interna <item>6 cucharadas de azúcar</item> </lista-ingredientes> <preparacion> <paso necesario="no">tener a mano todos los ingredientes, la batidora y el recipiente para la tarta.</paso> <paso>batir todos los ingredientes.</paso> <paso>verter en un molde previamente caramelizado y cocer durante 13 minutos en el microondas a máxima potencia.</paso> <paso necesario="no">servir cubierta de mermelada.</paso> <paso necesario='no'>&comer;</paso> </preparacion> </receta> 12

Un ejemplo de DTD (receta.dtd) <!ELEMENT receta (titulo, lista-ingredientes, preparacion)> <!ATTLIST receta tipo CDATA #IMPLIED comensales CDATA #IMPLIED tiempoprep CDATA #IMPLIED > <!ELEMENT titulo (#PCDATA)> Declaración de elemento <!ELEMENT lista-ingredientes (item+)> <!ELEMENT item Nombre (#PCDATA)> de elemento Modelo de contenido <!ELEMENT preparacion (paso+)> <!ELEMENT paso (#PCDATA)> <!ATTLIST paso necesario (si no) "si"> Un ejemplo de DTD (receta.dtd) <!ELEMENT receta (titulo, lista-ingredientes, Declaración de preparacion)> atributos <!ATTLIST receta Nombre de elemento tipo CDATA #IMPLIED comensales CDATA #IMPLIED tiempoprep CDATA #IMPLIED > <!ELEMENT Nombre titulo de (#PCDATA)> Tipo o Palabra atributos lista de valores clave o valor por <!ELEMENT lista-ingredientes defecto (item+)> <!ELEMENT item (#PCDATA)> <!ELEMENT preparacion (paso+)> <!ELEMENT paso (#PCDATA)> <!ATTLIST paso necesario (si no) "si"> 13 14 Documentos bien construidos Documentos válidos Los requisitos para poder decir que un documento es un documento bien construido son:! Deberá tener una entidad de documento en el que se hallen todos los demás elementos.! Todo elemento deberá tener una etiqueta de inicio y su correspondiente etiqueta de cierre, o una sola etiqueta vacía.! Todos los elementos deberán estar correctamente anidados.! Todos los valores de atributos deberán ir entre comillas (simples ', o dobles ").! Todas las entidades que se utilicen deberán declararse en la DTD (interna o externa). 15 Los cuatro requisitos principales para que un documento sea considerado como un documento válido son:! El documento debe estar bien construido.! El nombre del elemento raíz del documento debe coincidir con el nombre de la declaración de tipo de documento.! El documento debe tener una DTD que declare todos los elementos, atributos y entidades que se utilicen en el documento. Puede tratarse de un subconjunto interno de DTD, un subconjunto externo de DTD, o una combinación de ambos.! El documento debe adherirse a la gramática que establezca la DTD. Todos los documentos DTD válidos están bien construidos, pero no todos los documentos bien construidos son válidos. 16

<?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <?xml-stylesheet href="rec.html.xsl" type="text/xsl"?> <!DOCTYPE receta SYSTEM "receta.dtd" [ <!ENTITY comer "Bon appétit!"> ]> <receta tipo="postre" tiempoprep="15" comensales="4"> Declaración de entidad interna <titulo>tarta de queso</titulo> <lista-ingredientes> Nombre de la entidad <item>3 yogures naturales</item> <item>3 huevos</item> <item>una cucharada de maicena</item> Texto de reemplazo de la entidad <item>1 tarrina de crema de queso</item> <item>6 cucharadas de azúcar</item> </lista-ingredientes> <preparacion> <paso necesario="no">tener a mano todos los ingredientes, la batidora y el recipiente para la tarta.</paso> <paso>batir todos los ingredientes.</paso> <paso>verter Uso de entidad en predeclarada un molde "caramelizado" y cocer 13 minutos en Referencia el microondas de carácter a máxima ; potencia.</paso> <paso necesario="no">servir cubierta de mermelada.</paso> Referencia <paso necesario='no'>&comer;</paso> de entidad comer; </preparacion> </receta> 17 Entidades: Qué son? Las entidades son unidades de almacenamiento que contienen texto o datos binarios. Definen la estructura física del documento (mientras que los elementos describen la estructura lógica). Pueden usarse para combinar múltiples fichero y otras fuentes de datos para crear un documento XML único. Algunos tipos de datos físicos que podríamos asociar con un nombre de entidad son:! Una cadena de texto.! Una sección de la DTD.! Una referencia externa a un archivo que contiene texto XML.! Una referencia externa a un archivo que contiene datos binarios. 18 Entidades: Cómo identificarlas? Entidades: Cómo se usan? Las entidades se identifican por un nombre único, pero existen dos entidades particulares sin nombre (entidades no declaradas):! La entidad de documento: es la entidad de nivel superior en un documento. Contiene todo el documento.! El subconjunto externo de la DTD (el subconjunto interno de la DTD no se considera una entidad). La mejor manera de comprender las entidades consiste en valorar el almacenameinto físico del código o datos en cuestión.! Si el código o datos XML están físicamente ubicados en un emplazamiento separado, se tratará de una entidad.! Si el código o datos se declaran por medio de una declaración de entidad obviamente se tratará de una entidad. Para incluir una entidad en el documento se usa una referencia de entidad o como valor de un atributo de tipo ENTITY. Existen un conjunto de referencias de entidad predeclaradas:! " (")! < (<)! &apos; (')! > (>)!"& (&) También es posible usar referencias de carácter, con dos sintaxis:! referencia decimal: &#Num;! referencia hexadecimal: &#xnum; 19 20

Entidades: Tipos Atendiendo a donde pueden ser referenciadas:! entidades generales: tanto en el documento como en la DTD.! entidades de parámetro: sólo en la DTD. Atendiendo a donde se encuentra su texto de reemplazo:! entidades internas: en la propia declaración.! entidades externas: en un fichero externo. Atendiendo a como se usan:! entidades analizadas sintácticamente.! entidades no analizadas sintácticamente. Algunas combinaciones de tipo de entidad no tienen sentido. De las ocho sólo cinco son válidas:! Entidades generales internas.! Entidades generales externas analizadas.! Entidades no analizadas.! Entidades de parámetro internas.! Entidades de parámetro externas. 21 <?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml-stylesheet href="rec.html.xsl" type="text/xsl"?> <!DOCTYPE rec:receta SYSTEM "recetans.dtd"> <rec:receta tipo="postre" tiempoprep="15" comensales="5" xmlns:rec = "http://pisuerga.inf.ubu.es/cgosorio/recipe" > <rec:titulo>tarta de queso</rec:titulo> <rec:lista-ingredientes>... <rec:item>3 huevos</rec:item> <rec:item>una cucharadita de maicena</rec:item> <rec:item>1 tarrina de crema de queso</rec:item> <rec:item>6 cucharadas de azucar</rec:item> </rec:lista-ingredientes> <rec:preparacion> <rec:paso necesario="no">tener a mano todos los ingredientes, la batidora y el recipiente para la tarta.</rec:paso> <rec:paso>batir todos los ingredientes.</rec:paso>... <rec:paso necesario="no">&acomer;</rec:paso> </rec:preparacion> </rec:receta> 22 <?xml version="1.0" encoding="utf-8" standalone="no"?> <?xml-stylesheet href="rec.html.xsl" type="text/xsl"?> <!DOCTYPE rec:receta SYSTEM "recetans.dtd"> <rec:receta tipo="postre" tiempoprep="15" comensales="5" xmlns:rec = "http://pisuerga.inf.ubu.es/cgosorio/recipe" > <rec:titulo>tarta de queso</rec:titulo> Declaración de espacio de nombres <rec:lista-ingredientes>... Préfijo del espacio de nombres <rec:item>3 huevos</rec:item> URI del espacio de nombres <rec:item>una Nombre completo cucharadita de maicena</rec:item> <rec:item>1 tarrina de crema de queso</rec:item> <rec:item>6 cucharadas de azucar</rec:item> </rec:lista-ingredientes> Préfijo Nombre local <rec:preparacion> <rec:paso necesario="no">tener a mano todos los ingredientes, la batidora y el recipiente para la tarta.</rec:paso> <rec:paso>batir todos los ingredientes.</rec:paso>... <rec:paso necesario="no">&acomer;</rec:paso> </rec:preparacion> </rec:receta> 23 Espacio de nombres Permiten mezclar en un mismo documento XML etiquetas procedentes de distintos vocabularios XML. Se identifican por un Unique Resource Identifier (URI que pueden ser los conocidos URLs o los menos frecuentes URNs). El URI del espacio de nombres es simplemente una cadena que se escoge para que sea diferente de cualquier otra URI de espacio de nombres: no necesita que apunte a nada existente. Cada espacio de nombres usado en un documento se asocia con una abreviatura que se usa como prefijo de los nombres. No importa el prefijo que se escoja, el nombre real del elemento o del atributo esta determinado solamente por el URI de su espacio de nombres, y por su nombre local. 24

Espacio de nombres Un préfijo para un espacio de nombres se declara usando un seudo atríbuto de proposito especial dentro de la etiqueta del elemento: xmlns:{prefijo} = "{URI de espacio de nombres} Para los nombres de los elementos también se puede usar un URI de espacio de nombres por defecto, que se asocia con todos los elementos sin préfijo. Sin embargo, el URI del espacio de nombres por defecto no es de aplicación a los nombres de atributos sin préfijo. El espacio de nombres por defecto se declara: xmlns = "{URI de espacio de nombres}" 25 <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE agenda PUBLIC "-//cgosorio//dtd agenda//es" "http://www.ubu.es/dtd/agenda.dtd" > <agenda> <contacto> <nombre>césar Ignacio</nombre> <apellidos>garcía Osorio</apellidos> <telefono>34947258989</telefono> <email>cgosorio@ubu.es</email> <universidad>burgos</universidad> <!-- Por si algún día tengo amnesia --> </contacto> <![CDATA[ <!-- todo este contacto se ignora--> <contacto> <nombre>juan David</nombre> <apellidos>diez Tascón</apellidos> <telefono>0441189586222</telefono> <fax>0441189597842</fax> <empresa sector="hotelero"> Renaissance Reading Hotel </empresa> </contacto> ]]> </agenda> 26 <?xml version="1.0" encoding="iso-8859-1" standalone="no"?> <!DOCTYPE agenda PUBLIC "-//cgosorio//dtd agenda//es" "http://www.ubu.es/dtd/agenda.dtd" > <agenda> <contacto> <nombre>césar Ignacio</nombre> Identificador externo <apellidos>garcía Osorio</apellidos> <telefono>34947258989</telefono> Identificador público <email>cgosorio@ubu.es</email> <universidad>burgos</universidad> Identificador de sistema <!-- Por si algún día tengo amnesia --> Comentario </contacto> <![CDATA[ <!-- todo este contacto se ignora--> <contacto> <nombre>juan David</nombre> <apellidos>diez Tascón</apellidos> <telefono>0441189586222</telefono> <fax>0441189597842</fax> <empresa sector="hotelero"> Renaissance Reading Hotel </empresa> </contacto> ]]> </agenda> Codificación de carácteres Sección CDATA 27 Codificación de carácteres Una codificación de caracteres asocia un número con cada carácter. Las codificaciones tipo ASCII son suficientes para idiomas como el inglés que no tiene acentos y otros signos de puntuación. Para idiomas como el español podría usarse codificaciones como la ISO 8859-1 Latin-1, o la MacRoman. Pero para muchos idiomas de origen asiático, con hasta 80000 ideogramas, esto no es suficiente. Estas codificaciones también dan problemas cuando trabajamos con documentos en varios idiomas, o compartimos ficheros con personas que usan un sistema de codificación diferente. Para solucionar estos problemas surgió Unicode, que usa dos bytes para la codificación de caracteres. Una de sus variantes es UTF-8, una versión comprimida de Unicode, que usa un byte para los caracteres más frecuentes y hasta tres para los menos usados. XML se pensó desde el principio para utilizar Unicode. 28

Identificadores externos Comentarios Se usan para hacer referencia a un fichero externo. Se usan para! Hacer referencia a la DTD! Hacer referencia a las entidades! En las notaciones Dos formatos! Identificador de sistema SYSTEM URI! Identificador público PUBLIC identificador-público URI Con el identificador público un procesador XML puede utilizar un catálogo para determinar un URI. Si no dispone de este sistema usará el URI suministrado. Los comentarios XML son idénticos a los de HTML. Comienzan con la secuencia <!-- y finalizan con -->. Cualquier dato entre <!-- y --> es ignorado por el procesador XML. Hay que seguir las siguientes reglas cuando se usan comentarios:! No pueden comenzar antes de la declaración XML, que debe ser siempre la primera línea de un documento.! No pueden aparecer dentro de una etiqueta.! Se pueden usar para rodear y esconder etiquetas.! En su contenido no pueden aparecer dos guiones consecutivos (--).! Los comentarios se pueden utilizar en cualquier parte de un documento XML en el que puedan aparecer datos de carácter analizados sintácticamente. Las secciones de datos de caracteres no analizados sintácticamente, secciones CDATA constituyen la única excepción a esta regla. 29 30 Secciones CDATA Resumen documentos XML Las secciones CDATA se usa cuando se quiere que todo el texto sea interpretado exclusivamente como caracteres y no como marcado. Comienzan con la secuencia <![CDATA[ y finalizan con ]]>. El único texto prohibido dentro de una sección CDATA es el delimitador de cierre de sección CDATA: ]]>. Dentro de las secciones CDATA las etiquetas XML son interpretadas como datos de carácter, sin ningún significado de marcado. Los comentarios pueden aparecer dentro de una sección CDATA pero no actúan como comentarios. Es decir, tanto el comentario como sus delimitadores son tenidos en cuenta. 31 Los docuemntos XML comienzan con la instrucción de procesado (<?xml version="1.0"...?>). Existen siete tipos de etiquetas en un documento XML:! Las instrucciones de procesado (<?nombre...?>)! La declaración de tipo de documento (<!DOCTYPE...>)! Las etiquetas de elementos (<elto>...</elto>)! Las referencias de carácter (ÿ ÿ)! Las referencias de entidad (&apos; %entpar;)! Los comentarios (<!--... -->)! Las secciones de datos de carácter (<![CDATA[... ]]>) En la DTD tenemos:! Declaración de elementos (<!ELEMENT...>)! Declaración de atributos (<!ATTLIST...>)! Declaración de entidades y notaciones (<!ENTITY..><!NOTATION...>) 32