Saltar al contenido
XML

Documento XML

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.

En documento XML podremos observar una serie de partes generales:

· Prólogo.

o Contiene información relativa al presente XML

o Contiene la vinculación con su DTD (si existe).

o Contiene instrucciones que deben ser ejecutadas por la aplicación que lo procese (instrucciones de proceso).

o Contiene la vinculación con su hoja de estilo correspondiente (si existe).

Ej: <?xml version=”1.0″ encoding=”ISO-8859-1″ standalone=”yes”?>

· Elemento root o raíz principal: Elemento principal del docuemtno que englobara a todos los demás será el elemento “Padre”.

· Contenido de los elementos: Es el dato contenido en este ejemplo el contenido seria a 00001

Ej: <DNI> 00001</DNI>

· Atributos: Puede servir para dar información adicional sobre el

elemento.

Ej: <Tema sección=’naturaleza’>

El canto de la paloma torcaz

</Tema>

· Comentarios: Al igual que en Html sirven para poner notas al código del documento

Ej: <!– Este es un comentario –>

· Entidades: Deben estar predefinidas en la DTD ( en otro post explicaremos que son las DTD función sintaxis etc..)

Se usan precediendo &nombreEntidad;

Teniendo en la DTD

<!ENTITY NombreAsegurado “Paco”>

En el Xml pondríamos:

<Asegurado> &NombreAsegurado ; </ Asegurado >

· Secciones CDATA : Secciones que no son tenidas en cuenta por el parser (Los parser son herramientas para el tratamiento y manipulacion de XMLhablaramoes sobre ellos mas exhaustivamente mas adenlate) en las cuales podremos incluir palabras o simbolos reservados por ejemplo el símbolo “<” es un símbolo que no se puede poner como tal pero si podemos incluirlo con esta etiqueta:

<![CDATA[«<nombre>»]]>

NOTA: Lo único que no podría contener esta sección es “]]>” dado q es el fin de la propia entidad y no se puede anidar.

Centrándonos en su Validación tenemos que hacer una diferenciación entre lo que es un documento bien formado (well-formed) y un documento Válido (valid).

Un documento Xml está bien formado según la W3C (World Wide Web Consortium) cuando :

1- Tomado como un todo, cumple la regla denominada “document”. Cumplir esta regla indica:

a- Que contiene al menos uno o mas elementos.

b- Tiene un elemento root , raiz o principal, bien delimitado, que no es contenido por ningún otro elemento y que contiene a su vez a todos los demás. Es decir el elemento root, es el elemento padre y los demás serán sus hijos.

Por ejemplo, en este caso Tienda seria el elemento principal las demas etiquetas serian sus hijos suyos:

<?xml version=”1.0″ encoding=”ISO-8859-1″ standalone=”yes”?>

<Tiendas>

<Tienda1>

<Direcion>Calle Teruel</Direccion>

<Poblacion>Villa Manuela de Arriba</Poblacion>

<Responsable>Mr T.</Responsable>

</Tienda1>

<Tienda2>

<Direccion>Calle Teruel</Direccion>

<Poblacion>Villa Manuela de Abajo</Poblacion>

<Responsable>Mr T.</Responsable>

</Tienda2>

</ Tiendas >

2- Respeta todas las restricciones de buena formación cuyas especificaciones son:

a- Si no se utiliza DTD, el documento debe comenzar con un Declaración de Documento Standalone.

b- Todas las etiquetas deben estar balanceadas: esto es, todos los elementos que contengan datos de tipo carácter deben tener etiquetas de principio y fin.

c- Todos los valores de los atributos deben ir entrecomillados (el carácter comilla simple [el apóstrofe] puede utilizarse si el valor contiene caracteres comillas dobles, y viceversa): si necesitas ambos, utiliza &apos; y &quot .

d- Cualquier elemento VACÍO (p.e. aquellos que no tienen etiqueta final como <IMG>, <HR>, y <BR> y otros de HTML) deben terminar con ‘/>’ o debes hacerlos no VACÍOS añadiéndoles una etiqueta de fin.

e- No debe haber etiquetas aisladas (< ó &) en el texto (p.e. debe darse como &lt; y &amp;), y la secuencia ]]> debe darse como ]]&gt; si no ocurre esto como final de una sección marcada como CDATA.

f- Los elementos deben anidar dentro de sí sus propiedades (no se deben sobreponer etiquetas, como en el resto de SGML).

g- Los ficheros bien-formados sin-DTD pueden utilizar atributos en sus elementos, pero éstos deben ser todos del tipo CDATA, por defecto. El tipo CDATA (character DATA) son caracteres.

3- Cada una de las entidades analizadas que se referencia directa o indirectamente en el documento está bien formada

Un documento válido es aquel que además de estar bien formado, cumplen las especificaciones de la DTD (Document Type Definition), del Schema o esquema ( como es nuestro caso), o del elemento que lo valide, y siguen las pautas marcadas por sus modelos de contenido. No hay esquemas de documentos idénticos, por eso es difícil concretar las reglas que deben cumplir.

Para que un documento XML también sea válido, durante el proceso de validación se comprueba:

1 -Qué elementos o atributos se permiten en un documento del tipo definido en el esquema.

2 -La estructura de los elementos y atributos (elementos anidados, atributos obligatorios u opcionales, etc.) .

3 -El orden de los elementos.

4 -Los valores de los datos de atributos y elementos (según enumeraciones, rangos de valores delimitados, tipo de dato correcto (p.ex formato correcto de una fecha, utilizar un entero para expresar un número), etc.

5 -La unicidad de valores dentro de un documento (p. ex. Referencias de productos que no pueden repetirse.

Bueno en próximos post Veremos que es una DTD (Document Type Definition) que es un XML Schema y cómo podemos validar documentos XML con ellos.