XML
Miguel Angel Barahona M.
Abril, 2011.
XML




XML son las siglas de eXtensible Markup Language,
lenguaje extensible de marcas.
Se trata de un estándar del Word Wide Web
Consortium (http://www.w3.org es una referencia
básica de XML)
XML nace en 1996, desarrollado por un grupo
auspiciado por el W3C y al que inicialmente se
conocía como grupo de trabajo de SGML.
XML deriva del lenguaje de marcas SGML (un
estándar ISO, concretamente el ISO-8879).
Concretamente, es un subconjunto de SGML que
pretende que éste pueda ser servido, recibido y
procesado en la web de la misma forma que el HTML
XML






XML ha sido diseñado buscando la simplicidad de
implementación y la interoperabilidad con HTML .
Usado para diseñar aplicaciones centradas en los
datos.
Los documentos XML deben ser legibles por un ser
humano y razonablemente claros.
El diseño de XML debe ser preparado rápidamente.
El diseño de XML debe ser formal y conciso.
Los documentos XML han de ser fáciles de crear.
Porque XML ?

HTML estaba optimizado para ser fácil de aprender,
no para ser fácil de procesar:





Un solo conjunto de marcas (independientemente de las
aplicaciones).
Una semántica predefinida para cada marca.
Estructuras de datos predefinidas.
HTML sacrifica la potencia para conseguir facilidad de
uso.
HTML resulta adecuado para aplicaciones simples,
pero es poco adecuado para aplicaciones complejas:




Conjuntos de datos complejos.
Datos que deben ser manipulados de formas diversas.
Datos para controlar programas.
Sin capacidad de validación formal.
XML nos Proporciona….




Extensibilidad: se pueden definir nuevas marcas y
atributos según sea necesario.
Estructura: se puede modelar cualquier tipo de datos
que esté organizado jerárquicamente.
Validez: podemos validar automáticamente los datos
(de forma estructural).
En la definición, XML no es un lenguaje, sino un metalenguaje que nos permite definir multitud de lenguajes
para propósitos específicos.
XML
<?xml version=“1.0” encoding=“iso-8859-1”?>
<biblioteca>
<libro idioma=“inglés”>
<titulo>The Hobbit</titulo>
<autor>J. R. R. Tolkien</autor>
<editorial>Allen and Unwin</editorial>
</libro>
<libro idioma=“catellano”>
<titulo>El Quijote</titulo>
<autor>Miguel de Cervantes</autor>
<editorial>Alfaguara</editorial>
</libro>
</biblioteca>
Alcances





Podemos apreciar en este documento del
ejemplo algunas de las características ya
mencionadas de XML:
Como su estructura jerárquica
Su legibilidad
O el hecho de que está diseñado para un uso
concreto(almacenar los libros de nuestra
biblioteca)
Este ejemplo también nos muestra las
diferencias entre XML y HTML que justifican el
nacimiento de XML
XML

en HTML un documento parecido al anterior:
<HTML>
<HEAD>
<TITLE>Biblioteca</TITLE>
</HEAD>
<BODY>
<H1>The Hobbit</H1>
<P><B>Autor:</B>J. R. R. Tolkien</P>
<P><B>Editorial</B>Allen and Unwin</P>
<H1>El Quijote</H1>
<P><B>Autor:</B>Miguel de Cervantes</P>
<P><B>Editorial</B>Alfaguara</P>
</BODY>
</HTML>
XML

Todos los documentos XML bien
formados deben iniciarse con una línea
como:
<?xml version=“1.0”?>
 Dicha línea nos indica la versión de la
especificación XML utilizada,

DTD

DTD (Document Type Definition) es un
estándar que nos permite definir una
gramática que deben cumplir nuestros
documentos XML para considerarlos válidos.

En los DTD's podemos hacer 4 tipos de
declaraciones:




De tipo de elemento (Element Type Declarations).
De listas de atributos (Attribute List Declarations).
De entidades (Entity Declarations).
De notación (Notation Declarations).
Declaraciones de Tipo de Elemento

Estas declaraciones establecen qué elementos pueden
formar parte del documento y cuales pueden formar parte
de su interior (los elementos se anidan unos dentro de
otros).
<!ELEMENT Receta (Nombre, Descripcion?,Ingredientes?,Instrucciones?)>
SÍMBOLO
SIGNIFICADO (Indica...)
,
Secuencia de elementos
?
0 ó 1 ocurrencias
*
0 ó más ocurrencias
+
1 ó más ocurrencias
Declaraciones de Tipo de Elemento

Empty
Que el elemento está vacío.
Estos elementos NO tienen etiqueta de cierre.
Any
Cualquier contenido es válido.
Yo no recomiendo su uso.
#PCDATA
que el contenido de la cadena puede ser una cadena de texto.
Ejemplo:
<!ELEMENT nombre (#PCDATA)>
<!ELEMENT nombre EMPTY>
<!ELEMENT cliente (nombre,apellidos,nif?,tlf*,direccion+)>
Declaraciones de listas de atributos

<!ATTLIST
Cada atributo está formado por 3 partes:
Nombre
Tipo del atributo
Valor por defecto
VALOR
CDATA
ID
SIGNIFICADO
El atributo será una cadena de caracteres.
No todos los caracteres son válidos.
Usaremos secciones PCDATA cuando queramos incluir los carácteres no válidos.
El atributo sirve para identificar al elemento dentro del documento.
Sólo puede haber un atributo de tipo ID por elemento.
IDREF/S
Este atributo se empleará para referenciar a otros elementos del documento a partir de su ID.
ENTITY/S
Contiene nombres de entidades. Ver siguiente apdo.
NMTOKEN/S
(<<enumerados>>)
Contiene una única cadena de texto (ed, una sóla palabra).
Aquí especificamos EL conjunto de valores q puede tomar el atributo; esto lo hacemos
separandolos con |.
Declaraciones de listas de atributos
VALOR
SIGNIFICADO
#REQUIRED
Con esto indicamos que es obligatorio darle un valor al atributo.
#IMPLIED
Con esto indicamos que es opcional darle un valor al atributo.
<<valor>>
Podemos poner un valor (NO lista de valores) opcional directamente; entonces, si no se le
otorga un nuevo valor posteriormente, asumirá el dado (ed, es el valor x por defecto).
No es obligatorio darle un valor en el doc.
#FIXED
<<valor>>>
Con esto obligamos a q el atributo tome necesariamente el valor especificado en <<valor>>
Declaraciones de listas de atributos

<!ATTLIST cliente
numcli ID #REQUIRED
edad ("Menos de 18" | "entre 18 y 65" | "Más de 65") #IMPLIED
>
XML
<?xml version="1.0"?>
<Receta>
<Nombre>Tortilla de patatas</Nombre>
<Descripcion>
La tradicional y típica tortilla de patatas, tal como la hacen todas las madres.
</Descripcion>
<Ingredientes>
<Ingrediente>
<Cantidad unidad="pieza">3</Cantidad>
<Item>Patata</Item>
</Ingrediente>
<Ingrediente>
<Cantidad unidad="pieza">2</Cantidad>
<Item>Huevos</Item>
</Ingrediente>
<Ingrediente>
<Cantidad unidad="litro">0.1</Cantidad>
<Item>Aceite</Item>
</Ingrediente>
</Ingredientes>
<Instrucciones>
<Paso>
Pelar y cortar la patata en rodajas
</Paso>
<Paso>
Poner aceite en una paella
</Paso>
<!-- Y así seguimos... -->
</Instrucciones>
</Receta>
DTD

DTD para la receta del ejemplo que nos definirá la forma que
deben tener las recetas escritas en RecetaXML:
<!ELEMENT Receta (Nombre, Descripcion?,Ingredientes?,Instrucciones?)>
<!ELEMENT Nombre (#PCDATA)>
<!ELEMENT Descripcion (#PCDATA)>
<!ELEMENT Ingredientes (Ingrediente*)>
<!ELEMENT Ingrediente (Cantidad, Item)>
<!ELEMENT Cantidad (#PCDATA)>
<!ATTLIST Cantidad unidad CDATA #REQUIRED>
<!ELEMENT Item (#PCDATA)>
<!ATTLIST Item opcional CDATA “0” vegetariano CDATA “si”>
<!ELEMENT Instructiones (Paso+)>
<!ELEMENT Paso (#PCDATA)>
Descargar

XML - Ingenieria 2010-2012 | Ejecucion en Informartica