1 XML: eXtensible Markup LanguageTema 3 (no entra ni Schemas XML Path)
2 Introducción Histórica (I)XML se constituyó como estándar de la W3C en el año En 2000 se aprueba su versión 1.0 Se trata de un lenguaje de marcas, igual que HTML o su precursor SGML Se diferencia de SGML por su sencillez Se diferencia de HTML por su flexibilidad: el número de etiquetas que puede incluir un documento XML es ilimitado Al igual que HTML, es portable a cualquier plataforma
3 Introducción Histórica (II)
4 Introducción Histórica (III)Objetivos principales: – Directamente utilizable en Internet – Soporte para una amplia variedad de aplicaciones para transferencia de datos – Compatible con SGML – Posibilidad de crear sencillos procesadores de XML – Documentos XML legibles y medianamente claros (depende de la definición) – Diseño rápido del lenguaje – Simple, pero perfectamente formalizado – Documentos XML fáciles de crear
5 XML vs. HTML HTML carece de un chequeo sintáctico. Páginas con errores son mostradas en los navegadores HTML carece de estructura HTML no es orientado a objeto HTML mezcla contenido y representación Por todo esto: – HTML no puede ser fácilmente leído por una máquina – HTML nunca será un estándar de intercambio de datos XML cubre todo esto con un lenguaje de sencillez extrema
6 Características de XML (I)Es un subconjunto del lenguaje SGML Al igual que él, se utiliza para representar datos de forma estructurada (Jerárquica) Se basa en una gramática de obligado cumplimiento. Esto facilita el desarrollo de parsers y, por lo tanto, su utilización masiva La estructura interna de un documento XML puede reflejarse en otro documento denominado DTD (Document Type Definition) A diferencia de HTML, separa radicalmente la semántica del documento, de su representación gráfica
7 Documento HTML (I)
8 Documento HTML (II) En apariencia, el documento HTML anterior es correcto, sin embargo: – Existen etiquetas que nunca se cierran: – Algunas etiquetas no están bien anidadas: el primer nunca se cierra – Para un lector no humano, no se sabe qué es un libro y qué es un autor XML erradica todos estos problemas!!
9 Documento XML
10 Reglas Generales de XMLUn único elemento raíz Todo elemento debe tener etiquetas de apertura y cierre Distinción entre mayúsculas/minúsculas Anidamiento perfecto entre elementos Los valores de atributos siempre van entre comillas Los espacios en blanco se conservan Los caracteres CR/LF se transforman en LF
11 Documentos Bien Formados y VálidosSe dice que un documento es bien formado cuando: – Cumple con todas las reglas anteriormente expuestas – Contiene uno o más elementos – Hay un único elemento raíz (elemento documento) – Si el documento consta de más de una parte, todas están bien formadas – No se encuentran caracteres prohibidos en el texto Un documento es válido cuando, además de ser ‘bien formado’, cumple con las especificaciones semánticas expuestas en su plantilla (DTD o XML Schema)
12 Elementos (I) Comentarios: Instrucciones de procesamiento:– guión--> Instrucciones de procesamiento: – Instrucción ?> – La instrucción no puede incluir los caracteres ?> Secciones CDATA: – “cualquier” &carácter < >]]> – No son tratadas por el parser – Pueden incluir cualquier carácter prohibido (“, ‘, &, >, <). – No puede incluir la cadena ]]>
13 Elementos (II) Prólogo: – Es una instrucción de procesamiento obligatoria – Version: indica la versión de XML que se está utilizando (1.0 en la actualidad). Es obligatoria – Encoding: indica cómo se codificó el documento, y no es obligatoria (por defecto UTF-8). Válido para otros juegos de caracteres – Standalone: “yes” indica que el documento no va acompañado de DTDs externos; “no” indica que posee DTD interno. No es un atributo obligatorio
14 Elementos (III) DOCTYPE: – Indica la referencia (URI) al DTD, así como el nombre (MiDTD) del elemento raíz de la misma – La DTD podría ir incorporada en el propio documento XML, sin requerir otro fichero aparte – El documento XML deberá cumplir con el contenido del DTD
15 Elementos (IV) Etiquetas:– Deben ir correctamente anidadas: apertura y cierre – Etiqueta de apertura: comienza por <, más el nombre de la etiqueta y terminan por >. Ejemplo
16 Elementos (V) Elemento:– Es el conjunto de la etiqueta (marcador) de apertura, su contenido y la de cierre – Por ejemplo:
17 Elementos (VI) Atributos:– Cada elemento puede contener 0 ó más atributos – Su valor debe ir siempre entrecomillado – Sólo pueden aparecer en etiquetas de apertura o vacías – El mismo atributo no puede aparecer repetido en la misma etiqueta – Si el documento incluye DTD, cada atributo debe estar definido como atributo del presente elemento – No puede contener ninguna referencia a entidad externa – Son siempre tratados como cadenas de texto
18 Elementos (VII)
19 DTDs (I) (Declaración de tipos) ]>
20 DTDs (II) Toda DTD debe tener uno y sólo un elemento raíz (también conocido como elemento documento) Este documento raíz debe coincidir con el nombre que aparece a continuación del DOCTYPE Un documento DTD puede contener: – Declaraciones de elementos – Declaraciones de atributos para un elemento – Declaraciones de entidades – Declaraciones de notaciones – Instrucciones de procesamiento – Comentarios – Referencias a entidades de parámetro
21 DTDs (III) (Elemento Raíz)A partir del elemento raíz, pueden opcionalmente colgar (de forma jerárquica) otros elementos
22 DTDs (IV) (Contenido de los Elementos)Contenido de un elemento: – EMPTY: el elemento está vacío (puede contener atributos). – ANY: el elemento puede contener a cualquier otro elemento o incluso contenido textual. – Otros elementos: un elemento puede contener uno o más elementos hijos en una cierta secuencia (Ej. Libro) – #PCDATA: texto parseado. – Mixto: el elemento puede incluir secuencias de caracteres opcionalmente mezcladas con elementos hijos.
23 DTDs (V) Secuencias de hijos de un elemento: – Secuencia: Secuencia en orden: hijos separados por comas Opciones: hijos separados por | (barra) Conjuntos de elementos pueden agruparse entre paréntesis – Cardinalidad: un elemento, o un conjunto de ellos puede repetirse 0, 1 ó más veces: elemento Elemento repetido 1 única vez ? Elemento repetido 0 ó 1 vez * Elemento repetido 0 ó más veces Elemento repetido 1 ó más veces
24 DTDs (VI)
25 DTDs (VII) (Ejemplo) TelFijo*|TelMovil*)
26 DTDs (VIII) Ejercicio: Hacer una DTD.
27 DTDs (IX) (Atributos) Un elemento puede opcionalmente declarar uno o más atributos Los atributos de un elemento pueden incluirse en una o más declaraciones . Si se hace en la misma declaración, basta con separar con un espacio (espacio, tabulador, retorno de carro)
28 DTDs (X) (Tipos de Atributos)Tipo de un atributo: – Tipo cadena: CDATA – Tipo enumerado: – Tipo simbólico: ID: valdrá como identificador en el resto del documento, sólo un atributo ID por cada elemento IDREF, IDREFS: su valor debe coincidir con algún otro atributo de tipo ID en el resto del documento XML. IDREFS separa las referencias por espacio. “ID1 ID2 ID3” ENTITY, ENTITIES: su valor debe coincidir con una o más entidades no analizadas NMTOKEN, NMTOKENS: su valor ha de ser una cadena de tipo token
29 DTDs (XI) (Modificadores de Atributos)– #REQUIRED: este atributo debe ser obligatoriamente introducido. – #IMPLIED: indica que el atributo es opcional – ValorPredeterminado: si se omitiese el atributo, los procesadores recogerían este valor por defecto – #FIXED: se incluya o no se incluya el atributo, los procesadores siempre obtendrán este mismo valor
30 DTDs (XII) (Recomendaciones para modelado de Atributos)Frecuentemente un mismo objeto se puede diseñar como un atributo o un elemento sin pérdida de semántica pero existen criterios para decantar... Atributos Normalmente se trata de objetos cuya existencia no tiene sentido fuera del objeto al que describen (p.e.adjetivos), metadatos, identificadores únicos, el idioma, ... En general, todo aquello por lo que existe mayor interés en filtrarlo que en mostrarlo Ventajas Más fácil de procesar por el software (mayor eficiencia) Más legible, los atributos están próximos al elemento al que pertenecen
31 DTDs (XIII) (Recomendaciones para modelado de Atributos)Elementos, se debería optar por ellos... Siempre que se quiera definir sub-elementos (ya sean partes del elemento principal o sus específicos) Permiten crear vínculos Siempre que queramos repetir el mismo elemento con distinto valor (los atributos tienen un único valor como máximo) Siempre que el contenido sea mayor que una palabra (oraciones, párrafos, ...) y sobre todo si se quiere mostrar el texto en cuestión Tienen entidad propia independientemente del resto de elementos Los documentos que priman a los atributos pueden ser más breves al no tener una etiqueta propia que abrir y cerrar
32 DTDs (XIV) (Problemas)Una DTD no sigue el formato de un documento XML estándar. Esto representa un problema para los parsers No se soportan distintos tipos de datos al estilo de los lenguajes de programación (CDATA, #PCDATA) No se pueden crear tipos de datos personalizados No se soportan los espacios de nombres (namespaces) El número de ocurrencias no se puede controlar al 100% (Ej. 2 ocurrencias) Por estas y otras razones, surgen los XML Schemas (Esquemas)
33 Referencias a CaracteresPermiten incluir cualquier carácter dentro de un documento XML Basado en el conjunto de caracteres ISO/IEC (http://xml.coverpages.org/xml-ISOents.txt) Dos formatos: – valor; valor representado en decimal – valor; valor representado en hexadecimal
34 Entidades (I) Las entidades permiten:– Dar modularidad al texto evitando tener que escribir algo de forma repetitiva (Re-uso) – Incluir caracteres prohibidos &, >, <, “, ‘ – Incluir caracteres de otros idiomas: eñe, ... Comienzan por & y terminan en “;” Como por ejemplo: &
35 Entidades (II) Entidades predefinidas: – Signo menor lt < <– Signo mayor gt > > – Ampersand amp & & – Apóstrofe apos ‘ ' – Comilla doble quot “ "
36 Entidades (III) Tipos de entidades: – General y de Parámetro: General: contiene texto XML u otros caracteres De Parámetro: contiene texto XML que puede insertarse dentro de una DTD – Interna y Externa: Interna: contiene el texto dentro de una cadena entrecomillada Externa: hace referencia a un archivo externo – Analizada y no Analizada: Analizada: texto XML que será parseado en su punto de inserción No Analizada: no será parseada
37 Ejercicio de Atributos:Hacer una DTD utilizando atributos:
38 XML Schemas (I) Actualmente existe una nueva recomendación de W3C de Mayo 2001 para definiciones de XML: XML Schemas Uso de notación XML para definiciones Limitación de uso: Actualmente existe una gran cantidad de documentos definidos con DTDs.
39 XML Schemas (II) (Ejemplo)
40 XML Schemas vs. DTDs (I) Desventajas de las DTDsNo escritas en sintaxis XML Poco uso de namespaces Pocos tipos de datos (y lo que es peor, no se pueden definir nuevos tipos de datos) Aunque se puede agrupar elementos mediante entities (%;) están poco desarrolladas Ventajas de las DTDs Muchas herramientas que lo soportan Existen muchos documentos: DTDs y XMLs basados en ellas Fácil de aprender
41 XML Schemas vs. DTDs (II)Ventajas: Permite multitud de tipos de datos (pe xs:date, xs:int, xs:language, ...) Amplio uso de los namespaces Permite agrupar elementos para su reutilización, permite herencia (Ejemplo: Datos Personales en distintos Dominios de uso)
42 La Familia XML (I) XPointer/XLink: permiten referenciar a diferentes recursos, dentro o fuera del documento XML XPath: lenguaje de consulta para recorrer ficheros XML XQL (XML Query Language): útil para localizar y extraer elementos de un documento XML XIRQL: Una extensión de XQL para Recuperación de Información XSLT: Lenguaje para transformación de documentos XML XSL-FO: Expresa semántica de formateado de documentos, provee los medios para producir impresiones de alta calidad.
43 XPath (II) (Ejemplo) • Todos los autores: "/catalogo/libro/autor""/catalogo/*/autor" "//autor" • Todos los autores, con condición: "/catalogo/libro[anyo>2001]/autor" • El texto de los elementos autor: "/catalogo/libro/autor/text()" • El primer libro: "/catalogo/libro[0]"
44 XPath (III) Expresiones numéricas + - * div mod Expresiones booleanasand or Expresiones de comparación = != < <= > >=
45 XPath (IV) Funciones numéricas – round ceiling floor– count number sum Funciones booleanas – boolean false true not Funciones de cadenas de caracteres – string string-length substring – substring-after substring-before – contains starts-with concat – normalize translate
46 XPath (V) (Unión) “|” sirve para calcular la unión deconjunto de nodos especificados por medio de location paths Ejemplos: "//libro[anyo=2000]|//libro[anyo=2001]" "//libro[anyo=2000 or anyo=2001]"
47 Presentación en XML La presentación en HTML esta básicamente en los navegadores. Sería interesante programar la presentación (re-uso de código) Surgen las hojas de estilo: – CSS: Cascading Style Sheets (HTML) – XSL: eXtensible Style Language (XML) (XML + DTD o XML Schema + Fichero de Estilo XSL)
48 XSL Xsl es el lenguaje basado en xpath para poner hojas de estilos en xml, es decir sustituye a las css Para hacer referencia a un fichero xsl basta con escribir en el documento xml tras el prólogo la frase:
49 METADATOS Y XML
50 Namespaces (I) XML permite crear etiquetas ‘casi’ sin ninguna limitación en sus nombres Esto implica que, mezclar dos documentos, con diferentes etiquetas, podría resultar en una duplicidad de etiquetas Mediante la definición de espacios de nombres, se pueden evitar estas colisiones Tecnologías como XSL y otras muchas hacen uso de Namespaces
51 Namespaces (II) (Definición)Un namespace se identifica por su prefijo. Por ejemplo:
52 Namespaces y qualified names (Qnames)Para escribir en XML metadatos hay que definir previamente la ubicación del vocabulario de metadatos (Namespaces) y un prefijo para hacer referencia al vocabulario empleado (Qname)
53 Ejemplo NameSpace This is a funny book!
54 Metadatos Registros: repositorios para gestionar, recuperar, referenciar y reutilizar vocabularios de metadatos existentes. Estos registros suelen facilitar información sobre la definición, origen y localización del recurso. Actualmente, estándar ISO 11179 Proyecto Schemas, para RDF(S) y namespaces relacionados con proyectos de la UE (http://www.schemas-forum.org/); Open Metadata Registry y ULIS son otros proyectos que recopilan metadatos relacionados con la Dublín Core Metadata Iniciative (http://dublincore.org/dcregistry/navigateServlet y Perfiles de Aplicación
55 Metadatos famosos DC (Dublín Core) para la descripción de documentos. Con cualificadores FOAF (Friend of a Friend) vocabulario sobre información personal y relaciones interpersonales. Sin vocabulario estable para realizar extensiones. Es generado automáticamente en websites que trabajan con blogs. RSS (RDF Site Summary una de las siglas hay pa gustos) tiene un conjunto de metadatos multipropósito, suele ser utilizado principalmente para describir sitios web. Sindicate pages Text Encoding Initiative (TEI) (http://www.tei-c.org/) marcado de e-text. Encoded Archival Description (EAD) para descripción de archivos y colecciones especiales. Según Swoogle en Junio de 2004 que los NS, asociados a vocabularios de metadatos, más utilizados eran: FOAF ( documentos), DC ( ), MCVB (8.838), RSS(7.560 Junio, septiembre de 2004), vCard (6.229) y Bio (6.183 ).
56 Etiqueta META en HTML La etiqueta META se utiliza dentro del encabezamiento HEAD de una página HTML, para identificar, indizar y catalogar documentos Los atributos de esta etiqueta se encuentran indicados en el RFC 1866 bajo la siguiente DTD (Document Type Definition): http-equiv NAME #IMPLIED name NAME #IMPLIED content CDATA #REQUIRED > HTML (Hypertext Markup Language). Los enlaces de hipertexto se crean mediante el lenguaje HTML (RFC-1866). Es una variante de SGML (Standard Generalized Markup Language) de ISO-8879 del año Se lo utiliza para escribir los Web-Server. En la fotografía anexa se muestra la pantalla de un programa de escritura en HTML (el texto en la primer frase de este ítem y el programa se denomina FrantPage Express). (T. Berners-Lee) Associated Meta-information: META The element is an extensible container for use in identifying specialized document meta-information. Meta-information has two main functions: * to provide a means to discover that the data set exists and how it might be obtained or accessed; and * to document the content, quality, and features of a data set, indicating its fitness for use. Each element specifies a name/value pair. If multiple META elements are provided with the same name, their combined contents-- concatenated as a comma-separated list--is the value associated with that name. NOTE - The element should not be used where a specific element, such as
57 Editores metadatos http://www.ukoln.ac.uk/cgi-bin/dcdot.pl Reggie metadata.net/dstc
58 Dublin Core: elementos (1)Los 15 elementos: Subject Title Author Publisher OtherAgent Date Type ObjectType Form Identifier Relation Source Language Coverage Scheme
59 Ejemplo de un documento DC HTML
60 Calificadores DC (1) Propuestos en DC4 como Canberra Qualifiers.Esquema.nombre_de_elemento.nombre_de_sub-elemento = “valor” DC.Creator.personalName =”Scott Adams” Aprobación, el , de Dublin Core Qualifiers (qDC) Lista no cerrada que formaliza el método de utilización
61 Cualificadores DC
62 Cualificadores DC
63 Interoperatibilidad El término interoperabilidad ha sido definido (ALA, 2000) como la capacidad que tienen algunos sistemas para intercambiar y utilizar información procedente de otro sistema diferente. La forma más usual de que exista es alineando vocabularios de metadatos y esquemas XML. La alineación puede ser estructural o lingüística
64 RDF (Resource Description Framework)Validadores: Objetivos de RDF: interoperabilidad de metadatos a través de diferentes descripciones de recursos Web e intercambio de Metadatos. RDF trata de hacer compatibles diferentes estándares. Marco genérico de descripción de recursos Colección de propiedades=RDF. Cada propiedad tiene un tipo de propiedad y un valor Formato de metadatos Interoperabilidad entre aplicaciones Intercambio de descripciones de recursos
65 El modelo RDF Basado en un modelo matemático=tripleRecurso TipoPropiedad Valor Propiedad Basado en un modelo matemático=triple Recursos Web representados por nodos URI Los conjuntos de propiedades se conocen como “descripciones”
66 RDF – ejemplo básico Autor Pepe Pérez “Pepe es el autor del recurso identificado por Sujeto/Resource: la URI ; Verbo/Propiedad: autor Predicado/Values: Pepe Pérez
67 Ejemplo de RDF
68 RDF - estructuración Autor Nombre Email Sonia Sánchez sonia@uc3m.es Autor Reemplazar valores con un nodo (sin URI=anonymous) con dos tipos de propiedades Nombre Sonia Sánchez
69 RDF - reification Cost £0.05 Cost £0.05 Posibilidad de introducir diferentes capas de propiedades dentro de un recurso ValidUntil ...
70 RDF – mútiples propiedades...
71 RDF - namespaces Utilizados en XML para representar atributosIdentifican Tipos de Propiedades Deben especificarse previamente Precedidos de dos puntos
72 Ejemplo RDF
73 RDF con varios vocabularios de metadatos
74 ¿Qué es RSS? RSS = “Really Simple Syndication”RSS = “Rich Site Summary” RSS = “RDF Site Summary”. Básicamente: RSS es un lenguaje XML para publicar simultaneamente (sindicate) noticias en Internet.
75 Posibilidades Noticias (prensa, anuncios) EventosInformación de proyectos Bibliografías Información de contacto … La principal ventaja: La fuente informa cuando se producen cambios.
76 Un poco más técnico ... Los archivos RSS se actualizan de forma regular y contienen metadatos sobre una fuente de noticias determinada y su contenido. Consta fundamentalmente de: Channel: que representa la fuente de las noticias. Title: titulo del canal. Link: vínculo del canal. Description: descripción del canal. Además, consta de uno o varios elementos item que representan elementos de noticias individuales, cada uno de los cuales debe disponer de un campo title, link o description.
77 Ejemplo
78 ¿Cómo funciona RSS? El autor crea un fichero RSS.Los usuarios se suscriben al fichero a través de un lector de noticias o agregador. Cuando el autor actualiza el fichero RSS, los nuevos elementos se notifican automáticamente a los usuarios quedando a su disposición para su lectura.
79 ¿Qué es un canal? Un canal, bitácora o blog (abreviatura de weblog, pronunciado “we blog”,) es un conjunto de noticias online, representadas en orden cronológico inverso e incluidas en un fichero RSS. También se utiliza para denominar el sistema que aloja y sirve un conjunto de canales. Típicamente, este tipo de sistemas incluyen enlaces entre ellos, proporcionando información adicional sobre los temas que incluyen.
80 ¿Qué es un canal? Un canal, bitácora o blog (abreviatura de weblog, pronunciado “we blog”,) es un conjunto de noticias online, representadas en orden cronológico inverso e incluidas en un fichero RSS. También se utiliza para denominar el sistema que aloja y sirve un conjunto de canales. Típicamente, este tipo de sistemas incluyen enlaces entre ellos, proporcionando información adicional sobre los temas que incluyen.
81 ¿Qué es un agregador? Una aplicación o un servicio remoto que, periodicamente, lee un conjunto de fuentes o canales en formato XML. Cuando detecta nuevos elementos, muestra un resumen de los mismos en un listado ordenado cronológicamente, comenzando por el más moderno. La aplicación necesaria para leer ficheros RSS.
82 Tipos de agregadores Clientes/agentes independientesFeedReader, Radio UserLand Complementos PIM (Personal Information Manager) Pluck, NewsGator, intraVnews Complementos de Navegador Firefox 1.0, Sage Sitios Web Bloglines, NewsIsFree Listado de agregadores
83 Mas información Introducción a RSS RSS esquema RDF Site Summary cANALES Librarian.net Librarian’s Rant lblog.jalcorn.net LISNews The Shifted Librarian Travelin’ Librarian travelinlibrarian.blogspot.com Unshelved Free Range Librarian freerangelibrarian.com Crime in the Library crimeinthelibrary.blogspot.com Tame the Web LibraryTechtonics