Está en la página 1de 20

Capítulo 11

XML
11.1 Introducción a XML

El lenguaje XML fue creado ante la necesidad de obtener un lenguaje,


compatible con HTML, que permitiera manejar los datos de las páginas de
Internet en forma eficiente. Las siglas XML significan eXtensible Markup
Language.
XML fue diseñado para transportar y almacenar datos, mientras que HTML fue
hecho para mostrar los datos, como párrafos, encabezados, listas y tablas. XML
es una recomendación del W3C y está creado para ser autoexplicativo, es decir,
que por medio de sus propias etiquetas cualquier persona puede entender su
contenido.
En este lenguaje podemos hacer nuestras propias etiquetas y no como en
HTML, donde las etiquetas están predefinidas. Es necesario hacer hincapié en
que XML se realizó para almacenar los datos, no para mostrarlos. Para
mostrarlos está HTML y para su diseño tenemos los Estilos en Cascada o CSS. Tal
vez es un poco difícil de entender, pero XML no hace nada. XML fue creado para
estructurar y almacenar la información.
11.2 Con XML usted inventa sus propias etiquetas

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.

11.4 ¿Qué necesitamos para trabajar con XML?


Una característica de XML es que maneja texto plano, por lo que podemos
trabajarlo con cualquier editor de texto que no maneje caracteres de control, como
un procesador de texto de tipo Word. Para crear archivos de datos podemos utilizar
procesadores de palabra tan sencillos como NotePad de Windows y grabar los
archivos como archivo planos. Sin embargo, contamos con excelentes codificadores
para lenguajes relacionados con Internet (como HTML, JavaScript, PHP, etc.) que
nos simplificarán mucho la vida con su uso.
Dreamweaver

Uno de estos entornos de edición de código muy popular es Dreamweaver (el


cual tiene un costo) que nos permitirá verificar nuestro archivo, entre otras
funciones. Sin embargo, hay otros codificadores estupendos que son
gratuitos, como Sublime Text, Aptana o Brackets. Existen otros entornos que
son muy buenos como NetBeans VisualBasic. Así que depende de sus gustos y
aficiones, y de su bolsillo, la selección de su herramienta de codificación.
También necesita un navegador “moderno”. En realidad, XML es un abuelito
en relación con Internet, por lo que no tiene problema con la versión de su
navegador, pero entre más moderna sea su herramienta (entiéndase Internet
Explorer 9 o superior), mejor.
11.5 Crear las etiquetas en XML
Una característica de XML es que nosotros creamos nuestras propias etiquetas con
ciertas reglas muy sencillas, a diferencia de HTML donde debemos adaptarnos a unas
cuantas etiquetas ya creadas.
Al igual que HTML, las etiquetas deben iniciar con un símbolo de “menor que” o “<”,
y cerramos la misma con un “mayor que” o “>”. Por ejemplo:
<libros>
<alumnos>
<discos>
Dentro de estos símbolos debemos escribir el nombre de la etiqueta, el cual no debe
contener espacios ni caracteres especiales, y es sensible a mayúsculas y minúsculas.
No se aceptan espacios, pero sí guiones medios y bajos. Debe iniciar con letra o guión
bajo. También podemos utilizar puntos en los nombres de las etiquetas. Por ejemplo:
<apellido.paterno>
<apellido-paterno>
<apellido_paterno>
11.6 Atributos
Los atributos son información que está relacionada con el nodo o etiqueta y
que por lo general complementa a la misma. Los atributos se escriben dentro
de la etiqueta de apertura.
El nombre del atributo sigue las mismas reglas que los nombres de la
etiqueta. Seguido, debemos escribir un símbolo de igualdad y el valor del
atributo entre comillas, que pueden ser dobles o sencilla. El contenido del
atributo siempre será de tipo cadena o string.
Por lo general se procura que el contenido de éstos sea corto y siempre se
encuentre relacionado con la etiqueta. Por ejemplo:
<titulo paginas=”780”>El Quijote</titulo>
<imagen ancho=”600” alto=”400”>elquijote.jpg</imagen>
<editorial anio=”1978”>Oveja Negra</editorial>
11.7 Los comentarios

Podemos escribir comentarios en los archivos XML de la misma forma que lo


hacemos en HTML, es decir, iniciamos con <!—y los cerramos con -->.
Ejemplos de comentarios serían:
<!-- Archivo de libros aprobados el 10 de Agosto del 2015 -->
<!-- Derechos reservados en América Latina -->
Los comentarios en XML, así como en HTML, no se pueden anidar, es decir,
escribir uno dentro de otro. No podemos escribir comentarios dentro de
etiquetas.
Si los escribimos antes que la etiqueta de declaración de XML, los
navegadores nos enviarán un mensaje de error.
11.8 El encabezado en XML

Aunque no es obligatorio el encabezado en XML es extremadamente


recomendable que su archivo lo contenga, ya que para algunas aplicaciones
es necesario, y siempre le simplificará el intercambio de datos. El encabezado
de XML básico es:
Esta etiqueta debe de ser la primera en su archivo.
11.9 El orden de las etiquetas

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).

Este tipo de etiquetas no se pueden anidar, es decir, no pueden estar una


dentro de otra porque marcaría un error en la construcción del documento
XML. Dentro de estas etiquetas podemos escribir otras etiquetas de tipo
HTML, o de lo que fuera, y el analizador sintáctico las interpretará como
texto. Por ejemplo:
<autor><![CDATA[El <b>Quijote</b> <i>de la Mancha</i>]]></autor>
11.12 Processing Instruction

Las instrucciones de proceso o “processing instruction” son etiquetas que


sólo le interesan a la aplicación que lee el documento XML y no al analizador
sintáctico. Por ejemplo, si queremos cargar un archivo de tipo CSS para
nuestra página, podemos escribir algo semejante a:

<?xml-stylesheet type=”text/xsl” href=” estilos.css” ?>

Con esta instrucción enlazamos un archivo CSS con nuestro documento XML,
entre muchas opciones de uso.
11.13 Entities

Si deseamos escribir caracteres especiales o que no se encuentren en el teclado,


como el símbolo de derechos reservados, podemos utilizar las entities, como:
&amp; para el anpersand (&)
&quot;, comillas dobles (“)
&lt;, menor qué (<)
&gt; mayor que (>)
Son válidas todas las entidades de HTML
11.14 Los espacios en blanco
Los espacios en blanco, los tabuladores y retornos de carro sólo sirven para los
que leemos los documentos XML. En realidad, sólo hacen crecer de tamaño a las
aplicaciones y navegadores, así que puede añadir cuantos espacios sean
necesarios, ya que éstos serán eliminados al momento de leer y procesar los
archivos XML.
Con estas reglas básicas podremos crear documentos XML bien formados para
nuestras aplicaciones con HTML5.
11.15 Los estilos en cascada relacionados a un archivo XML

Aunque la finalidad de un documento XML es almacenar información más


que mostrarla en un navegador, también podemos utilizar los estilos en
cascada para darle salida por este medio.
Para ello debemos emplear una instrucción de proceso, como vimos en
incisos anteriores, relacionando el archivo externo; por ejemplo:
<?xml-stylesheet type=”text/css” href=” estilos.css” ?>
En este caso, el archivo debe encontrarse en la misma carpeta que el
documento XML. De lo contrario, debemos de indicar la carpeta o “path”
donde se encuentre.
Dentro del archivo CSS debemos hacer referencia a las etiquetas creadas del
documento XML por su nombre, sin utilizar el símbolo de numeral (o
almohadilla o gatito), es decir, #, ni el punto que utilizamos para las clases (.).
11.16 El modelo DOM para XML

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

Dentro de las propiedades más utilizadas en el modelo DOM-XML tenemos:


11.19 Navegar en el documento XML
A esos espacios y tabuladores, el navegador los considerará un nodo, aunque
en este caso será un nodo de texto o #text. Para solucionar este pequeño
inconveniente tenemos la propiedad nodeType. Por lo general este valor lo
regresa como un entero o como una constante, según la siguiente tabla:

También podría gustarte