Artículo
|
Apuntes de XML |
Creación de documentos XML
Sintaxis
Un ejemplo completo
- Ejemplo completo de documento XML:
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?> <?xml-stylesheet href="librohtml.xsl" type="text/xsl"?> <?xml-stylesheet href="librowml.xsl" type="text/xsl" media="wap"?> <?cocoon-process type="xslt"?> <!-- Referencia la DTD --> <!DOCTYPE Libro SYSTEM "libro.dtd"> <!-- Comienza el contenido --> <Libro xmlns="http://www.mislibros.com/libros/javaxml" xmlns:Catalogo="http://www.mislibros.com/catalogo"> <Titulo>Java y XML</Titulo> <Catalogo:Seccion>Programación</Catalogo:Seccion> <Catalogo:SubSeccion>XML</Catalogo:SubSeccion> <Contenido> <Capitulo materia="XML"> <Tema>Introducción</Tema> <subcapitulo1 apartados="7">Qué es</subcapitulo1> <subcapitulo1 apartados="3">Cómo se usa</subcapitulo1> </Capitulo> <Capitulo materia="XML"> <Tema>Creando XML</Tema> <subcapitulo1 apartados="0">Un documento XML</subcapitulo1> <subcapitulo1 apartados="2">La cabecera</subcapitulo1> <subcapitulo1 apartados="6">El contenido</subcapitulo1> </Capitulo> <Capitulo materia="Java"> <Tema>Analizando XML</Tema> <subcapitulo1 apartados="3">Preparación</subcapitulo1> <subcapitulo1 apartados="3" dificil="si">SAX</subcapitulo1> <subcapitulo1 apartados="9" dificil="si">Manejadores</subcapitulo1> <subcapitulo1 apartados="0">Una forma mejor de cargar el analizador</subcapitulo1> </Capitulo> <Separacion/> <Capitulo materia="Java"> <Tema>JDOM</Tema> <subcapitulo1 apartados="2">Introducción</subcapitulo1> <subcapitulo1 apartados="4" dificil="si">DOM&JDOM</subcapitulo1> </Capitulo> </Contenido> <Compra> <![CDATA[ <Paso 1>Encontrar una librería. <Paso 2>Encontrar el libro. <Paso 3>Comprar el libro. ]]> </Compra> <Copyright>&OReillyCopyright;</Copyright> </Libro>
Reglas básicas
- Hay dos tipos de construcciones: el marcado (entre <...> ó &...; ) y los datos de carácter (todo lo demás).
- Todo documento XML se compone de elementos. Cada elemento está delimitado por una etiqueta de comienzo y otra de fin, a no ser que sea vacío. Los elementos vacíos constan de una única etiqueta. Los nombres de las etiquetas son arbitrarios y no pueden contener espacios.
- Siempre hay un elemento raíz, cuya etiqueta de inicio ha de ser la primera de todas y la de cierre la última de todas.
- Cada elemento puede contener datos de carácter, elementos, ambas cosas a la vez o puede estar vacío.
- No se puede mezclar la anidación de las etiquetas: los elementos deben abrirse y cerrarse por orden.
- Los elementos pueden tener atributos (propiedades) que nos ofrecen información sobre ellos. Los valores de los atributos deben ir entrecomillados. Tanto atributos como valores son arbitrarios.
- Mayúsculas y minúsculas no son intercambiables.
- El espacio en blanco es libre, se puede utilizar para leer mejor el documento.
Otras construcciones
- Se pueden utilizar comentarios, que el analizador no tratará, en cualquier sitio excepto dentro de las declaraciones, etiquetas y otros comentarios.
- Las secciones CDATA sirven para introducir texto que el analizador tendrá en cuenta como datos de carácter, sin interpretarlo como XML.
- Las entidades predefinidas permiten incluir ciertos caracteres sin que sean tomados como XML:
- & para el &
- < para el <
- > para el >
- ' para el '
- " para el "
- Podemos definir nuestras propias entidades, lo veremos con las DTDs.
Espacios de nombres
- Los espacios de nombres sirven para evitar las colisiones entre elementos del mismo nombre, y en general, para distinguir los distintos grupos de elementos en un mismo documento.
- Cada espacio de nombres se asocia con una URL, que sólo sirve como identificador único y no tiene por qué ser válida.
Cabecera
- La cabecera, que es opcional aunque recomendable, da información sobre cómo manejar el documento a los analizadores y otras aplicaciones. Puede contener:
- Una declaración XML para el analizador, con la versión, juego de caracteres utilizado, y una indicación de si el documento es o no autónomo (si requiere o no otros documentos).
- Instrucciones de proceso para otras aplicaciones.
- Una declaración DOCTYPE, que referencia a la DTD que restringe el documento.
Terminología
- Cuando un documento cumple con las reglas sintácticas que hemos descrito, se le denomina documento bien formado.
- Un documento válido, además de ser bien formado, cumple las restricciones que le impone una DTD o un esquema XML.
Reglas de diseño
- El diseño de la estructura de un documento XML no es una tarea trivial. Depende de un buen análisis del problema concreto a resolver (cómo se va a utilizar el documento), lo cual queda fuera del alcance de este curso. No obstante, se ofrecen a continuación algunas reglas prácticas.
- Siempre que sea posible, usar una DTD o esquema existente. Nos ahorramos diseñar los documentos XML y posibilita el intercambio de datos con otros que utilicen la DTD o esquema.
- La principal decisión es utilizar para los datos de los elementos subelementos o atributos. Por ejemplo:
<diapositiva> <título>Aquí el título...</título> </diapositiva> <diapositiva título="Aquí el título..."> ... </diapositiva>
- Hay una serie de criterios:
- Si el dato contiene subestructuras: elemento.
- Si el dato es de gran tamaño: elemento.
- Si el dato cambia frecuentemente: elemento.
- Si el dato es de pequeño tamaño, y raramente cambia: normalmente, atributo.
- Si el dato sólo puede tener unos cuantos valores fijos: atributo.
- Si el dato se va a mostrar a un usuario o aplicación: elemento. Si el dato guía el procesamiento del XML pero no se va a mostrar: atributo.
Comentarios
Últimas noticias
Últimos artículos
















































