miércoles, 21 de diciembre de 2011

Introducción a XML

  • Características propias, etiquetas.
Los documentos XML son sensibles a mayúsculas, en ellos se diferencia las mayúsculas de las minúsculas. Por ello <FICHA> sería una etiqueta diferente a <ficha>.
Además todos los espacios y retornos de carro se tienen en cuenta (dentro de las etiquetas, en los elementos).
Hay algunos caracteres especiales reservados, que forman parte de la sintáxis de XML: <, >, &, " y '. En su lugar cuando queramos representarlos deberemos usar las entidades &lt;, &gt;, &amp;, &quot; y &apos; respec tivamente. 


Los valores de los atributos de todas las etiquetas deben ir siempre entrecomillados. Son válidas las dobles comillas (") y la comilla simple (').
Las etiquetas nos recordaran a HTML, y que contienen los datos.+
Es importante diferenciar entre elementos y etiquetas: los elementos son las entidades en sí, lo que tiene contenido, mientras que las etiquetas sólo descr iben a los elementos.
Un documento XML está compuesto por elementos, y en su sintáxis éstos se nombran mediante etiquetas. 
  • Herramientas de edición.
Un editor XML es una herramienta que nos ofrece facilidades para crear y editar documentos XML. Inicialmente podemos trabajar con un simple editor de textos si estamos familiarizados con la sintaxis y características del XML aunque es recomendable un editor específico. Dentro de estos, existen dos tipos principales:
  • Los que representan los ficheros en forma de arbol y nos permiten construir nuestro documento trabajando sobre este arbol y formularios adicionales (por ejemplo: XML Notepad de Microsoft o Visual XML).
  • Los que representan el documento XML en su formato original y que normalmente son editores de ficheros de texto con facilidades para XML (por ejemplo: XED o PSGML de Emacs).
Entre ambos tipos hay que diferenciar los que trabajan con una DTD y por lo tanto validan el contenido de lo que escribimos y los que simplemente nos aseguran que el documento XML es bien formado, es decir, sintácticamente correcto respecto de las especificaciones del XML.
  • Elaboración de documentos XML bien formados, estructura y sintaxis.
Hay dos tipos de documentos XML: válidos y bien formados. Éste es uno de los aspectos más importantes de este lenguaje, así que hace falta entender bien la diferencia:
  • Bien formados: son todos los que cumplen las especificaciones del lenguaje respecto a las reglas sintácticas que después se van a explicar, sin estar sujetos a unos elementos fijados en un DTD (luego veremos lo que es un DTD). De hecho lo s documentos XML deben tener una estructura jerárquica muy estricta, de la que se hablará más tarde, y los documentos bien formados deben cumplirla. 

  • Válidos: Además de estar bien formados, siguen una estructura y una semántica determinada por un DTD: sus elementos y sobre todo la estructura jerárquica que define el DTD, además de los atributos, deben ajustarse a lo que el DTD dicte.
¿Y qué es un DTD? Pues es una definición de los elementos que puede haber en el documento XML, y su relación entre ellos, sus atributos, posibles valores, etc.Es una especie de definición de la gramática del documento, en definitiva.Pero lo importante ahora es entender que cuando se procesa cualquier infomación formateada mediante XML, lo primero es comprobar si está bien formada, y luego, si incluye o referencia a un DTD, comprobar que sigue sus reglas gramaticales.

Hay pues diferencia entre los parsers que procesan documentos XML sin comprobar que siguen las reglas marcadas por un DTD (sólo comprueban que está bien formado), que se llaman parsers no validadores, y los que sí lo hacen, que son parsers validadores (comprueba que además de bien formado se atiene a su DTD y es válido).
Aquí podemos ver un XML muy sencillo:
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<ficha>
<nombre>Angel</nombre>
<apellido>Barbero</apellido>
<direccion>c/Ulises, 36</direccion>
</ficha> 


Con la primera línea es con la empezar todos los documentos XML, ya que es la que indica que lo que la sigue es XML. Aunque es opcional, es más que recomendable incluirla siempre. Puede tener varios atributos (los campos que van dentro de la declaración), algunos obligatorios y otros no:
  • version: indica la versión de XML usada en el documento. La actual es la versión 1.0, con lo que no debe haber mucho problema. Es obligatorio ponerlo, a no ser que sea un documento externo a otro que ya lo incluía (ya veremos qué documentos extern os puede haber).
  • encoding: la forma en que se ha codificado el documento. Se puede poner cualquiera, y depende del parser el entender o no la codificación. Por defecto es UTF-8, aunque podrían ponerse otras, como UTF-16, US-ASCII, ISO-8859-1, etc. No es obligatori o salvo que sea un documento externo a otro principal.
  • standalone: indica si el documento va acompañado de un DTD ("no"), o no lo necesita ("yes"); en principio no hay porqué ponerlo, porque luego se indica el DTD si se necesita.
  • Utilización de espacios de nombres en XML.
Hay dos tipos de elementos: los vacíos y los no vacíos. Hay varias consideraciones importantes a tener en cuenta al respecto:
Toda etiqueta no vacía debe tener una etiqueta de cerrado: <etiqueta> debe estar seguida de </etiqueta>. Esto se hace para evitar la aberración (en el buen sentido de la palabra) a la que habían llegado todos los navegadores HTML de p ermitir que las etiquetas no se cerraran, lo que deja los elementos sujetos a posibles errores de interpretación.
  • Todos los elementos deben estar perfectamente anidados: no es válido poner:
    <ficha><nombre>Angel</ficha></nombre> 
    , y sí lo es sin embargo:
    <ficha><nombre>Angel</nombre> </ficha>.
     
  • Los elementos vacios son aquellos que no tienen contenido dentro del documento. Un ejemplo en HTML son las imágenes. La sintáxis correcta para estos elementos implica que la etiqueta tenga siempre esta forma: <etiqueta/>.