La Familia XML, DTD, XML Schema

José Ángel Alonso Jiménez

Objetivo 

¿Por qué XML se utiliza como un formato estándar para los datos? ¿Por qué XML es una tecnología muy útil y valiosa para la representación y el intercambio de datos? 

2

¿Por qué se utiliza el XML?   

La Web nos ha permitido comunicarnos con cualquier persona de cualquier lugar. Los estándares de amplia aceptación, fundamentales para aprovechar todo el potencial del Web, permiten la comunicación por el Web a través de muchas capas de tecnología interoperativa. Una capa importante es la presentación visual y la interfaz de usuario, ejemplificada en los estándares actuales, como HTML, GIF y JScriptŒ. Dichos estándares permiten crear una página una sola vez y mostrarla en momentos distintos para varios receptores.
3

¿Por qué se utiliza el XML? 

Aunque los estándares visuales y de interfaz de usuario son una capa necesaria, no son suficientes para representar y administrar los datos. Internet es un medio de acceso a texto e imágenes. No hay ningún estándar establecido para la búsqueda inteligente, el intercambio de datos, la presentación adaptable ni para la personalización. Internet debe ir más allá del establecimiento de un estándar de acceso y presentación de información. Tiene que establecer un estándar para la comprensión de la información.  

4

XML & HTML  

HTML es un formato que describe la apariencia que debería tener una página Web, pero no representa datos. HTML ofrece amplias facilidades de presentación, pero no ofrece ninguna forma basada en los estándares para administrar los datos.
HTML No ofrece una forma estándar para el intercambio de información No describe los datos para que los clientes pueden descodificarlo y procesarlo No ofrece una forma estándar de búsquedas de documentos No especifica cómo se pueden transmitir los datos del catálogo, ni mostrar el catálogo a los clientes, ni recibir datos, ni enviar dichos datos en un formato estándar.
5

XML Si Si Si Si

XML & HTML
En resumen:  HTML ofrece amplias facilidades de presentación, pero no ofrece ninguna forma basada en los estándares para administrar los datos. Por tanto se busca:  Un estándar de datos con el que se pueda buscar, manipular, consultar, compartir, etc los datos.  Un estándar donde todos los datos (de cualquier tipo: historiales médicos, geográficos, pedidos de compra) se escriban en el mismo formato.  Un estándar que permita una gran variedad de usos nuevos, todos basados en una representación estándar para el desplazamiento de datos estructurados por todo la Web tan fácilmente como desplazamos las páginas HTML hoy en día. HTML especifica la forma de presentar los datos en un explorador, mientras que XML define su contenido El estándar de datos es XML

6

Sumario 
     

Historia Introducción Estructura de un documento XML Documento XML bien formado Validación (DTD y Esquemas XML) La familia XML Aplicaciones

7

Historia 

Extensible Markup Languaje, XML, fue creado, en 1996, por Word Wide Web Consortium (W3C) partiendo de las especificaciones del Lenguaje Estándar Generalizado de Marcación (SGML). La primera definición que apareció fue: Sistema para definir, validar y compartir formatos de documentos en la web. 

8

Historia 

Los objetivos del XML son:  XML debe ser directamente utilizable sobre Internet.  XML debe soportar una amplia variedad de aplicaciones.  XML debe ser compatible con SGML.  Debe ser fácil la escritura de programas que procesen documentos XML.

9

Historia    



El número de características opcionales en XML debe ser absolutamente mínima, idealmente cero. Los documentos XML deben ser legibles por humanos 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 deben poder crearse fácilmente.

10

Introducción    

XML es un lenguaje de marcas para crear documentos que contienen información estructurada. La información estructurada contiene tanto el contenido como el papel que juega éste en el documento. XML no especifica ni la semántica ni el conjunto de etiquetas que se pueden utilizar. XML proporciona mecanismos para definir etiquetas y las relaciones entre las mismas.
11

Introducción 

Con XML se pueden crear fácilmente nuevos lenguajes etiquetados µa medida¶. A estos µnuevos lenguajes¶ se les suele llamar: 


Dialecto XML Aplicación XML 

XML garantiza que los datos estructurados sean uniformes e independientes de aplicaciones o fabricantes
12

Introducción   

XML es un lenguaje prácticamente estándar. Es muy fácil acceder a los datos contenidos en documentos XML (independientemente del dialecto que hayamos creado) puesto que existe mucho software para leer (parsear) documentos XML. Si utilizamos un formato ad hoc (o no estándar), solamente nosotros podremos leer nuestro documento. Si utilizamos XML, será muy fácil intercambiar documentos.
13

Introducción 

Además, si nuestros datos están almacenados en XML (en un dialecto XML), podremos realizar muchas operaciones que son posibles con XML: 
  

Transformaciones Estilos Procesar el documento a través de un modelo de objetos. Etc.

14

Introducción    

XML es un formato basado en texto, parecido al HTML en muchos aspectos, específicamente diseñado para almacenar y transmitir datos. XML se compone de elementos XML, cada uno de los cuales consta de una etiqueta de inicio (<title>), de una etiqueta de fin (</title>) y de los datos comprendidos entre ambas etiquetas (el contenido). Al igual que los documentos HTML, un documento XML contiene texto anotado por etiquetas. Sin embargo, a diferencia de HTML, XML admite un conjunto ilimitado de etiquetas, no para indicar el aspecto que debe tener algo, sino lo que significa.

15

Introducción 

XML es un lenguaje orientado al contenido. A diferencia de una etiqueta HTML (<h1>, por ejemplo) una etiqueta XML no se visualiza de ninguna manera especial. 


No tendremos más remedio que aplicar estilos o transformaciones. Se pueden utilizar hojas de estilo: 
 

lenguaje de estilo extensible (XSL) hojas de estilo en cascada (CSS) presentar los datos en un explorador. 

XML separa los datos de la presentación y del proceso, lo que permite mostrar y procesar los datos a su gusto con sólo aplicar distintas hojas de estilo y aplicaciones.
16

Estructura de un documento XML  

Un documento XML contiene texto, nunca datos binarios. Un documento XML está compuesto de: 
     

Elementos (³etiquetas´) Texto (cadena de caracteres) Referencias a Entidades Secciones CDATA Comentarios Instrucciones de Procesamiento La declaración XML
17

Estructura de un documento XML 

Elemento <> Etiqueta   

Un elemento es todo aquello que va delimitado por una etiqueta de comienzo (<tag>) y una etiqueta de fin (</tag>). Todo lo que está entre esas dos etiquetas se llama el contenido del elemento. Una etiqueta empty también es un elemento un elemento sin contenido.

18

Estructura de un documento XML 

El contenido de un elemento puede ser: 

Texto:

<destinatario>Pedro Alonso</destinatario> 

<anexos> <fichero nombre=³Temario.pdf´/> <fichero nombre=³Apuntes.pdf´/> </anexos> 

Elementos:

Contenido mixto (texto + elementos):
<cuerpoMail> Hola Pedro, te adjunto los temarios <firma> Profesor Derecho </firma> </cuerpoMail>

19

Estructura de un documento XML 

Cuando un elemento H está contenido en un elemento P se dice que: 


H es un elemento hijo de P. P es el elemento padre de H.  

En XML todo elemento tiene uno y sólo un padre. El elemento raíz es el único que no tiene padre. Todo documento XML debe tener uno y sólo un elemento raíz.
20

Estructura de un documento XML
ELEMENTOS
<list> <title> La primera lista</title> <item> La firma </item> </list>

<head>
<item> Buenos días</item> <item2> Adios</item2>

</head>
<head> <head> <item> Dirección de vuelo</item> <item> Dirección de vuelo</item> <item2> Velocidad del <item> </item2> Velocidad del aviónavión </item2> </head> </Item>
21

Introducción 

Realizar un documento XML sobre la toma de condiciones atmosféricas realizadas en Madrid, el día 7 de julio del 2006 a las 8:00 de la mañana, siendo los datos obtenidos de temperatura: 21º, humedad: 87, con una dirección del viento SO y una velocidad de 6 Km/h, en la estación metereológica llamada Cerro y situada en X= 452789 e Y=4458962.
22

Introducción 

Realizar un documento XML sobre la toma de condiciones atmosféricas realizadas en Madrid, el día 7 de julio del 2006 a las 8:00 de la mañana, siendo los datos obtenidos de temperatura: 21º, humedad: 87, con una dirección del viento SO y una velocidad de 6 Km/h, en la estación metereológica llamada Cerro y situada en X= 452789 e Y=4458962.
23

Introducción
<Condiciones_atmosféricas> <fecha>25 de Julio del 2006</fecha> <hora>08:00</hora> <lugar>Madrid</lugar> <temperatura>21</temperatura> <humedad>87</humedad> <viento direccion>SO</viento dirección> <viento velocidad>6 Km/h</ viento velocidad> <nombre estacion>Cerro</nombre estacion> <coordenada X>452789</ coordenada X > <coordenada Y>4458962.</ coordenada Y > </Condiciones_atmosféricas >

24

Introducción
<Condiciones_atmosféricas> <fecha> <dia>25</dia> <mes>Julio</mes> <año>2006</año> </fecha> <hora>08:00</hora> <lugar> <pais>España</pais> <ciudad>Madrid</ciudad> </lugar> <medidas> <temperatura>21</temperatura> <humedad>87</humedad> <viento> <dirección>SO</dirección> <velocidad>6</velocidad> <unidades de la velocidad>Km/h</ unidades de la velocidad > </viento> </medidas> <estacion metereologica> <nombre>Cerro</nombre> <coordenada X>452789</ coordenada X > <coordenada Y>4458962</ coordenada Y > </ estacion metereologica > </Condiciones_atmosféricas >

25

Estructura de un documento XML 

Un elemento debe tener un nombre XML:  

Pueden contener cualquier alfanumérico. Pueden contener los caracteres 
 

carácter

_ (subrayado, subguión) - (guión) . (punto)  

Únicamente puede comenzar por caracteres alfabéticos o por el carácter de subrayado. No puede contener µespacio en blanco¶ (carácter de espaciado, saltos de línea, tabulaciones)
26

Estructura de un documento XML
anexos BIEN $mail MAL BIEN fecha-entrada BIEN _cuerpo_mensaje MAL fecha de entrada MAL 01Alumno 

También deben tener nombres XML los atributos de los elementos.

27

Estructura de un documento XML
NOMBRES VALIDOS EN XML

‡ libro ‡ : libro ‡ Almacén libros ‡ Almacén_libros ‡ &Libro ‡ 3-libro.almacén ‡ Estanteria.almacén.libro ‡ St.libro ‡ %mad

‡ libro

‡ : libro ‡ Almacén libros
‡ Almacén_libros ‡ &libro ‡ 3-libro.almacén ‡ Estantería.almacén.libro ‡ St.libro ‡%mad

28

Estructura de un documento XML 

En el texto contenido en un elemento no pueden aparecer estos dos caracteres: 


< (menor que) & (ampersand) > (mayor que) ³ (comilla doble) µ (comilla simple) 

No deberían aparecer los siguientes: 
 

29

Estructura de un documento XML 

Ejemplo
<texto> La distancia entre Madrid y Toledo es < que entre Madrid y Málaga </texto> 

El símbolo < indica en XML el inicio de una etiqueta.
30

Estructura de un documento XML 

Solución: Utilizar referencias a entidades.
<texto> La distancia entre Madrid y Toledo es &lt; que entre Madrid y Málaga </texto> 

El parseador XML sustituye la referencia automáticamente por el carácter referenciado.
31

Estructura de un documento XML  

La entidades van delimitadas por & (ampersand) y ; (punto y coma). En XML se encuentran predefinidas las siguientes referencias a entidades: 
   

&lt; Less Than (menor que, <) &amp; Ampersand & &gt; Greater Than (mayor que, >) &quot; Quotation Mark (comilla doble, ³) &apos; Apostrophe (comilla simple, µ)
32

Estructura de un documento XML 
 

&lt; Obligatoria. Para no confundir el comienzo de una etiqueta. &amp; Obligatoria. Para no confundir el comienzo de una referencia a entidad. &quot; &apos; Obligatoria en el valor de un atributo. Para no confundir el final del valor.
<img src=³cena.jpg´ alt=³Fue una ³cena´ interesante´ /> <img src=³cena.jpg´ interesante´/> alt=³Fue una &quot;cena&quot; 



&gt; Opcional. Podemos definir nuestras propias entidades.
33

Estructura de un documento XML 

Otro ejemplo:
<texto> Hola Pedro, te mando los ficheros: <Temario.pdf> <texto> Hola <Apuntes.pdf> Pedro, te mando los ficheros: &lt;Temario.pdf&gt; &lt;Apuntes.pdf&gt; <Manual/Tutorial.pdf> &lt;Manual/Tutorial.pdf&gt </texto> </texto>

34

Estructura de un documento XML 

Esto se puede evitar secciones CDATA:
<texto> <![CDATA[
<Temario.pdf> <Apuntes.pdf> <Manual/Tutorial.pdf>

con

las

Hola Emilio, te mando los ficheros:

]]> </texto>
35

Estructura de un documento XML 

Una sección CDATA va delimitada por: 


<![CDATA[ ]]>  

Una sección CDATA no es parseada (un < no comienza una etiqueta, ni un & empieza una referencia a entidad). Las secciones CDATA pueden aparecer allá donde pueden aparecer los datos carácter. Se utilizan para "escapar" bloques de texto que contengan caracteres que de otra forma se reconocerían como marcas.

36

Estructura de un documento XML 

Sección CDATA: 

El paréntesis angular de apertura (<)y el carácter "ampersand" pueden aparecer de forma literal, es decir, no necesitan ser "escapados" mediante "&lt;" ni "&amp;". No se pueden anidar las secciones CDATA. (La marca <![CDATA[ sería interpretada como texto y la marca de finalización de la sección CDATA interna como una marca de finalización errónea). 

37

Estructura de un documento XML 

Sección CDATA: 

Ejemplos: "<saludo>" y "</saludo>" son reconocidos como datos carácter, y no como marcas: <![CDATA[<saludo>Hola,mundo!</saludo>]]> ___________________________________________ <contenido> <![CDATA[ El contenido de un <![CDATA[ aparece tal cual ]]> </contenido>

38

Estructura de un documento XML
Con CDATA y sin CDATA La etiqueta de la forma <provincia/> no necesita una etiqueta de inicio. Y en el contenido del texto no se puede utilizar el símbolo &.

<texto> <texto> La etiqueta de la forma &lt;provincia/&gt; <![CDATA[ La etiqueta de la forma no necesita una etiqueta de inicio. Y en <provincia/> no necesita una etiqueta de el contenido del texto no del texto no se inicio. Y en el contenido se puede utilizar el símbolo &amp;. puede utilizar el símbolo &. ]]> </texto> </texto>
39

Estructura de un documento XML 

Por tanto, en el texto (o datos carácter) contenido en un elemento no pueden aparecer estos dos caracteres: 


< (menor que) & (ampersand) 

En los únicos lugares donde si pueden aparecer estos dos caracteres son: 


delimitadores de marcas dentro de los comentarios 



instrucciones de procesamiento secciones CDATA
40

Estructura de un documento XML 

Los comentarios en XML van delimitados por 


<!--->  

  

Pueden aparecer en cualquier parte del documento, pero No pueden aparecer dentro de etiquetas. No pueden anidarse. No son parte de los datos carácter del documento Por compatibilidad, la cadena "--" (dos guiones) no puede aparecer dentro de un comentario
41

Estructura de un documento XML 

Ejemplos: 
  

<!-- Esto es un comentario --> ¥ <!-- declaraciones de <head> y <body>--> ¥ <!-- se pueden utilizar cualquier carácter dentro de un comentario, incluso los caracteres (--), los dos guiones --> X <!² los comentarios pueden servir para realizar aclaraciones del documento XML --> X

42

Estructura de un documento XML  

Las instrucciones de proporcionan información XML. Van delimitadas por: 


proceso le al parseador

<? ?> <?xsl-stylesheet ref=³estilo.css´?> 

Por ejemplo: 

(le indica al parseador qué hoja de estilo tiene que utilizar)
43

Estructura de un documento XML 
 

La declaración XML es opcional. Tiene tres atributos. Parece una instrucción de proceso (aunque no lo es)
<?xml version=³...´ standalone=³...´?> encoding=³...´ 

Si aparece, tiene que ser la primera línea del documento.

44

Estructura de un documento XML   

version: Indica la versión del estándar XML a la cual se ajusta el documento. Actualmente, el único valor válido es ³1.0´ encoding: Indica el juego de caracteres del documento. P.ej: ³ISO-8859_1´ para caracteres de lenguajes europeos (ö, Ç, ñ,...) standalone: Tiene dos posibles valores.  



no Es necesario acceder al DTD del documento para obtener ciertos datos sobre éste (por ejemplo, los valores por defecto de atributos). yes El documento no depende del DTD. El valor por defecto es no.

45

Documento bien formado 

Un documento XML se distingue de un documento que no lo es por estar bien formado (well-formedness) Los documentos de dialectos XML se comprueban a través de su validación (validity) 

46

Documento bien formado 

Para que un documento XML sea considerado como tal tiene que cumplir las rígidas normas de sintaxis de XML. 

Cuando un documento cumple estas normas de sintaxis, se dice que está µbien formado¶ (well formed document) 

Si no, resultará imposible parsearlo.

47

Documento bien formado 


Hay dos tipos de etiquetas: Non-Empty o µcontenedora¶: Contienen algo. Tiene que haber una etiqueta de comienzo y una etiqueta de fin. En la etiqueta de fin, el símbolo < siempre va seguido del símbolo /
<correo> ... ... <correo>
48

Documento bien formado 

Empty o singular: No contienen nada. El símbolo > debe ir siempre precedido del símbolo /
<fecha_mail recibido=³02-03-2005´/>
También se admite la forma: 

<fecha_mail recibido=³02-03-2005´> </fecha_mail> Los atributos tienen la siguiente sintaxis: nombre_atributo=³valor´
49

Documento bien formado    

Si hay más de un atributo, tienen que ir separados por espacios. Si la etiqueta es contenedora, los atributos sólo se escriben en la etiqueta de comienzo. Los valores de los atributos deben ir entre comillas (dobles o simples). Una etiqueta no puede tener dos atributos con el mismo nombre.

50

Estructura de un documento XML
<restaurante precio= Euros > Vip </restaurante> <música volumen=´bajo´/> <libro edicion=´segunda´ autor=´Maria´ autor=´Ana´/>

<restaurante precio= ³Euros´ > Vip </restaurante> <música volumen=´bajo´/> <libro edicion=´segunda´ autor=´Maria´ autor=´Ana´/>

51

Documento bien formado 

Cualquier fichero que esté bien formado es parseable y puede considerarse un documento XML. 
 

Podemos acceder a él desde un modelo de objetos. Podemos aplicarle estilos. Podemos aplicarle transformaciones. 

Sin embargo, a veces nos puede interesar definir formalmente el µdialecto XML¶, para comprobar que el documento no sólo está bien formado, sino que además cumple las reglas de ese dialecto.
52

Documento bien formado   

Un documento µbien formado¶ no es equivalente a un documento válido. El documento µbien formado¶ es el que tiene todos los elementos bien anidados y estos elementos cumplen con las especificaciones XML. Un documento válido es aquel que, además, ha definido (declarado) correctamente todos sus elementos y cumple con las especificaciones asignadas a cada uno en el DTD.

53

Documento bien formado

Mensaje Remitente: Susana Destino: Maria Por favor, llámame cuando llegues.

54

Documento bien formado

<?xml version="1.0" ? encoding="ISO-8859-1"?> <nota > <destino>Maria</destino> <remitente>Susana</remitente> <cabecera>Mensaje </cabecera> <cuerpo> Por favor, llámame cuando llegues.</cuerpo> </nota>

55

Document Type Definition (DTD)   

DTD es una especificación y estructuración necesaria que permite validar el contenido estructural y formal de un documento de SGML (y XML). DTD define los elementos que puede haber en el documento XML DTDs se pueden usar para la definición de modelos de contenido, es decir, en que orden y que elementos pertenecen a un elemento de orden superior en la jerarquía del documento; además permiten, aun que de modo muy limitado, imponer ciertas restricciones sobre el tipo de los elementos.

56

Document Type Definition (DTD) 

Por tanto: DTD no son más que:   

definiciones de los elementos que puede incluir un documento XML, de la forma en que deben hacerlo (qué elementos van dentro de otros) y los atributos que se les puede dar

57

Document Type Definition (DTD) 

Por tanto: DTD no son más que:  definiciones de los elementos que puede incluir un documento XML,  de la forma en que deben hacerlo (qué elementos van dentro de otros)  y los atributos que se les puede dar
<!ELEMENT ficha (nombre+, apellido+, direccion+, foto?)> <!ELEMENT nombre (#PCDATA)> <!ATTLIST nombre sexo (masculino|femenino) #IMPLIED> <!ELEMENT apellido (#PCDATA)> <!ELEMENT direccion (#PCDATA)> <!ELEMENT foto EMPTY>

58

Document Type Definition (DTD) Entre paréntesis, si el elemento es
Nombre del elemento vacío o no.

<!ELEMENT ficha (nombre+, apellido+, direccion+, foto?)> <!ELEMENT nombre (#PCDATA)> <!ATTLIST nombre sexo (masculino|femenino) #IMPLIED>
- nombre de elemento del que estamos declarando los atributos; - nombre del direccion (#PCDATA)> <!ELEMENTatributo; - posibles valores del atributo, entre paréntesis y separados por el carácter | <!ATTLIST, define los atributos seguida de: <!ELEMENT apellido (#PCDATA)> Se indica el contenido que puede tener el elemento: la lista de elementos hijos, separados por comas; o el tipo de contenido, normalmente #PCDATA, que indica datos de tipo texto .

<!ELEMENT foto EMPTY>

Si es vacío se indica con EMPTY
59

DTD 

Ejemplo de DTD <!ELEMENT Articulo (Cabecera, Contenido, Final)> <Articulo> <!ELEMENT Cabecera (Titulo, Autor)> <Cabecera> <!ELEMENT Titulo ANY> <Titulo></Titulo> <!ELEMENT Autor ANY> <Autor></Autor> <!ELEMENT Contenido (Extracto, Cuerpo)>................ </Cabecera> <Contenido> <Extracto></Extracto> <Cuerpo></Cuerpo> </Contenido> <Final></Final> </Articulo>
60

DTD 

Cuando se procesa cualquier información formateada mediante XML: 


1º comprobar si está bien formada 2º incluir o referenciar a un DTD y comprobar que sigue sus reglas gramaticales. 

Hay pues diferencia entre los parsers que procesan documentos XML:  

Parsers NO validadores no comprueban si siguen las reglas marcadas por un DTD (sólo comprueban que está bien formado). Parsers validadores que sí lo hacen (comprueba que además de bien formado se atiene a su DTD y es válido).

61

DTD
Obtener el documento XML a partir del DTD

<!ELEMENT List (ciudad)+> <!ELEMENT ciudad (#PCDATA)> <!ATTLIST ciudad id CDATA IMPLIED idioma CDATA IMPLIED> <!ELEMENT Separator EMPTY>

62

DTD
Solución <?xml version="1.0" encoding="iso-8859-1"?> <!DOCTYPE list SYSTEM "list.dtd"> <List> <ciudad>París</ciudad> <ciudad>Madrid</ciudad> <Separator /> <ciudad idioma=³ingles">Londres</ciudad> </List>

63

DTD & XML Esquema 

Las limitaciones de la DTD son las siguientes:  Posee un lenguaje propio de escritura lo que ocasiona problemas a la hora del aprendizaje, pues no sólo hay que aprender XML, sino también conocer el lenguaje de las DTDs.  Para el procesado del documento, las herramientas y analizadores (parsers) empleados para tratar los documentos XML deben ser capaces de procesar también las DTDs .  No permite el uso de namespaces y estos son muy útiles ya que permiten definir elementos con igual nombre dentro del mismo contexto, siempre y cuando se anteponga un prefijo al nombre del elemento.  Tiene una tipología para los datos del documento extremadamente limitada, pues no permite definir el que un elemento pueda ser de un tipo número, fecha, etc. sino que sólo presenta variaciones limitadas sobre cadenas.
64

DTD & XML Esquema 

Namespaces
Los espacios de nombres permiten eliminar las ambigüedades y solucionar los problemas de homonimia que se producen en los documentos, ya que en un mismo documento existen palabras con el mismo nombre (p.e. "capital"), pero con diferentes significados y espacios semánticos (término geográfico/término económico-financiero).
capital <país nombre=³España´> <capital>Madrid</capital> </país> capital <inversión> <capital>2000¼</capital> </inversión>

Ante la ambigüedad, surgió la pregunta de cómo combinar en un mismo documento varios vocabularios. <inversiones> <país nombre=³España´> <capital>Madrid</capital> <capital>2000¼</capital>
65

DTD & XML Esquema 

Namespaces
Solución: asignar un nombre único a cada etiqueta creando una autoridad mundial que asignara dicho nombre, por eso se pensó en los URIs. Un URI es un identificador global único. Aquí no se trata de utilizar un URI como enlace, ni tiene por qué tener contenido, los URI sólo se utilizan para que el nombre sea único. Ejemplo: http://www.hipertexto.info Los nombres de espacio (namespaces) establecidos en la especificación del W3 Consortium Namespaces in XML (http://www.w3.org/TR/REC-xmlnames/) sirven para proveer un método simple para calificar los nombres que se usan en los documentos XML por asociación con los namespaces identificados por URI (Uniform Resource Identifier). Este Identificador de Recursos Uniforme es un método que combina URNs y URLs, esto es, nombres/direcciones y que sirve para identificar de forma universal recursos de todo tipo que existen la World Wide Web.

66

DTD & XML Esquema 

Namespaces
En nuestro ejemplo, la solución estaría en asociar a cada etiqueta un URI que indicara a qué espacio de nombres pertenece:
[http:www.bolsa.es]:capital [http:www.geograf.com]:capital Por ejemplo, de la siguiente forma: <[http://www.bolsa.es]:inversiones> <[http://www.geograf.com]:país [http://www.geograf.com]:nombre=³España´> <[http://www.geograf.com]:capital>Madrid </[http://www.geograf.com]:capital> <[http://www.bolsa.es]:capital>2000¼ </[http://www.bolsa.es]:capital> </[http://www.bolsa.es]:país> ... </[http://www.bolsa.es]:inversiones>
67

DTD & XML Esquema 

Namespaces
Asignando alias:

xmlns:alias define alias en el ámbito de un elemento <bolsa:inversiones xmlns:bolsa=³http://www.bolsa.es´ xmlns:geograf=³http://www.geograf.com´> <geograf:país geograf:nombre=³España´> <geograf:capital>Madrid</geograf:capital> <bolsa:capital>2000¼</bolsa:capital> </geograf:país> ... </bolsa:inversiones>

68

Validación: Esquema XML  

Un esquema XML permite describir la estructura de un documento XML, con el fin de poder validar si su estructura es válida para un contexto determinado. El propósito de un esquema XML es definir los componentes válidos de un documento XML: 
    

elementos que pueden aparecer atributos elementos hijos orden y número de los elementos tipos de datos valores por defecto y fijos

69

Validación: Esquemas XML 

Los esquemas XML han sustituido a los DTD como instrumento de validación de documentos XML, debido a: 
 

Soporta tipos de datos Está escrito en XML Es extensible 

Actualmente es una recomendación del W3C.

70

Validación: Esquemas XML
<?xml version="1.0" encoding="UTF-8"?> <correo xmlns="http://www.idee.es xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.idee.es correo.xsd"> <origen>afrodriguez@mfom.es</origen> <destino>jaajimenez@mfom.es<destino> <asunto>Avances IDEE</asunto> <texto>La IDE de Andalucía se incorporará a la IDEE en breve.</texto> </correo> <?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema targetNamespace="http://www.idee.es" xmlns=http://www.idee.es elementFormDefault="qualified"> <xs:element name="correo"> <xs:complexType> <xs:sequence> <xs:element name="origen" type="xs:string"/> <xs:element name="destino" type="xs:string"/> <xs:element name="asunto" type="xs:string"/> <xs:element name="cuerpo" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element></xs:schema>

71

Validación: Esquemas XML 

El propósito del estándar XML Schema es definir:  la estructura de los documentos XML que estén asignados a tal esquema  y los tipos de datos válidos para cada elemento y atributo. En este sentido las posibilidades de control sobre la estructura y los tipos de datos son muy amplias.  Se puede controlar la cardinalidad de los elementos (nº max y min de apariciones).  Se pueden dar valores fijos o por defecto a los elementos y atributos. Los atributos pueden ser opcionales u obligatorios.  Se pueden enumerar los valores posibles de un elemento o de un atributo.  Siguiendo la filosofía de la programación orientada a objetos, se pueden declarar elementos abstractos que pueden ser sustituidos por otros en el fichero XML.  Se pueden agrupar elementos de cara a la reutilización de código con tres opciones:  Sequence: Tienen que aparecer todos los elementos en el fichero XML y en el mismo orden en que han sido introducidos en el esquema.  Choice: Se realiza una elección entre varios elementos.  All: Si unos elementos se agrupan dentro de esta opción tienen que aparecer todos o ninguno en el fichero XML.  Se pueden importar declaraciones de otros esquemas, lo cual facilita la reutilización de código.  Los elementos importados pueden ser redefinidos.
72 

Validación: Esquemas XML 

Al restringir el contenido de los ficheros XML es posible intercambiar información entre aplicaciones con gran seguridad. Disminuye el trabajo de comprobar la estructura de los ficheros y el tipo de los datos. XML Schema tiene un enfoque modular que recuerda a la programación orientada a objetos y que facilita la reutilización de código. 

73

Validación: Esquemas XML 

Los tipos de datos tienen en XML Schema la función de las clases en la POO. El usuario puede construir tipos de datos a partir de tipos predefinidos, agrupando elementos y atributos de una determinada forma y con mecanismos de extensión parecidos a la herencia. Los tipos de datos se clasifican en función de los elementos y atributos que contienen. Los tipos de datos en XML Schema pueden ser: 
 

tipos simples: no tienen ni elementos hijos ni atributos. tipos complejos: tienen elementos hijos y/o atributos.

74

Validación  

El elemento <schema> es el elemento raíz de un esquema XML. Ejemplo:

<?xml version="1.0"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" targetNamespace="http://www.idee.es/ejemplo1" xmlns="http://www.idee.es/ejemplo1" elementFormDefault="qualified">... ... </xs:schema>

75

Validación
xmlns:xs="http://www.w3.org/2001/XMLSchema" 

Esto indica que los elementos y los tipos de datos usados en el esquema (schema, element, complexType, sequence,«) se recogen en el espacio de nombres http://www.w3.org/2001/XMLSchema. También indica que estos elementos deben ser prefijados con xs:
76

Validación
targetNamespace="http://www.idee.es/ejemplo1" 

Indica que cualquier elemento definido por el esquema (correo, origen, destino,«) proviene del espacio de nombres http://www.idee.es.

xmlns="http://www.idee.es/ejemplo1" 

Indica que el espacio de nombres por defecto es http://www.idee.es.
77

Validación
elementFormDefault="qualified" 

Indica que cualquier elemento usado en un documento XML que declara este esquema debe tener un espacio de nombres asociado.

78

Validación  

Desde el documento XML a validar se hace referencia al esquema. Ejemplo:

<?xml version="1.0" encoding="UTF-8"?> <correo xmlns="http://www.idee.es/ejemplo1 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.idee.es/ejemplo1 correo.xsd"> </correo>

79

Validación
xmlns="http://www.idee.es/ejemplo1 

Declara el espacio de nombres por defecto.

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance xsi:schemaLocation="http://www.idee.es/ejemplo1 correo.xsd" 

El atributo schemaLocation tiene dos valores. El primero es el espacio de nombres que se usa. El segundo la localización del esquema XML que se usa para ese espacio de nombres.
80

Validación 

Sintaxis de un elemento simple:

<xs:element name="xxx" type="yyy"/> 

Ejemplo:

<xs:element name= "asunto" type= "xs:string" default= "asunto vacío" />

<asunto>Información sobre la IDEE</asunto>

81

Validación 

Sólo los elementos complejos pueden tener atributos. No obstante los atributos se declaran como elementos simples. Sintaxis de un atributo: Los atributos son por defecto opcionales. Puede obligarse su uso con la propiedad use=³required´.
82 

<xs:attribute name="xxx" type="yyy"/> 

Validación  

Las restricciones se utilizan para controlar el rango de valores válidos de un elemento o atributo. Existen diferentes tipos de restricciones: 
    

enumeración número de dígitos (máximo o exacto) número máximo y mínimo de caracteres valor máximo y mínimo (incluido o no) patrón uso de espacios blancos

83

Validación 

Ejemplo:

<xs:element name="edad"><xs:simpleType> <xs:restriction base="xs:integer"> <xs:minInclusive value="0"/> <xs:maxInclusive value="100"/> </xs:restriction> </xs:simpleType></xs:element> <xs:element name="modeloCoche"><xs:simpleType> <xs:restriction base="xs:string"> <xs:enumeration value="utilitario"/> <xs:enumeration value="monovolumen"/> <xs:enumeration value="sedán"/> </xs:restriction> </xs:simpleType></xs:element>
84

Validación  

Un elemento complejo contiene otros elementos y/o atributos. Un elemento complejo puede definirse directamente por el nombre del elemento:

<xs:element name="empleado"> <xs:complexType> <xs:sequence> <xs:element name= "nombre" type="xs:string"/> <xs:element name= "apellidos" type="xs:string"/> </xs:sequence> </xs:complexType> </xs:element>

85

La familia XML   

 

XSLT: eXtensible Style Sheet Transforms. Permite transformar un documento XML en otro documento XML de otro dialecto, o en otro formato distinto. Xpath: (Muy relacionado con XSLT) Permite referenciar partes de un documento XML. Xlink: Enlaces a otros documentos XML. DOM: Document Object Model. API orientada a objetos para acceder al contenido de un documento XML. SAX: Simple API for XML. API orientada a eventos para acceder al contenido de un documento.

86

Sign up to vote on this title
UsefulNot useful