Saltar la navegación

Sintaxis: Características y etiquetas

Introducción

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 rápida de entender la estructura de un documento XML es viendo un ejemplo:

<?xml version="1.0" encoding="UTF-7" ?>
<album> 
        <autor>SABINA Y CIA Nos sobran los motivos</autor> 
	<titulo>Joaquín Sabina</titulo> 	
        <formato>MP3</formato> 
	<localizacion>Varios CD5 </localizacion>
</album>

De manera general, un documento XML consta de:

  • Prólogo. Se trata de la primera zona del documento y sirve para describir
    qué tipo de documento es. Es similar al apartado head de HTML. Puede
    contener:
    • Declaración del documento, que permite indicar el tipo de documento
      XML que es.
    • Instrucciones para el procesado del documento
    • Comentarios
    • Indicación del esquema DTD, XSD o Relax NG para comprobar si el
      mismo es válido según las reglas impuestas por tales.
    • Indicación de otros documentos que afectan al actual, como por
      ejemplo los documentos XSLT que permiten especificar la forma en la
      que el documento se debe mostrar en pantalla.
  • Elemento raíz. Todo el contenido del documento debe de estar incluido en
    el llamado elemento raíz, ÚNICO. Se trata de un elemento obligatorio que se abre
    tras el prólogo y se debe cerrar justo al final. De este modo cualquier
    elemento está dentro del elemento raíz. Contiene:
    • Más elementos
    • Atributos
    • Texto normal
    • Entidades
    • Comentarios

XML es case sensitive

XML, a diferencia de HTML, es "case sensitive", es decir, trata a las mayúsculas y las minúsculas 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 edición de documentos XML , por claridad, se suele organizar en varias líneas, que, normalmente, se componen de carácter de fin de línea y otro de retorno de carro. Un parser XML pasa únicamente a la aplicación el caracter de fin de línea.

Cada documento XML posee una estructura lógica y una física . La estructura lógica del documento es una serie de declaraciones, elementos, comentarios, etc. que se indican en el documento mediante marcas explícitas. La estructura física del documento es una serie de unidades llamadas entidades, es decir, indica los datos que contendrá el documento. Las estructuras lógica y física deben anidarse de forma correcta.

Espacios en blanco

En la edición de documentos XML, suele ser conveniente utilizar "espacios en blanco" (espacios, tabuladores y líneas en blanco), que normalmente son innecesarios en una versión distribuible a través de la red, aunque también existen ocasiones en los que es deseable la representación de esos "espacios en blanco" (por ejemplo, código fuente).

Para que las aplicaciones preserven la representación de esos espacios en blanco en un elemento se utiliza el atributo xml:space que puede tomar los valores preserve o default, 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>

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).

Nombres en XML

Un nombre en XML empieza con una letra y continúa con letras, dígitos, rayas, dos puntos o puntos, denominados de forma global como caracteres de nombre. Los nombre que empiezan por "xml" están reservados, es decir, no se pueden crear nombres que empiecen por la cadena "xml", "XML", "Xml" o cualquier otra variante.

Identificación del idioma

En el procesado de documentos puede ser útil la identificación 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 heißem Bemüh'n.</l>
 </sp>
 <sp who="yo"  desc='comentario' xml:lang="es">
   <l>No me entero de un pimiento</l>
</sp>
</ejemplos>

Los códigos para cada país se puede encontrar en http://www.iana.org/cctld/cctld-whois.htm y más información en http://www.ietf.org/rfc/rfc1766.txt