Si ha visto los documentos XML, estará familiarizado con los conceptos básicos del uso de etiquetas para marcar el texto de un documento. Esta sección discute las diferencias entre los documentos XML y los documentos XML. Va más allá de las reglas básicas de los documentos XML y discute la terminología usada para describirlos. Un punto importante acerca de los documentos XML: La especificación XML requiere un parser para rechazar los documentos XML que no sigan las reglas básicas. Muchos analizadores HTML aceptarán marcados chapuceros haciendo conjeturas sobre lo que el escritor del documento intentaba. Para evitar el revoltijo de estructuras encontrado en la mayoría de los documentos HTML, los creadores de XML decidieron reforzar la estructura del documento desde el principio. (De hecho, si usted no está familiarizado con el termino, un parser es una pieza de código que intenta leer un documento e interpretar su contenido.)
Documentos inválidos, válidos y bien formados
Hay tres tipos de documentos XML:
Documentos inválidos no siguen las reglas de sintaxis definidas por la especificación XML. Si un desarrollador tiene reglas definidas de lo que ese documento puede contener en una DTD o Esquema, y el documento no las sigue, ese documento es inválido. (Ver Definiendo el contenido del documento en la página 13 para una introducción apropiada a los DTDs y Esquemas de los documentos XML.) Documentos válidos siguen tanto las reglas de sintaxis XML como las reglas definidas en su propio DTD o Esquema. Documento bien formado sigue las reglas de sintaxis XML, pero no tiene un Esquema o DTD.
El elemento raíz
Un documento XML debe estar contenido en un elemento único. Este elemento único es llamado el elemento raíz y contiene todo el texto y cualquier otro elemento en el documento. En el ejemplo siguiente, el documento XML está contenido en un elemento único, el elemento <greeting>. Notese que el documento tiene un comentario el cual, aunque está fuera del elemento raíz, es perfectamente legal
<?xml version="1.0"?> <!--Un documento bién formado-->
<saludo> ¡Hola Mundo! </saludo>
Aquí presentamos un documento que no contiene un único elemento raíz:
<?xml version="1.0"?> <!--Un documento no válido --> <saludo> ¡Hola Mundo! </saludo> <saludo> ¡Hola, el Mundo! </saludo>
Es necesario un parser XML para rechazar el documento, independientemente de la información que pueda contener.
Los elementos no pueden solaparse
Los elementos XML no pueden solaparse. Aquí presentamos un marcado ilegal:
<!--marcado XML ilegal --> <p> <b>Yo <i>amo de verdad </b> XML. </i>
Si comienza un elemento <i> dentro de un elemento <b> también deberá terminarlo dentro. Si se quiere que el texto XML aparezca en cursiva, hay que añadir un segundo elemento <i> para corregir el marcado:
<!--marcado XML legal --> <p> <b>Yo <i>amo de verdad </i> </b> <i>XML. </i>
Un parser XML aceptará solamente este marcado; Los parser HTML de la mayoría de los navegadores aceptarán ambos.
Las etiquetas de fin son obligatorias
No puede olvidarse de ninguna etiqueta de fin. En el primer ejemplo que sigue, el marcado no es legal debido a que no hay etiquetas de fin de párrafo (
). Aunque esto es aceptable en HTML (y, en algunos casos, en SGML), un parser XML lo rechazaría.
<!--Marcado XML NO LEGAL --> <p>Yada yada yada...
<p>Yada yada yada... <p>...
Si un elemento carece de contenido se le llama elemento vacío; los elementos HTML para ruptura (<br>) e imagen (<img>) son dos ejemplos. En los elementos vacíos en XML pueden ponerse lo barra de cierre en la etiqueta de inicio. Los dos elementos de ruptura y los dos elementos de imagen a continuación significan la misma cosa para un parser XML:
<!-- Dos rupturas equivalentes --> <br></br> <br/> <!-- Dos elementos de imagen equivalentes --> <img src="../img/c.gif"></img> <img src="../img/c.gif" />
Los elementos son sensibles a mayúsculas
Los elementos XML son sensibles a mayúsculas. En HTML, <h1> y <H1> son lo mismo; en XML no. Si intenta terminar un elemento <h1> con una etiqueta </H1>, obtendrá un error. En el ejemplo siguiente, el primero presenta un encabezado ilegal, mientras que el último es correcto.
<!-- marcado XML ILEGAL --> <h1>Los elementos son sensibles a mayusculas</H1> <!-- marcado XML LEGAL --> <h1> Los elementos son sensibles a mayusculas</h1>
Los atributos deben tener valores entrecomillados
Existen un par de reglas para los atributos en los documentos XML: · · Los atributos deben tener valores Esos valores deben estar entrecomillados.
Compare los dos ejemplos que vienen a continuación. El marcado del primero es legal en HTML, pero no en XML. Para obtener el equivalente en XML, se le debe dar un valor al atributo y debe entrecomillarse.
<!-- marcado XML ILEGAL --> <ol compact> <!-- marcado XML LEGAL --> <ol compact="yes">
Puede usar comillas simples o dobles siempre y cuando sea consecuente. Si el valor del atributo contiene un single o un double puede usarse el otro tipo de comillas para rodear el valor ( como en nombre="Doug's car"), o usar las entidades " para comillas dobles y ' para comillas simples. Una entidad es un símbolo, como ", que el parser XML reemplazará con otro texto como ".