2.5. Conceptos de Válido y Bien formado

Un documento XML debe estar bien formado y ser válido para poder ser procesado y visualizado.

La expresión “bien formado” significa que el documento XML debe estar expresado correctamente según la gramática de XML. Entre las reglas que debemos seguir escrupulosamente señalaremos las siguientes:

  • Debe haber un único nodo raíz que contenga el total del documento XML.
  • Cada elemento y subárbol debe estar bien anidado (“nested”) al interior de un nodo raíz y nunca deben solaparse los unos con los otros. Así, esto sería correcto:
    <metadatos>
    <titulo>Introducción... </titulo>
    <fecha>30 enero 2017</fecha>
    </metadatos>.
    

    Pero no esto:

    <metadatos>
    <titulo>Introducción... 
    <fecha>30 enero 2017</titulo></fecha>
    </metadatos>
    
  • Los nombres de los elementos y atributos son siempre sensibles a las mayúsculas.
  • Todas las etiquetas de apertura deben tener una etiqueta de cierre; excepto si se trata de elementos vacíos, en cuyo caso se expresa así <nombre_elemento/>.
  • Los valores de los atributos van siempre entre comillas.
  • Un elemento no puede tener dos atributos con el mismo nombre.
  • Los comentarios y las instrucciones de procesamiento nunca pueden aparecer en el interno de una etiqueta.
  • No pueden aparecer los caracteres < o & como datos de caracteres de los elementos o los atributos.

Una manera muy sencilla de comprobar si un documento XML está bien formado es abrirlo con un navegador web que sepa interpretar documentos XML, como por ejemplo Mozilla. Si el documento aparece en el navegador, significa que está bien formado, en caso contrario aparecerá un error.

Nosotros utilizaremos el programa oXygen que posee ya un parser que permite la comprobación de su correcta formación. La opción “Check Well-Formedness” (Menú superior, Document > Validate > Check Well–Formedness) nos permite llevar a cabo esta operación sin ninguna complicación; en caso de que se cumplan los requisitos nos aparecerá en la parte inferior el mensaje “Document is well formed”. En caso contrario aparecerá: “Wellformed test – failed. Errors: 1” o el número de errores que localice en el documento. Además nos aparecerá el mensaje del tipo de parser utilizado, en el caso de oXygen, Xerces, con los detalles del error.

Por otro lado, el documento debe ser también “válido”. Para ello, necesita un modelo que fije la estructura básica y las posibilidades de anidación del documento. Las DTD o esquemas (RelaxNG, W3CSchema) establecen la sintaxis que debe tener el documento XML. Si este está formado según sus reglas, será válido. A diferencia de cuando está bien formado, los navegadores web no validan los documentos XML, solo comprueban que esté bien formado.

Volviendo a nuestro ejemplo (Ejemplo 2) y al programa oXygen, podemos comprobar que nuestro fichero sea válido. En este caso, el fichero depende de una DTD, llamada Ejemplo 2: una DTD. Vamos al Menú superior > Document > Validate > Validate. El mensaje que nos aparecerá en la parte inferior de programa será “Document is valid”.

Mientras que un documento XML debe estar siempre bien formado, el hecho de ser válido no es obligatorio, pero altamente recomendable pues establece qué tipo de marcado se ha utilizado. En el campo de TEI, veremos como siempre usamos un esquema con el que comparamos nuestro documento.

¿Como citar?

Susanna Allés-Torrent, Introducción a la codificación de textos en XML-TEI, 2018.
http://tthub.io/aprende/introduccion-a-tei/ (Última fecha de acceso)