Diapositivas de la Parte I (Introducción)

Download Report

Transcript Diapositivas de la Parte I (Introducción)

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








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

David Eduardo Pinto Avendaño
(David Pinto)

Doctorado en Reconocimiento de Formas e
Inteligencia Artificial (Universidad Politécnica de
Valencia, España)

Maestría y Licenciatura en Ciencias de
Computación (Facultad de Ciencias de
Computación, BUAP, México)

Página Web: http://dpinto.cs.buap.mx

Contacto: [email protected]
la
la
Contenido del curso
OBJETIVO GENERAL:

Desarrollar interfaces basadas en
XML y Java operando sistemas
de información sobre la Web.
Método de trabajo

El docente expondrá los aspectos teóricos sobre
interfaces XML mediante el uso de técnicas de
exposición y conferencia.

El docente expondrá de una manera práctica y a
través de ejemplos el uso de interfaces XML.

El docente asignará lecturas en casa y aula, utilizando
dinámicas para la lectura guiada y lectura comentada.

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.






Orígenes de XML
Metas de XML
Creación de documentos
Despliegue de documentos XML
Verificación del formato XML
Elementos de XML





Atributos
Namespaces
Entidades
Otras marcas

Aplicaciones.

XML y Java.

XML y otros lenguajes.
Análisis de documentos

Procesadores de XML.

XML Notepad

Lectura de un documento en XML.

Sintaxis básica XML.

Programación de interfaces.

Ejercicios prácticos
Gestión de documentos y
metacontenidos

Hojas de estilo CSS

Hojas de estilo XSLT

Servlets

DocMan

Vista, lista y búsqueda de documentos.

Creación de metacontenidos.
JSP y XML

Introducción a JSP

JSP con XML





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





Introducción a J2EE
Etiquetas Personalizadas y J2EE
Enterprise Java Beans (EJBs)
Describir y Referenciar Servicios J2EE

Aplicación Web con una base de datos.

Ejercicios
Bases de datos y XML

Java y bases de datos

JDBC

SQL incrustado en XML: SQLX

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

XML: Extensible Mark-up Language (lenguaje de
marcado extensible)

Es un lenguaje orientado a:

La definición de datos de carácter general. Nos
permite definir modelos de datos.



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

XML es el formato y el modelo para
intercambiar
información
entre
componentes, aplicaciones, y empresas
a través de Internet

Microsoft, IBM, Firefox, etc., están
apostando fuertemente a esta tecnología

XML es un estándar abierto a Internet
(W3C)

XML habilita una nueva generación de
aplicaciones en Internet
Conceptos básicos
XML
¿Qué es XML?

Texto que cumple ciertas reglas

Las reglas tienen puntos en
común con HTML

Abierto a sistemas operativos
¿Qué es XML?

XML es un sub-conjunto de SGML (Standard
Generalized Mark-up Language)

Creado y soportado por el World Wide Web
Consortium (www.w3c.org)
SGML
XML
HTML
¿Qué es XML?

XML es un sub-conjunto de SGML (Standard
Generalized Mark-up Language)

Creado y soportado por el World Wide Web
Consortium (www.w3c.org)
¿Qué es XML?

Más fácil que SGML

Más pequeño

Pensado para ser utilizado en Internet

XML es un lenguaje utilizado para estructurar y
describir datos de forma que puedan ser entendidos
o interpretados por diferentes aplicaciones

Puede ser utilizado por cualquier lenguaje y/o
sistema operativo
¿Qué es XML?

XML es un meta-lenguaje que nos permite definir
lenguajes de marcado, adecuados a usos determinados

XML es un estándar de Internet, aprobado por la W3C
(http://www.w3.org/TR/REC-xml/)

Traducciones:
http://www.w3.org/2003/03/Translations/OverviewLang.html#es

Los
proveedores
especificaciones
tratan
de
ajustarse
a
las

Microsoft (MSXML40.DLL) e IBM ofrecen un conjunto de
objetos para manejar XML
¿Qué NO es XML?

XML no es una versión mejorada de
HTML

XML no es un lenguaje para hacer
mejores páginas web

XML no es difícil
¿Dónde está la revolución?

Para entender la revolución que plantea XML, hay
que entender las tecnologías circundantes
 XSL
 XSLT
 DTD
 Schema
 XPATH
 Etc.

Estas son las que realmente hacen la revolución
(En especial XSLT, y DTD, y Schema)
Algo de historia sobre XML

Desarrollo a partir de 1996, como un
sub-conjunto de SGML

Adoptado como estándar en Febrero
de 1998, por el World Wide Web
Consortium (W3C)
World Wide Web Consortium (W3C)

Constituido en 1994 con el objetivo de
desarrollar protocoles comunes para la
evolución de Internet

Es un consorcio de industrias
internacionales, y está participado por MIT
(EEUU), INRA (Francia), y Keio University
(Japón)

Cuenta con el apoyo de DARPA (EEUU), y
la comisión europea (IEEE)
¿Qué ventajas tiene XML?

Un documento en XML, puede
tener varias formas de
presentación
¿Qué ventajas tiene XML?

Formato ideal para transacciones B2B

Permite poderosas técnicas de extracción
y búsqueda de información (XSL y XPATH)

Las estrictas reglas para la composición de
un documento XML, permite su fácil
análisis sintáctico

A diferencia de HTML, XML es sensitivo a
mayúsculas y minúsculas
Lenguajes Específicos

HTML — ejemplo
<!DOCTYPE HTML PUBLIC "-//W3C//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

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)

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

Se dice que un documento XML es
‘bien formado’ (well formed), cuando
cumple una serie de reglas escritas
en XML v1.0



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 FloresSilvestres SYSTEM “flores.dtd">

Estructura



Prólogo



XML Declaration
Document Type
Declaration
Document Element


Lógica = cómo se
estructura el documento
Física = qué contiene el
documento
Siempre el raíz
Anidamiento de
elementos restantes
Sintaxis

Etiquetas



Apertura/cierre
Elemento vacío
Atributos
<TAG> Texto </TAG>
<TAG></TAG>  <TAG/>
<TAG ATRIB=“valor”> Texto
</TAG>

Entidades

Parseadas
<!ENTITY PL “poca luz”>
...
<TERM>Esta planta necesita
&PL;</TERM>
<!ENTITY Img SYSTEM
“Img.gif” NDATA GIF>

No parseadas

Predefinidas
&lt; 
&amp; 
...
<
&
Recomendaciones

Todo contenido estará etiquetado. Toda etiqueta debe estar delimitada por
los símbolos de menor y mayor. Ejemplo: <libro>

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 ‘/’.


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 ‘/’.

Los nombres de etiquetas son sensibles a mayúsculas y minúsculas (a
diferencia de HTML)

La estructura de una etiqueta sigue la terna objeto-atributo-valor.

Notación larga:
<etiqueta>
<atributo1> valor </atributo1>
...


</etiqueta>
Notación corta (las dobles comillas son obligatorias, a diferencia de HTML):
<etiqueta atributo1=“valor” ... > </etiqueta>
Ejemplo:
<libro>
<autor>Miguel De Cervantes</autor>
<titulo>El Quijote</titulo>
<precio>18</precio>
</libro>
Recomendaciones

La estructura del documento es jerárquica, en forma de
árbol, en la que siempre hay un primer elemento raíz.

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”
?>

Donde cada atributo significa:




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, 2nd Edition</titulo>
<autor>
<nombre>Elliotte Rusty Harold, W. Scott Means</nombre>
<email>[email protected]</email>
<direccion>1005 Gravenstein Highway North, CA 3472
</direccion>
</autor>
<capitulo nombre="Introduccion">
XML Concepts
<seccion>
<nombre>Introducing XML</nombre>
<contenido>bla bla bla bla...</contenido>
</seccion>
</capitulo>
</libro>
</biblioteca>
¿Qué problemas tiene HTML?

Es un meta-lenguaje de definición de presentación

Contiene datos + presentación

No es fácilmente procesable por ‘máquinas’

No fuerza al la buena estructura de la página
(pueden dejarse por error etiquetas sin cerrar)

Su interpretación depende del software utilizado

Está pensado para su utilización en páginas Web.
HTML versus XML

HTML se centra en
el despliegue, y es
menos
estructurado

XML es sobre
datos, y es
sumamente
estructurado

Las etiquetas y
atributos son fijos

Las etiquetas y
atributos son
extensibles

Es posible olvidar
el cierre de alguna
etiqueta

Se fuerza a tener
una estructura
consistente
¿Qué ventajas tiene XML?

Fácil de procesar/entender por
software o por seres humanos

Pensado para ser utilizado en
cualquier lenguaje o alfabeto

Separa radicalmente la
información o contenido, de
su presentación o formato
Construyendo
documentos XML
Ejemplo

<libros><autor
pais=“Uruguay”>Leo
Masliah</libros></autor>

<libros><autor
pais=“Uruguay”>Leo
Masliah</autor> </libros>
Reglas y pautas XML

Los documentos deben tener un
nodo raíz

Todas las etiquetas deben estar
debidamente cerradas

Las etiquetas vacías (etiquetas sin
contenido) deben tener una
sintaxis especial
Ejemplo

<libros><autor
pais=“Uruguay”>Leo
Masliah<Ranking=100></autor></
libros>

<libros>
<autor pais=“Uruguay”>Leo
Masliah
<Ranking=100/></autor>
</libros>
Reglas y pautas XML

Un nombre de elemento, atributo, entidad, etc.,
comienza por una letra, y continúa con letras,
dígitos, guiones, rayas, punto, dos puntos.

No pueden utilizarse las palabras XML, xml,Xml,
etc., como caracteres iniciales del nombre de un
atributo, entidad, etc.

XML es sensitivo a mayúsculas y minúsculas
(no es lo mismo <Autor> que <autor>

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

Las etiquetas se denominan ‘marcas’, y son las
partes del documento que el ‘analizador
sintáctico’ (parser) espera comprender

Las marcas en un documento XML comienzan
con el carácter < y finalizan con >

En el caso de referencias de entidad, el carácter
inicial es & y el final es ;

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

<?xml version=“1.0”
encoding=“UTF-8”?>
Sintaxis

La segunda línea define el DTD
(se verá mas adelante), y es
opcional
<!DOCTYPE mensaje SYSTEM
“mensaje.dtd”>
Los Elementos en XML

Los elementos en XML pueden:
Tener contenido (Texto, Valores,
etc.)
 Contener otras etiquetas o
atributos
 Contener otras etiquetas,
atributos, y contenido a la vez


Pueden estar vacíos
Ejemplo

<nombre>James Britt</nombre>

<nombres>
<nombre>James</nombre>
<apellido>Britt</apellido>
</nombres>

<persona edad=30><nombre>James
Britt</nombre></persona>

<Sexo=“Masculino”/>
Los Atributos en XML

Los elementos pueden incorporar
atributos, que son características o
propiedades particulares

Los atributos siempre deben estar
marcados con comillas simples o
dobles, y se sitúa como un valor
adicional a una etiqueta.
Ejemplo

<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

<?xml version=“1.0”?>
<!-- Aca va el tipo de documento -->
<!DOCTYPE ejemplo [
<!-- Esto es otro comentario -->
<!element Ejemplo (#PCDATA)>
.
.
.
Las entidades en XML

En XML v1.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
&amp;
&
&lt;
<
&gt;
>
&apos;
‘
&quot;
“
Las secciones CDATA

Otra forma de ingresar un
bloque de caracteres sin que el
procesador XML los interprete,
es utilizando los bloques CDATA
(Character Data)

Ingresar etiquetas HTML dentro
de un documento XML (se verá
su utilidad mas adelante)
Ejemplo

Sin una sección CDATA
<ejemplo>
&lt;HTML&gt;
&lt;BODY&gt;
Hola, esto es un documento html dentro de
uno XML
&lt;/BODY&gt;
&lt;/HTML&gt;
</ejemplo>
Ejemplo

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

En general, es necesaria la utilización de
comentarios en un documento XML

Estos deben ser ignorados por el
procesador sintáctico, y las reproducciones
del documento.

Igual sintaxis que en HTML (<!-- y -->)

Nunca puede ir dentro de una etiqueta, etc.
Aplicaciones de XML

Formato de intercambio de datos



Publicación de datos



Bases de datos nativas XML
Lenguajes de consulta y actualización: XQuery, XQL, XUpdate,
etc.
Ficheros de configuración y log



En diversos formatos (HTML, WML, PDF, etc.) a través de
transformaciones XSLT
Repositorios de datos


Sistemas heredados
Integración de sistemas heterogéneos
Etc.
Aplicaciones, servidores Web, motores de Servlets,
descripción de componentes EJB, etc.
Sistema operativo
Almacenamiento de datos Tradicional

Bases de Datos


Tiempo y costo para crear y mantener
Archivos Planos


El formato no es estandarizado
Se deben escribir sus propios
programas de validación de entrada y
salida
Almacenamiento de Datos XML

La búsqueda de datos es relativamente
fácil

El formato es Standard

Las herramientas Standard para validación
de entrada/salida ya existen

La facilidad de lectura de los archivos
planos hacen mas fácil el control
Intercambio de Datos Tradicional

Delineación de valores



Datos difíciles de leer/identificar
Las relaciones entre los datos son
difíciles de documentar
Campos Fijos

Limitados a cierta extensión de campo
Intercambio de Datos en XML

Los datos son relativamente simples de
leer y editar con un simple editor de texto

Relaciones complejas (árboles, herencia)
pueden
ser
comunicadas

Tags son auto-descriptivas, leídas por
humanos

Validación de datos automática
Despliegue Tradicional de Documentos

HTML

Contenido e interfase gráfica mezclados

Buscar información en los datos es
pesado

Los contenidos están ‘atados’ a la lógica
y lenguaje HTML

Los Tags son genéricos por naturaleza
Despliegue de Documentos XML

Significado de los tags es manejado por
XSL



Un archivo XML puede ser enlazado a
varios archivos XSL


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

Verifican que documentos XML cumplan
con los Standard para ser “bien formados”

Validan en base a las
especificadas en un DTD

Transforman los datos basadas en
instrucciones XSL (Extensible Stylesheet
Language)
definiciones
Cuando utilizar XML

Almacenar y buscar pequeñas
cantidades de datos

Intercambio de datos entre
diferentes aplicaciones u
organizaciones

Separar contenidos de
presentación
Herramientas

Existen para varios lenguajes


Java, ASP, PHP
Cocoon

Aplicación para proceso de XML
Sopa de Letras
XML
DOM
DTD
XPointer
XLL
XQL
XSLT
XSL
Schema
XDR
SAX
XPath
XRef
Parser
SOAP
SGML
XML-Data
Algunas definiciones

XML -
eXtended Mark-up Language

DTD -
Document Type Definition

XSLT
-
eXtended StyleSheet Language

Parser
-
Analizador sintáctico

DOM
-
Document Object Model

XHTML
-
eXtended HTML
Algunas tecnologías XML

Especificación actual


Definición de Documentos


DTD o Schemas
Definición de estilos


XML v1.0 (1.1 = 1.0 + namespaces)
XSL=XSLT + XPATH
Enlazado de documentos

XLL=Xlink + Xpointer
Documentos válidos

El documento debe estar “bien formado”

Debe ser válido (tener un DTD)

Su elemento raíz debe ser aquel definido
en el DTD

Debe satisfacer las especificaciones
indicadas en el DTD
Ejercicios prácticos
Introducción a XML
Práctica 1

Cree manualmente un archivo XML
llamado “libros.xml” con información
sobre 10 libros relacionados con TI.

Incluya para cada libro el título,
autores, número de edición (1a, 2da,
etc), año/fecha de publicación,
editorial, presentación (impreso en
papel o versión digital) y precio
aproximado.
NameSpaces
Introducción a XML
Problema
<table>
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
<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: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.w3.org/TR/html4/">
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table xmlns:f="http://www.w3schools.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.w3.org/TR/html4/"
xmlns:f="http://www.w3schools.com/furniture">
<h:table>
<h:tr>
<h:td>Apples</h:td>
<h:td>Bananas</h:td>
</h:tr>
</h:table>
<f:table>
<f:name>African Coffee Table</f:name>
<f:width>80</f:width>
<f:length>120</f:length>
</f:table>
</root>
Namespaces por default











<table xmlns="http://www.w3.org/TR/html4/">
<tr>
<td>Apples</td>
<td>Bananas</td>
</tr>
</table>
<table xmlns="http://www.w3schools.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.w3.org/1999/XSL/Transform">
<xsl:template match="/">
<html>
<body>
<h2>My CD Collection</h2>
<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

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.