Está en la página 1de 12

19/2/2018 Tutorial Básico Del Lenguaje Xml

 Contacto  

Generador de Código PHP:Formularios


Generador Formularios PHP Informes, Graficos, Menus, PDF
Herramienta de Desarrollo Web scriptcase.net

 BLOG   LIBRERÍA ANDROID  COMIENZA AQUÍ

 BLOG   LIBRERÍA ANDROID  COMIENZA AQUÍ

Tutorial Básico Del Lenguaje Xml


 James Revelo  Agosto 22, 2014

Este artículo tiene como n abarcar las características principales sobre el lenguaje XML.

Google AdWords
Llega a Nuevos Clientes con
AdWords. Entra Aquí y Recibe
Soporte de un Especialista.

La idea es  comprender el contenido de  los archivos de recurso de un proyecto de desarrollo en
Android.

Veremos que es el lenguaje XML, por qué surge como herramienta de interoperabilidad, cuáles son
sus usos y cuál es la sintaxis para crear un documento XML.

¿Qué Es XML?
Sus siglas signi can eXtensible Markup Language, que en español es Lenguaje de Marcado
Extendible. Es un lenguaje basado en etiquetas descriptivas, cuyo n es representar información de
texto en forma jerárquica, y a su vez darle formato. XML cobra importancia al surgir la necesidad de
interoperabilidad entre dos sistemas de información, ya que propone un puente de intercambio
entre dos fuentes de datos distintas.
Obtén Contenido
Exclusivo
¿Por Qué Crearon XML? Aprende a programar apps
Android con tips y recursos que
Inicialmente se originó para manejar y estructurar opciones de con guración para sistemas solo comparto con
operativos o aplicaciones. Pero luego se elige para intercambiar información entre distintas los suscriptores de mi boletín
tecnologías, debido a que establece un solo formato para obtener datos. Esto facilita importar y privado
exportar información.

XML propone una sintaxis cómoda para las maquinas y los humanos, siendo un lenguaje afable
para la construcción de estructuras complejas.

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 1/12
19/2/2018 Tutorial Básico Del Lenguaje Xml

¿Qué Ventajas Tiene Usar XML? Correo

Aunque XML al principio no pretendió ser lo que es ahora, podemos encontrar excelentes
cualidades en el uso de esta tecnología, entre ellas tenemos: SUSCRIBIRSE

Independencia de datos y forma: Con XML puedes establecer la estructura de la información y


al mismo tiempo separar la forma en que se interpretará dependiendo el contexto. Signi ca que
si tienes un entorno A y un entorno B que usaran los datos de un archivo XML, solo de nes los ¿Qué buscas?
datos y cambias su forma dependiendo de cada contexto.
Extensibilidad: En cualquier momento puedes agregar nuevos componentes y atributos a un
Buscar
archivo XML.
Representación jerárquica: XML permite expresar anidaciones entre componentes. Lo que
permite establecer un comportamiento de nodos padre e hijo.
Interoperabilidad: Esta característica es mortal en XML. Es lo máximo. Ya que permite
intercambiar información entre aplicaciones, módulos o sistemas sin importar la arquitectura o Lo Más Popular
tecnología usada.
Web Crear Un Web Service Para
Service Android Con Mysql, Php y
Con Php, Json
Mysql y
¿Los Documentos XML Se Compilan O Algo? Json
Para
Estos archivos se analizan e interpretan por una herramienta llamada Parser(Analizador de Android
sintaxis). Su objetivo es leer los elementos en el documento. Para ello interpreta su jerarquía y
aplica el formato establecido para cada dato. Los parsers nos ayudan a obtener la información de tutorial ¿Cómo Sincronizar Sqlite Con
un documento XML de forma automatizada en un contexto. Mysql En Android?
sincronizacion
sqlite
mysql en
Puedes encontrar Parsers en las librería System.Xml.XmlDocument de .NET C#. Java también
android
posee su propia librería estándar para parsear llamada Java built-in parser. También existen otros
como Saxon, Xerces, y muchos más.
Aplicación Android Con
Aplicación Navigation Drawer Y Tabs
En los navegadores como Google Chrome también implementan Parsers para convertir el Android
contenido de un archivo XML a texto con formato HTML. Con
Navigation
Drawer y
Tabs
Estructura De Un Documento XML
NavigationView: Navigation
OK, comencemos a estudiar las partes que conforman un documento XML y que sintaxis debemos NavigationDrawer
Drawer Con Material Design
usar. En
Android:
Navigation

Prólogo Drawer
En
El prólogo es una declaración XML  no obligatoria que especi ca algunas características del
Material
documento, como por ejemplo la versión de XML que se usa o el tipo de  encriptado. El estilo de
Design
declaración sería como la siguiente línea:

Tutorial TabLayout: ¿Cómo Añadir


TabLayout: Pestañas En Android?

<?xml version="1.0" encoding="utf-8"?> Pestañas
En
Android

Esta expresión usa como inicio la palabra reservada “xml” y un signo de interrogación de apertura
Realizar Peticiones Http Con
‘?’. El atributo version hace referencia al estándar XML usado y enconding indica el estándar de
La Librería Volley En Android
encriptado. Recuerda que el encriptado es la forma de traducir los caracteres que hay en el
documento en forma binaria.

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 2/12
19/2/2018 Tutorial Básico Del Lenguaje Xml
Existen varias formas de encriptado, pero normalmente el estándar usado es UNICODE. Los SQLite Tutorial De Bases De Datos
formatos más populares son el UTF-8 y UTF-16. El primer formato representa cada carácter con 8 Android SQLite En Aplicaciones
bytes y el segundo con 16 bytes. Tutorial Android

Crear Servicio Web RESTful Para


Comentarios Servicio Android Con Php, Mysql y
Para usar comentarios abrimos con la expresión “<!–” y cerramos con los caracteres “–>” . Todo el Web Json
texto que este comprendido entre estos símbolos será ignorado por el Parser. Veamos un ejemplo: REST
Para
Android
 Con Php,
<!-- Este es un comentario en un documento XML por hermosaprogramacion -->
Mysql,
Json|XML

Los comentarios son mensajes destinados al entendimiento del código por parte del programador. Tutorial De Listas Y
Solo tiene n informativo, así que serán pasados por alto a la hora del análisis XML. ListView Adaptadores En Android
en
Android

Elementos
Toolbar En Android: Creación
También llamados Building Blocks. Son la base de un documento XML, ya que al n y al cabo ellos
Material De Action Bar En Material
representan nuestra información. Al igual que en HTML, un elemento será descrito por una etiqueta
Design: Design
inicial envuelta en paréntesis angulares <elemento> y una etiqueta de cierre con una barra inclinada
Ejemplo
antecedida al nombre del elemento </elemento>.
De
Toolbar
Y al texto que se encuentra en el interior del elemento se le llama contenido. En
Por ejemplo, declaremos un elemento llamado tabla: Android


<tabla>[contenido]</tabla>

En casos donde el elemento no describe algún contenido podemos abreviar la etiqueta de la


siguiente forma:


<tabla/>

Con esta disposición reducimos a una sola expresión la apertura y cierre de un bloque de
construcción XML.

¿Qué debo tener en cuenta para nombrar un elemento


XML?
Como en todas las gramáticas de los lenguajes computacionales hay restricciones para declarar
etiquetas de elementos, en XML no es la excepción. Estas son las reglas que debes tener en cuenta
cuando vayas a declarar el nombre de un elemento:

Puede comenzar con un guión bajo “_”, una letra mayúscula o una letra minúscula del código.
Puedes usar guiones ‘-‘ dentro del nombre de un elemento. Además puedes incluir dígitos
dentro de tu nombre.
Las etiquetas son sensibles a mayúsculas y minúsculas. Procura abrir y cerrar un elemento con
el mismo nombre.
Nunca, por lo que más quieras uses espacios los nombres, esto producirá un error de Parsing.

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 3/12
19/2/2018 Tutorial Básico Del Lenguaje Xml
La palabra xml no puede ser usada en el inicio del nombre del elemento, ya que está reservada.

Algunos ejemplos de buenos nombres serian:


<AutoDeCarrera>, <_cliente>, <estados-de-resultados>, <archivos1001>

El elemento Raíz
Luego de haber declarado el prologo sigue el elemento raíz (root element). Este componente
representa la cabeza de la jerarquía estructural del archivo XML. Solo debe existir únicamente un
elemento raíz que describa el contexto.

Veamos un ejemplo de un documento XML que guarda la información sobre facturas de un


establecimiento comercial:


<fila id_factura="1001" fecha="20/12/2014 12:01:23 "/>
<fila id_factura="1002" fecha="21/12/2014 07:23:29 "/>
<fila id_factura="1003" fecha="22/12/2014 14:34:10 "/>

En este caso el Parser no procesará correctamente la información debido a que cada nodo < la>
esta al mismo nivel, por lo tanto no hay jerarquía. Es por eso que decides añadir un elemento raíz
que encierre el contenido llamado <factura>:


<factura>
<fila id_factura="1001" fecha="20/12/2014 12:01:23 "/>
<fila id_factura="1002" fecha="21/12/2014 07:23:29 "/>
<fila id_factura="1003" fecha="22/12/2014 14:34:10 "/>
</factura>

Con este detalle el parser ya puede comprender que está sucediendo en el modelo del documento.

Elementos hijos
Luego de declarar tu raíz siguen los elementos que están por debajo. En el caso anterior, < la> era
un elemento hijo de <factura>. Y los tres elemento la estaban al mismo nivel, por lo tanto eran
hermanos. Es posible anidar un elemento dentro de otro, recuerda que estamos siguiendo una
jerarquía, así que cada elemento interior estará bajo la dependencia de su padre.

Atributos de un elemento en XML


Son propiedades que caracterizan a los elementos. En el caso anterior < la> tenía como atributos a
id_factura y fecha. Ambos representan datos relacionados a un elemento la, que describen sus
funciones informativas.
Al igual que los elementos, los atributos tienen reglas para ser de nidos:

Los atributos deben contener un nombre y un valor de texto expresado a través del signo de
igualdad ‘=’.
El valor debe estar contenido entre comillas simples o dobles. Ambas cumplen la misma
función, pero la elección depende de cada quien.

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 4/12
19/2/2018 Tutorial Básico Del Lenguaje Xml
Los nombres de los atributos cumplen exactamente las mismas reglas de la construcción de
nombres para elementos.
Si un atributo no tiene valor establecido debes poner un vació entre comillas (” ” ó ‘ ‘).
No deben haber nombres de atributos repetidos dentro de un elemento. Cada nombre ha de ser
único.
Si deseas que el valor del atributo tenga comillas simples o dobles, establece como limitador a
par de comillas que no serán usadas. Es decir,  si deseas que tu atributo tenga el valor “1234”,
entonces debes delimitarlo con las comillas simples: ‘ “1234” ‘.

Contenido de elementos
El contenido de los elementos permite describir el texto al cual se le dará formato. El contenido lo
expresas entre las etiquetas de apertura y cierra como vemos a continuación:


<frase>Ejemplo de contenido de un elemento</frase>

A la hora de establecer el texto en el contenido de un atributo o un elemento no podemos usar


algunos caracteres que están restringidos. Esto se debe a que son usados por la sintaxis XML y si
el Parser llega a encontrar uno de estos elementos, tenderá a confundirse y a generar errores de
análisis.

Para solucionar este problema existen comodines dentro del estándar XML que representan estos
caracteres. Veamos una tabla ilustrativa:

Carácter Representación

& &amp;

< &lt;

> &gt;

“ &quot;

‘ &apos;

De modo que si deseas emplear alguno de estos símbolos, debes reemplazarlo por la expresión
que lo representa.

¿Cuándo uso atributos o elementos?


Esta es una gran pregunta, ya que parece ser confusa la manera en ubicar la información dentro de
un archivo XML.
Usaremos atributos cuando la información no se repita y además no requiere orden lógico.
Veamos el siguiente ejemplo sobre los datos de un estudiante:


<estudiante nombre="Carlos" apellido="Clavijo" teléfono="2230012"/>

En este caso la información es básica y atómica, no es necesario que extendamos a nuevos


elementos. Si añadimos nuevos elementos disminuiría la velocidad de parsing . Usa elementos
nuevos solo cuando sea estrictamente necesario.

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 5/12
19/2/2018 Tutorial Básico Del Lenguaje Xml
Supongamos que deseamos representar las materias que está viendo el estudiante. Por ello
incluimos un nuevo atributo llamado materias:


<estudiante nombre="Carlos" apellido="Clavijo" teléfono="2230012"
materias="calculo, física mecánica, algoritmia, estadística"/>

Si se necesitara procesar cada materia individualmente, ¿crees que sería útil la estructura actual
del formato XML?

¡Claro que no!…ya que el valor de materias es solo una cadena, lo que implicaría un proceso
adicional de procesamiento de cadenas en nuestro contexto. Pero si usáramos elementos en vez
de ese atributo tendríamos lo siguiente:


<estudiante nombre="Carlos" apellido="Clavijo" teléfono="2230012">
<materia nombre="calculo" />
<materia nombre="física"/>
<materia nombre="mecánica"/>
<materia nombre="algoritmia"/>
<materia nombre="estadística"/>
</estudiante>

Con esta jerarquía podemos identi car de manera secuencial cada elemento materia para
conseguir procesar la información en orden.

Uso De CDATA En XML


CDATA (character data) es una sección especial en un archivo XML, que le indica al Parser que no
interprete como lenguaje marcado todo lo que se encuentre adentro. Para los que han usado
Blogger de Google, sabrán que la plantilla XML de la cual se crea el documento HTML del blog usa
esta sección.

Es común usar esta sección para incluir código CSS o Javascript, para que el Parser no lo
interprete como marcado, debido a que usan frecuentemente los caracteres de escape restrigindos
(‘&’, ‘<‘, ‘>’,… ).
La sección CDATA se inicia y termina de la siguiente forma:


<![CDATA[
[Contenido no interpretable como marcado]
]]>

Después de que el Parser haya analizado el documento XML, todo el texto en las secciones CDATA
habrá quedado intacto.

¿Qué Son Namespaces En XML?


Son una forma de agrupar atributos o elementos bajo un mismo encabezado para diferenciarlos de
otros. Esto permite contextualizar los bloques de tal forma que sean distinguidos en situaciones

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 6/12
19/2/2018 Tutorial Básico Del Lenguaje Xml
diferentes.

Puedes asemejarlo con los namespaces de C++ o los paquetes de Java. Dentro de estos espacios
son referenciados objetos de información que solo conciernen a este nombre de espacio. Lo cual
permite diferenciar el uso de la información.

Veamos el siguiente ejemplo:


<biblioteca>
<libro >
<titulo>Fundamentos de programación</titulo>
<paginas>213</paginas>
<capitulo>
<titulo>Introducción</titulo>
</capitulo>
</libro>
</biblioteca>

Este documento describe los libros que se encuentran en una biblioteca. Como ves, la etiqueta
<biblioteca> es el nodo principal, en su interior está la etiqueta <libro> y dentro de él empezamos a
de nir componentes que hacen parte de la estructura de un libro como el titulo, las páginas y los
capítulos.

¿Qué notas?… ¡exacto!, el libro tiene una etiqueta <titulo> para referirse al nombre del libro, y a su vez
cada capítulo tiene una etiqueta <titulo> para referirse al nombre del capítulo. Cualquier persona
puede entender esta ambigüedad debido a que es una representación visual y estructural, pero….
¿podemos decir lo mismo de Parser?

Esta situación haría que el parser se confundiera y provocará malos resultados cuando busquemos
información. El parser se preguntaría:

 El elemento <libro> es padre de <capitulo>, pero ambos tienen como hijo a <titulo>, ¿qué
sucede?

Justamente en este tipo de situaciones contextuales es donde intervienen los namespaces.

¿Cómo De no Un Namespace?
Bueno, antes de de nirlos debemos conocer primero que son URLs, URIs y URNs.
Uniform Resource Locator (URL): Es un formato que permite obtener recursos de alguna
ubicación.

Popularmente conocemos este concepto debido a que frecuentemente buscamos páginas web en
internet con ellas. A continuación vemos su estructura:


[Esquema]://[Dominio]:[Puerto]/[Ruta]?[Query]#[Id]

Podemos tomar el ejemplo de URL de este sitio:

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 7/12
19/2/2018 Tutorial Básico Del Lenguaje Xml


http://www.hermosaprogramacion.com

Aunque no usa todo el formato, podemos identi car que el esquema usado es HTTP y el dominio
seria “hermosaprogramacion”.

Uniform Resource Identi er(URI): Es solo una cadena única que representa algo y puede tener
el formato de las URLs y URNs.
Uniform Resource Name(URN): Es un nombre que identi ca algún objeto para diferenciarlo de
los demás. Normalmente tienen el siguiente formato:


urn:[identificador del namespace]:[cadena especifica del namespace]

El ISBN de un libro puede representarse a través de un esquema URN. Por ejemplo:


Urn:ISBN:9098231847381

Las URLs y URNs pueden ser URIs. Una URL muestra la ruta única de un recurso y una URN un
nombre único. Ambas pueden representar una URI que posibilite la creación de namespaces en
nuestros archivos XML.

¿Cómo Crear Un Namespace?


Para crear un namespace primero debemos elegir una URI que nos permite diferenciar su contexto.
Por lo general se usa un formato URL ya que el dominio de cada compañía es único, lo que asegura
una identi cación que no se repetirá. Cabe destacar que aunque la URI tenga un formato URL no
signi ca que la URI sea una URL.

Para mi caso en particular usaré la siguiente URI:


"http://www.hermosaprogramacion.com/namespaces/ejemplos/noEjemplo"

Hay dos formas de relacionar un elemento a un namespace. En la primera  simplemente debemos


asignar a los elementos que deseemos dentro del documento la URI para que se incorpore al
namespace. La forma de establecerla es a través de la palabra reservada “xmlns” y luego asignarle
el valor de la URI. Es muy similar a la declaración de un atributo dentro de un componente.


xmlns="URI"

Ejemplo De Un Namespace En XML


http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 8/12
19/2/2018 Tutorial Básico Del Lenguaje Xml
Veamos un caso hipotético donde supondremos que necesitamos dar formato a los valores
actuales de pares de divisas más populares del Foreign Exchange.


<forex fecha-actual="19/08/2014"
xmlns=" http://www.hermosaprogramacion.com/namespaces/ejemplos/no1">
<par nombre="EURUSD" current="1.323"/>
<par nombre="EURGPB" current="1.845"/>
<par nombre="AUDUSD" current="0.8976"/>
</forex>

Como ves, hemos declarado la URI en el nodo raíz. Esto signi ca que todos los componentes
dentro del elemento también harán parte del namespace identi cado con la URI establecida. Este
estilo de declaración se le llama namespace implícito o por defecto.

La otra forma se le llama declaración explícita. Haremos exactamente lo mismo que en la forma
implícita solo que esta vez seleccionamos que elementos especí cos queremos que hagan parte
del namespace, a través un sistema de etiquetado:


<FX:forex fecha-actual="19/08/2014"
xmlns:FX=" http://www.hermosaprogramacion.com/namespaces/ejemplos/no1">
<par nombre="EURUSD" current="1.323"/>
<par nombre="EURGPB" current="1.845"/>
<par nombre="AUDUSD" current="0.8976"/>
</FX:forex>

Si prestas atención, hemos usado la etiqueta “FX” en la declaración de la URI del namespace.
Puedes poner el nombre que deseas y anteponer dos puntos ‘:’ para hacer efectiva su declaración.
Al usarse se usan los dos puntos delante de ella como vemos en el inicio de las etiquetas de
apertura y cierra de la etiqueta <forex>.

Este nombre permite personalizar la declaración de los elementos que pertenecerán al namespace
además del acceso hacia ellos.

Apliquemos este concepto de namespaces al ejemplo de la biblioteca que puede llegar a tener
problemas.


<b:biblioteca
xmlns:b="http://www.hermosaprogramacion.com/namespaces/ejemplos/no2">
<b:libro >
<b:titulo>Fundamentos de programación</b:titulo>
<b:paginas>213</b:paginas>
<capitulo xmls="http://www.hermosaprogramacion.com/namespaces/ejemplos/no2-
<titulo>Introducción</titulo>
</capitulo>
</b:libro>
</b:biblioteca>

Ahora ya podemos diferenciar ambas etiquetas <titulo>, ya que ambas pertenecen a namespaces
diferentes. El primero lo declaramos explicito para de nir todos los elementos que obedecerán a la
etiqueta <b> y el segundo fue implícito en el elemento interior capitulo.

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 9/12
19/2/2018 Tutorial Básico Del Lenguaje Xml
Así cuando el parser analice este documento entenderá que:


{http://www.hermosaprogramacion.com/namespaces/ejemplos/no2}titulo


{http://www.hermosaprogramacion.com/namespaces/ejemplos/no2-capitulo}titulo

son dos elementos totalmente distintos.

Usando XPath Para Extraer Datos De Un


Documento XML
Por supuesto!, para extraer información de un archivo XML debemos usar el lenguaje XPath. Este
lenguaje permite navegar a través de la estructura jerárquica de documentos que implementen el
Document Object Model(DOM). Pero en esta ocasión no entraremos en detalle sobre este tema,
queda en tus manos comprender el acceso a documentos con jerarquías.

Si has visto en los archivos layout XML de Android Studio, es muy frecuente que se pida el valor de
los nodos <string> de esta forma:


"android:text="@string/name""

Esa sentencia nos indica que el atributo texto de las vistas se encontrará almacenado en el archivo
strings.xml que tenga el nombre name.

Como notas, XPath funciona con un estilo de navegación a través de barras laterales y expresiones
regulares para encontrar el elemento que necesitamos.

Conclusión
Xml es un formato estructurado para representar jerarquías de datos. Esta característica que lo
hace muy útil para la gestión de recursos de un proyecto en Android Studio.

Una vez que interiorices estos conceptos, la creación de layouts con jerarquías de views te será
fácil.

Te sentirás más cómodo ante el Desarrollo Android y aumentarás tu curva de aprendizaje.

No digo que tengas que ser un experto en Xml, simplemente debes conocer las herramientas y
tecnologías que usas. Incluso este tema puede servirte para aprender a crear un lector rss en
android.

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 10/12
19/2/2018 Tutorial Básico Del Lenguaje Xml
Ahora el siguiente tema que debes tener claro es que componentes contiene una aplicación
Android.

Empieza a hablar Diseñar Temas y Uso De Recursos En ¿Como Crear Diálogos


idiomas Estilos para tus... Android - Hermosa... En Android?

Anuncio ALMG News Edu hermosaprogramacion.com hermosaprogramacion.com hermosaprogramacion.com

Utilizar Fragmentos En Tutorial De Listas Y Tutorial Para Crear Un Tutorial Para Crear Un
Una Aplicación... Adaptadores En... GridView En Android Lector Rss En Android
hermosaprogramacion.com hermosaprogramacion.com hermosaprogramacion.com hermosaprogramacion.com

Hombres: No Necesitan La Píldora Azul Si Hacen


Esto Una Vez Al Día
Hombres: No Necesitan La Píldora Azul Si Hacen Esto Una Vez
Al Día

Learn More

Sponsored by TestoUltra

Report ad

0 Comentarios Hermosa Programación 


1 Login

ordenar por el mejor


 Recomendar 6 ⤤ Compartir

Comienza la discusión...

INICIAR SESIÓN CON


O REGISTRARSE CON DISQUS ?

Nombre

Sé el primero en comentar.

✉ Suscribirse d Agrega Disqus a tu sitioAdd DisqusAdd 🔒 Privacidad

Hombres: No Necesitan La Píldora Azul Si Hacen


Esto Una Vez Al Día
Hombres: No Necesitan La Píldora Azul Si Hacen Esto Una Vez
Al Día

Learn More

Sponsored by TestoUltra

Report ad

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 11/12
19/2/2018 Tutorial Básico Del Lenguaje Xml

Premio Top 80 Mobile App Blogs de Feedspot

Hermosa Programación: +50 Tutoriales Desarrollo Android Copyright © 2018.

http://www.hermosaprogramacion.com/2014/08/xml-lenguaje/ 12/12

También podría gustarte