2. ObjetivosObjetivos
Entender la estructura básica de un archivo XMLEntender la estructura básica de un archivo XML
Entender cómo se puede utilizar un archivo XMLEntender cómo se puede utilizar un archivo XML
en un archivo en un proyectoen un archivo en un proyecto
Crear un objeto XML con ASCrear un objeto XML con AS
Utilizar un objeto URLLoader para cargar unUtilizar un objeto URLLoader para cargar un
archivo XMLarchivo XML
Responder a los eventos COMPLETE y ERRORResponder a los eventos COMPLETE y ERROR
en la carga de un archivoen la carga de un archivo
Acceder a los datos de un archivo XMLAcceder a los datos de un archivo XML
Utilizar los datos del XML para la aplicaciónUtilizar los datos del XML para la aplicación
3. Historia delHistoria del
XMLXML
XMLXML proviene de un lenguaje inventado porproviene de un lenguaje inventado por IBMIBM en losen los
años setenta, llamado GML (años setenta, llamado GML (Generalized MarkupGeneralized Markup
LanguageLanguage), que surgió por la necesidad que tenía la), que surgió por la necesidad que tenía la
empresa de almacenar grandes cantidades deempresa de almacenar grandes cantidades de
información. Este lenguaje gustó a la ISO, por lo que eninformación. Este lenguaje gustó a la ISO, por lo que en
1986 trabajaron para normalizarlo, creando SGML1986 trabajaron para normalizarlo, creando SGML
((Standard Generalized Markup LanguageStandard Generalized Markup Language), capaz de), capaz de
adaptarse a un gran abanico de problemas.adaptarse a un gran abanico de problemas.
En el año 1989 Tim Berners Lee creó la web, y junto conEn el año 1989 Tim Berners Lee creó la web, y junto con
ella el lenguaje HTML. Este lenguaje se definió en elella el lenguaje HTML. Este lenguaje se definió en el
marco de SGML y fue de lejos la aplicación másmarco de SGML y fue de lejos la aplicación más
conocida de este estándar.conocida de este estándar.
4. Estructura XMLEstructura XML
La tecnología XML busca dar solución al problema deLa tecnología XML busca dar solución al problema de
expresar información de la manera más estructurada yexpresar información de la manera más estructurada y
reutilizable posible. Que la información sea estructuradareutilizable posible. Que la información sea estructurada
quiere decir que se compone de partes bien definidas.quiere decir que se compone de partes bien definidas.
Entonces se tiene un árbol de pedazos de información.Entonces se tiene un árbol de pedazos de información.
Estas partes se llamanEstas partes se llaman elementoselementos, y se las señala, y se las señala
mediante etiquetas.mediante etiquetas.
Una etiqueta consiste en una marca hecha en elUna etiqueta consiste en una marca hecha en el
documento, que señala una porción de éste como undocumento, que señala una porción de éste como un
elemento. Un pedazo de información con un sentidoelemento. Un pedazo de información con un sentido
claro y definido. Las etiquetas tienen la formaclaro y definido. Las etiquetas tienen la forma
<nombre><nombre>, donde, donde nombrenombre es el nombre del elementoes el nombre del elemento
que se está señalando.que se está señalando.
6. Un documento XMLUn documento XML
“bien formado”“bien formado”
Los documentos denominados como "Los documentos denominados como "bienbien
formadosformados" (del inglés" (del inglés well formedwell formed) son aquellos) son aquellos
que cumplen con todas las definiciones básicasque cumplen con todas las definiciones básicas
de formato y pueden, por lo tanto, analizarsede formato y pueden, por lo tanto, analizarse
correctamente por cualquier analizadorcorrectamente por cualquier analizador
sintáctico (sintáctico (parserparser) que cumpla con la norma.) que cumpla con la norma.
LosLos documentos han de seguir unadocumentos han de seguir una
estructuraestructura estrictamente jerárquica con lo queestrictamente jerárquica con lo que
respecta a las etiquetas que delimitan susrespecta a las etiquetas que delimitan sus
elementos.elementos.
7. Un documento XMLUn documento XML
“bien formado”“bien formado”
Una etiqueta debe estarUna etiqueta debe estar
correctamente incluida en otra, escorrectamente incluida en otra, es
decir, las etiquetas deben estardecir, las etiquetas deben estar
correctamente anidadas. Loscorrectamente anidadas. Los
elementos con contenido deben estarelementos con contenido deben estar
correctamente cerrados.correctamente cerrados.
Los documentos XML sólo permiten unLos documentos XML sólo permiten un
elemento raíz del que todos los demáselemento raíz del que todos los demás
sean parte, es decir, solo pueden tener unsean parte, es decir, solo pueden tener un
elemento inicial.elemento inicial.
8. Un documento XMLUn documento XML
“bien formado”“bien formado”
Los valores atributos en XML siempre debenLos valores atributos en XML siempre deben
estar encerrados entre comillas simples oestar encerrados entre comillas simples o
dobles.dobles.
El XML es sensible a mayúsculas y minúsculas.El XML es sensible a mayúsculas y minúsculas.
Existe un conjunto de caracteres llamadosExiste un conjunto de caracteres llamados
espacios en blanco (espacios, tabuladores,espacios en blanco (espacios, tabuladores,
retornos de carro, saltos de línea) que losretornos de carro, saltos de línea) que los
procesadores XML tratan de forma diferente enprocesadores XML tratan de forma diferente en
el marcado XML.el marcado XML.
Es necesario asignar nombres a las estructuras,Es necesario asignar nombres a las estructuras,
tipos de elementos, entidades, elementostipos de elementos, entidades, elementos
particulares, etc. En XML los nombres tienenparticulares, etc. En XML los nombres tienen
alguna característica en común.alguna característica en común.
9. Partes de un archivo XMLPartes de un archivo XML
La primera línea de un archivo XML contieneLa primera línea de un archivo XML contiene
una etiqueta de declaración que indican launa etiqueta de declaración que indican la
versión del XML del archivo y el tipo deversión del XML del archivo y el tipo de
codificación del mismo:codificación del mismo:
<?xml version="1.0" encoding="utf-8"?><?xml version="1.0" encoding="utf-8"?>
Los comentarios dentro de un archivo XML seLos comentarios dentro de un archivo XML se
hacen como los de HTML:hacen como los de HTML:
<!-- All songs ® copyrght Passion Records --><!-- All songs ® copyrght Passion Records -->
<!-- www.passionrecords.com --><!-- www.passionrecords.com -->
10. Partes de un archivo XMLPartes de un archivo XML
Para AS debe tener un par de etiquetasPara AS debe tener un par de etiquetas
principales. Una etiqueta está formada porprincipales. Una etiqueta está formada por
un nombre rodeado de un símbolo “menorun nombre rodeado de un símbolo “menor
que” y cerrado con “mayor que”:que” y cerrado con “mayor que”:
<songlist><songlist>
Toda etiqueta debe tener su etiqueta deToda etiqueta debe tener su etiqueta de
cierre:cierre:
<songlist>…</songlist><songlist>…</songlist>
11. Partes de un archivo XMLPartes de un archivo XML
Un conjunto de etiqueta de apertura yUn conjunto de etiqueta de apertura y
cierre se llama “nodo” o “elemento”.cierre se llama “nodo” o “elemento”.
Un archivo XML es una jerarquía deUn archivo XML es una jerarquía de
nodos.nodos.
Un nodo superior en la jerarquía se leUn nodo superior en la jerarquía se le
llama “padre” y a los nodos dentro de sullama “padre” y a los nodos dentro de su
jerarquía se le llaman “hijos”.jerarquía se le llaman “hijos”.
12. Crear instancias de elementos XMLCrear instancias de elementos XML
y URLLoadery URLLoader
Para almacenar datos XML necesitamos crearPara almacenar datos XML necesitamos crear
un elemento XML. Pertenece a la clase XMLun elemento XML. Pertenece a la clase XML
(pertenece a las clases “core”), por ejemplo:(pertenece a las clases “core”), por ejemplo:
var songList_xml:XML = new XML();var songList_xml:XML = new XML();
Para cargar un archivo se necesita un objetoPara cargar un archivo se necesita un objeto
URLoader:URLoader:
var xmlLoader:URLoader = new URLLoader()var xmlLoader:URLoader = new URLLoader()
Se carga un archivo con el método load():Se carga un archivo con el método load():
xmlLoader.load(new URLRequest(“songList.xml”));xmlLoader.load(new URLRequest(“songList.xml”));
13. Responder a los eventosResponder a los eventos
COMPLETE y IO_ERRORCOMPLETE y IO_ERROR
El evento COMPLETE se dispara cuando elEl evento COMPLETE se dispara cuando el
archivo se terminó de leer. Este eventoarchivo se terminó de leer. Este evento
pertenece a la clase Event.pertenece a la clase Event.
Si hubo un error en el proceso de lectura, seSi hubo un error en el proceso de lectura, se
generará un evento IO_ERROR, el cualgenerará un evento IO_ERROR, el cual
pertenece a la clase IO_ERROR_EVENT.pertenece a la clase IO_ERROR_EVENT.
Una vez leída la información, debemos pasarlaUna vez leída la información, debemos pasarla
al formato XML:al formato XML:
songList_xml = new XML(xmlLoader.data)songList_xml = new XML(xmlLoader.data)
14. Leer los elementos de un objetoLeer los elementos de un objeto
XMLXML
Un objeto XML puede ser interpretado como unUn objeto XML puede ser interpretado como un
“arreglo”. A esta propiedad se le conoce como“arreglo”. A esta propiedad se le conoce como
XMLListXMLList
En el ejemplo del archivo, se tendría un arregloEn el ejemplo del archivo, se tendría un arreglo
con 12 nodos.con 12 nodos.
Para acceder a uno de estos nodos, debemosPara acceder a uno de estos nodos, debemos
escribir el nombre del objeto xml que tiene laescribir el nombre del objeto xml que tiene la
información, y posteriormente el nombre delinformación, y posteriormente el nombre del
nodo que tiene la información (no el nodo raíz):nodo que tiene la información (no el nodo raíz):
songList_xml.song[n]songList_xml.song[n]
15. Leer los elementos de un objetoLeer los elementos de un objeto
XMLXML
Para acceder al valor de un subnodo, sePara acceder al valor de un subnodo, se
escribe como propiedad, por ejemplo:escribe como propiedad, por ejemplo:
songList_xml.song[0].namesongList_xml.song[0].name
Para leer un atributo, se utiliza el punto yPara leer un atributo, se utiliza el punto y
la arroba con el nombre del atributo, porla arroba con el nombre del atributo, por
ejemplo:ejemplo:
songList_xml.song[0].@idsongList_xml.song[0].@id
16. Indexación de elementosIndexación de elementos
Para indexar elementos, se utilizarán dosPara indexar elementos, se utilizarán dos
variables: una para indicar “la página” (variablevariables: una para indicar “la página” (variable
“larga”) y otra para indicar el lugar dentro de la“larga”) y otra para indicar el lugar dentro de la
página (variable “corta”).página (variable “corta”).
Por ejemplo: Si queremos acceder al elementoPor ejemplo: Si queremos acceder al elemento
“18” de un arreglo, la variable larga podría estar“18” de un arreglo, la variable larga podría estar
en 14 y la variable corta en 4:en 14 y la variable corta en 4:
18 = 14 + 418 = 14 + 4
17. Saltos a otras páginasSaltos a otras páginas
en AS3.0en AS3.0
Para saltar a otra página, utilizamos laPara saltar a otra página, utilizamos la
función global “navigateToURL()”función global “navigateToURL()”
Sus parámetros principales son: un objetoSus parámetros principales son: un objeto
URLRequest y el tipo de ventana dondeURLRequest y el tipo de ventana donde
se abrirá él nuevo elemento:se abrirá él nuevo elemento:
navigateToURL(new URLRequest(link), “_blank”)navigateToURL(new URLRequest(link), “_blank”)
Por omisión, el nuevo elemento aparecePor omisión, el nuevo elemento aparece
en “_self”en “_self”
18. Preguntas de revisiónPreguntas de revisión
¿Cuál es otro nombre para las etiquetas XML?¿Cuál es otro nombre para las etiquetas XML?
¿Cuál es la clase principal para trabajar con¿Cuál es la clase principal para trabajar con
XML?XML?
¿Con cuál clase se pueden cargar elementos¿Con cuál clase se pueden cargar elementos
externos, por ejemplo, archivo XML?externos, por ejemplo, archivo XML?
Nombra y describe tres eventos de la claseNombra y describe tres eventos de la clase
URLLoader.URLLoader.
¿Cómo accede AS3.0 a los elementos de un¿Cómo accede AS3.0 a los elementos de un
objeto XML?objeto XML?