Top Banner
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])
22

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

Oct 02, 2018

Download

Documents

lamtuong
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

"

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])

Page 2: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

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

Page 3: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

 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

Page 4: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

 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

Page 5: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

<?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

Page 6: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

  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

Page 7: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

  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

Page 8: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

 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

Page 9: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

  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

Page 10: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

  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

Page 11: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

  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

Page 12: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

  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

Page 13: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

<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

Page 14: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

 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

Page 15: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

 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

Page 16: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

 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

Page 17: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

  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

Page 18: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

  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

Page 19: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

 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

Page 20: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

 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

Page 21: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

<?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

Page 22: Sistemas de Información 12/13 XML (eXtensible Mark …webdiis.unizar.es/~raqueltl/SI/T7_XML.pdf · </apuntes> Sistemas de Información Raquel Trillo Lado Validación de documentos

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