Está en la página 1de 7

Extensible Markup Language

XML, siglas en ingls de eXtensible Markup Language


('lenguaje de marcas extensible'), es un lenguaje de marcas desarrollado por el World Wide Web Consortium
(W3C) utilizado para almacenar datos en forma legible.
Deriva del lenguaje SGML y permite denir la gramtica de lenguajes especcos (de la misma manera que
HTML es a su vez un lenguaje denido por SGML) para estructurar documentos grandes. A diferencia de otros
lenguajes, XML da soporte a bases de datos, siendo til
cuando varias aplicaciones deben comunicarse entre s o
integrar informacin. [1]

pueden combinar elementos de diferentes vocabularios.


Asimismo es imposible para un intrprete (por ejemplo
un navegador) analizar el documento sin tener conocimiento de su gramtica (del DTD). Por ejemplo, el navegador sabe que antes de una etiqueta <div> debe haberse
cerrado cualquier <p> previamente abierto. Los navegadores resolvieron esto incluyendo lgica ad hoc para el
HTML, en vez de incluir un analizador genrico. Ambas
opciones, de todos modos, son muy complejas para los
navegadores.

Se busc entonces denir un subconjunto del SGML que


XML no ha nacido slo para su aplicacin para Internet, permita:
sino que se propone como un estndar para el intercambio
de informacin estructurada entre diferentes plataformas.
Mezclar elementos de diferentes lenguajes. Es decir
Se puede usar en bases de datos, editores de texto, hojas
que los lenguajes sean extensibles.
de clculo y casi cualquier cosa imaginable.
La creacin de analizadores simples, sin ninguna lXML es una tecnologa sencilla que tiene a su alrededor
gica especial para cada lenguaje.
otras que la complementan y la hacen mucho ms grande
Empezar de cero y hacer hincapi en que no se acepy con unas posibilidades mucho mayores. Tiene un papel
te nunca un documento con errores de sintaxis.
muy importante en la actualidad ya que permite la compatibilidad entre sistemas para compartir la informacin
Para hacer esto XML deja de lado muchas caractersticas
de una manera segura, able y fcil.
de SGML que estaban pensadas para facilitar la escritura
manual de documentos. XML en cambio est orientado
a hacer las cosas ms sencillas para los programas auto1 Historia
mticos que necesiten interpretar el documento.

XML proviene de un lenguaje inventado por IBM en los


aos setenta, llamado GML (Generalized Markup Language), que surgi por la necesidad que tena la empresa
de almacenar grandes cantidades de informacin y compartirla en otros SO y plataformas. Este lenguaje gust a
la ISO, por lo que en 1986 trabajaron para normalizarlo,
creando SGML (Standard Generalized Markup Language), capaz de adaptarse a un gran abanico de problemas.
A partir de l se han creado otros sistemas para almacenar
informacin.[2]

2 Crticas
XML y sus extensiones han sido regularmente criticadas
por su nivel de detalle y complejidad.[3] El mapeo del
modelo de rbol bsico de XML hacia los sistema de tipos de lenguajes de programacin o bases de datos puede
ser difcil, especialmente cuando se utiliza XML para el
intercambio de datos altamente estructurados entre aplicaciones, lo que no era su objetivo primario de diseo.
Otras crticas intentan refutar la armacin de que XML
es un lenguaje autodescriptivo[4] (aunque la especicacin XML no hace ninguna armacin de este tipo). Se
propone a JSON y YAML frecuentemente como alternativas, centrndose ambas en la representacin de datos
estructurados, en lugar de documentos narrativos.

En el ao 1989 Tim Berners Lee cre la web, y junto con ella el lenguaje HTML. Este lenguaje se deni en el marco de SGML y fue de lejos la aplicacin
ms conocida de este estndar. Los navegadores web sin
embargo siempre han puesto pocas exigencias al cdigo
HTML que interpretan y as las pginas web son caticas
y no cumplen con la sintaxis. Estas pginas web dependen fuertemente de una forma especca de lidiar con los
errores y las ambigedades, lo que hace a las pginas ms
frgiles y a los navegadores ms complejos.

3 Ventajas del XML


Es extensible: Despus de diseado y puesto en produccin, es posible extender XML con la adicin de

Otra limitacin del HTML es que cada documento pertenece a un vocabulario jo, establecido por el DTD. No se
1

4 ESTRUCTURA DE UN DOCUMENTO XML


nuevas etiquetas, de modo que se pueda continuar </Parrafo> </Texto> </Mensaje> </Edit_Mensaje>
utilizando sin complicacin alguna.
El analizador es un componente estndar, no es necesario crear un analizador especco para cada versin de lenguaje XML. Esto posibilita el empleo de
cualquiera de los analizadores disponibles. De esta
manera se evitan bugs y se acelera el desarrollo de
aplicaciones.

Aqu est el ejemplo de cdigo del DTD del documento


Edit_Mensaje.dtd:
<?xml version="1.0 encoding="ISO-8859-1 ?> <!-Este es el DTD de Edit_Mensaje --> <!ELEMENT Mensaje (Remitente, Destinatario, Texto)*> <!ELEMENT
Remitente (Nombre, Mail)> <!ELEMENT Nombre
(#PCDATA)> <!ELEMENT Mail (#PCDATA)>
<!ELEMENT Destinatario (Nombre, Mail)> <!ELEMENT Nombre (#PCDATA)> <!ELEMENT Mail
(#PCDATA)> <!ELEMENT Texto (Asunto, Parrafo)>
<!ELEMENT Asunto (#PCDATA)> <!ELEMENT
Parrafo (#PCDATA)>

Si un tercero decide usar un documento creado en


XML, es sencillo entender su estructura y procesarla. Mejora la compatibilidad entre aplicaciones. Podemos comunicar aplicaciones de distintas plataformas, sin que importe el origen de los datos, es decir,
podramos tener una aplicacin en Linux con una
base de datos Postgres y comunicarla con otra aplicacin en Windows y Base de Datos MS-SQL Server.
4.1

Documentos XML bien formados y


control de errores

Transformamos datos en informacin, pues se le


aade un signicado concreto y los asociamos a un
contexto, con lo cual tenemos exibilidad para es- Los documentos denominados como bien formados
(del ingls well formed) son aquellos que cumplen con totructurar documentos.
das las deniciones bsicas de formato y pueden, por lo
tanto, analizarse correctamente por cualquier analizador
(parser) que cumpla con la norma. Se separa
4 Estructura de un documento sintctico
esto del concepto de validez que se explica ms adelante.

XML

La tecnologa XML busca dar solucin al problema de


expresar informacin estructurada de la manera ms abstracta y reutilizable posible. Que la informacin sea estructurada quiere decir que se compone de partes bien
denidas, y que esas partes se componen a su vez de otras
partes. Entonces se tiene un rbol de trozos de informacin. Ejemplos son un tema musical, que se compone de
compases, que estn formados a su vez por notas. Estas partes se llaman elementos, y se las seala mediante
etiquetas.
Una etiqueta consiste en una marca hecha en el documento, que seala una porcin de ste como un elemento. Un
pedazo de informacin con un sentido claro y denido.
Las etiquetas tienen la forma <nombre>, donde nombre
es el nombre del elemento que se est sealando.
A continuacin se muestra un ejemplo para entender la
estructura de un documento XML:
<?xml version="1.0 encoding="UTF-8 ?> <!DOCTYPE Edit_Mensaje SYSTEM Edit_Mensaje.dtd">
<Edit_Mensaje> <Mensaje> <Remitente> <Nombre>Nombre del remitente</Nombre> <Mail> Correo
del remitente </Mail> </Remitente> <Destinatario> <Nombre>Nombre del destinatario</Nombre>
<Mail>Correo del destinatario</Mail> </Destinatario>
<Texto> <Asunto> Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades...
</Asunto> <Parrafo> Este es mi documento con una estructura muy sencilla no contiene atributos ni entidades...

Los documentos han de seguir una estructura estrictamente jerrquica con lo que respecta a las etiquetas que delimitan sus elementos. Una etiqueta debe estar correctamente incluida en otra, es decir, las
etiquetas deben estar correctamente anidadas. Los
elementos con contenido deben estar correctamente
cerrados.
Los documentos XML slo permiten un elemento
raz del que todos los dems sean parte, es decir,
solo pueden tener un elemento inicial.
Los valores atributos en XML siempre deben estar
encerrados entre comillas simples o dobles.
El XML es sensible a maysculas y minsculas.
Existe un conjunto de caracteres llamados espacios
en blanco (espacios, tabuladores, retornos de carro,
saltos de lnea) que los procesadores XML tratan de
forma diferente en el marcado XML.
Es necesario asignar nombres a las estructuras, tipos
de elementos, entidades, elementos particulares, etc.
En XML los nombres tienen alguna caracterstica en
comn.
Las construcciones como etiquetas, referencias de
entidad y declaraciones se denominan marcas; son
partes del documento que el procesador XML espera entender. El resto del documento entre marcas
son los datos entendibles por las personas.

4.5

4.2

Entidades predenidas

Partes de un documento XML

<Estudiante
Mario="come
croquetas
tipo="taleno">Esto es un da que Mario va paseanUn documento XML est formado por el prlogo y por do</Estudiante>
el cuerpo del documento as como texto de etiquetas que
contiene una gran variedad de efectos positivos o negativos en la referencia opcional a la que se reere el docu- 4.5 Entidades predenidas
mento, hay que tener mucho cuidado de esa parte de la
gramtica lxica para que se componga de manera uni- Entidades para representar caracteres especiales para que,
forme.
de esta forma, no sean interpretados como marcado en el
procesador XML.
4.2.1

Prlogo

Ejemplo: entidad predenida: & carcter: &.

Aunque no es obligatorio, los documentos XML pueden


empezar con unas lneas que describen la versin XML, 4.6 Secciones CDATA
el tipo de documento y otras cosas.
Es una construccin en XML para especicar datos utiliEl prlogo de un documento XML contiene:
zando cualquier carcter sin que se interprete como marcado XML. No confundir con 2(#PCDATA) que es para
Una declaracin XML. Es la sentencia que declara los elementos. Permite que caracteres especiales no rompan la estructura. Ejemplo:
al documento como un documento XML.
Una declaracin de tipo de documento. Enlaza el documento con su DTD (denicin de tipo de documento), o el DTD puede estar incluido en la propia
declaracin o ambas cosas al mismo tiempo.

<![CDATA[contenido especial: \n &]]>

4.7 Comentarios

Uno o ms comentarios e instrucciones de procesaComentarios a modo informativo para el programador


miento.
que han de ser ignorados por el procesador. Los comentarios en XML tienen el siguiente formato:
EJEMPLO: <?xml version="1.0 encoding="UTF-8"?>
<!--- Esto es un comentario ---> <!-- Otro comentario -->
4.2.2

Cuerpo

A diferencia del prlogo, el cuerpo no es opcional en un


5 Validez
documento XML, el cuerpo debe contener solo un elemento raz, caracterstica indispensable tambin para que
el documento est bien formado. Sin embargo es necesa- Que un documento est bien formado solamente se reria la adquisicin de datos para su buen funcionamiento. ere a su estructura sintctica bsica, es decir, que se
componga de elementos, atributos y comentarios como
EJEMPLO:
XML especica que se escriban. Ahora bien, cada aplicacin de XML, es decir, cada lenguaje denido con esta
<Edit_Mensaje> (...) </Edit_Mensaje>
tecnologa, necesitar especicar cul es exactamente la
relacin que debe vericarse entre los distintos elementos
presentes en el documento.
4.3 Elementos
Esta relacin entre elementos se especica en un doLos elementos XML pueden tener contenido (ms ele- cumento externo o denicin (expresada como DTD
mentos, caracteres o ambos), o bien ser elementos vacos. Document Type Denition, 'Denicin de Tipo de
Documento' o como XSchema). Crear una denicin
equivale a crear un nuevo lenguaje de marcado, para una
4.4 Atributos
aplicacin especca.
Los elementos pueden tener atributos, que son una manera de incorporar caractersticas o propiedades a los ele- 5.1
mentos de un documento. Deben ir entre comillas.

Document Type Denition

Por ejemplo, un elemento estudiante puede tener un La Document Type Denition o DTD (en espaol deatributo Mario y un atributo tipo, con valores come nicin de tipo de documento) dene los tipos de elementos, atributos y entidades permitidas, y puede expresar
croquetas y taleno respectivamente.

LENGUAJES CREADOS USANDO XML

algunas limitaciones para combinarlos. Los documentos 5.2.1 Ventajas de los Schemas frente a los DTD
XML que se ajustan a su DTD son denominados vlidos.
Usan sintaxis de XML, al contrario que los DTD.
5.1.1

Declaraciones tipo elemento

Los elementos deben ajustarse a un tipo de documento


declarado en una DTD para que el documento sea considerado como vlido.

5.1.2

Permiten especicar los tipos de datos.


Son extensibles.

6 Herramientas para trabajar con


documentos XML

Modelos de contenido

Puede ser cualquier procesador de texto, que sea capaz


Un modelo de contenido es un patrn que establece los de producir archivos .txt es capaz de generar XML, aunsubelementos aceptados, y el orden en que se aceptan.
que en los entornos de desarrollo como Eclipse o Visual
Studio, se facilita, ya que reconoce los formatos y ayuda a
generar un XML bien formado. Aunque se puede dividir
5.1.3 Declaraciones de lista de atributos
en dos grupos:
Herramientas de creacin.
Los atributos se usan para aadir informacin adicional a
Herramientas de administracin de contenido.
los elementos de un documento.

5.1.4

Tipos de atributos

7 Lenguajes creados usando XML

Atributos CDATA y NMTOKEN

7.1 Extensible Stylesheet Language (XSL)

Atributos enumerados y notaciones

El Lenguaje de Hoja de Estilo Extensible (eXtensible


Stylesheet Language, XSL) es una familia de lenguajes
que permiten describir como los archivos codicados en
XML sern formateados (para mostrarlos) o transformados. Hay tres lenguajes en esta familia: XSL Transformations (XSLT), XSL Formatting Objects (XSL-FO) y
XML Path Language.

Atributos ID e IDREF
5.1.5

Declaracin de entidades

XML hace referencia a objetos que no deben ser analizados sintcticamente segn las reglas XML, mediante el
7.2
uso de entidades. Las entidades pueden ser:
Internas o externas
Analizadas o no analizadas
Generales o parametrizadas

Lenguaje de enlace XML (XLINK)

XLink es una aplicacin XML que intenta superar las


limitaciones que tienen los enlaces de hipertexto en
HTML. XLink 1.1 es ya una recomendacin W3C.

7.3 Otras tecnologas


Hojas de estilo

5.1.6

Espacios de nombres

Los espacios de nombres XML permiten separar semnticamente los elementos que forman un documento XML.

XSL-FO
XSLT
XLink
XPointer

5.2

XML Schemas (XSD)

XSL
hojas de estilo en cascada (CSS)

Un Schema es algo similar a un DTD. Dene qu elementos puede contener un documento XML, cmo estn
organizados y qu atributos y de qu tipo pueden tener
sus elementos.

XLT (XML representation of Lexicons and


Terminologies)
Programacin

5
JDOM

Schematron

SAX

Simple API for XML

StAX
VTD-XML
Consulta de datos
XQuery
Xpath
Seguridad
Xades (XML Advanced Electronic Signatures)

Document Object Model

9 Referencias
[1] Silberschatz, Abraham. McGRAW-HILL, ed. Fundamentos de bases de datos.
[2] Qu es XML y para qu sirve. RI5. Consultado el 2 de
noviembre de 2012.
[3] Je Atwood (2009): XML: The Angle Bracket Tax

Hay quien opina que XML es demasiado pesado para algunas aplicaciones y difcil de editar con un editor de texto simple. Por ello merece la pena mencionar algunas alternativas ms ligeras y simples. Los lenguajes de marcas
ligeros:
Simple Outline XML: es un XML simplicado que
se puede convertir sin problemas en XML completo.
YAML y OGDL. Estos dos son cheros de solo texto
que no estn emparentados con XML como el SOX,
antes comentado.
BBCode. ste tiene un uso muy restringido para dar
formato nada ms.
Tambin hay por lo menos un lenguaje basado en XML
en formato binario, llamado EBML.

[4] Eric Brown (2003): Eric Brown (2003): The Myth of SelfDescribing XM The Myth of Self-Describing XML

10 Enlaces externos
Conjunto de informacin XML (segunda edicin).
Traduccin de la recomendacin del W3C sobre
conjunto de informacin XML (segunda edicin).
Espacios de nombres en XML 1.1. Traduccin de la
recomendacin del W3C sobre los espacios de nombres en XML 1.1.
Enlaces de la Especicacin de Gestin de Claves
XML (XKMS 2.0). Traduccin de la recomendacin del W3C sobre enlaces de protocolo con caractersticas de seguridad para la Especicacin de
Gestin de Claves XML (XKMS).

Vase tambin

Inclusiones XML. Traduccin de XML Inclusions


(XInclude) Version 1.0.

Portal:informtica. Contenido relacionado con


informtica.

xml:id Versin 1.0. Traduccin de la recomendacin


del W3C sobre xml:id 1.0.

XML-RPC protocolo de llamada de procedimiento remoto (RPC) que utiliza XML para codicar los datos.

Pgina web ocial de W3C sobre XML (en ingls).

SOAP protocolo de llamadas a mtodos remotos


e intercambio de mensajes XML utilizando tecnologa de objeto.

Introduccin a XML (en espaol).

HL7 v3 estndar de interoperabilidad de datos de


salud, que utiliza mensajes y documentos electrnicos XML.
OpenDocument

XML Schema (en espaol).

Introduccin al XML introduccin conceptual al


XML.
programacin.com cursos, tutoriales, trucos, etc.
El estndar XML (en ingls).

Editor XML

The Extensible Stylesheet Language Family (XSL)


(en ingls).

DTD

XML.org (en ingls).

XML Schema

XML Software Guide (en ingls).

RELAX NG

Pgina web sobre XML de Microsoft (en ingls).

10 ENLACES EXTERNOS
XML Document Authoring Tools (en ingls).
XML mdulos Perl en CPAN (en ingls).
XML.Awardspace introduccin bsica al XML.
SoaAgenda ejemplo de traspaso XML a DOM.
XML: Introduccin, video introductorio a XML.
XML: Ejemplos de uso, vdeo que explica diferentes
ejemplos de uso de XML, como CML, MathML o
SVG.
XML: HTML y XHTML, vdeo que explica las diferencias entre XML, HTML y XHTML.

11

Text and image sources, contributors, and licenses

11.1

Text

Extensible Markup Language Fuente: http://es.wikipedia.org/wiki/Extensible%20Markup%20Language?oldid=81450022 Colaboradores: Brion VIBBER, Sabbut, Moriel, JorgeGG, Pilaf, Vanbasten 23, Comae, Tony Rotondas, Aldm, Dodo, Triku, Sms, Truor, AlbertoDV,
Cookie, Tostadora, Elwikipedista, Noradrex, Barcex, KiBo, Kalcetin, JosebaAbaitua, Ecemaml, Niqueco, Renabot, FAR, Boticario, Rhus,
Hispa, Airunp, Yrithinnd, Rembiapo pohyiete (bot), Drini2, OMenda, Lainmlh, RobotQuistnix, Platonides, Superzerocool, Chobot, Mikel
Gmez, Baito, BOT-Superzerocool, Secal~eswiki, FlaBot, YurikBot, GermanX, LoquBot, Cacique500, Robespierre, Cucaracha, Jesuja,
FedericoMP, Txo, Mouse~eswiki, Eskimbot, Gnovaro, Maldoror, Er Komandante, Ketamino, Tomatejc, Enrique Garcilazo, Juandiegocano, Faelomx, Aleator, BOTpolicia, CEM-bot, Laura Fiorucci, Ca in, Josergc, Alexav8, Chabacano, Baiji, MontseVeroULE, El fersi,
Antur, Carlos.cuevas, Alexia.perez.fernandez, Resped, Thijs!bot, Ferio, Jaores, Ocastillo77, Eloi.sanmartin, Roberto Fiadone, Bot que
revierte, JoaquinFerrero, IrwinSantos, Isha, Mpeinadopa, Rrmsjp, JAnDbot, Jugones55, BetBot~eswiki, Muro de Aguas, TXiKiBoT, Acaso, Kurnosem, Dhcp, Humberto, Rei-bot, Criem, Qu3tzalc0atl5, Fixertool, Jvlivs, Idioma-bot, Plux, Mitm, Developer, Biasoli, Kaprak,
Ayleen, Dusan, Cinevoro, VolkovBot, Drever, Technopat, LuisFo, Matdrodes, Shooke, Muro Bot, Zesar88, Gerakibot, SieBot, Cw88,
Cobalttempest, Manw, Sintaxpedia, Ivanics, Tirithel, Locos epraix, LastCyborg, HUB, DragonBot, Siina, Botelln, Rge, Aipni-Lovrij,
Zuzel, Camilo, AVBOT, Xml, David0811, LucienBOT, Javierav, MastiBot, DumZiBoT, Linfocito B, Makike, Arjuno3, Pasmargo, SpiritBlack-Wikipedista, Nallimbot, FariBOT, Jotterbot, Vic Fede, Barteik, Yonidebot, Xqbot, Jkbw, Josemiguel93, Igna, Botarel, SUL, BOTirithel, TobeBot, RedBot, Robot8A, PatruBOT, Dinamik-bot, Jandresaedo, Dark Bane, GrouchoBot, EmausBot, Guarddon, J. A. Glvez,
OmegaZeroJR, KLBot, Vapretchile, MauricioAedo, ChuispastonBot, Alma mter, Cangaru, Diamondland, Ruos, Serlumo, Antonorsi,
MerlIwBot, AvicBot, Gins90, Invadibot, RollbackerBOT, Vichock, Bibliolotranstornado, Aofvilla, YFdyh-bot, Zerabat, Legobot, GuilleSerrano23, Coins, Alejandrocoria y Annimos: 392

11.2

Images

Archivo:Portal.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/c/c9/Portal.svg Licencia: CC BY 2.5 Colaboradores:


Portal.svg
Artista original: Portal.svg: Pepetps
Archivo:XML.svg Fuente: http://upload.wikimedia.org/wikipedia/commons/6/68/XML.svg Licencia: CC BY-SA 2.5 Colaboradores: en:
Image:XML2.svg Artista original: en:User:Dreftymac

11.3

Content license

Creative Commons Attribution-Share Alike 3.0

También podría gustarte