Curso de XML

Adem�s de las reglas anteriormente mencionadas, para escribir documentos XML bien formados tenemos que conocer perfectamente la sintaxis del lenguaje XML y algunas restricciones que la especificaci�n impone.

Es como en cualquier lenguaje tenemos que conocer la sintaxis de c�mo se escriben los elementos, atributos y entidades, y ,si las incumplimos, el "parser" nos dar� un error de mala formaci�n. Algunas de estas reglas ya las hemos visto en el cap�tulo anterior: c�mo se escriben las etiquetas de inicio y final, c�mo se escriben las etiquetas de elementos vacios, c�mo tenemos que escribir los atributos etc. y es evidente que si no seguimos estas reglas el parser nos dar� error.

En el siguiente ejemplo:

Documento XML mal formado. Miscel�nea de errores,

   <?xml version="1.0"?>
   <documento> 
     <p>Mi Primer <destacar importancia=1>documento XML</destacar></p]
     <p>Comienza con la etiqueta <documento&gt;</p>
     <p>A continuacion colocamos un elemento sin contenido</p>
     <imagen fichero="imagen.gif">
   </documento>

nos encontramos con cuatro errores:

  • El valor del atributo "importancia" no est� entrecomillado. En HTML es posible no entrecomillar el valor de los atributos, pero en XML es obligatorio.

    Tendr�amos que haber escrito:

    
       ...<destacar importancia="1">documento XML</destacar>...
    
    
  • La etiqueta final, del elemento "p", est� mal cerrada. En lugar del car�cter "]" , tendr�amos que poner el s�mbolo mayor que ">".

    
       <p>Mi Primer <destacar importancia=1>documento XML</destacar></p>
    
    
  • Estamos utilizando el s�mbolo menor que "<" sin que forme parte de la definici�n de una etiqueta. Al ser un car�cter reservado, tendr�amos que escribirlo como la entidad predefinida &lt;.

    
       <p>Comienza con la etiqueta &lt;documento&gt;</p>
    
    
  • Estamos escribiendo el elemento vac�o "imagen" de forma incorrecta. Al ser un elemento sin contenido tendr�amos que haberlo escrito con una etiqueta de elemento vac�o:

    
       <imagen fichero="imagen.gif"/>
    
    

    o tambi�n de la siguiente manera:

    
       <imagen fichero="imagen.gif"></imagen>
    
    

    Ambas son correctas, aunque es recomendable la primera.

Por tanto, el ejemplo anterior bien escrito:

Documento XML bien formado

<?xml version="1.0"?>
<documento>
   <p>Mi Primer <destacar importancia="1">documento XML</destacar></p>
   <p>Comienza con la etiqueta &lt;documento&gt;</p>
   <p>A continuacion colocamos un elemento sin contenido</p>
   <imagen fichero="imagen.gif"/>
</documento>

Otras reglas que debemos tener en cuenta son:

  • El XML es sensible a la utilizaci�n de may�sculas y min�sculas.

    En el siguiente ejemplo:

    
       <p>Mi primer documento XML</p>
       <P>Mi primer documento XML</P>
    
    

    los elementos "p" y "P" son diferentes.

    Hay que tener mucho cuidado con esta regla, ya que su incumplimiento es habitual y suele ser la causa de la mayor parte de los errores. Es recomendable antes de empezar a escribir un documento XML establecer un criterio al respecto.

  • El nombre de la etiqueta de inicio y final debe ser el mismo.

    El siguiente ejemplo es incorrecto

    
       <p>Mi primer documento XML</P>
    
    

    ya que al hacer diferencia entre may�sculas y min�sculas, el parser no entiende ambas etiquetas como del mismo elemento.

  • Ning�n nombre de atributo puede aparecer m�s de una vez en la misma etiqueta de inicio o de elemento vac�o.

    El siguiente ejemplo es incorrecto:

    
       ...<destacar importancia="1" importancia="2">documento XML</destacar>...
    
    

Un consejo; si utilizais el bloc de notas recordad que para que funcione todo el tinglado debeis guardar los ficheros con extensi�n ".xml". El bloc de notas procurar� por todos los medios que los ficheros se guarden con extensi�n ".txt". Para conseguir que guarde el fichero con la extensi�n que deseamos, cuando tengamos la ventana de di�logo escogeremos en el desplegable "Todos los ficheros (*.*)" y pondremos el nombre del fichero con la extensi�n entre comillas dobles en el campo correspondiente.

.�Ejercicio: Documento XML no valido

Reescribir el siguiente ejemplo para que sea un documento XML bien formado.

  <?xml version="1.0"?>
  <libros>
    <libro id="quijote">
      <titulo>El Quijote</titulo>
      <autor nombre=cervantes nombre=cervantes>
      <descripcion>Es el m<ejor libro de cervantes.</descripcion> 
    </libro]
  </Libros>

Soluci�n:

Aprovecharemos este ejercicio para ver que el IE5 es una estupenda herramienta para comprobar que nuestros documentos son documentos XML bien formados.

Por ejemplo, si abrimos el XML del enunciado de este ejercicio observaremos c�mo nos va indicando de forma muy clara los errores que tiene.

En primer lugar, nos indica que el valor del atributo nombre no est� entrecomillado.

Error 1 de mala formación segun el IE5

En segundo lugar, nos indica que se produce un error por tener duplicado el nombre del atributo nombre.

Error 2 de mala formación segun el IE5

En tercer lugar, ya nos indica un error que no resulta tan claro, aunque nos debe resultar f�cil adivinar que se produce porque estamos utilizando el s�mbolo menor que "<" sin que forme parte de la definici�n de una etiqueta. Al ser un car�cter reservado, tendriamos que escribirlo como la entidad predefinida &lt;.

Error 3 de mala formación segun el IE5

A continuaci�n se est� dado cuenta de que el elemento autor est� mal anidado, es decir, que parece ser que queremos cerrar el elemento linea sin tener cerrado el elemento autor. Hay que tener en cuenta que, en nuestro ejemplo, el autor es un elemento vacio y que, por tanto, deber�amos cerrarlo.

Error 4 de mala formación segun el IE5

A continuaci�n produce un error porque hemos cerrado con un car�cter no v�lido la etiqueta libro.

Error 5 de mala formación segun el IE5

Y en �ltimo lugar nos indica que no reconoce </Libros> como etiqueta de cierre para el elemento libros. Hay que recordar que el XML diferencia entre may�sculas y min�sculas, lo que significa que libros y Libros no es lo mismo.

Error 6 de mala formación segun el IE5

Por tanto, el documento XML bien formado quedar� de la siguiente manera:

  <?xml version="1.0"?>
  <libros>
    <libro id="quijote">
      <titulo>El Quijote</titulo>
      <autor nombre="cervantes"/>
      <descripcion>Es el m&lt;ejor libro de cervantes.</descripcion> 
    </libro>
  </libros>

.�Ejercicio: Escribir un documento XML bien formado que represente un cat�logo de libros

Escribir un documento XML v�lido que represente un cat�logo de libros.

Como m�nimo ser�a recomendable que cada libro tuviese informaci�n sobre:

  • T�tulo
  • Autor
  • ISBN

Utilizar el IE5 para verificar que est� bien formado e incluir al menos dos o tres libros.

Soluci�n:

Un documento XML que se ajuste a estas condiciones podr�a ser por ejemplo:

<?xml version="1.0" encoding="ISO-8859-1"?>
<libros>
<libro isbn="91-901-533-7">
<titulo>XML: Extensible Markup Languge</titulo>
<autor>Elliote Rusty Harold</autor>
<editorial>Prentice Hall</editorial>
<descripcion>Estupendo libro sobre XML</descripcion>
</libro>
<libro isbn="84-415-0845-3">
<titulo>XML</titulo>
<autor>Natanya Pitts</autor>
<editorial>Anaya Multimedia</editorial>
<descripcion>Buen libro de introducci�n al XML</descripcion>
</libro>
</libros>

Lo m�s posible es que la estructura de este XML sea diferente a la que vosotros hay�is escrito, pero esto por el momento no es importante.

Lo interesante del ejercicio es que hay�is escrito un documento XML que se visualice correctamente en el IE5.

.�Ejercicio: Validar el documento XML utilizado parser de XML

Validar el anterior documento XML, mediante el cual represent�bamos un cat�logo de libros utilizando un parser de XML.

Soluci�n:

Como ya comentamos en un principio, cualquier parser de XML es v�lido para realizar este ejercicio.

En este tutorial utilizaremos el parser de IBM, exactamente la versi�n xml4j_1_1_14. Es una versi�n antigua del parser. No importa, ya que esta versi�n sirve perfectamente para nuestras necesidades.

Para ello nos podemos bajar el siguiente fichero zip., que contiene:

  • Los dos ficheros .jar que realmente hacen falta para utilizar el parser.
    • xml4j_1_1_14.jar, que contiene el parser propiamente dicho.
    • xml4jSamples_1_1_14.jar, que contiene unos ejemplos de como utilizarlo.

Una vez que tenemos los jar, y declarados en nuestro classpath para validar un documento XML, no tendremos m�s que escribir:

java samples.XJParse.XJParse -d [nombreficheroXML] >tmp.txt

Por si alguno no est� muy puesto en Java, se puede hacer de la siguiente manera:

  1. Colocar los .jar en un directorio classes que tengo colgando de la unidad C, y donde estan todos los .jar que utilicen las aplicaciones en Java.
  2. Luego en lugar de declarar estos .jar en el classpath, se definen desde linea de comandos en el momento que ejecutar la clase Java correspondiente. Como esto en algunas ocasiones puede ser farragoso, es aconsejable crear un fichero .bat donde se coloca el c�digo. Para este caso he creado un fichero pxml.bat que lanza el parser xml.

Por tanto, en nuestro ejemplo, para validar nuestros documentos xml, no tendremos m�s que escribir:

pxml catalogo_libros.xml

Si tenemos instalado el JRE, lo mejor ser� colocar los .jar directamente en el directorio lib/ext, dentro del directorio donde est� instalado el JRE, puesto que Java busca en dicho directorio por defecto los .jar que pueda necesitar. Entonces con escribir la l�nea:

java samples.XJParse.XJParse -d [nombreficheroXML] >tmp.txt

Ser� suficiente. Os recomiendo que modifiqu�is el documento XML de manera que sea err�neo para observar c�mo el parser indica los errores.

.�Las entidades

Todav�a no hemos hablado mucho de las entidades,pero, como veremos m�s adelante, resultan muy importantes en la elaboraci�n y mantenimiento eficiente de nuestros documentos XML.

Una de sus funcionalidades es la de permitirnos elaborar un documento XML en "trozos"; es decir, tendremos un �nico documento XML, pero �ste f�sicamente se encontrar� dividido en varios ficheros.

Por el momento no vamos a profundizar m�s en este aspecto, pero lo que hay que tener en cuenta es que para el parser se trata de un �nico documento XML y que, por tanto, sus diferentes partes, a�n encontr�ndose en ficheros distintos, deben verificar las reglas de buena formaci�n descritas anteriormente.

COMPARTE ESTE ARTÍCULO

COMPARTIR EN FACEBOOK
COMPARTIR EN TWITTER
COMPARTIR EN LINKEDIN
COMPARTIR EN WHATSAPP
ARTÍCULO ANTERIOR

SIGUIENTE ARTÍCULO