ESPECIFICACIÓN XML 1.0

Post on 07-Jan-2016

84 views 0 download

description

ESPECIFICACIÓN XML 1.0. Alberto Gimeno Arnal alberto.gimeno@gmail.com. Área de Lenguajes y Sistemas Informáticos Dpto. de Informática e Ingeniería de Sistemas Universidad de Zaragoza. XML: Reglas. XML debe ser utilizable directamente sobre Internet. - PowerPoint PPT Presentation

Transcript of ESPECIFICACIÓN XML 1.0

ESPECIFICACIÓN XML 1.0

Alberto Gimeno Arnal

alberto.gimeno@gmail.com

Área de Lenguajes y Sistemas InformáticosDpto. de Informática e Ingeniería de Sistemas

Universidad de Zaragoza

Alberto Gimeno Arnal XML 1.0 2

XML: Reglas.

1. XML debe ser utilizable directamente sobre Internet.2. XML debe soportar una amplia variedad de aplicaciones.3. XML debe ser compatible con SGML.4. Ha de resultar fácil escribir programas que procesen

documentos XML.5. El número de características opcionales en XML debe ser

mantenido en un mínimo, idealmente cero.6. Los documentos XML deben ser legibles por un ser

humano y razonablemente claros.7. El diseño de XML debe ser preparado rápidamente.8. El diseño de XML debe ser formal y conciso.9. Los documentos XML han de ser fáciles de crear.10. La brevedad en la marcación reviste mínima importancia.

Alberto Gimeno Arnal XML 1.0 3

XML: Soporta.

• Etiquetas de elemento

• Instrucciones de procesamiento

• Declaraciones de tipos de documentos

• Referencia de entidades

• Comentarios

• Secciones marcadas

Alberto Gimeno Arnal XML 1.0 4

XML: Estructura.<?xml version=“1.0” encoding=“iso-8859-1” standalone=“yes|no”?><!DOCTYPE documento SYSTEM "Prueba.dtd"><documento>

<titulo>Prueba

</titulo><contenido>

<parrafo><lista>

<elemento atributo=“valor1”>Primer elemento

</elemento><elemento atributo=“valor2”>

Segundo elemento</elemento>

</lista></parrafo>

</contenido></documento>

Alberto Gimeno Arnal XML 1.0 5

XML: Elementos.

Alberto Gimeno Arnal XML 1.0 6

XML: Instruc. de procesamiento.

Los documentos XML deben empezar con la directiva <?xml version=“1.0” ?>, opcionalmente:

standalone encoding

XML: Declaración de tipo de documento(DTD)

• Especificar el elemento raiz del documento.• Definir elementos, atributos y entidades especificas del

documento (DTD interno).• Identificar una DTD externa en el documento.

<!DOCTYPE documento SYSTEM "Prueba.dtd">

Alberto Gimeno Arnal XML 1.0 7

XML: Referencias a entidades.

Por ejemplo, podrían ser:

<!ENTITY amp “&#38;”> <!– ampersand -->

<!ENTITY lt “&#60;”> <!– menor que -->

<!ENTITY euro “&#8364;”> <!– € -->

En el documento xml, bastará con poner &lt; o &euro;

Alberto Gimeno Arnal XML 1.0 8

XML: Secciones CDATA.

Se evita el análisis sintáctico del texto:

<![CDATA[ <!ENTITY amp “&#38;”> <!– ampersand -->

<CODIGO_C>

*p=&qcampo;

a=(x<y)?33:44;

</CODIGO_C>

]]>

Alberto Gimeno Arnal XML 1.0 9

XML: Espacios de nombre.Los espacios de nombres son un prefijo que ponemos a las etiquetas de XML para indicar a qué contexto se refiere la etiqueta en cuestión.•<pas:direccion>: para uso por los administrativos.•<pdi:direccion>: para uso por el profesorado.

Para usar los espacios de nombres en un documento, debemos declararlo previamente (xmlns):

<?xml version=“1.0” encoding=“iso-8859-1”?>

<personal

xmlns:alumn=“http://cps.unizar.es/PAS”

xmlns:pdi=“http://cps.unizar.es/PDI”

Alberto Gimeno Arnal XML 1.0 10

XML: Modelar datos

Existen dos tipos:–Forma simple: DTD’s (internas /externas)<!DOCTYPE ElementoRaiz SYSTEM|PUBLIC RefDTDExterna [DeclacDTDInterna]>

–Forma extensa: XML Schema’s<Schema name=“esqAgenda” xmlns=“urn-microsoft-com:xml-data”>

<!– Contenido del esquema-->

</Schema>

Alberto Gimeno Arnal XML 1.0 11

DTD: Estructura.<!ELEMENT agenda (contacto)+><!ELEMENT contacto (nombre, apellidos, direccion+, cp, ciudad,

provincia, tfno, correo)><!ATTLIST nombre clase (teoria | problemas | practicas) "problemas"><!ELEMENT tfno (movil, casa?)><!ELEMENT nombre (#PCDATA)><!ELEMENT apellidos (#PCDATA)><!ELEMENT direccion (#PCDATA)><!ELEMENT cp (#PCDATA)><!ELEMENT ciudad (#PCDATA)><!ELEMENT provincia (#PCDATA)><!ELEMENT movil (#PCDATA)><!ELEMENT casa (#PCDATA)><!ELEMENT correo (#PCDATA)>

Alberto Gimeno Arnal XML 1.0 12

DTD: Símbolo Descripción

() Los paréntesis agrupan subetiquetas

<!ELEMENT Ingrediente (Cantidad,Item)>

, Ordenación exacta de los elementos

(Nombre, Descripcion?,

Ingredientes?, Instrucciones?)

| Uno sólo de los elementos indicados

(Cocer | Freir)

Si no indicamos nada los elementos aparecen una sola vez

(Cantidad, Item)

+ Una o más veces

Paso+

? Elemento opcional

Instrucciones?

* Cero o más veces

Ingrediente*

#PCDATA Parsed Character Data

<!ELEMENT Item (#PCDATA)>

Alberto Gimeno Arnal XML 1.0 13

DTD: Tipos de Declaraciones.

• Tipos de elementos. (<!ELEMENT)– EMPTY– #PCDATA– ANY

• Listas de atributos. (<!ATTLIST)<!ATTLIST elemento atributo tipo-atributo valor-defecto>

• Entidades. (<!ENTITY)

• Notaciones. (<!NOTATION)

Alberto Gimeno Arnal XML 1.0 14

DTD: Atributos.Valor Descripción

CDATA El valor son caracteres alfanuméricos

(v1 | v2 | ..) El valor será uno de la lista explicitada

ID El valor será un identificador único

IDREF El valor es el ID de otro elemento

IDREFS El valor es una lista de ID otros elementos

NMTOKEN El valor es un nombre XML válido

NMTOKENS El valor es una lista de nombres XML válidos

ENTITY El valor es una entidad

ENTITIES El valor es una lista de entidades

NOTATION El valor es el nombre de una notación

xml: El valor es un valor XML predefinido

Alberto Gimeno Arnal XML 1.0 15

DTD: Atributos. Valores

Valor Descripción

valor El valor por defecto del atributo

#REQUIRED El valor del atributo debe aparecer obligatoriamente en el elemento

#IMPLIED El atributo no tiene por qué ser incluido

#FIXED valor El valor del atributo es fijo

Alberto Gimeno Arnal XML 1.0 16

DTD. Referencias.

• Embebido o interna:<?xml version="1.0"?>

<!DOCTYPE Receta [<!ELEMENT Receta (Nombre, Descripcion?,

…….]>

• Enlace externo:<?xml version=“1.0”?>

<!DOCTYPE Receta SYSTEM “receta.dtd”><Receta>…….

Alberto Gimeno Arnal XML 1.0 17

XML Schema. Ventajas sobre DTD

• XML Schema se basa en XML, lo cual permite validar los documentos.

• Soporta una serie de tipos de datos (int, float, boolean, date, etc.).

• Vocabulario abierto: permite definir nuevos tipos de datos y establecer nuevas relaciones de herencia.

• Soporta spacenames asociar nodos individuales con las declaraciones de tipos de esquema.

• Soporta grupos de atributos combinación de atributos.

Alberto Gimeno Arnal XML 1.0 18

XML Schema: Estructura.<?xml version="1.0"?><Schema name=“esqPeliculas" xmlns="urn:schemas-microsoft-com:xml-data" xmlns:dt="urn:schemas-microsoft-com:datatypes"> <ElementType name=“titulo" content="textOnly"/> <ElementType name="writer" content="textOnly"/> <ElementType name="producer" content="textOnly"/> <ElementType name="director" content="textOnly"/> <ElementType name="actor" content="textOnly"/> <ElementType name="comments" content="textOnly"/> <AttributeType name=“genero" dt:type=“enumeration " dt:values="drama comedia aventuras sci-fi misterio horror romance documental" default="drama"/> <AttributeType name=“categoria" dt:type="enumeration" dt:values="G PG PG-13 R X" default="PG"/> <AttributeType name=“valoracion" dt:type="enumeration" dt:values="1 2 3 4 5" default="3"/> <AttributeType name=“año" dt:type="int"/> <ElementType name=“peliculas" content="eltOnly"> <element type=“peli" minOccurs="1" maxOccurs="*"/> </ElementType></Schema>

Alberto Gimeno Arnal XML 1.0 19

XML Schema: Tipos de Declaraciones.

• Describe los tipos de datos en los elementos y los atributos. (<datatype)

• Describe tipos de elementos. (<ElementType)• Identifica un elemento que puede reproducirse

dentro de otro. (<element)• Organiza los elementos en grupos. (group)• Describe un tipo de atributo. (<AttributeType)• Identifica un atributo que puede reproducirse

dentro de otro. (<attribute)

Alberto Gimeno Arnal XML 1.0 20

XML Schema: ElementType.

• name, nombre del elemento.• model • content, tipo de contenido (textOnly,

eltOnly, empty, mixed)• order, orden de los elementos secundarios

y grupos que hay en el elemento (one, seg, many)

• dt:type, tipo de elemento. (coincide con los tipos de datatype)

Alberto Gimeno Arnal XML 1.0 21

XML Schema: AttributeType.

• name, nombre del tipo de atributo.

• dt:type, tipo de datos del atributo.

• dt:values, lista de los posibles valores del atributo (dt:type=“enumeration”)

• default.

• required.

Alberto Gimeno Arnal XML 1.0 22

XML Schema: element/attribute.

• type, tipo del elemento/atributo. Debe ser el nombre de un tipo de elemento ya declarado.

• minOccurs, numero mínimo de veces que el elemento/atributo debe producirse.

• maxOccurs, numero máximo de veces que el elemento/atributo debe producirse

Alberto Gimeno Arnal XML 1.0 23

XML Schema: Tipos de datos.

• Declaración al principio del documento XML Schema xmlns:dt

char boolean int float number

i1 fixed 14.4 ui1 bin.hex dateTime

i2 r4 ui2 bin.base64 dateTime.tz

i4 r8 ui4 date time

uuid uri time.tz

Alberto Gimeno Arnal XML 1.0 24

Plantilla XSL: Estructura.<?xml version="1.0"?><xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"><xsl:template match="/">

<html><head><title>AGENDA XML</title></head><body >

<xsl:for-each select='agenda/contacto'><xsl:value-of select='nombre' />,<b><xsl:value-of select='apellidos' /></b> <br/> <b><xsl:value-of select='direccion'/></b> <br/><xsl:value-of select='cp'/><i><xsl:value-of select='ciudad'/></i> (<b><xsl:value-of select='provincia'/></b>) <br/>Tfno.:<xsl:value-of select='tfno/movil'/> - <xsl:value-of select='tfno/casa'/> <br/>E-mail: <xsl:value-of select='correo'/> <br/><hr />

</xsl:for-each ></body></html>

</xsl:template>

Alberto Gimeno Arnal XML 1.0 25

XSLT: Tipos de elementos.

• xsl:value-of, insertar el valor de un elemento o atributo (select).

• xsl:if, establece una ramificación condicionada (match).

• xsl:for-each, bucle (select, order-by)

• xsl:apply-templates, aplica plantillas secundarias (select).

Alberto Gimeno Arnal XML 1.0 26

XPath.

• Es un lenguaje no XML.• Proporciona una vía abstracta de dirigirse

a partes de documentos XML.• Sintaxis diseñada para ser usada con URI

y valores de atributos XML (máxima simplicidad).

• Organización del documento en árbol de nodos

• Recorre el árbol a través de expresiones.

Alberto Gimeno Arnal XML 1.0 27

Árbol XPath:

• Nodos raíz.

• Nodos de elementos.

• Nodos de texto.

• Nodos de atributos.

• Nodos de espacios de nombres.

• Nodos de instrucciones de procesamiento.

• Nodos de comentarios.

Alberto Gimeno Arnal XML 1.0 28

XPath: Tipos de datos

• mode-set, conjunto de datos.

• boolean, (true|false).

• number, número de coma flotante.

• string, cadena de texto.

Alberto Gimeno Arnal XML 1.0 29

Vincular documentos: XLink y XPointer.

• XLink, determina el documento al que se desea enlazar. – type(locator, simple, extend, arc, group), href, from,

to, show, actuate, role, title.

• XPointer, marca el lugar exacto de dicho documento.– Rutas absolutas: Root(/), id(Name), here(), origin() – Rutas relativas: child, parent, descendant,

descendant-or-seft, ancestor, ancestor-or-seft, preceding-sibling, following-sibling, preceding, following, seft, attribute.

Alberto Gimeno Arnal XML 1.0 30

XLink: Estructura.• Simple:<AUTOR xlink:href=“autores.xml#juan” xlink:show=“new”>

<NOMBRE>Juan Primero Segundo</NOMBRE></AUTOR>

• Extendido:<EDITOR_AUTOR xlink:extended>

<xlink:locator href=“#ana” id=“editor”/><xlink:locator href=“autores.xml#juan” id=“autor”/><xlink:arc from=“editor” to=“autor” show=“replace”/>

</EDITOR_AUTOR xlink:extended>

Alberto Gimeno Arnal XML 1.0 31

Patrón XSL: Estructura.Search context

agenda.xmlQuery ./tfnoResult Set

<xql:result><tfno>56983265</tfno><tfno>58746912</tfno><tfno>65229105</tfno>

</xql:result>

Alberto Gimeno Arnal XML 1.0 32

XSL: Cadenas de consulta.

• Jerárquicas:– Consultas primarias-secundarias, /– Ascendiente-Descendiente, //– Comodines, *

• Secuenciales:– Precedencias inmediatas, ;– Precedencias, ;;

• Localizar un atributo:– Devolver atributos, @– Filtrar, ‘contacto[@clase=‘practicas’]/nombre’

• Métodos: text(), value(), nodeType(), nodeName(), index(), end().

Alberto Gimeno Arnal XML 1.0 33

XSL: Consultas.

<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl">

<xsl:template match="/">

<xsl:apply-templates select=‘//contacto'></xsl:template>

<xsl:template match=" contacto[@clase=‘practicas’]/nombre ">

<b><xsl:value-of select=‘nombre'/></b> <br/></xsl:template>

</xsl:stylesheet>

Alberto Gimeno Arnal XML 1.0 34

Analizadores sintácticos: parser.

Validación de los documentos XML, interfaz (API) que proporciona llamadas a funciones y procedimientos que proporcionen métodos y mecanismos para manipular documentos XML, existen dos tipos:

•DOM, script’s (java, vb, c++, c#,…)

•SAX, JAVA.

Alberto Gimeno Arnal XML 1.0 35

DOM: Modelo de Objeto de Documento.

• Interfaz (Document, DocumentFragment, Node, NodeList, NamedNodeMap, CharacterData, Attr, Element, Text)

• Nodos y secciones (CDATASection, Notation,

EntityReference, Entity, ProcessingInstruction)• Objetos.

– Métodos.– Atributos.

Alberto Gimeno Arnal XML 1.0 36

SAX: Simple API para XML.

• Parser.parser()/HandlerBase()

• Interfaz DocumentHandler

• Retrollamadas (elementos, documentos, texto)

• Procesamiento (instrucciones, plantillas)

• Objetos (ErrorHandler, InputSource, Locator)