+ All Categories
Home > Documents > Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf ·...

Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf ·...

Date post: 02-Oct-2018
Category:
Upload: lamtuong
View: 214 times
Download: 0 times
Share this document with a friend
22
Sistemas de Información 12/13 XML (eXtensible Mark-up Language) Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza Raquel Trillo Lado ([email protected])
Transcript

"

Sistemas de Información 12/13 XML (eXtensible Mark-up Language)

Departamento Informática e Ingeniería de Sistemas Universidad de Zaragoza

Raquel Trillo Lado ([email protected])

Guión

 Introducción

 Ejemplos

 Documentos vs apliaciones XML

 Espacios de nombres

 Validación de documentos XML  DTDs (Document Type Definition)  XSD (XML Schema Document)

 Bibliografía Sistemas de Información Raquel Trillo Lado

 XML (eXtensible Markup Language)   Lenguaje basado en etiquetas estandarizado por el

W3C (1998):   Las etiquetas no están predefinidas sino que las

definen los usuarios para un dominio/tarea específico

 Define reglas sobre cómo se crean documentos de texto usando las etiquetas:

  Los documentos tienen forma de árbol (una etiqueta raíz)

  Las etiquetas se abren y se cierran y pueden tener atributos cuyo valor se indica entre comillas

  … Sistemas de Información Raquel Trillo Lado

Introducción

 XML (eXtensible Markup Language)  Se diseño para almacenar y transportar datos (no

para mostrar como HTML)  Se usa fundamentalmente para:

  Intercambio de datos entre diferentes aplicaciones (sencillo de “parsear”)

  Establecer los parámetros de configuración de diversas aplicaciones (comprensible si las etiquetas son representativas y extensible)

  Generar la vista de una aplicación en función del dispositivo que la accede

Sistemas de Información Raquel Trillo Lado

Introducción

<?xml version="1.0" encoding="ISO-8859-1"?> <!-- Fichero XML para intercambio de notas --> <apuntes> <nota fecha=“15/09/2012”> <de>Pepe</de> <para>Mariano</para> <cabecera>Recordatorio importante SI</cabecera> <detalles> No olvides que este fin de semana tenemos que acabar las prácticas de Sistemas de Información! </detalles> </nota> <nota> …. </apuntes>

Sistemas de Información Raquel Trillo Lado

Ejemplos

  Declaración de XML:   Indica la versión de XML que se está usando (no la versión

del documento) y la codificación de caracteres del documento de texto (por defecto se asume UTF-8)

  No es obligatoria pero si aconsejable para que se interprete adecuadamente el contenido del documento

  Si se incluye debe aparecer al principio del documento

  El elemento raíz:   Es obligatorio (en el ejemplo <apuntes>)

  Entre el inicio y el cierre de un elemento puede haber diferentes elementos (otros elementos) o texto

  Los elementos pueden tener atributos (en el ejemplo fecha)

Sistemas de Información Raquel Trillo Lado

Ejemplos

  Diferentes alternativas para representar la misma información:

<apuntes> <nota fecha=“15/09/2012” de=“Pepe” para=“Mariano” > <cabecera>Recordatorio importante SI</cabecera> <detalles> No olvides que este fin de semana tenemos

que acabar las prácticas de Sistemas de Información </detalles> </nota> …. </apuntes>

  En general se sigue la siguiente convención:   Usar elementos para datos multivaluados o gran cantidad de texto   Usar atributos en caso contrario

Sistemas de Información Raquel Trillo Lado

Ejemplos

 Para ciertos caracteres es preciso emplear secuencias de escape:

  < &lt;   > &gt;   & &amp;   “ &quot;   ‘ &apos;

 Si se desea incluir un texto largo con muchos caracteres especiales se usan las regiones CDATA para evitar las secuencias de escape:   Puede contener cualquier secuencia excepto ]]>

Sistemas de Información Raquel Trillo Lado

Ejemplos

  Diferentes alternativas para representar la misma información:

<apuntes> <nota fecha=“15/09/2012” de=“Pepe” para=“Mariano” > <cabecera>Copia y pega esto en el fichero de conf.</cabecera> <detalles> Copia lo siguiente tal cual: <![CDATA[ <servlet> <servlet-name>InsertUser</servlet-name> <servlet-class>ej1.InsertUserServlet</servlet-class> </servlet> ]]> </detalles> </nota> …. </apuntes>

Sistemas de Información Raquel Trillo Lado

Ejemplos

  Se distingue entre mayúsculas y minúsculas

  Se conservan espacios

  Reglas nombrado elementos:   No empieza por número o carácter de puntuación   No empieza por xml, XML, xML, etc.   No puede contener espacios   Evitar – (resta), .(Java) y : (prefijos)

  Comentarios:   Entre marcas <!-- … -->   No permiten la secuencia --   Son multilínea

Sistemas de Información Raquel Trillo Lado

Ejemplos

  Documento XML:   Documento de texto (secuencia de caracteres enviada por

un socket, string devuelto por una llamada a un procedimiento, etc.) que tiene formato XML

  Está “bien formado” (well-formed) cuando cumple las características que hemos enumerado (una etiqueta raíz, comentarios, anidamiento de etiquetas correcto, etc. (para permitir construir parsers eficientes)

  Aplicación XML:   Conjunto de etiquetas específicas para representar la

información de un dominio específico   DTDs (Document Type Definition) o Esquemas XML

(XML Schema)

Sistemas de Información Raquel Trillo Lado

Documentos vs aplicaciones XML

  En un mismo documento podemos mezclar etiquetas de aplicaciones XML diferentes:

  Problema: las mismas etiquetas y atributos puede haberse definido en diferentes aplicaciones con diferentes significados

  Solución: uso de espacios de nombres (concepto similar a los paquetes de Java)

  Cada espacio de nombres se asocia a una URI (p.e. una URL) que debe ser única:

  Si se usan URL como identificadores estas no tienen porque ser válidas

  En los documentos XML cada espacio de nombres se asocia con un prefijo

Sistemas de Información Raquel Trillo Lado

Espacios de nombres

<apuntes xmlns=”http://mispracticas/xml/apuntes” xmlns:time=“http://time.example.com”>

<nota> <time:date> <time:day>23</time:day> <time:month>09</time:month> <time:year>2012</time:year> </time:date> <de>Pepe</de> <para>María</para> <cabecera>Dale la comida al gato</cabecera> <detalles> La comida del gato está en …: </detalles> </nota> …. </apuntes>

Sistemas de Información Raquel Trillo Lado

Espacios de nombres

 En el ejemplo anterior suponemos que:   Existe una aplicación XML que modela información

temporal que dispone del elemento date que debe tener anidados los elementos day, month y year.

  Esta apliación se identifica con la URI http://time.example.com y para usarla empleamos el prefijo time (p.e.: <time:date>)

 Los nombres de prefijos que se usan en el documento se definen en el elemento raíz con el atributo xmlns:

  xmlns=“…” para definir el espacio de nombres por defecto   xmlns:nombrePrefijo=“….” para definir los demás espacios

de nombres y sus prefijos asociados para referenciarlos. Sistemas de Información Raquel Trillo Lado

Espacios de nombres

 Documento XML válidos:  Documento XML bien-formados (well-formed)

que cumplen con las especificaciones dadas en el correspondiente DTD o esquema XML (XML Schema-xsd)

 Para que un parser pueda comprobar si un documento es válido o no es necesario especificar a que DTD o esquema XML (xsd) hace referencia

Sistemas de Información Raquel Trillo Lado

Validación de documentos XML

bien-formados

Válidos

 Referencias al DTD: <?xml version="1.0" encoding="ISO-8859-1"?> <!DOCTYPE apuntes SYSTEM ”apuntes.dtd"> <apuntes> <nota fecha=“15/09/2012”> <de>Pepe</de> <para>Mariano</para> <cabecera>Recordatorio importante SI</cabecera> <detalles> No olvides que este fin de semana tenemos que acabar las prácticas de Sistemas de Información! </detalles> </nota> … </apuntes>

Sistemas de Información Raquel Trillo Lado

Validación de documentos XML

La URI (p.e la ruta del fichero o URL) del documento DTD

  Referencias al XML Schema: <?xml version="1.0" encoding="ISO-8859-1"?> <apuntes xmlns=“http://mispracticas/xml/apuntes” xmlns:xsi=“http://www.w3.org/2001/XMLSchema-instance”

xsi:schemaLocation=“http://mispracticas/xml/apuntes http://mispracticas/xml/apuntes.xsd”>

<nota fecha=“15/09/2012”> <de>Pepe</de> <para>Mariano</para> <cabecera>Recordatorio importante SI</cabecera> … </apuntes>

Sistemas de Información Raquel Trillo Lado

Validación de documentos XML

El atributo xsi:schemaLocation empareja cada espacio de nombres con el fichero esquema que corresponde a su definición

  El atributo xsi:schemaLocation del espacio de nombres http://www.w3.org/2001/XMLSchema-instance especifican las referencias a esquemas XML para la validación del vocabulario empleado

  El valor de este atributo es de la forma en1 uri1 …enN uriN, donde eni hace referencia al espacio de nombres i empleado en el documento y urii hace referencia a la URI del esquema XML correspondiente (que define) el espacio de nombres i

  Los pasers acceden a los esquemas indicados para la validación del documento

  No es necesario especificar la uri del espacio de nombres http://www.w3.org/2001/XMLSchema-instance porque en general los parsers tienen en local almacenada una copia de dicho esquema

Sistemas de Información Raquel Trillo Lado

Validación de documentos XML

 Document Type Definition (DTD):   Es una forma sencilla de especificar los elementos de una

aplicación XML   Más pobre semánticamente que los esquema XML   No tiene sintaxis XML   Estándard del W3C

  Esquema XML (XSD):   La especif icación resulta más compleja que si

empleásemos DTDs   Proporciona más funcionalidad que los DTDs   Sintaxis XML   Estándard del W3C

Sistemas de Información Raquel Trillo Lado

Validación de documentos XML

 Ejemplo de DTD: <!DOCTYPE apuntes [ <!ELEMENT apuntes (nota+)> <!ELEMENT nota (de,para,cabecera,cuerpo)> <!ELEMENT de (#PCDATA)> <!ELEMENT para (#PCDATA)> <!ELEMENT cabecera (#PCDATA)> <!ELEMENT cuerpo (#PCDATA)> ]>

Sistemas de Información Raquel Trillo Lado

Validación de documentos XML: DTDs

<?xml version="1.0"?> <xs:schema xmlns:xs=“http://www.w3.org/2001/XMLSchema” targetNamespace=“http://mispracticas/xml/apuntes” xmlns=“http://mispracticas/

xml/apuntes" > <xs:element name=”apuntes”> <xs:complexType> <xs:sequence> <xs:element name=”nota” maxOccurs=“unbounded”> <xs:complexType> <xs:sequence> <xs:element name=”de" type="xs:string"/> <xs:element name=”para" type="xs:string"/> <xs:element name=”cabecera" type="xs:string"/> <xs:element name=”cuerpo" type="xs:string”/> </xs:sequence> </xs:complexType> </xs:element> … </xs:schema>

Sistemas de Información Raquel Trillo Lado

Validación de documentos XML: XSD

Bibliografía

 Tutorial de XML disponible en el sitio web formativo del W3C: http://www.w3schools.com/xml/

 Fernando Be l las Permuy “ In teg rac ión deSistemas”, Ingeniería Informática, Universidad da Coruña

 Transparencias en la plataforma Blackboard 9.1 del Anillo Digital Docente (ADD): http://bb.unizar.es

Sistemas de Información Raquel Trillo Lado


Recommended