Documentos de Académico
Documentos de Profesional
Documentos de Cultura
XML
11.1 Introducción a XML
Estas etiquetas son “inventadas” por usted, el autor del documento XML. El
lenguaje XML no tiene etiquetas predefinidas.
Las etiquetas utilizadas en HTML están predefinidas. Los documentos HTML
sólo pueden usar las etiquetas definidas en el estándar HTML (como <p>,
<h1>, etc.), mientras que XML permite al autor definir sus propias etiquetas y
su propia estructura del documento.
11.3 XML no sustituye a HTML, XML es un
complemento de HTML
Es importante entender que XML no es un sustituto de HTML. En la mayoría de las
aplicaciones Web, XML se utiliza para el transporte de datos, mientras que HTML se
emplea para dar formato y mostrar los datos.
XML se desarrolló con la idea de transportar la información entre aplicaciones, por
lo que podemos decir que XML está en todas partes.
Las etiquetas o nodos en XML son similares a un árbol genealógico, donde siempre se
tieneuna etiqueta raíz o root. Por lo general, ésta se encuentra escrita en plural, por
ejemplo:
<libros>
<alumnos>
<datos>
Sin embargo, usted está en completa libertad de escribirla como guste, siempre y
cuando siga las reglas descritas para las etiquetas. La etiqueta raíz contiene a todas las
demás. Todas las etiquetas que son escritas dentro de otra se les considera
“subnodos” o nodos hijos. Por ser la palabra “etiqueta” femenino en español, también
se les llama “hijas”. Bajo la misma lógica, a la etiqueta que contiene a otras se le
conoce como “padre” o “madre”.
A las etiquetas que tienen el mismo nodo “padre” se les conoce como “hermanos” o
“hermanas”. En inglés se utiliza la palabra sinbling, que es el equivalente a “hermano”.
A un nodo que está en la misma rama en un nivel superior, es decir, más cercano a la
raíz, se le conoce como “Antecesor”, “Ancestro” o “Pariente” (depende de la
traducción). En inglés se le conoce como “Parent” o “Ancestor”.
11.10 Documentos XML bien formados
Un archivo “bien formado” o well-formed es aquel que cumple las siguientes
reglas:
1. Un archivo bien formado sólo tiene una etiqueta raíz.
2. Los nodos sin contenido deben ir cerrados con una diagonal.
3. No pueden haber atributos sin valor.
4. Los valores de los atributos siempre deben ir entre comillas.
5. El anidamiento de las etiquetas debe ser siempre el correcto.
6. La declaración XML es opcional (aunque es altamente recomendado
incluirla al inicio de cada documento XML).
Actualmente todos los navegadores tienen un proceso de verificación de los
archivos XML y nos informarán si los mismos están o no “bien formados”.
Puede encontrar un sinfín de herramientas de validación en Internet. La más
conocida es el validador de la W3C.
11.11 Character Data Section
Una forma de escribir texto libre, que puede tener cualquier símbolo,
etiquetas, etc., requiere el uso de los Character Data Section. Estas etiquetas
le indican al “Analizador sintáctico” o en inglés “Parse” que no realice la
verificación del bloque. Esta marca inicia con la etiqueta <![CDATA[ y termina
con la etiqueta ]]> (dos corchetes de cierre y un mayor que).
Con esta instrucción enlazamos un archivo CSS con nuestro documento XML,
entre muchas opciones de uso.
11.13 Entities
El modelo DOM fue creado por la W3C en 1998. El modelo DOM (Document
Object Model) tiene tres especificaciones: para JavaScript, HTML y XML
aunque son muy parecidas, nos centraremos en esta última.
Una de las ventajas DOM es que es independiente del navegador del lenguaje
de programación o de la plataforma. Este modelo considera a un documento
XML como un árbol genealógico, asi que utilizaremos los términos que
habíamos visto en los primeros apartados.
Bajo los términos del DOM:
• Sólo podemos tener una etiqueta raíz en un documento XML.
• Todos los nodos tienen un nodo “padre”, a excepción del nodo raíz.
• Un nodo puede tener una cantidad ilimitada de hijos o subnodos.
• Un nodo que no tiene hijos se le llama “leaf” u hoja del árbol.
• Los nodos que tienen el mismo “padre” se les considera “hermanos” o
“sibling”.
• El primer hijo o “firstChild” se le considera el primer nodo de izquierda a
derecha.
• El último hijo o “lastChild” se le considera el último nodo de izquierda a
derecha.
• Para avanzar de izquierda a derecha entre nodos “hermanos” utilizamos la
sentencia “nextSibling”.
• Para retroceder de izquierda a derecha entre nodos “hermanos” utilizamos
la sentencia “prevSibling”.
Con estos conceptos podremos recorrer un documento XML sin necesidad de
conocer la estructura del mismo, ni los datos que posee.
11.17 Cargar un documento XML en una página HTML
La forma de cargar un documento XML dentro de la página HTML, sin necesidad de utilizar
un lenguaje de servidor como PHP o ASP, es por medio de la instrucción de JavaScript
XMLHttpRequest, que es la piedra angular de lo que conocemos como AJAX.
Primero debemos verificar que el navegador donde el usuario visualiza nuestra página,
soporte al objeto XMLHttpRequest(). Para ello lo verificamos por medio de la sentencia if()
de la línea 6 del listado anterior. Si no es soportado, lo creamos con la versión de Internet
Explorer 5 o 6. Existe una tercera validación, por si es una versión anterior a IE4 y menores,
pero por ser estas versiones prácticamente fuera de uso, lo vamos a omitir.
Con el método open() le indicamos la forma que deseamos abrir el archivo, en este caso
como GET, pero también tenemos la opción POST. El segundo parámetro es la URL donde se
encuentra nuestro archivo, en este caso en un XML directamente. Por lo general, también
podemos lanzar un programa de lenguaje de servidor, como PHP, que lee una base de datos
y genera un documento XML.
El tercer parámetro es un valor booleano que indica si deseamos ejecutar el proceso en
forma asíncrona, es decir, en el background del navegador, el cual no interfiere con las
instrucciones del script (entiéndase JavaScript).
11.18 Propiedades y métodos XML-DOM