Enreas
Registrarse
Advertisement

Partes de un documento[]

Éste es el documento XML que vimos en el capítulo anterior:

<?xml version="1.0"?>
<pelicula>
  Brazil
  <director>Terry Gilliam</director>
  <actores>
    <actor>Jonathan Pryce</actor>
  </actores>
</pelicula>
<!-- Por hacer: completar actores. -->

Podemos diferenciar tres partes. En primer lugar, el prólogo

<?xml version="1.0"?>

En el cuerpo es donde están los datos del documento:

<pelicula>
  Brazil
  <director>Terry Gilliam</director>
  <actores>
    <actor>Jonathan Pryce</actor>
  </actores>
</pelicula>

Para terminar, el epílogo. En este caso, sólo contiene un comentario:

<!-- Por hacer: completar actores. -->

Acentos[]

¿Es posible utilizar acentos en los nombres de las etiquetas? Prueba a cargar este documento XML:

<?xml version="1.0"?>
<película>
  Brazil
  <director>Terry Gilliam</director>
  <actores>
    <actor>Jonathan Pryce</actor>
  </actores>
</película>
<!-- Por hacer: completar actores. -->

Podrás comprobar que ocurre un error, causado por la etiqueta película. Este problema se soluciona modificando el prólogo del documento. En él indicamos que la tabla de caracteres a utilizar debe contener, entre otros, los acentuados:

<?xml version="1.0" encoding="iso-8859-15"?>
<película>
  Brazil
  <director>Terry Gilliam</director>
  <actores>
    <actor>Jonathan Pryce</actor>
  </actores>
</película>
<!-- Por hacer: completar actores. -->

Comentarios[]

Puedes utilizar comentarios en sus documentos XML para incluir anotaciones, como en el siguiente ejemplo:

<?xml version="1.0"?>
<pelicula>
  Brazil
  <director>Terry Gilliam</director>
  <actores>
    <actor>Jonathan Pryce</actor>
    <!--No es seguro.-->
    <!--<actor>Al Pacino</actor>-->
  </actores>
</pelicula>
<!-- Por hacer: completar actores. -->

Atributos[]

Es posible añadir a cada nodo información adicional. En este ejemplo, cada actor puede pertenecer a una categoría diferente (protagonista o secundario):

<?xml version="1.0"?>
<pelicula>
  Brazil
  <director>Terry Gilliam</director>
  <actores>
    <actor papel="protagonista">Jonathan Pryce</actor>
    <actor papel="secundario">Bob Hoskins</actor>
  </actores>
<actor/>
</pelicula>

Caracteres especiales[]

El formato XML se reserva algunos caracteres para sí mismo. Es el caso del ampersand (&) o de los símobolos de apertura (<) y cierre de etiqueta (>). Así, este documento es incorrecto:

<?xml version="1.0"?>
<nodo>2 > 3 < 2</nodo>

Para salvar esta dificultad es posible utilizar sustitutos:

<?xml version="1.0"?>
<nodo>2 &gt; 3 &lt; 2</nodo>

Espacios[]

Por defecto, el analizador de XML ignora los espacios o tabuladores dentro del contenido de las etiquetas:

<?xml version="1.0"?>
<actores>
  <actor>Jonathan  Pryce</actor>
  <actor>Jonathan Pryce</actor>
  <actor>Jonathan		Pryce</actor>
</actores>

Para él, todos los nodos actor del documento anterior son iguales.

Ignorar partes del documento[]

Si lo deseas, puedes incluir datos en su documentos que serán ignorados por el analizador XML. Sólo es necesario que utilices la etiqueta CDATA, como en el siguiente ejemplo:

<?xml version="1.0"?>
<pelicula>
  Brazil
  <director>Terry Gilliam</director>
  <actores>
    <actor>Jonathan Pryce</actor>
  </actores>
  <html>
  <![CDATA[
  <HTML>
    <HEAD>
      <TITLE>
        Brazil
      </TITLE>
    </HEAD>
    <BODY>
      <H1>Brazil</H1>
      <B>Director:</B> Terry Gilliam<BR>
      <B>Protagonista:</b> Jonathan Pryce<BR>
    </BODY>
  </HTML>
  ]]>
  </html>
</pelicula>
<!-- Por hacer: completar actores. -->

Programas[]

Es posible crear programas que comprueben si un documento XML está bien formado. El siguiente es un ejemplo de ello:

using System;
using System.Xml;

namespace XML_bien_formado
{
  class MainClass
  {
    public static void Main(string[] args)
    {
      
      XmlDocument xml = new XmlDocument();

      try{
      
        xml.Load("brazil.xml");
      
      }
      
      catch(Exception e){
        
        Console.WriteLine("Ha ocurrido un error: '{0}'", e);
        
      }
            
    }
  }
}

Enlaces interesantes[]

Puede que encuentres interesantes los siguientes enlaces:

  • Página para comprobar si un documento está bien formado o no.
  • Un editor de documentos XML para Windows.
  • Otro para Linux.
Advertisement