El documento XML
La estructura básica de un documento XML es simple. La mayoría se puede reducir a unos pocos componentes simples. Consideremos el siguiente ejemplo:
Para poder crear la estructura propia de los documentos XML es necesario el uso de una serie de objetos que le son propios. La mayoría de estos objetos se basan en las etiquetas o marcas que dan nombre al lenguaje. Una etiqueta queda definida por el conjunto de caracteres comprendido entre los paréntesis angulares (símbolos menor y mayor que)... < identificador > .... donde identificador, es el nombre que posteriormente identificará a un objeto concreto, por ejemplo,las instrucciones de proceso o los elementos. En nuestro ejemplo es un identificador.
Instrucciones de proceso
Las instrucciones de proceso son aquellos objetos existentes en los documentos XML cuya función es indicar ciertos aspectos o características sobre el documento. Una de estas instrucciones, común a todos los documentos XML, es la declaración de documento XML. La sintaxis propia de una instrucción de proceso, es la siguiente, ... <? identificador nombre1 = "valor1" nombre2 = "valor2" nombreN = "valorN" ?> ...donde identificador es el nombre de la instrucción de proceso; nombre1, nombre2, etc., son los parámetros o argumentos diferentes que pueda admitir cada instrucción. En nuestro ejemplo la declaración de documento XML viene dada por <?xml version="1.0"?>.
Elementos
Se trata de los objetos esenciales en un documento XML, la unidad básica de datos que forma la estructura de la información contenida en el documento. Un elemento queda definido por una etiqueta de apertura y otra de cierre, tal que así: <etiqueta_apertura> información del elemento </etiqueta_cierre> En nuestro ejemplo podemos ver <nombre>Sardinas en escabeche</nombre>. Existen elementos especiales que no contienen ningún tipo de información englobada dentro del elemento (la información que representan se entiende por la sola presencia del elemento), llamados elementos vacíos. En este caso, la utilización de la etiqueta de apertura y cierre viene abreviada por el uso de una sola etiqueta que actúa como apertura y cierre: <elemento_vacio/> En nuestro ejemplo el elemento vacío sería <referencia orden="123456"/>
Atributos
A veces la información a que hace referencia un elemento, contiene una serie de propiedades que indican ciertas características sobre esa información y que podrían dar lugar a la creación de más elementos, lo que puede dar lugar a documentos XML con una cantidad excesiva de elementos en su estructura, que harán ilegibles los mismos. Para evitar esto, el W3C provee de un objeto que es totalmente dependiente de los elementos: los atributos. Los atributos aparecen siempre dentro de la etiqueta de apertura de un elemento al que pertenecen. Su sintaxis: <etiqueta_apertura nombre_atributo="valor_atributo"> En nuestro ejemplo el elemento RefProducto contiene otros dos elementos, esto es, <RefProducto producto="000001" cantidad="12">, en donde la expresión producto="000001" indica que se trata de un atributo llamado producto con su valor 000001 entre comillas, y la expresión cantidad="12" indica que se trata del atributo cantidad con su valor 12 entre comillas. En este caso el elemento RefProducto tiene 2 atributos. Así un elemento puede tener tantos atributos como necesite. El número de atributos de un elemento, no está limitado a uno, sino a los que sean necesarios, aunque siempre tendremos en cuenta, evitar un uso excesivo de éstos por elemento.
Secciones CDATA
Las secciones CDATA nos permiten introducir información dentro del documento XML que parecerá como tal, no será analizada por el parser. XML se reserva una serie de caracteres debido al uso que hace de éstos, que no deben aparecer directamente como información o contenido de un elemento, ya que ocasionarían errores en el documento XML, al ser analizado por el parser. La siguiente relación muestra esos caracteres especiales:
La solución a este problema, viene dada por la columna derecha de esta relación (Entidad predefinida). En cada lugar dentro del contenido de un elemento donde aparezcan alguno de estos caracteres especiales, se insertará la secuencia de caracteres correspondiente, especificada como entidad predefinida. Sin embargo, si nos encontramos que en esa información aparecen demasiados caracteres especiales, la tarea de sustituirlos por sus correspondientes entidades predefinidas se volverá totalmente improductiva. Es aquí donde aparecen las secciones CDATA, ya que pueden contener cualquier texto (excepto la secuencia decaracteres: ]]>, que indica el final de una sección) ya que no será analizado por el parser. Una sección CDATA queda construida siguiendo la siguiente sintaxis: <![CDATA[<esto no es un elemento, solo es texto && que no será analizado>]]>
Comentarios
Al igual que en otros lenguajes, los comentarios son bloques de texto que nunca serán analizados y/o procesados, quedando simplemente ignorados, y cuya única utilidad es crear notas dentro de un documento XML para realizar aclaraciones, documentación, etc. Se utiliza exactamente el mismo sistema que en HTML. Como se indica, cualquier carácter dentro del bloque de comentario será ignorado, sin embargo, hemos de evitar el uso de la secuencia de caracteres que indica el fin del bloque: <!-- Esto es un comentario, que será totalmente ignorado -->
Datos
Como datos para un documento XML, será toda aquella información de texto, comprendida como contenido dentro de un elemento (entre sus etiquetas de apertura y de cierre), que figure como valor de algún atributo o bien forme parte de una sección CDATA. Es necesario tener claro esto, pues como contenido de un elemento, podemos encontrarnos con otros elementos. Esto cobra especial importancia al crear un DTD o un XSchema, donde se ha de tener claro los diferentes contenidos que puede tener un elemento.
Estructura
Todos los documentos XML tienen en común una estructura general, que nada tiene que ver con la que guarden entre ellos los diferentes objetos que compongan cada documento. Esta estructura en común se divide en dos partes bien diferenciadas.
Cabecera o prólogo
La cabecera o prólogo de un documento XML es la sección que aparece en primer lugar. En ella tiene siempre lugar la declaración de XML, que es una instrucción de proceso que figurará en primer lugar en cada documento y que indica que el fichero de texto en el que figura es precisamente un documento XML, además de otras propiedades que se ven a continuación: <?xml version="1.0" encoding="UTF-8" standalone="yes"?> El atributo version, únicamente puede contener como valor actualmente, "1.0", ya que éste, indica la versión del estándar XML actual. Los otros atributos, opcionales, indican el código de caracteres internacionales que usa el documento y si éste, está enlazado ("no") o no ("yes") con algún DTD,respectivamente. El prólogo de un documento XML puede contener también la declaración de un DTD, o también otras instrucciones que permitirán enlazar con XSchemas o con hojas de estilo XSL, etc.
Cuerpo
El cuerpo del documento XML es la sección inmediata al prólogo o cabecera y que se identifica fácilmente porque es aquí donde se encuentra la etiqueta de apertura del llamado elemento raíz. Este elemento especial, está siempre presente en un documento XML y solo puede existir uno por documento. Cualquier contenido, datos u otros elementos, quedarán encerrados entre la etiqueta de apertura del elemento raíz y su correspondiente etiqueta de cierre. En nuestro ejemplo la etiqueta de apertura del elemento raíz sería <OrdenDeCompra> y la etiqueta de cierre del elemento raíz sería </OrdenDeCompra>. Un esquema general de un documento XML podemos verlo a continuación:
Para poder crear la estructura propia de los documentos XML es necesario el uso de una serie de objetos que le son propios. La mayoría de estos objetos se basan en las etiquetas o marcas que dan nombre al lenguaje. Una etiqueta queda definida por el conjunto de caracteres comprendido entre los paréntesis angulares (símbolos menor y mayor que)... < identificador > .... donde identificador, es el nombre que posteriormente identificará a un objeto concreto, por ejemplo,las instrucciones de proceso o los elementos. En nuestro ejemplo
Instrucciones de proceso
Elementos
Se trata de los objetos esenciales en un documento XML, la unidad básica de datos que forma la estructura de la información contenida en el documento. Un elemento queda definido
Atributos
Secciones CDATA
Comentarios
Datos
Comentarios
Publicar un comentario