1 Taller de Prof. Hilda ContrerasDepartamento de Computación Escuela de Ingeniería de Sistemas ULA
2 Contenido Introducción Preparándonos para trabajar con XMLDocumentos XML bien formados Documentos XML válidos Transformando documentos XML Usos de XML
3 1 - Introducción Historia Qué es XML? y Qué NO es XML? Porqué XML?Conceptos básicos Ejemplos de usos
4 1.1. Historia Internet (1984) SGML (1986) gestación desde principios de los años 70 Multimedia (1986) PDF (1992) NSF DLI National Science Foundation's Digital Libraries Initiative (1994) World Wide Web Consortium - W3C (1994) WWW (1994) XML (1998) The predecessor of XML, that is, the Standard Generalized Markup Language (SGML), was developed by Charles F. Goldfarb, Ed Mosher, and Ray Lorie. The objective of their work was to develop a meta language for describing different document types, and in 1986 SGML was adopted as ISO standard 8879. The basic ideas underlying the development of SGML were to: Enable the processing of documents by computers Separate structure, semantics, and presentation Execute document processing system- and vendor-independently Although SGML is well-established in some application areas in the field of document management, its use is not so widespread for the following reasons: SGML is complex. Its specification is 500 pages long. SGML has many options for special applications. The SGML syntax is difficult for humans to read. SGML design tools are expensive and complex. Based on the SGML concept, XML has reduced the complexity and removed some options. XML, which actually is a meta markup language for defining new markup languages, was adopted as a standard by the World Wide Web Consortium (W3C) on February 10, 1998.
5 World Wide Web Consortium - W3C (1994)1.1. Historia World Wide Web Consortium - W3C (1994) Constituido con el objetivo de desarrollar protocolos comunes para Internet Consorcio de industrias internacionales: MIT (EEUU), INRIA (Francia) y Keio University (Japón) Soporte oficial del DARPA (EEUU) y La Comisión Europea
6 1.2. Qué es XML? Es un subconjunto de SGML (Standard Generalized Markup Language) simplificado y adaptado a Internet Extensible Markup Language (XML), es más que un lenguaje de marcado Es un meta-lenguaje: es un lenguaje para definir lenguajes Extensible Markup Language (XML) Intercambio y Publicación de datos Integración y Desarrollo de aplicaciones Web XML es un metalenguaje: es un lenguaje para definir lenguajes. Permite definir lenguajes de marcado adecuados a usos determinados. XML makes structured documents available for automated processing. XML is based on the separation of document content, description of the structure, and presentation. Los elementos que lo componen pueden dar información sobre lo que contienen, no necesariamente sobre su estructura física o presentación, como ocurre en HTML.
7
8 1.2. Qué es XML? “Meta-lenguaje”: Información (dato): Deepak ChopraMeta-información (marca):
9 1.2. Qué NO es XML? NO es una versión mejorada de HTMLNO es un lenguaje para hacer mejores páginas Web NO es un lenguaje sustituto de HTML NO es un lenguaje difícil
10 1.3. Por qué XML? Es un estándar internacional reconocido por W3C (1998) Su utilización es libre y abierta Permite la utilización de múltiples alfabetos en diferentes plataformas Fácil procesamiento (reconocimiento, generación y transformación) Separa el contenido de los datos de su presentación
11 1.4. Conceptos básicos Separación lógica de contenido, descripción de la estructura y presentación. Esto permite máxima independencia y flexibilidad. Contenido: datos. Documento XML. Structure: reglas de estructura de los datos. DTD y XML Schema. Presentación: el formato para mostrar la información. Hojas de estilo Expresados en Document Type Definition (DTD) Hojas de estilo (style sheets).
12 1.4. Conceptos básicos Separación de procesamiento, presentación, estructura y contenido: PRESENTACION ESTRUCTURA CONTENIDO XSL DTD XML CSS Schema PROCESAMIENTO HTML SALIDA WEB
13 1.4. Conceptos básicos Muchas formas de presentación a partir de un documento XML: PROCESAMIENTO HTML VML RTF PDF TXT XML
14 1.5. Ejemplos de Uso Un Ejemplo de HTML:Deepak Chopra
El sendero del Mago
precio: Bs
15 1.5. Ejemplos de Uso El mismo Ejemplo en XML:
16 2 - Preparándonos para trabajar con XMLQué es un archivo XML? Herramientas necesarias Editando un archivo XML Visualizando un archivo XML PRÁCTICA #1: Edición y visualización de un archivo XML
17 2.1. Qué es un archivo XML? Un archivo de texto ASCIIUn archivo con extensión “.xml” Un archivo cuyo contenido sigue las reglas sintácticas de XML XML libro.xml
18 2.2. Herramientas necesariasUn Editor de Texto Un Explorador o Navegador de Internet (*) Un herramienta de procesamiento y transformación para XML o parser (*) (*) En algunos casos puede ser la misma cosa. IE version 5.0 en adelante. Netscape 7.0 en adelante son la misma cosa.
19 2.2. Herramientas necesariasParser: Analizador sintáctico Procesa el contenido de un archivo XML para: Validar (Reconocimiento) Transformar Parser Algoritmo o conjunto de instrucciones que relacionan cadenas de símbolos con el conocimiento lingüístico almacenado. El parser es un mecanismo computacional que utiliza una gramática y un diccionario para establecer si una oración es gramatical o no. El problema que tiene que resolver el parser es puramente sintáctico: reconocer las oraciones gramaticales y asignarles una estructura. Otros componentes se encargan de la interpretación (Winograd) (Moreno, 1998).
20 2.2. Herramientas necesariasParser Pueden incluir validación o no Pueden realizar transformaciones o no Pueden exponer la información de diferentes formas (DOM, SAX) Existen para la mayoría de lenguajes y plataformas de desarrollo (VB,Php,Perl,Java, etc.) DOM Document Object Mode, es un modelo que especifica la forma de acceder a los datos de un documento XML
21 2.2. Herramientas necesariasLista de Parser: Xerces (Apache) XML4J (IBM) Crimson (Apache) Project X (Sun Microsystems) MSXML (Microsoft) XP (James Clark) Ælfred (Microstar Software) Lark/Larval (Tim Bray) XJ (Data Channel) DOM Document Object Mode, es un modelo que especifica la forma de acceder a los datos de un documento XML
22 2.2. Herramientas necesariasUsaremos el parser de PHP Realiza validaciones contra DTD Realiza transformaciones con soporte XSL Gratuito y redistribuible libremente Esta basado en DOM nivel 1 DOM Document Object Mode, es un modelo que especifica la forma de acceder a los datos de un documento XML
23 2.3 – Editando un archivo XMLPRÁCTICA #1: Ejecutar cualquier editor de texto Escribir este texto:
24 2.4 – Visualización de un archivo XMLPRÁCTICA #1: Ejecutar un navegador de Internet Abrir el archivo libro.xml Opciones: File – Open – Browse Observar la forma en que se muestra el archivo en el navegador.
25 PRÁCTICA #1 Explicación: XSL XML libro.xml Parser del Navegador
26 3 - Documentos XML bien formadosReglas sintácticas XML Documentos bien formados Espacios de nombres XML (namespaces) PRÁCTICA #2: Documentos XML bien formados
27 3.1. Reglas sintácticas XMLElemento y Contenido
28 3.1. Reglas sintácticas XMLCómo debo escribir los Elementos? Siempre comienzan con una
29 3.1. Reglas sintácticas XMLAtributo
30 3.1. Reglas sintácticas XMLCómo debo escribir los Atributos? Los atributos son un par de: nombre_atributo=“valor atributo” Los valores de los atributos siempre deben estar entre comillas simples (‘) o dobles (“). Si se permiten espacios en blanco en el valor del atributo. Al contrario que HTML, el valor de los atributos va entre comillas siempre
31 3.1. Reglas sintácticas XMLCómo debo escribir los nombres de atributos y elementos? Empezar por una letra Continuar con letras, dígitos, guiones, rayas, puntos o dos puntos. No se permiten espacios en blanco No usar la palabra “XML” como comienzo de un nombre Al contrario que HTML, en XML siempre se debe cerrar una etiqueta.
32 3.1. Reglas sintácticas XMLCómo debo escribir el contenido de la información?: No usar entidades predefinidas Usar el conjunto de caracteres según la codificación especificada (encoding). Si deben usarse entidades predefinidas identificar como CDATA Al contrario que HTML, en XML simpre se deb cerrar una etiqueta.
33 3.1. Reglas sintácticas XMLEntidades Predefinidas: XML 1.0 define 5 entidades de caracteres especiales: < < > > & & ‘ ' “ "
34 3.1. Reglas sintácticas XMLSección CDATA (Character Data) Comienza con Puede contener cualquier caracteres incluso entidades predefinidas sin codificar, excepto la cadena de cierre “]]>“ Uso insertar HTML o Javascript
35 3.1. Reglas sintácticas XMLEstructura
36 3.1. Reglas sintácticas XMLCómo debo escribir el Prólogo? El prólogo es opcional La primera línea debe comenzar con . La primera línea especifica la versión y la codificación de caracteres La segunda línea especifica documentos asociados (DTD, Schema, XSL)
37 3.1. Reglas sintácticas XMLEjemplos de prólogos: Si un documento es independiente de archivos externos como hojas de estilo y DTD se considera independiente = standalone
38 3.1. Reglas sintácticas XMLCodificación: Codificación de caracteres usada en el archivo XML Identificación del lenguaje basado en ISO o Unicode Valor implícito por defecto Unicode comprimido: encoding=“UTF-8”
39 3.1. Reglas sintácticas XMLEstructura
40 3.1. Reglas sintácticas XMLEl cuerpo de un archivo XML tiene una estructura jerárquica: Estructura de árbol correctamente anidados No se pueden superponer elementos Debe haber un elemento raíz por documento XML Todas las etiquetas deben cerrarse
41 3.1. Reglas sintácticas XMLIncorrectamente anidado
42 3.1. Reglas sintácticas XMLEstructura Jerárquica de Árbol
43 3.1. Reglas sintácticas XMLUna pregunta antes de continuar: Cómo decidir usar un dato como atributo o elemento? La respuesta: No hay claves, pero hay recomendaciones: Se recomienda usar atributo cuando se vaya a categorizar información Cuando el valor sea único.
44 3.2. XML bien formado Un documento XML se dice “bien formado” (well-formed) cuando cumple las reglas descritas en la especificación oficial XML v1.0
45 3.2. XML bien formado Cómo sé si un documento XML esta bien formado?Uso un analizador sintáctico (parser) Por ejemplo: Navegador de Internet Aplicación para editar XML (por ejemplo XML Spy) Analizadores en línea (w3c)
46 3.2. XML bien formado A
47 3.3. Espacio de nombres Responder a las preguntas:Puedo repetir el nombre de un elemento en cualquier documento XML? Quién decide el nombre del elemento? Cómo uso nombres estándares en los elementos para mejorar el intercambio de información?
48 3.3. Espacio de nombres Colisión entre elementos: libro.xml
49 3.3. Espacio de nombres Colisión entre elementos: compra.xml
50 3.3. Espacio de nombres XML namespacesIdentifica la semántica de los elementos y atributos especialmente en el caso en donde el documento tiene elementos con el mismo nombre pero diferente significado. Ampliamente usado en aplicaciones para asegurar la consistencia del significado de los nombres.
51 3.3. Espacio de nombres
52 3.4. Espacio de nombres Se coloca en el momento de apertura del elemento que usa el namespace Los atributos no pertenecen al namespace del elemento. Hay que colocar el prefijo a los atributos, caso contrario se toma el de defecto.
53 PRÁCTICA #2 Abrir el archivo libro2.xml con el Navegador y determinar si está “bien formado”. En caso contrario hacer los cambios necesarios en su definición según las reglas de construcción de XML version 1.0.
54 PRÁCTICA #2
56 4.1. Técnica de validación XMLQué se valida? La estructura: nombres y valores de los elementos, atributos y entidades Para que validar? Consistencia de datos, compartir datos, uso de estándares.
57 4.1. Técnica de validación XMLExisten varias formas de definir los elementos que contiene un documento XML a través de reglas gramaticales de los elementos, atributos y entidades: DTD (Document Type Definition) Archivos con extensión .dtd XML Schema Archivos con extensión .xsd
58 4.1. Técnica de validación XMLDTD y XML Schema: Ambas formas nos permiten crear nuestro propio lenguaje de marcado. Ambas formas pueden residir en un archivo externo y ser compartidos por varios documentos XML. Un XML que se ajusta a cualquier técnica es un “XML válido”. Ambas técnicas son opcionales!
59 4.2. Validación com DTD
60 4.2. Validación com DTD GLC G = (V,T,P,S) del cuerpo de un libro en XML: S
61 4.2. DTD Un ejemplo de DTD: libro2.dtd
62 4.2. DTD Uso Externo Uso Interno http://validator.w3.org/ 63 4.2. DTD Validar en PHP un documento XML con DTD$dom = new DOMDocument; $dom->Load('libro2-correcto.xml'); if ($dom->validate()) { echo “El documento es valido!\n
"; } else { echo “El documento es invalido!\n
";
64 4.3. XML Schema Un ejemplo de XML Schema: libro2.xsd
65 4.3. XML Schema Un XML Schema es “similar” a un DTD, solo que:XML Schema usa sintaxis XML al contrario de los DTD Permite especificar los tipos y grupos de datos Son extensibles y tienen modularidad Usan namespace
66 4.3. XML Schema Uso Externo:
67 4.3. XML Schema $xdoc = new DomDocument;Validar en PHP un documento XML con XML Schema $xdoc = new DomDocument; $xmlfile = 'libro2-correcto-schema.xml'; $xmlschema = 'libro2.xsd'; $xdoc->Load($xmlfile); if ($xdoc->schemaValidate($xmlschema)) { print "$xmlfile is valid.\n
"; } else { print "$xmlfile is invalid.\n
"; }
68 4.4. Otras Técnica de validación XMLRELAX NG, Schematron se está estandarizando como parte del DSDL (Document Schema Definition Language) de ISO RELAX NG Schematron
69 4.5. Lenguajes y Estándares XMLXHTML (eXtended HTML) WML (Wireless Mark-up Language) para dispositivos inalambricos SVG (Scalable Vector Graphics) para producir imagenes RDF (Resource Definition Framework) VoiceXML SMIL Multimedia integrada
70 4.5. Lenguajes y Estándares XMLLenguajes de Intercambio: ebXML - Comercio electrónico HL7 (Health Level Seven)– Hospitales y Salud NewsML – Noticias RSS (Really Simple Syndication) – Noticias SOAP (Simple Object Access Protocol) OAI-PMH (Open Archives Initiative – Protocol for Metadata Harvesting) DC (Dublin Core)
71 4.6. Editores XML Editores: * XML Pro de Vervet Logic (open source)* XMLSpy de Altova *
72 PRÁCTICA #3 Usar PHP para validar el archivo libro2.xml con el DTD libro2.dtd y el XML Schema libro2.xsd agregando la modificación de: Se permite agregar un título traducido al libro Se permite sólo un autor El precio puede ser en BS o en BSF
73 5- Transformando XML CSS XSLT,XSL, XSL-FO XPath XqueryPRÁCTICA 3: Sentencias XPath PRÁCTICA 4: Demostraciones del instructor de Transformaciones con un parser XSL
74 5. Modelos de datos Está además asociado a la recomendación del W3C DOM (Document Object Model), aprobado también en Éste no es más que un modelo de objetos (en forma de API) que permite acceder a las diferentes partes que pueden componer un documento XML o HTML.
75 6 - Uso de XML en AplicacionesIntegrando XML en aplicaciones Generando salidas XML desde una Base de Informacion (BI) Transformando salidas XML de BI Uso de XML como formato de intercambio (RSS, MARC-XML, OAI, etc) Definición de servicios