Iver's web place

Navegador de Archivos

Calendario del Blog

February 2012
Sun Mon Tue Wed Thu Fri Sat
29 30 31 1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 1 2 3

General

Sobre XML y Flash

Ahora me toca lidiar un poco con XML y como la información al respecto esta distribuida, a continuación posteo algo de lo que he recolectado y aprendido.

¿Que es XML?

XML, es un lenguaje basado en los principios de HTML, tags que permiten dar formato a un texto o sirven para hacer referencia al mismo. XML es la sigla del inglés eXtensible Markup Language (lenguaje de marcado ampliable o extensible) desarrollado por el World Wide Web Consortium (W3C). [1]

XML es un lenguaje de transferencia de información, pensado para crear una sintaxis única que pueda usar cualquier programa para leer archivos de otro mediante un estándar.

Ejemplos del uso de XML

Un ejemplo del uso de XML lo podemos ver en los webservices, feeds, podcast, etc. Pero no es lo único que puede hacerse, es un lenguaje muy verstatil y permite la manipulación de datos sin importar el origen. Un muy buen proyecto que usa dicha tecnología es NHibernate, hermano mayor de Hibernate de Java pero pensado para usarse con .NET (más adelante haré un ejemplo de esta herramienta depersistencia).

Ahora un pequeño ejemplo de lo que se puede hacer, tenemos un archivo formado de la siguiente manera:


 
 
 
        <question>
                <desc> ¿Cuál es la capital de méxico?</desc>
                <answer>
                        <ok>México DF</ok>
                        <bad>Hidalgo</bad>
                        <bad>Texas</bad>
                </answer>
        </question>
        <question>
                <desc>Indica a Unix que la línea de órdenes ha terminado</desc>
                <answer>               
                        <ok>Enter</ok>
                        <bad>Ctrl-d</bad>
                        <bad>Ctrl-a</bad>
                </answer>              
        </question>
        <question>
                <desc>Termina la sesión con Unix de un usuario ordinario</desc>
                <answer>               
                        <ok>Ctrl-d</ok>
                        <bad>Ctrl-e</bad>
                        <bad>Enter</bad>
                </answer>
        </question>
        <question>
                <desc>Detiene la impresión de un fichero por pantalla</desc>
                <answer>               
                        <ok>Ctrl-s</ok>
                        <bad>Ctrl-x</bad>
                        <bad>Ctrl-z</bad>                      
                </answer>
        </question>
 
 
El primer tag nos indica que es un documento xml, desarrollado bajo la versión 1.0 y el tipo de codificación que deseamos usar, en este caso ISO-8859-2. Después se encuentra el nodo raíz, dicho elemento , no puede formar parte del contenido de ningún otro elemento (en este caso flash-definition). Algo importante de señalar es que el nombre de un tag debe ser igual en las etiquetas inicial y final. En los nombres se distinguen mayúsculas y minúsculas.

Todo elemento cuyo principio se marca con una etiqueta inicial, debe marcarse con una etiqueta final que repita el nombre del elemento, expresado igual que en la etiqueta inicial. El texto contenido entre la etiqueta inicial y la etiqueta final se llama contenido del elemento. Un elemento sin contenido puede tomar una forma especial.
 
<nombre></nombre>
 
La barra situada antes de > sustituye la etiqueta final. Los nombres de los tags pueden incluir letras, números, guiones, guiones bajos, comas y puntos. La coma se puede usar sólo en un caso especial, cuando separa lo que suele llamarse namespace. Los nombres de tags que comienzan con xml, XML u otras combinaciones de esta clase de cadena están reservadas para el estándar.

Un tag puede tener varios, uno o ningún atributo. En los nombres de atributo pueden utilizarse los mismos caracteres permitidos que en los nombres de elemento. El nombre del atributo y su valor se separan con =. El valor del atributo debe darse entre apostrofes '...' o comillas dobles "..." . Si se usan comillas o apostrofes en el contenido del atributo, se utilizará el contrario como marcador.

 
 
     <escorrecta></escorrecta>
     <attributes attr="un valor"></attributes>
     <values primero="1" segundo="2" tercero="333"></values>
     <description caso1="Muestra's" caso2="Una expresion: Waxxxa! "></description>
 
 
Los caracteres < y & no pueden usarse en el texto, puesto que se usan como marcas. Si se necesitan, debe usarse su codificación de html[2].

Pueden aparecer comentarios en cualquier parte de un documento, fuera de las etiquetas. No puede incluirse la cadena "--" (dos guiones) dentro de un comentario.
Código mal formado:
 
<ejemplo>
     
</ejemplo>
 
Código bien formado:
 
 
<ejemplo>
 
 
</ejemplo>
 
La instrucciones de procesamiento
 
       
 
permiten que los documentos incluyan instrucciones para programas.

 
 
 
<upgradelog>
<properties>
         <property value="Logger"> </property>
</properties>
<event errorlevel="0" project="" source="Logger.sln" description="File successfully backed up as Backup\Logger.sln"> </event>
</upgradelog>
 
Existen secciones de CDATA, se usan para citar textos con caracteres que en otras circunstancias serían interpretados como signos de marca. Las secciones de CDATA comienzan con la cadena
 
 
 
No puede incluirse la cadena "]]>" dentro de una sección de CDATA.

 
<ejemplo>
     
</ejemplo>
 
Hasta aquí es una recopilación de XML y mucho de lo mencionado se obtuvo de una página de la cuál no tengo la referencia, si alguién la tiene y desea compartirla, la pondré aquí para respetar los derechos del autor.

Trabajando XML desde Flash

Existen diversos manuales de flash que muestran como hacer la interacción entre el documento XML y el Flash[3][4] por lo que solo citaré las funciones que se requieren y una breve descripción.

Declaración de un objeto XML:
 
//Declara la variable "obj_xml" como un objeto XML
var obj_xml:XML = new XML();
 
Se puede instaciar un objeto para parsear un texto XML específico:

 
otherXML = new XML("<state>California<city>san francisco</city></state>");
 
Métodos para la clase XML
XML.addRequestHeader() Agrega o cambia las cabeceras HTTP para operaciones mediante POST.
XML.appendChild() Agrega un nodo al final del objeto de la lista especificado.
XML.cloneNode() Clona el nodo especificado, opcionalmente, clona todos los hijos recursivamente.
XML.createElement() Crea un nuevo elemento XML.
XML.createTextNode() Crea un nuevo nodo de texto XML.
XML.getBytesLoaded() Regresa el número de bytes cargados para el documento XML especificado.
XML.getBytesTotal() Regresa el tamaño del documento XML en bytes.
XML.hasChildNodes() Regresa true si el nodo especificado tiene un nodo hijo; de otro modo regresa false.
XML.insertBefore() Inserta un nodo enfrente del nodo especificado.
XML.load() Carga un documento (especificamente un objeto CML) de una URL.
XML.parseXML() Parsea un documento XML dentro del árbol del objeto XML.
XML.removeNode() Remueve el nodo especificado del padre.
XML.send() Envía el obejto especificado XML a una URL.
XML.sendAndLoad() Envía el objeto especificado de XML a un URL y carga la respuesta del servidor en otro objeto de XML.
XML.toString() Coviente el nodo especificado y cualquier hijo a texto XML.

Propiedades de la clase XML
XML.contentType Indica el tipo de MIME transmitido al servidor.
XML.docTypeDecl Asigna y regresa información sobre la declaración DOCTYPE de un documento XML.
XML.firstChild De solo lectura; hace referencia al primer hijo de la lista de un nodo específico.
XML.ignoreWhite Cuando es true, nodos con texto en blanco solamente, son descartados durante el proceso de parseo.
XML.lastChild Hace referencia al último hijo de la lista del nodo especificado.
XML.loaded De solo lectura; indica si el obejo XML especificado ha sido cargado.
XML.nextSibling De solo lectura; hace referencia al siguiente hermano en la lista de nodos.
XML.nodeName Nombre del nodo de un obejto XML.
XML.nodeType EL tipo de nodo especificado (elemento o nodo de texto).
XML.nodeValue El texto del nodo especificado si es un nodo de texto.
XML.parentNode Solo lectura; hace referencia al nodo padre de un nodo especificado.
XML.previousSibling De solo lectura; se refiere al hermano anterior a la lista del hijo del nodo del padre.
XML.status Un código de estatus numérico indicando si se realizó o no la operación de parseo del codumento XML.
XML.xmlDecl Información sobre la declaración de un documento XML.

Colecciones para el documento XML.
XML.attributes Regresa un array que contiene todos los atributos del nodo especificado.
XML.childNodes Solo lectura; regresa un array que contiene las referencias de los nodos hijos de un nodo.

Eventos de la clase XML.
XML.onData Un manejador de eventos es invocado cuando el texto XML ha sido completamente cargado del servidor, o cuando un error ocurre al descargar un texto XML de un servidor.
XML.onLoad() Un manejador de evento que retorna un valor boleano indicando si el obejto XML fué cargado exitosamente con XML.load() or XML.sendAndLoad().

Por el momento lo dejo hasta aquí y espero postear un ejemplo del tratado de XML desde flash porque hoy tengo algo de trabajo.

[1] http://es.wikipedia.org/wiki/XML
[2] http://www.w3.org/TR/html401/charset.html
[3] http://www.cristalab.com/tutoriales/12/tutorial-de-xml-en-flash-mx-2004
[4] http://flash-creations.com/notes/dynamic_xml.php

**Notaface-kiss.png * No he desactivado la validación de código seguro del jaws, por lo que algunos tags no se han visualizado, si encuentro al e-corona online el día de hoy, espero poder cambiarlo y checar al tarea que me dejo.
Trackback URI: http://es.iver.com.mx/index.php/trackback/70

# RE: Sobre XML y Flash

Akin0, <andres.aquino@gmail.com> / March 6, 6:44 am  
avatar

Good !

Algo que se antoja interesante es el manejar un documento XML con el .net, aunque como comentas es muy útil en varias circunstancias; se ha convertido en un estandard para el intercambio de información entre sistemas de distinto origen y/o plataforma.

Saludos !
AQ

Dejar un comentario

Escribe el código Captcha que estás viendo

Fuentes XML de comentario: RSS | Atom

Estadísticas de visitantes

5
61
27327