El XML: Nota 2

La estructura de un documento XML

La estructura de un documento XML es flexible y rígida a la vez. Existen unas pocas reglas que debemos seguir para crear un documento XML, una vez que lo hicimos, tenemos un documento de datos altamente estructurado.

Al ser altamente estructurado, es fácil para un programa interpretar los datos, esto se logra a través del XML-DOM (modelo de objeto de documento XML).

Hay dos usos comunes del XLM-DOM. El primero que vamos a ver es el uso del XML en JavaScript. El segundo es el uso del lenguaje de hoja de estilo diseñado para XML, el XSL (eXtensible StyLe-sheet Language). El XSL es un lenguaje bastante extenso, y puede mostrar XML dentro de un formato HTML.

El documento XML

Como el XML es estructurado, debemos seguir reglas estrictas cuando programamos.

Las reglas que vimos hasta ahora eran:

1. Debemos comenzar con una declaración diciendo que el documento es XML
2. Todos los datos XML deben estar contenidos en un elemento raíz.
3. Todos los elementos tienen que estar cerrados
4. Los elementos de abrir y de cerrar deben coincidir en mayúsculas y minúsculas, ej.: <name></name>, no <name></NAME>
5. Los atributos deben ponerse entre comillas.

Veamos qué son los atributos

Un atributo en XML es muy parecido a un atributo HTML, excepto que en XML podemos definir nuestros propios nombres de atributos.

<?xml version="1.0"?>
<emptyXML content="empty"/>

Y no estamos limitados al elemento raíz.

<?xml version="1.0"?>
<continentes content="Continentes del Mundo">
<data item="1">Africa</data>
<data item="2">America</data>
<data item="3">Asia</data>
<data item="4">Europa</data>
<data item="5">Oceania</data>
</continentes>

Recordemos que los atributos SIEMPRE deben colocarse entre comillas. Si sacamos las comillas el Internet Explorer dará un error. Si tuviéramos que definir un elemento XML pondríamos:

<nombreelemento atributo1="valor1" atributo2="valor2">texto</nombreelemento>

Elementos anidados (nested elements)

Ya vimos elementos anidados, los elementos <data> en el ejemplo de los continentes están anidados dentro del elemento raíz <continentes>.

También podemos anidar elementos dentro del documento. Un documento más grande se vería así:

<?xml version="1.0"?>
<continentes>
<nombre continente="Africa">
<superficie>3035000</superficie>
</continente>
<nombre continente="America">
<superficie>42960000</superficie>
</continente>
<nombre continente="Asia">
<superficie>43608000</superficie>
</continente>
<nombre continente="Europa">
<superficie>10498000</superficie>
</continente>
<nombre continente="Oceania">
<superficie>22263000</superficie>
</continente>
</continentes>

Este documento utiliza atributos y elementos anidados. Aquí se nota la similitud entre atributos y elementos anidados. El atributo podría ser un elemento, ej.:

<continente>
<nombre>Africa</nombre>
<superficie>30335000</superficie>
</continente>

Esto es un tema de diseño, los diferentes conjuntos de datos tenderán a utilizar o bien atributos o bien elementos.

También podemos anidar dentro de un nido, etc.

<continente>
<nombre>Africa</nombre>
<superficie>30335000</superficie>
<paises>
<pais>Egipto</pais>
<pais>Marruecos</pais>
<pais>Sudan</pais>
</paises>
</continente>

Comentarios

Ningún lenguaje de programación estaría completo sin la capacidad de añadirle comentarios, XML no es la excepción.

Un comentario XML comienza con <! -- y termina con -- >
<?xml version="1.0"?>
<! --
Comentario XML
-->
<cualquier cosa/>
<!--otro comentario-->

Como debemos tener un elemento raíz, <cualquier cosa/> sirve para esto.

XML DOM (Document Object Model)

Para poder procesar la información que contiene un documento XML, debemos interpretarla (parse), y el DOM facilita esto.

El XML-DOM le permite a un programa acceder a todas las partes de un documento XML. Existen varios programas disponibles en varios lenguajes, el XML fue diseñado para ser lo más portable posible.

Podemos acceder el XML-DOM a través de JavaScript "client-side". Veamos cómo se hace esto.

Crear un objeto XML-DOM en JavaScript.

Podemos usar un documento XML bien formado que hayamos hecho o podemos usar los ejemplos de esta nota.

Tenemos que cargar este documento en JavaScript, donde podamos manipular los datos a nuestro antojo. Esto se logra creando un objeto XML-DOM, que es el esqueleto para todos los documentos XML.

Cargamos el documento XML en el objeto XML-DOM, y ahora podemos acceder los elementos individuales del documento XML en el objeto XML-DOM.

Alternativamente, podemos crear una isla XML usando el elemento <xml> en HTML. Se le asigna automáticamente a la isla una estructura XML-DOM para que utilicemos.

Podemos crear una isla XML dinámicamente utilizando la función createElement.
Para cargar un documento XML, o usamos el método load() si estamos utilizando la técnica ActiveXObject, o asignamos el archivo XML a la propiedad src para las técnicas de islas.

Estas tres técnicas pueden verse en el siguiente ejemplo.

<HTML>
<HEAD>
<TITLE>XMLDOM Object</TITLE>
<SCRIPT>
function go() {
msXML=new ActiveXObject("microsoft.xmldom");
msXML.load('continentes.xml');
alert('msXML=new ActiveXObject("microsoft.xmldom");\n'+msXML.text);
ceXML=document.createElement("xml");
ceXML.src='continentes.xml';
document.body.appendChild(ceXML);
alert('ceXML=document.createElement("xml");\n'+ceXML.text);
alert('<XML ID="XMLIsland" SRC="continentes.xml">\n'+XMLIsland.text);
alert('finished');
}
</SCRIPT>
</HEAD>
<XML ID="XMLIsland" SRC="continentes.xml">
</XML>
<BODY onload="go();">
</BODY>
</HTML>

Deberíamos poder ver la lista de continentes tres veces, cada vez precedida de la técnica que se está demostrando en particular, y después "finished", indicando que el programa ha finalizado.

Aspectos del XML-DOM

En la sección anterior vimos una de las funciones del documento XML, la propiedad text.

La propiedad text (texto) lee todo el texto del documento XML, no cualquier elemento, atributo o comentario.

Existen otras propiedades, vamos a utilizarlas para navegar el "arbol" XML-DOM.

Algunas de las propiedades comúnmente utilizadas son:

- documentElement: el elemento raíz
- text: el texto contenido dentro de los tags de apertura y de cierre del elemento
- nodeName: el nombre del elemento
- childNodes: una colección de los elementos anidados de un elemento
- item: se accede con la propiedad item
- attributes: una colección de atributos para un elemento

Cuando navegamos un documento XML, siempre tenemos que referirnos primero al elemento raíz. Esto es porque todos los elementos son "children" de este elemento, y debemos utilizar un esquema de referencia estricto para acceder a los datos.

<HTML>
<HEAD>
<TITLE>Aspects of XMLDOM</TITLE>
<SCRIPT>
function go() {
alert(XMLIsland.documentElement.nodeName);
alert(XMLIsland.documentElement.text);
alert(XMLIsland.documentElement.attributes[0].nodeName);
alert(XMLIsland.documentElement.attributes[0].text);
}
</SCRIPT>
</HEAD>
<XML ID="XMLIsland" SRC="continentes.xml">
</XML>
<BODY onload="go();">
</BODY>
</HTML>

Este programa muestra tres propiedades del documentElement.

El JavaScrip es un lenguaje bastante complicado para presentar datos XML, no posee un rango de comandos grande como para mostrar directamente los datos en pantalla, al contrario del HTML, que si lo hace.

Pero el HTML no se integra perfectamente con el XML, y tampoco permite las sutilezas de éste.

La unión del XML con el HTML es el XSL, que es al XML lo que las CSS (cascade style sheets) son al HTML.

En otras notas exploraremos el XLS.


 


¿Cómo solucionar problemas en su Mac?

 
 



 
 


 


| Quiénes somos | Contáctenos | Legales |
mailto:%[email protected]


© 2001 TheHost ® Todos los derechos reservados

Hosted by www.Geocities.ws

1