Title: ESPECIFICACI
1ESPECIFICACIÓN XML 1.0
- Alberto Gimeno Arnal
- alberto.gimeno_at_gmail.com
Área de Lenguajes y Sistemas Informáticos Dpto.
de Informática e Ingeniería de Sistemas Universida
d de Zaragoza
2XML Reglas.
- XML debe ser utilizable directamente sobre
Internet. - XML debe soportar una amplia variedad de
aplicaciones. - XML debe ser compatible con SGML.
- Ha de resultar fácil escribir programas que
procesen documentos XML. - El número de características opcionales en XML
debe ser mantenido en un mínimo, idealmente cero. - 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.
- La brevedad en la marcación reviste mínima
importancia.
Alberto Gimeno Arnal
XML 1.0
2
3XML Soporta.
- Etiquetas de elemento
- Instrucciones de procesamiento
- Declaraciones de tipos de documentos
- Referencia de entidades
- Comentarios
- Secciones marcadas
4XML Estructura.
- lt?xml version1.0 encodingiso-8859-1
standaloneyesno?gt - lt!DOCTYPE documento SYSTEM "Prueba.dtd"gt
- ltdocumentogt
- lttitulogt
- Prueba
- lt/titulogt
- ltcontenidogt
- ltparrafogt
- ltlistagt
- ltelemento atributovalor1gt
- Primer elemento
- lt/elementogt
- ltelemento atributovalor2gt
- Segundo elemento
- lt/elementogt
- lt/listagt
- lt/parrafogt
- lt/contenidogt
- lt/documentogt
5XML Elementos.
6XML Instruc. de procesamiento.
- Los documentos XML deben empezar con la directiva
lt?xml version1.0 ?gt, 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.
- lt!DOCTYPE documento SYSTEM "Prueba.dtd"gt
Alberto Gimeno Arnal
XML 1.0
6
7XML Referencias a entidades.
- Por ejemplo, podrían ser
- lt!ENTITY amp 38gt lt! ampersand --gt
- lt!ENTITY lt 60gt lt! menor que --gt
- lt!ENTITY euro 8364gt lt! --gt
- En el documento xml, bastará con poner lt o
euro
Alberto Gimeno Arnal
XML 1.0
7
8XML Secciones CDATA.
- Se evita el análisis sintáctico del texto
- lt!CDATA
- lt!ENTITY amp 38gt lt! ampersand --gt
- ltCODIGO_Cgt
- pq?campo
- a(xlty)?3344
- lt/CODIGO_Cgt
- gt
Alberto Gimeno Arnal
XML 1.0
8
9XML 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. - ltpasdirecciongt para uso por los
administrativos. - ltpdidirecciongt para uso por el profesorado.
- Para usar los espacios de nombres en un
documento, debemos declararlo previamente
(xmlns) - lt?xml version1.0 encodingiso-8859-1?gt
- ltpersonal
- xmlnsalumnhttp//cps.unizar.es/PAS
- xmlnspdihttp//cps.unizar.es/PDI
Alberto Gimeno Arnal
XML 1.0
9
10XML Modelar datos
- Existen dos tipos
- Forma simple DTDs (internas /externas)
- lt!DOCTYPE ElementoRaiz SYSTEMPUBLIC
RefDTDExterna DeclacDTDInternagt - Forma extensa XML Schemas
- ltSchema nameesqAgenda xmlnsurn-microsoft-com
xml-datagt - lt! Contenido del esquema--gt
- lt/Schemagt
Alberto Gimeno Arnal
XML 1.0
10
11DTD Estructura.
- lt!ELEMENT agenda (contacto)gt
- lt!ELEMENT contacto (nombre, apellidos,
direccion, cp, ciudad, provincia, tfno, correo)gt - lt!ATTLIST nombre clase (teoria problemas
practicas) "problemas"gt - lt!ELEMENT tfno (movil, casa?)gt
- lt!ELEMENT nombre (PCDATA)gt
- lt!ELEMENT apellidos (PCDATA)gt
- lt!ELEMENT direccion (PCDATA)gt
- lt!ELEMENT cp (PCDATA)gt
- lt!ELEMENT ciudad (PCDATA)gt
- lt!ELEMENT provincia (PCDATA)gt
- lt!ELEMENT movil (PCDATA)gt
- lt!ELEMENT casa (PCDATA)gt
- lt!ELEMENT correo (PCDATA)gt
Alberto Gimeno Arnal
XML 1.0
11
12DTD
Símbolo Descripción
() Los paréntesis agrupan subetiquetas lt!ELEMENT Ingrediente (Cantidad,Item)gt
, 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 lt!ELEMENT Item (PCDATA)gt
Alberto Gimeno Arnal
XML 1.0
12
13DTD Tipos de Declaraciones.
- Tipos de elementos. (lt!ELEMENT)
- EMPTY
- PCDATA
- ANY
- Listas de atributos. (lt!ATTLIST)
- lt!ATTLIST elemento atributo tipo-atributo
valor-defectogt - Entidades. (lt!ENTITY)
- Notaciones. (lt!NOTATION)
Alberto Gimeno Arnal
XML 1.0
13
14DTD 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
14
15DTD 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
15
16DTD. Referencias.
- Embebido o interna
- lt?xml version"1.0"?gt
- lt!DOCTYPE Receta
- lt!ELEMENT Receta (Nombre, Descripcion?,
- .gt
- Enlace externo
- lt?xml version1.0?gt
- lt!DOCTYPE Receta SYSTEM receta.dtdgt
- ltRecetagt
- .
Alberto Gimeno Arnal
XML 1.0
16
17XML 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
17
18XML Schema Estructura.
- lt?xml version"1.0"?gt
- ltSchema nameesqPeliculas" xmlns"urnschemas-mi
crosoft-comxml-data" - xmlnsdt"urnschemas-microsoft-comdatatypes"gt
- ltElementType nametitulo" content"textOnly"/gt
- ltElementType name"writer" content"textOnly"/gt
- ltElementType name"producer" content"textOnly"/
gt - ltElementType name"director" content"textOnly"/
gt - ltElementType name"actor" content"textOnly"/gt
- ltElementType name"comments" content"textOnly"/
gt - ltAttributeType namegenero" dttypeenumeratio
n " - dtvalues"drama comedia aventuras sci-fi
misterio horror romance documental" - default"drama"/gt
- ltAttributeType namecategoria"
dttype"enumeration" - dtvalues"G PG PG-13 R X" default"PG"/gt
- ltAttributeType namevaloracion"
dttype"enumeration" - dtvalues"1 2 3 4 5" default"3"/gt
- ltAttributeType nameaño" dttype"int"/gt
- ltElementType namepeliculas"
content"eltOnly"gt - ltelement typepeli" minOccurs"1"
maxOccurs""/gt
Alberto Gimeno Arnal
XML 1.0
18
19XML Schema Tipos de Declaraciones.
- Describe los tipos de datos en los elementos y
los atributos. (ltdatatype) - Describe tipos de elementos. (ltElementType)
- Identifica un elemento que puede reproducirse
dentro de otro. (ltelement) - Organiza los elementos en grupos. (group)
- Describe un tipo de atributo. (ltAttributeType)
- Identifica un atributo que puede reproducirse
dentro de otro. (ltattribute)
Alberto Gimeno Arnal
XML 1.0
19
20XML 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) - dttype, tipo de elemento. (coincide con los
tipos de datatype)
Alberto Gimeno Arnal
XML 1.0
20
21XML Schema AttributeType.
- name, nombre del tipo de atributo.
- dttype, tipo de datos del atributo.
- dtvalues, lista de los posibles valores del
atributo (dttypeenumeration) - default.
- required.
Alberto Gimeno Arnal
XML 1.0
21
22XML 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
22
23XML Schema Tipos de datos.
- Declaración al principio del documento XML Schema
? xmlnsdt
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
23
24Plantilla XSL Estructura.
- lt?xml version"1.0"?gt
- ltxslstylesheet version"1.0" xmlnsxsl"http//ww
w.w3.org/1999/XSL/Transform"gt - ltxsltemplate match"/"gt
- lthtmlgtltheadgtlttitlegtAGENDA XMLlt/titlegtlt/headgtltbody
gt - ltxslfor-each select'agenda/contacto'gt
- ltxslvalue-of select'nombre' /gt,
- ltbgtltxslvalue-of select'apellidos' /gtlt/bgt
ltbr/gt - ltbgtltxslvalue-of select'direccion'/gtlt/bgt
ltbr/gt - ltxslvalue-of select'cp'/gt
- ltigtltxslvalue-of select'ciudad'/gtlt/igt (
- ltbgtltxslvalue-of select'provincia'/gtlt/bgt)
ltbr/gt - Tfno.ltxslvalue-of select'tfno/movil'/gt -
- ltxslvalue-of select'tfno/casa'/gt ltbr/gt
- E-mail ltxslvalue-of select'correo'/gt ltbr/gt
- lthr /gt
- lt/xslfor-each gt
- lt/bodygtlt/htmlgt
- lt/xsltemplategt
Alberto Gimeno Arnal
XML 1.0
24
25XSLT Tipos de elementos.
- xslvalue-of, insertar el valor de un elemento o
atributo (select). - xslif, establece una ramificación condicionada
(match). - xslfor-each, bucle (select, order-by)
- xslapply-templates, aplica plantillas
secundarias (select).
Alberto Gimeno Arnal
XML 1.0
25
26XPath.
- 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
26
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
27
28XPath Tipos de datos
- mode-set, conjunto de datos.
- boolean, (truefalse).
- number, número de coma flotante.
- string, cadena de texto.
Alberto Gimeno Arnal
XML 1.0
28
29Vincular 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
29
30XLink Estructura.
- Simple
- ltAUTOR xlinkhrefautores.xmljuan
xlinkshownewgt - ltNOMBREgtJuan Primero Segundolt/NOMBREgt
- lt/AUTORgt
- Extendido
- ltEDITOR_AUTOR xlinkextendedgt
- ltxlinklocator hrefana ideditor/gt
- ltxlinklocator hrefautores.xmljuan
idautor/gt - ltxlinkarc fromeditor toautor
showreplace/gt - lt/EDITOR_AUTOR xlinkextendedgt
Alberto Gimeno Arnal
XML 1.0
30
31Patrón XSL Estructura.
- Search context
- agenda.xml
- Query
- ./tfno
- Result Set
- ltxqlresultgt
- lttfnogt56983265lt/tfnogt
- lttfnogt58746912lt/tfnogt
- lttfnogt65229105lt/tfnogt
- lt/xqlresultgt
Alberto Gimeno Arnal
XML 1.0
31
32XSL Cadenas de consulta.
- Jerárquicas
- Consultas primarias-secundarias, /
- Ascendiente-Descendiente, //
- Comodines,
- Secuenciales
- Precedencias inmediatas,
- Precedencias,
- Localizar un atributo
- Devolver atributos, _at_
- Filtrar, contacto_at_clasepracticas/nombre
- Métodos text(), value(), nodeType(), nodeName(),
index(), end().
Alberto Gimeno Arnal
XML 1.0
32
33XSL Consultas.
- ltxslstylesheet xmlnsxsl"http//www.w3.org/TR/WD
-xsl"gt - ltxsltemplate match"/"gt
- ltxslapply-templates select//contacto'gt
- lt/xsltemplategt
- ltxsltemplate match" contacto_at_clasepracticas
/nombre "gt - ltbgtltxslvalue-of selectnombre'/gtlt/bgt ltbr/gt
- lt/xsltemplategt
- lt/xslstylesheetgt
Alberto Gimeno Arnal
XML 1.0
33
34Analizadores 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, scripts (java, vb, c, c,)
- SAX, JAVA.
Alberto Gimeno Arnal
XML 1.0
34
35DOM 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
35
36SAX Simple API para XML.
- Parser.parser()/HandlerBase()
- Interfaz DocumentHandler
- Retrollamadas (elementos, documentos, texto)
- Procesamiento (instrucciones, plantillas)
- Objetos (ErrorHandler, InputSource, Locator)
Alberto Gimeno Arnal
XML 1.0
36