Taller de <?XML> Prof. Hilda Contreras

1 Taller de Prof. Hilda ContrerasDepartamento de Computa...
Author: Catalina Fierro
0 downloads 4 Views

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 Deepak Chopra1.2. Qué es XML? “Lenguaje de marcado” basado en marcas: Marcas [mark-up] construcciones con etiquetas. Comienzan con “<“ y terminan con “>”. Datos resto de contenido del documento que se encuentra entre marcas Ejemplo: Deepak Chopra Marcas es la parte del documento que espera ser comprensible por el parser Los datos son comprensibles por los humanos.

8 1.2. Qué es XML? “Meta-lenguaje”: Información (dato): Deepak ChopraMeta-información (marca): Describir otros lenguajes Crear etiquetas propias Una persona podría reconocer la cadena de caracteres de “Deepak Chopra” como el nombre de una persona, pero una computadora no!.

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: Deepak Chopra El sendero del Mago 30.000 Comentar las diferencias!. Qué problemas tiene HTML? Define mas la presentación que el contenido No es facilmente procesable por maquinas Su estructura es caótica Su interpretación es ambigua según el software utilizado Sólo tiene uso en las paginas web Que ventajas tiene XML?: Datos auto definibles Fácil análisis sintáctico gracias a las estrictas reglas de composicion

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: Deepak Chopra El sendero del Mago 30.000 Guardar como “libro.xml”

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 Deepak Chopra Contenido del Elemento Nombre del Elemento Etiqueta fin del Elemento

28 3.1. Reglas sintácticas XMLCómo debo escribir los Elementos? Siempre comienzan con una Siempre termina con una del mismo nombre Elemento vacío o Es “case-sensitive”, es decir no es igual a No se permiten espacios en blanco ni saltos de línea en el nombre de etiqueta Al contrario que HTML, en XML simpre se debe cerrar una etiqueta. HTML no es sensitivo, XML si! Elementos vacíos:

29 3.1. Reglas sintácticas XMLAtributo 30.000 Valor del Atributo Atributo Contenido del Elemento Atributo: características o propiedades de los elementos Nombre del Elemento Etique fin del Elemento

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: < < > > & & ‘ ' “ " < 0 Palabras reservadas

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 < 0 Las secciones CDATA permiten especificar datos que utilicen cualquier caracter especial o no sin que lo interprete el parser. Permite leer fácilmente texto sin desifrar los códigos. Por defecto el archivo XMl es PCDATA Parser Character Data

35 3.1. Reglas sintácticas XMLEstructura ... Prólogo XML Cuerpo libro.xml

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 ... Prólogo XML Cuerpo libro.xml

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 Deepak Chopra El sendero del Mago Correctamente anidado Deepak Chopra El sendero del Mago

42 3.1. Reglas sintácticas XMLEstructura Jerárquica de Árbol Deepak Chopra El sendero del Mago 30.000 libro autor titulo precio

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  BUma GLC para validar que libro1.xml esta bien formado: S  A A  B B  BCB | BCB BCB | C | ε C  CC | ε | a | b | c | .... Z | . | $ | ) | | 1 | 2 | ...

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.xmlDeepak Chopra El sendero del Mago 30.000 José Pérez Dr. libro.xml cliente.xml

49 3.3. Espacio de nombres Colisión entre elementos: compra.xml Deepak Chopra El sendero del Mago 30.000 José Pérez Dr. 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 xmlns:bk=http://www.net-standard.com/namespaces/books xmlns:cust="http://www.net-standard.com/namespaces/customer" > < bk:autor>Deepak Chopra < bk:titulo>El sendero del Mago < bk:precio moneda="bolivares">30.000 José Pérez Dr.

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 Deepak Chopra El sendero del Mago Harmany Book En esta obra, Deepak Chopra, autor de varios libros que han ocupado los primeros puestos en las listas de ventas, nos muestra cómo debemos ... Por medio de historias como Gail & Jarret... 55 4 - Documentos XML válidosTécnica de validación XML DTD XML Schemas Otras técnicas de validación Lenguajes y Estándares XML Editores XML PRÁCTICA #3: Validando documentos XML con DTD

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 Deepak Chopra El sendero del Mago Harmany Book 30.000

60 4.2. Validación com DTD GLC G = (V,T,P,S) del cuerpo de un libro en XML: S  A A  BCDEFGH | BCDEFG B  K | BB C  K D  K E  K F  K G  K H  K K  KK|ε|a|b|…|z|0|1…|9|.|!...

61 4.2. DTD Un ejemplo de DTD: libro2.dtd

62 4.2. DTD Uso Externo Uso Interno http://validator.w3.org/ Uso Interno --definición del DTD— ... ]> Validador:

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: Deepak Chopra El sendero del Mago Harmany Book 30.000

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 * XML Editor * Turbo XML de TIBCO (Plataforma de desarrollo integrado de XML) * XML Notepad de Microsoft * XMLwriter de Wattle Software

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