Post on 13-Jun-2015
description
Android de la A a la Z
Unidad 5 “XML y Android”
1 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
¿Qué es XML?
El lenguaje eXtensible Markup Language, XML, es una tecnología o lenguaje de etiquetado útil para una
serie de tareas informáticas algunas relacionadas con la programación en ciertos lenguajes de
programación, por ejemplo Java. XML no es sólo un lenguaje, es una forma de especificar lenguajes
(metalenguaje), de ahí lo de extensible.
XML fue creado al amparo del Word Wide Web Consortium (W3C) organismo que vela por el desarrollo de
WWW. Su desarrollo se comenzó en 1996 y la primera versión salió a la luz el 10 de febrero de 1998.
Para entenderlo bien hay que olvidarse un poco, sólo un poco de HTML. En teoría HTML es un subconjunto
de XML especializado en presentación de documentos para la Web, mientras que XML es un subconjunto
de SGML especializado en la gestión de información para la Web. En la práctica XML contiene a HTML
aunque no en su totalidad. La definición de HTML contenido totalmente dentro de XML y por lo tanto que
cumple del todo la especificación SGML es XHTML (Extensible, Hypertext Markup Language).
Por tanto, no debe uno pensarse que XML es para crear páginas web, o algo parecido a las páginas web.
XML es un lenguaje que cambia el paradigma de programación: de basada en funciones u objetos a la
programación basada en el documento.
XML se puede usar para cambiar totalmente el paradigma de publicación; de un programa que recibe unas
entradas y produce unas salidas, se pasa a un documento que genera otro documento, o bien programas
que toman documentos y producen otros documentos.
Características
Transmite contenido y estructura.
No transmite presentación ni comportamiento. Para que lo haga se le debe asociar mecanismos
adicionales.
XML aplicado a los sitios web: permite separar contenido y presentación, y que los mismos datos se
puedan mostrar de varias formas distintas sin demasiado esfuerzo.
Android de la A a la Z
Unidad 5 “XML y Android”
2 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
XML para la comunicación entre aplicaciones: representación de los datos muy simple, fácil de
transmitir por la red, estándar. En los últimos tiempos este uso se está haciendo muy popular con
el surgimiento de los Servicios web.
XML para la configuración de programas: representación de los datos simple y estándar, en
contraposición con los crípticos formatos propietarios.
SGML y XML especifican el contenido y la estructura, permitiendo generar distintas presentaciones según
se requiera.
Objetivos y usos de XML
El XML se creó para que cumpliera varios objetivos:
• Que fuera idéntico a la hora de servir, recibir, y
procesar la información del HTML para aprovechar toda la
tecnología implantada de este.
• Que fuera normal y conciso desde el punto de
vista de los datos y la manera de guardarlos.
• Que fuera extensible, para que lo puedan utilizar
en todos los campos del conocimiento.
• Que fuese fácil de leer y editar.
• Que fuese fácil de implantar, programar y aplicar
Android de la A a la Z
Unidad 5 “XML y Android”
3 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
a los distintos sistemas
Ventajas del XML
Comunicación de datos. Si la información se transfiere en XML cualquier aplicación podría escribir un
documento de texto plano con los datos que estaba manejando en formato XML y otra aplicación recibir
esta información y trabajar con ella.
Migración de datos. Si trabajamos en formato XML sería muy sencillo mover datos de una base de datos a
otra.
Aplicaciones Web. Con XML hay una sola aplicación que maneja los datos y para cada navegador podemos
tener una hoja de estilo o similar para aplicarle el estilo adecuado.
Estructura del lenguaje XML
El metalenguaje XML consta de cuatro especificaciones (el propio XML sienta las bases sintácticas y el
alcance de su implementación):
Android de la A a la Z
Unidad 5 “XML y Android”
4 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
1. DTD (Document Type Definition):. Si queremos tener la seguridad de que un fichero XML pueda
ser perfectamente interpretado por cualquier herramienta, podemos (aunque no es obligatorio)
incluir una definición de su construcción que preceda a los datos propiamente dichos. Este
conjunto de metadatos recibe el nombre de DTD ó Definición de Tipo de Documento. Así una
herramienta es capaz de interpretar XML, eso significa que posee un analizador sintáctico (Parser)
que es capaz de contrastar la definición dada por el autor del documento contra la especificada por
la normativa, indicando si hay errores, y, de no ser así, presentando el documento de la forma
adecuada.
2. XSL (eXtensible Stylesheet Language): Define o implementa el lenguaje de estilo de los
documentos escritos para XML. Desde el verano de 1997 varias empresas informáticas como
Arbortext, Microsoft e Inso vienen trabajando en una propuesta de XSL (antes llamado "xml-style")
que presentaron a W3C. Permite modificar el aspecto de un documento. Se puede lograr múltiple
columnas, texto girado, orden de visualización de los datos de una tabla, múltiples tipos de letra
con amplia variedad en los tamaños. Este estándar está basado en el lenguaje de semántica y
especificación de estilo de documento (DSSSL, Document Style Semantics and Specification
Language, ISO/IEC 10179) y, por otro lado, se considera más potente que las hojas de estilo en
cascada (CSS, Cascading Style Sheets), usado en un principio con el lenguaje DHTML. "Se espera que
el CSS sea usado para visualizar simples estructuras de documentos XML (actualmente se ha
conseguido mayor integración en XML con el protocolo CSS2 (Cascading Style Sheets, level 2)
ofreciendo nuevas formas de composición y una más rápida visualización) y, por otra parte, XSL
pueda ser utilizado donde se requiera más potencia de diseño como documentos XML que
encierran datos estructurados (tablas, organigramas, etc.).
3. XLL (eXtensible Linking Language): Define el modo de enlace entre diferentes enlaces. Se considera
que es un subconjunto de HyTime (Hipermedia/Timed-based structuring Language o Lenguaje de
estructuración hipermedia/basado en el tiempo, ISO 10744) y sigue algunas especificaciones del TEI
(Text Encoding Initiative o Iniciativa de codificación de texto). Desde marzo de 1998 el W3C trabajo
en los enlaces y direccionamientos del XML. Provisionalmente se le renombró como Xlink y a partir
de junio se le denomina XLL. Este lenguaje de enlaces extensible tiene dos importantes
componentes: Xlink y el Xpointer. Va más allá de los enlaces simples que sólo soporta el HTML.
4. XUA (XML User Agent): Estandarización de navegadores XML. Todavía está en proceso de creación
de borradores de trabajo. Se aplicará a los navegadores para que compartan todas las
especificaciones XML.
Estructura de un documento XML
Un documento XML posee los siguientes elementos:
Android de la A a la Z
Unidad 5 “XML y Android”
5 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
1. El prólogo puede contener la siguiente información: declaración XML (opcional en XML 1.0,
obligatoria en XML 1.1), la definición de tipo de documento (DTD), que sólo es necesario para
validar la estructura de documento, las instrucciones de procesamiento y comentarios (opcionales).
2. El contenido o elemento raíz, que también se llama el “elemento de documento".
3. Un epílogo, que contiene las instrucciones de procesamiento y los comentarios.
Las instrucciones de procesamiento permiten dar órdenes o información a una aplicación para que procese
los datos XML. Las instrucciones de procesamiento tiene el formato <? instrucciones objetivo?>, donde el
objetivo es el nombre de la aplicación que se espera que haga el tratamiento, y las instrucciones consisten
en una cadena de caracteres que representa la información o los comandos de la aplicación para procesar.
Declaración XML En general se recomienda que se inicie un documento XML con una declaración XML. Si está presente, debe
ser la primera línea en el documento. A pesar de que la declaración XML se parece a una instrucción de
procesamiento, en realidad es una simple declaración.
La declaración debe estar denotada entre los símbolos (<?) y (>?),
El único atributo que se exige en la declaración es la versión. Los atributos adicionales que se puede añadir
a la declaración XML son:
El atributo de codificación (encoding attribute), que es opcional. De forma predeterminada, los
documentos XML están codificados en UTF-8 formato del juego de caracteres Unicode.
El atributo independiente (standalone attribute) es opcional y se puede establecer con un valor
“yes”, “no” o ningún valor. Si se omite, el valor se supone como un “no”.
Android de la A a la Z
Unidad 5 “XML y Android”
6 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
o El valor “no” se coloca si una aplicación requiere una DTD externo para determinar la
estructura del documento.
o El valor “yes” se coloca cuando el documento no tiene DTD o si el DTD es interno.
Trabajando con XML
Al igual que otros lenguajes de marcas, XML se apoya en tres bloques fundamentales: elementos, atributos
y valores. Un elemento se emplea para describir o contener una pieza de información; un conjunto de
elementos constituye un documento XML. Los elementos consisten de dos etiquetas: una de apertura y
otra de cierre; las de apertura están constituidas por una palabra entre paréntesis angulares (<>), tales
como <resources> e <ítem>, y las de cierre también con paréntesis angulares, pero precedidas por una
barra oblicua hacia delante (/) antes del nombre de la etiqueta, por ejemplo </resources> e </ítem>. Los
elementos siempre aparecen después de una etiqueta de apertura, seguida por una serie opcional de
datos, seguidos por una etiqueta de cierre, por ejemplo:
<resources>
…
…
…
</resources>
Incluso en el mismo renglón:
<ítem>… … …</ítem>
En caso de etiquetas vacías:
<ítem />
Puede existir elementos vacíos, pero con atributos. Estos son pequeñas piezas de información
inmediatamente posteriores a una etiqueta de apertura. Un atributo consiste de un nombre y su valor
correspondiente, separados por un signo de igualdad (=). El valor de un atributo aparece a la derecha del
símbolo de igualdad y entrecomillado. Un ejemplo de un atributo llamado name asociado con un elemento
amigo:
<amigo name=”Juan” />
Cuando un elemento contiene otros elementos, estos se denominan elementos anidados, por ejemplo,
representar una casa en XLM puede ser:
<casa>
<cuarto tipo=”sala” >
<mueble tipo=”sofá” />
</cuarto>
Android de la A a la Z
Unidad 5 “XML y Android”
7 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
<cuarto tipo=”comedor”>
<mueble tipo=”vitrina”>
<contenido tipo=”jarrón” color=”blanco” />
<contenido tipo=”vajilla” marca=”Alfaro” precio=”cara” />
</mueble>
</cuarto>
<cuarto tipo=”recámara”>
<mueble tipo=”cama” />
<mueble tipo=”sillón” />
</cuarto>
</casa>
El código anterior anida elementos diferentes según su ubicación física en la casa, entre ellos algunos son
vacíos, por ejemplo, <mueble tipo=”sofá” />, empleando la etiqueta final vacía, />. Las reglas que rigen XML
son:
1. Los nombres de etiquetas son sensibles a ser mayúsculas o minúsculas.
2. A cada etiqueta de apertura corresponde una de cierre, a menos que sea una etiqueta de cierre
abreviada.
3. Un par de etiquetas anidadas no puede sobreponerse a otra.
4. Los valores de atributos deben estar entrecomillados.
5. Cada documento debe contener un elemento raíz.
Ejemplo que muestra el uso de ELEMENTOS VS ATRIBUTOS
En un documento XLM existen unos pocos símbolos especiales que deben manejarse de forma diferente a
otros caracteres: (<), (>), (“), (‘) y (&), ya que tienen un significado especial en XLM, de ahí que para
emplearlos se requieran símbolos predefinidos, denominados entidades, los cuales son como sigue:
< para <
> para >
" para “
Android de la A a la Z
Unidad 5 “XML y Android”
8 Elaborado por: J. Ulises González Medina android.unam@gmail.com Noviembre 2011 Versión 1.2
' para ‘
& para &
Algunos ejemplos de su utilización son los siguientes:
<película nombre=”All the King's Men” />
<película nombre=”Pride & Prejudice” />
Con todo lo mencionado previamente es fácil ahora diseñar uno de los componentes de una aplicación
Android: el documento “Manifest.xml”, el cual describe cada uno de dichos componentes, así como su
interacción.