kiwoo

Introducción al XML

XML es un lenguaje de marcas con múltiples usos. Ejemplos típicos de formatos XML son el XHTML en el cual está construida esta misma página, el RSS, SVG, etc.

Un archivo XML, básicamente, no es nada más que un archivo de texto con una serie de marcas (tags), estas marcas pueden ser predefinidas (por ejemplo en XHTML, body,h1, etc), o definidas por el usuario, pero en cualquier caso las marcas se tienen que abrir y cerrar siempre de forma jerárquica.

correcto:

<a><b>test</b></a>

incorrecto:

<a><b>test</a></b>

Un archivo XML muy simple podria ser este:

<portfolio> <proyecto> <nombre> Un proyecto </nombre> <texto> El texto sobre mi proyecto </texto> </proyecto> </portfolio>

Si creamos este archivo con el bloc de notas y lo grabamos con el nombre portfolio.xml, luego lo podremos abrir con un navegador web y ver que el navegador reconoce la estructura, de manera que nos permite abrir o cerrar cada uno de los niveles del documento.

El documento puede tener atributos, que se escriben dentro de las etiquetas de la siguiente manera:

 <proyecto id='27' year='2008'>

Una decisión a tomar en el momento de decidir la estructura de nuestro XML, es si la información debe ir en forma de atributo o como contenido de un nodo.

En cierta manera podemos asimilar un archivo XML con una base de datos.

XML es una buena opción siempre que queramos compartir información entre diferentes sistemas puesto que cualquier lenguaje de programación es capaz de "parsear" la información de un archivo XML (no deja de ser un archivo de texto con etiquetas).

Cuando hablamos de "parsear" nos referimos al hecho de poder "extraer" la información de una manera útil, ya que el archivo XML en si mismo suele ser un poco engorroso. Asi por ejemplo en PHP nos interesa convertir el contenido del XML en un array (mucho más manejable en php), sin embargo en actionscript 3 lo podemos leer directamente de una manera bastante sencilla.

En el caso de un portfolio de proyectos con los siguientes campos; Nombre, Año, descripción,enlace, miniatura e imagen una posible estructura seria la siguiente:

<portfolio>
   <project>
      <name>Mi primer proyecto</name>
      <year>2007</year>
      <desc>Es un proyecto muy chulo que hice ese año</desc>
      <link>http://www.coolthing.com/</link>
      <thumb>thumbs/cool.jpg</thumb>

      <image>images/cool.jpg</image>
   </project>
   <project>
      <name>Mi segundo proyecto</name>
      <year>2008</year>
      <desc>Otro proyecto todavia mas chulo</desc>

      <link>http://www.frogopogo.com/</link>
      <thumb>thumbs/frog.jpg</thumb>
      <image>images/frog.jpg</image>
   </project>
      <project>
      <name>Mi tercer proyecto</name>
      <year>2008</year>

      <desc>Otro proyecto todavia mas chulo</desc>
      <link>http://www.frogopogo.com/</link>
      <thumb>thumbs/frog.jpg</thumb>
      <image>images/frog.jpg</image>
   </project>
</portfolio>

¿Que pasaria si quiero crear categorias para los proyectos?
Básicamente tendriamos 2 opciones, una serie añadir un atributo o tag para cada proyecto que especifique la categoria a la cual pertenece:

<project categoria='foto'>

Otra opción posiblemente mejor seria añadir un nivel al árbol para las categorias con la información relativa a la categoria, e incluir dentro los proyectos que pertenecen a esa categoria.
 

AdjuntoTamaño
portfolio.xml825 bytes