Universidad del Valle de Puebla Maestra en Administracin
Universidad del Valle de Puebla Maestría en Administración de Tecnologías de la Información Interfaces XML Dr. David Pinto
Agenda del día de hoy n n n n Presentación de los participantes. Análisis de expectativas. Presentación del programa. Plenario de acuerdos. Elaboración de un directorio electrónico. Exposición teórica del profesor: Introducción a XML (conceptos básicos y análisis de documentos). Exposición práctica del profesor: Ejemplos prácticos sobre la aplicación de XML en diversas áreas. TAREA: Elaborar un catalogo de productos usando la estructura básica de XML.
Presentación n David Eduardo Pinto Avendaño (David Pinto) n Doctorado en Reconocimiento de Formas e Inteligencia Artificial (Universidad Politécnica de Valencia, España) n Maestría y Licenciatura en Ciencias de la Computación (Facultad de Ciencias de la Computación, BUAP, México) n Página Web: http: //dpinto. cs. buap. mx n Contacto: dpinto@cs. buap. mx
Contenido del curso OBJETIVO GENERAL: n Desarrollar interfaces basadas en XML y Java operando sistemas de información sobre la Web.
Método de trabajo n El docente expondrá los aspectos teóricos sobre interfaces XML mediante el uso de técnicas de exposición y conferencia. n El docente expondrá de una manera práctica y a través de ejemplos el uso de interfaces XML. n El docente asignará lecturas en casa y aula, utilizando dinámicas para la lectura guiada y lectura comentada. n El alumno deberá desarrollar un trabajo de investigación documental y expresar dicho trabajo a través de la tecnología XML. El proyecto deberá tener relevancia y ser significativo para el desarrollo de trabajo de tesis del estudiante.
Presentación del Programa Interfaces XML
Conceptos básicos Fundamentos. n l l l Orígenes de XML Metas de XML Creación de documentos Despliegue de documentos XML Verificación del formato XML Elementos de XML n l l Atributos Namespaces Entidades Otras marcas n Aplicaciones. n XML y Java. n XML y otros lenguajes.
Análisis de documentos n Procesadores de XML. l XML Notepad n Lectura de un documento en XML. n Sintaxis básica XML. n Programación de interfaces. n Ejercicios prácticos
Gestión de documentos y metacontenidos n Hojas de estilo CSS n Hojas de estilo XSLT n Servlets n Doc. Man n Vista, lista y búsqueda de documentos. n Creación de metacontenidos.
JSP y XML n Introducción a JSP n JSP con XML l l l Generación de archivos XML desde JSP Convertir XML a Objetos del Lado del Servidor API Simple para XML (SAX) Document Object Model (DOM) Transformación entre diferentes lenguajes XML Etiquetas JSP personalizadas n l l Introducción a J 2 EE Etiquetas Personalizadas y J 2 EE Enterprise Java Beans (EJBs) Describir y Referenciar Servicios J 2 EE n Aplicación Web con una base de datos. n Ejercicios
Bases de datos y XML n Java y bases de datos n JDBC n SQL incrustado en XML: SQLX n Aplicación Web con una base de datos
Plenario de Acuerdos Interfaces XML
Normas y procedimientos de evaluación Prácticas 40% Proyecto 60% TOTAL: ----100%
Universidad del Valle de Puebla Maestría en Administración de Tecnologías de la Información Sesión 1: Conceptos básicos de XML Dr. David Pinto
Conceptos básicos n XML: Extensible Mark-up Language (lenguaje de marcado extensible) n Es un lenguaje orientado a: l La definición de datos de carácter general. Nos permite definir modelos de datos. n l n Al compartir modelos de datos se facilita el intercambio de datos entre sistemas (aplicaciones) heterogéneos. Crear nuevos lenguajes gracias a sus mecanismos de extensibilidad. Por ello, se dice que XML es un metalenguaje (un lenguaje para crear nuevos lenguajes). Se refiere únicamente a los datos, no a su presentación. Deja a otras aplicaciones la tarea de definir la estructura de visualización.
Conceptos básicos n XML es el formato y el modelo para intercambiar información entre componentes, aplicaciones, y empresas a través de Internet n Microsoft, IBM, Firefox, etc. , están apostando fuertemente a esta tecnología n XML es un estándar abierto a Internet (W 3 C) n XML habilita una nueva generación de aplicaciones en Internet
Conceptos básicos XML
¿Qué es XML? n Texto que cumple ciertas reglas n Las reglas tienen puntos en común con HTML n Abierto a sistemas operativos
¿Qué es XML? n XML es un sub-conjunto de SGML (Standard Generalized Mark-up Language) n Creado y soportado por el World Wide Web Consortium (www. w 3 c. org) SGML XML HTML
¿Qué es XML? n XML es un sub-conjunto de SGML (Standard Generalized Mark-up Language) n Creado y soportado por el World Wide Web Consortium (www. w 3 c. org)
¿Qué es XML? n Más fácil que SGML n Más pequeño n Pensado para ser utilizado en Internet n XML es un lenguaje utilizado para estructurar y describir datos de forma que puedan ser entendidos o interpretados por diferentes aplicaciones n Puede ser utilizado por cualquier lenguaje y/o sistema operativo
¿Qué es XML? n XML es un meta-lenguaje que nos permite definir lenguajes de marcado, adecuados a usos determinados n XML es un estándar de Internet, aprobado por la W 3 C n Traducciones: n Los proveedores especificaciones n Microsoft (MSXML 40. DLL) e IBM ofrecen un conjunto de objetos para manejar XML (http: //www. w 3. org/TR/REC-xml/) http: //www. w 3. org/2003/03/Translations/Overview. Lang. html#es tratan de ajustarse a las
¿Qué NO es XML? n XML no es una versión mejorada de HTML n XML no es un lenguaje para hacer mejores páginas web n XML no es difícil
¿Dónde está la revolución? n Para entender la revolución que plantea XML, hay que entender las tecnologías circundantes l XSLT l DTD l Schema l XPATH l Etc. n Estas son las que realmente hacen la revolución (En especial XSLT, y DTD, y Schema)
Algo de historia sobre XML n Desarrollo a partir de 1996, como un sub-conjunto de SGML n Adoptado como estándar en Febrero de 1998, por el World Wide Web Consortium (W 3 C)
World Wide Web Consortium (W 3 C) n Constituido en 1994 con el objetivo de desarrollar protocoles comunes para la evolución de Internet n Es un consorcio de industrias internacionales, y está participado por MIT (EEUU), INRA (Francia), y Keio University (Japón) n Cuenta con el apoyo de DARPA (EEUU), y la comisión europea (IEEE)
¿Qué ventajas tiene XML? n Un documento en XML, puede tener varias formas de presentación
¿Qué ventajas tiene XML? n Formato ideal para transacciones B 2 B n Permite poderosas técnicas de extracción y búsqueda de información (XSL y XPATH) n Las estrictas reglas para la composición de un documento XML, permite su fácil análisis sintáctico n A diferencia de HTML, XML es sensitivo a mayúsculas y minúsculas
Lenguajes Específicos n HTML — ejemplo <!DOCTYPE HTML PUBLIC "-//W 3 C//DTD HTML 3. 2 FINAL//EN"> <HTML> <HEAD> <TITLE>Memo</TITLE> </HEAD> <BODY> <FONT FACE="Times New Roman" SIZE="2"> <P> <B>To: </B> Camino<BR> <B>From: </B> Juanma<BR> <B>Cc: </B> Nacho<BR> <B>Subject: </B> Capítulo 1 </P> <P> Qué opinas del formato? </P> </FONT> </BODY> </HTML>
Visualización de HTML
Ejemplo en XML — ejemplo <? xml version="1. 0"? > <MEMO> <TO>Juanma</TO> <FROM>Camino</FROM> <CC>Nacho</CC> <SUBJECT>Capitulo 2</SUBJECT> <BODY>Empezamos con algo de codigo XML</BODY> </MEMO>
Visualización de un archivo XML
Visualización de un archivo XML
Visualización de un archivo XML
XML (ejemplo) n Documento XML: <libro> marca de comienzo The XML Bible contenido </libro> elemento marca de fin atributo <autor nro=2332> Elliotte Rusty Harold </autor>
El elemento y sus atributos Nombre del atributo Contenido del elemento <autor pais=“Uruguay”>Mario Benedetti</autor> Valor del atributo Nombre del elemento Etiqueta de fin
Reglas y pautas XML n Se dice que un documento XML es ‘bien formado’ (well formed), cuando cumple una serie de reglas escritas en XML v 1. 0 l l l Los elementos deben seguir una estructura de árbol (estrictamente jerárquica) Los elementos deben estar correctamente anidados Los elementos no se pueden superponer entre ellos
Estructura de un documento XML <? xml version="1. 0"? > <!DOCTYPE Flores. Silvestres SYSTEM “flores. dtd"> n Estructura l l n Prólogo l l n XML Declaration Document Type Declaration Document Element l n Lógica = cómo se estructura el documento Física = qué contiene el documento Siempre el raíz Anidamiento de elementos restantes
Sintaxis n Etiquetas l l n n Apertura/cierre <TAG> Texto </TAG> Elemento vacío <TAG></TAG> <TAG/> Atributos Entidades <TAG ATRIB=“valor”> Texto </TAG> l Parseadas l No parseadas l Predefinidas <!ENTITY PL “poca luz”>. . . <TERM>Esta planta necesita &PL; </TERM> <!ENTITY Img SYSTEM “Img. gif” NDATA GIF> & . . . < & <
Recomendaciones n Todo contenido estará etiquetado. Toda etiqueta debe estar delimitada por los símbolos de menor y mayor. Ejemplo: <libro> n Las etiquetas se cierran en el mismo orden en el que se abrieron. La etiqueta de cierre tiene el mismo nombre que la de apertura y se inicia por la barra ‘/’. l l Ejemplo: <libro>. . . </libro> Por comodidad se permiten etiquetas que sirvan tanto para la apertura como para el cierre. Estas etiquetas deben acabar con el símbolo de barra ‘/’. n Los nombres de etiquetas son sensibles a mayúsculas y minúsculas (a diferencia de HTML) n La estructura de una etiqueta sigue la terna objeto-atributo-valor. l Notación larga: <etiqueta> <atributo 1> valor </atributo 1>. . . l l </etiqueta> Notación corta (las dobles comillas son obligatorias, a diferencia de HTML): <etiqueta atributo 1=“valor”. . . > </etiqueta> Ejemplo: <libro> <autor>Miguel De Cervantes</autor> <titulo>El Quijote</titulo> <precio>18</precio> </libro>
Recomendaciones n La estructura del documento es jerárquica, en forma de árbol, en la que siempre hay un primer elemento raíz. n Todo documento XML debe comenzar por una declaración XML con la siguiente estructura: <? xml version=“Versión de XML” encoding=“Codificación” standalone=“Incluye_DTD” ? > n Donde cada atributo significa: l l l n Versión de XML: número de versión que se utiliza. Codificación: formato de codificación, por ejemplo, UTF-8, UTF-16, ISO-10646 -UCS-2, ISO-10646 -UCS-4, ISO-8859 -1, ISO-8859 -2, (hasta ISO-8859 -9), etc. Las dos primeras son las más usadas. Incluye_DTD: puede tomar el valor “yes” (la especificación DTD se encuentra en el propio documento) o “no” (la especificación es un archivo externo). Ejemplo: <? xml version=“ 1. 0” encoding=“UTF-8” standalone=“yes” ? >
XML (Ejemplo. . . ) <? xml version="1. 0" encoding="UTF-8” standalone=“yes”? > <!-- Ejemplo de Biblioteca --> <biblioteca> <libro ISBN="0 -596 -00292 -0"> <titulo>XML in a Nutshell, 2 nd Edition</titulo> <autor> <nombre>Elliotte Rusty Harold, W. Scott Means</nombre> <email>elliottscott@oreilly. com</email> <direccion>1005 Gravenstein Highway North, CA 3472 </direccion> </autor> <capitulo nombre="Introduccion"> XML Concepts <seccion> <nombre>Introducing XML</nombre> <contenido>bla bla bla. . . </contenido> </seccion> </capitulo> </libro> </biblioteca>
¿Qué problemas tiene HTML? n Es un meta-lenguaje de definición de presentación n Contiene datos + presentación n No es fácilmente procesable por ‘máquinas’ n No fuerza al la buena estructura de la página (pueden dejarse por error etiquetas sin cerrar) n Su interpretación depende del software utilizado n Está pensado para su utilización en páginas Web.
HTML versus XML n HTML se centra en el despliegue, y es menos estructurado n XML es sobre datos, y es sumamente estructurado n Las etiquetas y atributos son fijos n Las etiquetas y atributos son extensibles n Es posible olvidar el cierre de alguna etiqueta n Se fuerza a tener una estructura consistente
¿Qué ventajas tiene XML? n Fácil de procesar/entender por software o por seres humanos n Pensado para ser utilizado en cualquier lenguaje o alfabeto n Separa radicalmente la información o contenido, de su presentación o formato
Construyendo documentos XML
Ejemplo n <libros><autor pais=“Uruguay”>Leo Masliah</libros></autor> n <libros><autor pais=“Uruguay”>Leo Masliah</autor> </libros>
Reglas y pautas XML l Los documentos deben tener un nodo raíz l Todas las etiquetas deben estar debidamente cerradas l Las etiquetas vacías (etiquetas sin contenido) deben tener una sintaxis especial
Ejemplo n <libros><autor pais=“Uruguay”>Leo Masliah<Ranking=100></autor></ libros> n <libros> <autor pais=“Uruguay”>Leo Masliah <Ranking=100/></autor> </libros>
Reglas y pautas XML l Un nombre de elemento, atributo, entidad, etc. , comienza por una letra, y continúa con letras, dígitos, guiones, rayas, punto, dos puntos. l No pueden utilizarse las palabras XML, xml, Xml, etc. , como caracteres iniciales del nombre de un atributo, entidad, etc. l XML es sensitivo a mayúsculas y minúsculas (no es lo mismo <Autor> que <autor> l El uso de espacios en blanco, y los saltos de línea, funcionan al igual que en HTML (sólo se toma en cuenta cuando aparece en el valor de un atributo, o cuando se indica su grado de significado)
Sintaxis n Las etiquetas se denominan ‘marcas’, y son las partes del documento que el ‘analizador sintáctico’ (parser) espera comprender n Las marcas en un documento XML comienzan con el carácter < y finalizan con > n En el caso de referencias de entidad, el carácter inicial es & y el final es ; n La primer línea debe especificar la versión de XML (de momento sólo 1. 0), la codificación de caracteres (US-ASCII, UTF-8, ISO-8859 -1, etc), y va entre caracteres de <? ? > en vez de <. . >
Ejemplo n <? xml version=“ 1. 0” encoding=“UTF-8”? >
Sintaxis n La segunda línea define el DTD (se verá mas adelante), y es opcional <!DOCTYPE mensaje SYSTEM “mensaje. dtd”>
Los Elementos en XML n Los elementos en XML pueden: Tener contenido (Texto, Valores, etc. ) l Contener otras etiquetas o atributos l Contener otras etiquetas, atributos, y contenido a la vez l n Pueden estar vacíos
Ejemplo n <nombre>James Britt</nombre> n <nombres> <nombre>James</nombre> <apellido>Britt</apellido> </nombres> n <persona edad=30><nombre>James Britt</nombre></persona> n <Sexo=“Masculino”/>
Los Atributos en XML n Los elementos pueden incorporar atributos, que son características o propiedades particulares n Los atributos siempre deben estar marcados con comillas simples o dobles, y se sitúa como un valor adicional a una etiqueta.
Ejemplo n <libros> <titulo>El amor es la compensación de la muerte; su correlativo esencial </titulo> <autor>Arthur Schopenhauer</autor> <precio moneda=“$”>200 pesos</precio> </libros> Atributo
Ejemplo n <? xml version=“ 1. 0”? > <!-- Aca va el tipo de documento --> <!DOCTYPE ejemplo [ <!-- Esto es otro comentario --> <!element Ejemplo (#PCDATA)>. . .
Las entidades en XML n En XML v 1. 0 existen 5 entidades predefinidas, para representar caracteres especiales, y que no se interpretan como marcas para el procesador XML. De esta forma podemos utilizar por ejemplo el carácter < , > , & , ‘ , “
Las entidades en XML Entidad Carácter & & < < > > ' ‘ " “
Las secciones CDATA n Otra forma de ingresar un bloque de caracteres sin que el procesador XML los interprete, es utilizando los bloques CDATA (Character Data) n Ingresar etiquetas HTML dentro de un documento XML (se verá su utilidad mas adelante)
Ejemplo n Sin una sección CDATA <ejemplo> < HTML> < BODY> Hola, esto es un documento html dentro de uno XML < /BODY> < /HTML> </ejemplo>
Ejemplo n Con una sección CDATA <ejemplo> <![CDATA[ <HTML>; <BODY> Hola, esto es un documento html dentro de uno XML </BODY> </HTML> ]]> </ejemplo>
Utilizando comentarios en XML n En general, es necesaria la utilización de comentarios en un documento XML n Estos deben ser ignorados por el procesador sintáctico, y las reproducciones del documento. n Igual sintaxis que en HTML (<!-- y -->) n Nunca puede ir dentro de una etiqueta, etc.
Aplicaciones de XML n Formato de intercambio de datos l l n Publicación de datos l n l Bases de datos nativas XML Lenguajes de consulta y actualización: XQuery, XQL, XUpdate, etc. Ficheros de configuración y log l l n En diversos formatos (HTML, WML, PDF, etc. ) a través de transformaciones XSLT Repositorios de datos l n Sistemas heredados Integración de sistemas heterogéneos Aplicaciones, servidores Web, motores de Servlets, descripción de componentes EJB, etc. Sistema operativo Etc.
Almacenamiento de datos Tradicional n Bases de Datos n n Tiempo y costo para crear y mantener Archivos Planos n n El formato no es estandarizado Se deben escribir sus propios programas de validación de entrada y salida
Almacenamiento de Datos XML n La búsqueda de datos es relativamente fácil n El formato es Standard n Las herramientas Standard para validación de entrada/salida ya existen n La facilidad de lectura de los archivos planos hacen mas fácil el control
Intercambio de Datos Tradicional n Delineación de valores l l n Datos difíciles de leer/identificar Las relaciones entre los datos son difíciles de documentar Campos Fijos l Limitados a cierta extensión de campo
Intercambio de Datos en XML n Los datos son relativamente simples de leer y editar con un simple editor de texto n Relaciones complejas (árboles, herencia) pueden ser comunicadas n Tags son auto-descriptivas, leídas por humanos n Validación de datos automática
Despliegue Tradicional de Documentos n HTML l Contenido e interfase gráfica mezclados l Buscar información en los datos es pesado l Los contenidos están ‘atados’ a la lógica y lenguaje HTML l Los Tags son genéricos por naturaleza
Despliegue de Documentos XML n Significado de los tags es manejado por XSL n n n Un archivo XML puede ser enlazado a varios archivos XSL n n Instrucciones para transformar un tipo de documento en otro Transformación común XML -> HTML El contenido de un archivo puede ser ‘renderizado’ para Web, impresion, celulares, etc. Separación de la presentación y el contenido
Aplicaciones que procesan XML n Verifican que documentos XML cumplan con los Standard para ser “bien formados” n Validan en base a las especificadas en un DTD n Transforman los datos basadas en instrucciones XSL (Extensible Stylesheet Language) definiciones
Cuando utilizar XML n Almacenar y buscar pequeñas cantidades de datos n Intercambio de datos entre diferentes aplicaciones u organizaciones n Separar contenidos de presentación
Herramientas n Existen para varios lenguajes l n Java, ASP, PHP Cocoon l Aplicación para proceso de XML
Sopa de Letras XML DOM DTD XPointer XLL XQL XSLT XSL XPath Parser Schema XDR SAX XRef SOAP SGML XML-Data
Algunas definiciones n XML - e. Xtended Mark-up Language n DTD - Document Type Definition n XSLT - e. Xtended Style. Sheet Language n Parser - Analizador sintáctico n DOM - Document Object Model n XHTML - e. Xtended HTML
Algunas tecnologías XML n Especificación actual l n Definición de Documentos l n DTD o Schemas Definición de estilos l n XML v 1. 0 (1. 1 = 1. 0 + namespaces) XSL=XSLT + XPATH Enlazado de documentos l XLL=Xlink + Xpointer
Documentos válidos n El documento debe estar “bien formado” n Debe ser válido (tener un DTD) n Su elemento raíz debe ser aquel definido en el DTD n Debe satisfacer las especificaciones indicadas en el DTD
Ejercicios prácticos Introducción a XML
Práctica 1 n Cree manualmente un archivo XML llamado “libros. xml” con información sobre 10 libros relacionados con TI. n Incluya para cada libro el título, autores, número de edición (1 a, 2 da, etc), año/fecha de publicación, editorial, presentación (impreso en papel o versión digital) y precio aproximado.
Name. Spaces Introducción a XML
Problema <table> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
Usando un prefijo <h: table> <h: tr> <h: td>Apples</h: td> <h: td>Bananas</h: td> </h: tr> </h: table> <f: name>African Coffee Table</f: name> <f: width>80</f: width> <f: length>120</f: length> </f: table>
Usando un prefijo <root> <h: table xmlns: h="http: //www. w 3. org/TR/html 4/"> <h: tr> <h: td>Apples</h: td> <h: td>Bananas</h: td> </h: tr> </h: table> <f: table xmlns: f="http: //www. w 3 schools. com/furniture"> <f: name>African Coffee Table</f: name> <f: width>80</f: width> <f: length>120</f: length> </f: table> </root>
Usando un prefijo <root xmlns: h="http: //www. w 3. org/TR/html 4/" xmlns: f="http: //www. w 3 schools. com/furniture"> <h: table> <h: tr> <h: td>Apples</h: td> <h: td>Bananas</h: td> </h: tr> </h: table> <f: name>African Coffee Table</f: name> <f: width>80</f: width> <f: length>120</f: length> </f: table> </root>
Namespaces por default n n n <table xmlns="http: //www. w 3. org/TR/html 4/"> <tr> <td>Apples</td> <td>Bananas</td> </tr> </table> <table xmlns="http: //www. w 3 schools. com/furniture"> <name>African Coffee Table</name> <width>80</width> <length>120</length> </table>
Un uso práctico <? xml version="1. 0" encoding="ISO-8859 -1"? > <xsl: stylesheet version="1. 0" xmlns: xsl="http: //www. w 3. org/1999/XSL/Transform"> <xsl: template match="/"> <html> <body> <h 2>My CD Collection</h 2> <table border="1"> <tr> <th align="left">Title</th> <th align="left">Artist</th> </tr> <xsl: for-each select="catalog/cd"> <tr> <td><xsl: value-of select="title"/></td> <td><xsl: value-of select="artist"/></td> </tr> </xsl: for-each> </table> </body> </html> </xsl: template> </xsl: stylesheet>
Ejercicios prácticos Introducción a XML
Práctica 2 n Modifique los archivos generados en la práctica 1, de tal manera que se tome en cuenta la posible integración de los documentos con otros en el futuro, evitando cualquier incompatibilidad por duplicación de etiquetas.
- Slides: 89