XML: Estructura y sintaxis

Partes de un documento XML

Recuerda que XML no es un lenguaje, sino un conjunto de reglas para definir un documento de datos, como XHTML.

En XML los datos se encuentran dentro de las etiquetas, las cuales las definimos  “< … >”.  De tal modo se puede decir que los documentos XML se componen de etiquetas y de contenido.

<etiqueta>Contenido</etiqueta>

Aunque como vamos a ver, existen varias formas de diferenciar ¿Quiere decir diferenciar? los elementos que componen un documento. El contenido está formado por los datos o textos sobre los que se aplican las marcas, mientras que las  etiquetas son la forma fundamental de los documentos de marcado.

Existen seis tipos de elementos dentro de un XML:  ¿Esto debe ir en cuadro o es el título de los siguientes apartados? Es el titulo de los siguientes puntos las he numerado para ver si esta mas claro

 Etiquetas y atributos

Como ya hemos comentado XML estructura principalmente su información mediante etiquetas, estas etiquetas pueden contener tanto, datos como atributos, además de otras etiquetas formando un árbol jerárquico donde estructuramos la información. Crean una estructura jerárquica para indicar qué elementos contienen otros elementos.

Es común utilizar el parentesco para identificar los elementos del documento (hijo de…, padre de…, hermano de…).

Es común definir a las etiquetas de un documento con el nombre de nodos.

Los atributos por el contrario son datos que incluimos dentro de la propia etiqueta y no tienen parentesco, salvo la situación de la etiqueta que lo incluye. Por lo que podemos decir que son características de una etiqueta, que pertenecen a la propia etiqueta que lo  contiene y no son heredables.

 

 

Referencia de entidad

Las referencias de entidad en XML, no es más que la forma de escribir deternimados caracteres que no se podrían representar de otra forma, ya sea por que son símbolos que no están representados en nuestro teclado o por que son caracteres resevados al propio lenguaje como las comillas o los símbolos de mayor y menor que.

Existen tres formas de instanciar estos carácteres:

  • Por el nombre de entidad. Empiezan siempre con & y terminar con el punto y coma.

Por ejemplo si ponemos &copy; representamos el símbolo ©.

  • Por el nombre decimal. Igual que el anterior pero en este caso hacemos referencia al número del carácter asignado en la tabla ASCII. La forma de escribirlo sería:

&#número;

  • Por el valor hexadecimal. En este caso la diferencia es que al poner el símbolo # indica que el número esta en formato hexadecimal.

&#xnúmero;

Existen muchos caracteres que podemos incluir en nuestro documento, pero es muy habitual tener que usar los que el propio XML tiene reservados, a continuación mostramos una tabla con los más comunes.

Comentarios

Los comentarios realmente no se pueden considerar contenido (datos) ni un elemento de marcado del documento, pero si forman parte de el.

Los comentarios permiten hacer anotaciones  y así hacer el documento más fácil de entender mientras el XML este sin procesar.

Para poner un texto a modo de comentario pondremos  “<!–” y se terminan con “–>”. De tal modo que cuando se procese el documento, lo que este en su interior será ignorado.

<!– Esto es un ejemplo y no será procesado. –>

 

Instrucciones de procesamiento

Las instrucciones de procesamiento no forman parte del contenido del XML al igual que los comentarios, pero proporcionan información, datos o instrucciones al procesador del documento.

Para escribir una instrucción de procesamiento se utiliza la siguiente forma:

<? Nombre instrucción ?>

 

CDATA

En algunas ocasiones nuestros XML contendrán datos con caracteres reservados, aunque ya hemos visto anteriormente, podemos indicar estos caracteres uno a uno mediante las relaciones por entidad. En ocasiones, los datos son muy extensos o como ocurre muchas veces no sabemos los datos que incluirán en ese nodo.

Para eso podemos indicar mediante las secciones CDATA, que el contenido lo trate como texto plano, y no lo procese aunque contenga una estructura con símbolos propios del lenguaje XML.

Pongamos un ejemplo:

<! [CDATA[

 <texto>Esto es un “texto” con caracteres reservados</texto>

 ]]>

Podemos observar como centro del bloque de CDATA, hemos escrito un texto donde se incluyen etiquetas en formato XML, estas no serán procesadas y se incluirán como contenido de texto plano.

Declaraciones de tipo de documento

En un documento XML, podemos incluir gran cantidad de datos con una estructura libre, poniendo atributos y generando el árbol de nodos según nos convengan. Esto da gran libertad al desarrollador para acomodar la estructura de datos de sus sistema al XML. Pero una vez diseñado debemos establecer unas normas, más aun si va a ser usado por una aplicación diferente.

De tal modos que si queremos usar o crear un XML podamos restringir en cierto modo su funcionamiento a unas normas establecidas anteriormente por el auto del mismo.

Con este fin tenemos las declaraciones de tipo de documento (DTD), las cuales usaremos para realizar ¿Quiere decir usaremos para realizar? la descripción de la estructura y la sintaxis del documento.

En el DTD se definirán desde el nombre que tendrán las etiquetas, la estructura jerarquica del documento e incluso el tipo de dato que incluirán.

Una regla DTD siempre tendrá la sintaxis de  <!Valor Instrucción>, donde:

  • Valor: es el indicador del nombre a usar, por ejemplo en nombre de una etiqueta o atributo.
  • Instrucción: la codificación para el tratamiento que se le dara al valor.

 

Jerarquía de elementos

Un XML se puede definir como un árbol de nodos, donde su estructura la definimos de forma jerarquica introduciendo etiquetas dentro de etiquetas.

Pongamos un ejemplo de la estructura que necesitaríamos para almacenar los datos de un correo electrónico, para ello primero vamos a identificar los datos que necesitamos:

Ahora reflejaremos los mismos datos, pero esta vez en un XML.