Bienvenidos sean a este post, hoy hablaremos sobre como Android trabaja con uno de los estandares utilizados en Intenet para este caso XML, Lenguaje de Marcado Extensible por sus siglas en ingles, como ya hemos visto durante los distintos posts en Android el XML es utilizado para guardar la informacion de los layouts, las preferencias, los distintos permisos y configuraciones por medio de AndroidManifest.xml, etc. Otra de las particularidades de Android es que su punto fuerte es la utilizacion de Java pero el SDK no utiliza completamente las acciones disponibles por medio de JRE (Entorno de rutinas de Java por sus siglas en ingles) pero si con la gran mayoria, en lo referente a XML ocurre algo similar porque Java dispone de varias herramientas para trabajar con este estandar pero veamos las disponibles por SDK:

Anuncios
  • SAX (Simple API for XML), paquetes org.xml.sax.*
  • DOM (Document Object Model). paquetes org.w3c.dom.*

Y estas son algunas de las librerias no disponibles:

  • StAX (Streaming API for XML)
  • JAXB (Java Architecture for XML Binding)

En el primer caso de los dos no disponibles aunque no lo tengamos si existe una equivalencia llamada org.xmlpull.v1.XmlPullParser y en el segundo caso no se utiliza por necesitar demasiados recursos y seria “pesado” para Andorid.

Si bien XML puede parecer algo complicado y laborioso cuando uno ve el codigo fuente pero su forma mas basica de explicarlo es que son paginas que trabajan con tags o identificadores en los cuales almacena una informacion pero como trabajar con ellas puede ser complicado nos centraremos en dos tipos de manipulaciones, las antes mencionadas SAX y DOM, un ejemplo de codigo XML podria ser una de las preferencias que hemos visto anteriormente en Asteroides, les traigo uno de ellos:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <string-array name="tiposGraficos">
        <item>vectorial</item>
        <item>bitmap</item>
        <item>3D</item>
    </string-array>
    <string-array name="tipoGraficosValores">
        <item>0</item>
        <item>1</item>
        <item>2</item>
    </string-array>
    <string-array name="tipoConexion">
        <item>Bluetooth</item>
        <item>Wi-Fi</item>
        <item>Internet</item>
    </string-array>
    <string-array name="tipoConexionValor">
        <item>0</item>
        <item>1</item>
        <item>2</item>
    </string-array>
</resources>
Anuncios

Como pueden observar los distintos elementos entre identificados por tags tipo HTML, por ejemplo < item > y < /item > y el contenido entre ellos sera el valor relacionado al tag, para trabajar con ellos como dijimos anteriormente dispondremos de dos API, pasemos a hablar sobre SAX.

SAX como dijimos antes es una API diseñada para poder manipular los archivos XML, esta API se recomienda cuando se necesita un programa de analisis rapido y poco consumo de memoria, entre algunas de las caracteristicas que nos facilita esta API es un analizador (parser) sobre un documento XML, como esta API no almacena los datos por lo tanto necesitaremos una estructura de datos donde guardar dicha informacion, para realizar este parser se utilizara eventos que se generara a medida que vayamos leyendo el documento secuencialmente, ahora pasemos a hablar sobre DOM.

DOM es otra API disponible para manipular XML pero en este caso creada por W3C (World Wide Web Consortium), tambien nos permite manipular al HTML, Android soporta el nivel de certificacion 3 por lo cual le permite trabajar con DTD (Definicion de tipo de Documento) y validacion de documentos, a diferencia de SAX que recorre el archivo de forma secuencial pero no almacena dicha informacion, esta API en cambio nos permite cargar el documento XML en memoria RAM para manipularlo directamente, este lo representa como un arbol, podremos crear nuevos nodos, modificar o borrar los existentes. Una ventaja de DOM con respecto a SAX, este nos evita la creacion de un parser y una estructura para almacenar los datos pero algunos de sus inconvenientes son: recorrer el documento puede ser mas complejo, el otro es la carga del documento en memoria produciendose un uso excesivo de los recursos, especialemente si es un dispositivo movil antiguo y por ultimo procesa la informacion de forma mas lenta.

Anuncios

En resumen, hoy hemos hablado sobre como trabajar con archivos XML, las APIs disponibles y las que no, de las disponibles hemos visto algunas caracteristicas de ellas, en nuestro proximos post veremos algunos ejemplos de como trabajar con ellas, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00