XML permite compartir datos de forma segura y fiable entre aplicaciones y sistemas mediante el uso de etiquetas definidas por el usuario. XML define la estructura y el significado de los datos, permitiendo validar y procesar los datos de forma automática. XML es útil para el intercambio de información entre diferentes dominios y aplicaciones como química, matemáticas y documentación técnica.
1. XML
Con todas las tecnologías relacionadas, representa una manera distinta de hacer las cosas,
más avanzada, cuya principal novedad consiste en permitir compartir los datos con los que
se trabaja a todos los niveles, por todas las aplicaciones y soportes. Así pues, el XML juega
un papel importantísimo en este mundo actual, que tiende a la globalización y la
compatibilidad entre los sistemas, ya que es la tecnología que permitirá compartir la
información de una manera segura, fiable, fácil. Además, XML permite al programador y los
soportes dedicar sus esfuerzos a las tareas importantes cuando trabaja con los datos, ya que
algunas tareas tediosas como la validación de estos o el recorrido de las estructuras corre a
cargo del lenguaje y está especificado por el estándar, de modo que el programador no tiene
que preocuparse por ello.
Vemos que XML no está sólo, sino que hay un mundo de tecnologías alrededor de él, de
posibilidades, maneras más fáciles e interesantes de trabajar con los datos y, en definitiva,
un avance a la hora de tratar la información, que es en realidad el objetivo de la informática
en general. XML, o mejor dicho, el mundo XML no es un lenguaje, sino varios lenguajes, no
es una sintaxis, sino varias y no es una manera totalmente nueva de trabajar, sino una
manera más refinada que permitirá que todas las anteriores se puedan comunicar entre si
sin problemas, ya que los datos cobran sentido. Todo esto lo veremos con calma en
la Introducción a XML.
XML es interesante en el mundo de Internet y el e-bussiness, ya que existen muchos
sistemas distintos que tienen que comunicarse entre si, pero como se ha podido imaginar,
interesa por igual a todas las ramas de la informática y el tratamiento de datos, ya que
permite muchos avances a la hora de trabajar con ellos.
Así pues, os recomendamos seguir esta lectura en la introducción a XML. A lo largo de los
siguientes capítulos, vamos a ver algunas características importantes de la tecnología que
nos permitirán comprender mejor el mundo XML y cómo soluciona nuestros problemas a la
hora de trabajar con los datos.
XML son las siglas de Extensible MarkupLanguage, una especificación/lenguaje de
programación desarrollada por el W3C. XML es una versión de SGML, diseñado
especialmente para los documentos de la web. Permite que los diseñadores
creen sus propias etiquetas, permitiendo la definición, transmisión, validación e
interpretación de datos entre aplicaciones y entre organizaciones.
xml permite realizar funciones que no pueden realizarse con
EJEMPLOS DE XML
Aplicación XML
Aplicación no significa un programaque utilice XML.Aplicación
significa el uso de XMLpara un dominio específico.
Aplicación XML =Lenguaje de marcado = Vocabulario
2. DocBookChemical Markup LanguageKeyhole Markup
LanguageMathematical Markup LanguageOpenDocumentOpen
XML FormatScalable Vector GraphicsSystemsByology Markup
Language
ChemicalMarkupLanguage• Estructura química de moléculas•
Reacciones químicas• Información de espectros y análisis• Datos
de química computacional• Datos cristalografía y materiales
<?xml version="1.0" ?><cml xmlns="http://www.xml-
cml.org/schema/cml2/core"
xmlns:xsi="http://www.w3.org/2001/XMLSchema- instance"
xsi:schemaLocation="http://www.xml-
cml.org/schema/cml2/core/cmlCore.xsd"><molecule
title="Water"><atomArray><atom id="a1" elementType="H"
hydrogenCount="0" /><atom id="a2" elementType="O"
hydrogenCount="2" /><atom id="a3" elementType="H"
hydrogenCount="0" /></atomArray><bondArray><bond
atomRefs2="a1 a2" order="1" /><bond atomRefs2="a2 a3"
order="1" /></bondArray></molecule></cml>
<?xmlversion="1.0" standalone="no"?><!DOCTYPE book
PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-
open.org/docbook/xml/4.2/docbookx.dtd"><book lang="es"
id="simple_libro"><title>Un libro muy simple</title><chapter
id="capitulo_1"><title>Capitulo 1</title><para>Hola
mundo!</para><para>¡Yo espero que tu día sea
bueno!</para></chapter><chapter
id="capitulo_2"><title>Capitulo 2</title><para>Hola otra vez,
mundo!</para></chapter></book>
<?xmlversion="1.0" standalone="no"?><!DOCTYPE article
PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN"
"http://www.oasis-
open.org/docbook/xml/4.2/docbookx.dtd"><article
lang="es"><title>Creando Documentación Técnica con
3. DocBook</title><articleinfo><author><firstname>Leonardo</first
name><surname>Caballero</surname></author></articleinfo><s
ection id="art-intro"><title>Introducción</title><para>DocBook es
un aplicación del estándar SGML/XML e incluye una DTD propia
y que se utiliza de manera más destacada el área de la
documentación técnica. </para></section></article>
<?xml version="1.0" encoding="UTF-
8"?><kmlxmlns="http://www.opengis.net/kml/2.2"><Document><
Placemark><name>New York City</name><description>New
York City</description><Point><coordinates>-
74.006393,40.714172,0</coordinates></Point></Placemark></D
ocument></kml>
MathematicalMarkupLanguage• XHTML + MathML• Intercambio
de información: Maple, Matlab, etc.
<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE math
PUBLIC "-//W3C//DTD MathML 2.0//EN"
"http://www.w3.org/Math/DTD/mathml2/mathml2.dtd"><math
mode="display"
xmlns="http://www.w3.org/1998/Math/MathML"><mrow><mi>x</
mi><mo>=</mo><mfrac><mrow><mo form="prefix">−<!-
- − --></mo><mi>b</mi><mo>±<!-- ± -
-></mo><msqrt><msup><mi>b</mi><mn>2</mn></msup>
<mo>−<!-- − --
></mo><mn>4</mn><mo>⁢<!-- ⁢ --
></mo><mi>a</mi><mo>⁢<!-- ⁢ --
></mo><mi>c</mi></msqrt></mrow><mrow><mn>2</mn><mo>
⁢<!-- ⁢ --
></mo><mi>a</mi></mrow></mfrac></mrow></math>
Otro ejemplo
Veamos un ejemplo muy sencillo de un pequeño lenguaje de etiquetas para
definir documentos FAQ:
<?xmlversion="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE FAQ SYSTEM "FAQ.DTD">
4. <FAQ>
<INFO>
<TITULO> WINDOWS98? SOLO SI ME OBLIGAN!</TITULO>
<AUTOR> Fernando Damián Lorenzo García </AUTOR>
<EMAIL> Fer@yahoo.es </EMAIL>
<VERSION> 1.0 </VERSION>
<FECHA> 20.MAYO.99 </FECHA>
</INFO>
<PART NO="1">
<Q NO="1">
<QTEXT>¿Por qué tengo que instalar W95?</QTEXT>
<A> A mi también me parece una buena pregunta.</A>
</Q>
<Q NO="2">
<QTEXT>Y de que me vale?</QTEXT>
<A>Otra ingeniosa pregunta.</A>
</Q>
</PART>
</FAQ>
Para el lenguaje de marcas mostrado arriba tenemos el siguiente DTD:
<!ELEMENT FAQ (INFO, PART+)>
<!ELEMENT INFO (TITULO, AUTOR, EMAIL?, VERSION?, FECHA?)>
<!ELEMENT TITULO (#PCDATA)>
<!ELEMENT AUTOR (#PCDATA)>
<!ELEMENT EMAIL (#PCDATA)>
<!ELEMENT VERSION (#PCDATA)>
<!ELEMENT FECHA (#PCDATA)>
<!ELEMENT PART (Q+)>
<!ELEMENT Q (QTEXT, A)>
<!ELEMENT QTEXT (#PCDATA)>
<!ELEMENT A (#PCDATA)>
<!ATTLIST PART NO CDATA #IMPLIED TITLE CDATA #IMPLIED>
<!ATTLIST Q NO CDATA #IMPLIED>
Veamos ahora un ejemplo de código XML para una librería virtual:
<?xmlversion="1.0"?>
<libro>
<titulo> Cien años de soledad </titulo>
<disponible tiempo="24" unidad="horas"/>
<autor> Gabriel García Márquez </autor>
<formato> Rústica </formato>
<publicacion>1967 </publicacion>
<precio cantidad="9.99" moneda="euro"/>
<descuento cantidad="5"/>
<enlacelibrohref="/exec/ISBN/84-473-0619-4"/>
</libro>
Su DTD correspondiente:
<!ELEMENT autor ( #PCDATA ) >
<!ELEMENT descuento EMPTY >
<!ATTLIST descuento cantidad CDATA #REQUIRED >
<!ELEMENT disponible EMPTY >
<!ATTLIST disponible tiempo CDATA #REQUIRED >
<!ATTLIST disponible unidad CDATA #REQUIRED >
<!ELEMENT enlacelibro EMPTY >
<!ATTLIST enlacelibrohref CDATA #REQUIRED >
<!ELEMENT formato ( #PCDATA ) >
<!ELEMENT libro ( titulo | disponible | autor | formato |
publicacion | precio | descuento | enlacelibro )* >
<!ELEMENT precio EMPTY >
<!ATTLIST precio cantidad CDATA #REQUIRED >
<!ATTLIST precio moneda CDATA #REQUIRED >
5. <!ELEMENT publicacion ( #PCDATA ) >
<!ELEMENT titulo ( #PCDATA ) >
COMPONENTES DE XML
Un sistema XML típico consta de tres tipos de archivos:
Los datos XML, que son sus datos, más las etiquetas XML que describen el significado
y la estructura de los datos.
Los esquemas XML, que definen las reglas de lo que puede y no puede haber en sus
archivos de datos. Por ejemplo, un esquema podría servir para asegurarse de que los
usuarios no pueden escribir texto en un campo de fecha.
Las transformaciones XML, que permiten utilizar los datos en diversos programas o
archivos. Por ejemplo, una transformación podría agregar los datos relativos a las
ventas a un libro de trabajo, mientras que otra transformación podría insertar la misma
información en un documento.