Interfaces XML Universidad del Valle de Puebla Maestría en Administración de Tecnologías de la...
-
Upload
javier-calle -
Category
Documents
-
view
222 -
download
0
Transcript of Interfaces XML Universidad del Valle de Puebla Maestría en Administración de Tecnologías de la...
Interfaces XMLInterfaces XML
Universidad del Valle de Universidad del Valle de PueblaPuebla
Maestría en Administración de Tecnologías de la InformaciónMaestría en Administración de Tecnologías de la Información
Dr. David PintoDr. David Pinto
Agenda del día de hoyAgenda del día de hoy
Presentación de los participantes.Presentación de los participantes. Análisis de expectativas.Análisis de expectativas. Presentación del programa.Presentación del programa. Plenario de acuerdos.Plenario de acuerdos. Elaboración de un directorio electrónico.Elaboración de un directorio electrónico.
Exposición teórica del profesor: Introducción a XML Exposición teórica del profesor: Introducción a XML (conceptos básicos y análisis de documentos).(conceptos básicos y análisis de documentos).
Exposición práctica del profesor: Ejemplos Exposición práctica del profesor: Ejemplos prácticos sobre la aplicación de XML en diversas prácticos sobre la aplicación de XML en diversas áreas.áreas.
TAREA: Elaborar un catalogo de productos usando TAREA: Elaborar un catalogo de productos usando la estructura básica de XML.la estructura básica de XML.
PresentaciónPresentación
David Eduardo Pinto AvendañoDavid Eduardo Pinto Avendaño ((David PintoDavid Pinto))
Doctorado en Reconocimiento de Formas e Doctorado en Reconocimiento de Formas e Inteligencia Artificial (Universidad Politécnica de Inteligencia Artificial (Universidad Politécnica de Valencia, España)Valencia, España)
Maestría y Licenciatura en Ciencias de la Maestría y Licenciatura en Ciencias de la Computación (Facultad de Ciencias de la Computación (Facultad de Ciencias de la Computación, BUAP, México)Computación, BUAP, México)
Página Web: Página Web: httphttp://dpinto.cs.buap.mx://dpinto.cs.buap.mx
Contacto: Contacto: [email protected]@cs.buap.mx
Contenido del cursoContenido del curso
OBJETIVO GENERAL:OBJETIVO GENERAL:
Desarrollar interfaces basadas en Desarrollar interfaces basadas en XML y Java operando sistemas XML y Java operando sistemas de información sobre la Web.de información sobre la Web.
Método de trabajoMétodo de trabajo
El docente expondrá los aspectos teóricos sobre El docente expondrá los aspectos teóricos sobre interfaces XML mediante el uso de técnicas de interfaces XML mediante el uso de técnicas de exposición y conferencia. exposición y conferencia.
El docente expondrá de una manera práctica y a través El docente expondrá de una manera práctica y a través de ejemplos el uso de interfaces XML.de ejemplos el uso de interfaces XML.
El docente asignará lecturas en casa y aula, utilizando El docente asignará lecturas en casa y aula, utilizando dinámicas para la lectura guiada y lectura comentada.dinámicas para la lectura guiada y lectura comentada.
El alumno deberá desarrollar un trabajo de El alumno deberá desarrollar un trabajo de investigación documental y expresar dicho trabajo a investigación documental y expresar dicho trabajo a través de la tecnología XML. El proyecto deberá tener través de la tecnología XML. El proyecto deberá tener relevancia y ser significativo para el desarrollo de relevancia y ser significativo para el desarrollo de trabajo de tesis del estudiante.trabajo de tesis del estudiante.
Presentación del Presentación del ProgramaPrograma
Interfaces XMLInterfaces XML
Conceptos básicosConceptos básicos
Fundamentos.Fundamentos. Orígenes de XMLOrígenes de XML Metas de XMLMetas de XML Creación de documentosCreación de documentos Despliegue de documentos XMLDespliegue de documentos XML Verificación del formato XMLVerificación del formato XML
Elementos de XMLElementos de XML AtributosAtributos NamespacesNamespaces EntidadesEntidades Otras marcasOtras marcas
Aplicaciones.Aplicaciones.
XML y Java.XML y Java.
XML y otros lenguajes.XML y otros lenguajes.
Análisis de documentosAnálisis de documentos
Procesadores de XML.Procesadores de XML. XML NotepadXML Notepad
Lectura de un documento en XML.Lectura de un documento en XML.
Sintaxis básica XML.Sintaxis básica XML.
Programación de interfaces.Programación de interfaces.
Ejercicios prácticosEjercicios prácticos
Gestión de documentos y Gestión de documentos y metacontenidosmetacontenidos Hojas de estilo CSSHojas de estilo CSS
Hojas de estilo XSLTHojas de estilo XSLT
ServletsServlets
DocManDocMan
Vista, lista y búsqueda de documentos.Vista, lista y búsqueda de documentos.
Creación de metacontenidos.Creación de metacontenidos.
JSP y XMLJSP y XML
Introducción a JSPIntroducción a JSP
JSP con XMLJSP con XML Generación de archivos XML desde JSPGeneración de archivos XML desde JSP Convertir XML a Objetos del Lado del ServidorConvertir XML a Objetos del Lado del Servidor API Simple para XML (SAX)API Simple para XML (SAX) Document Object Model (DOM)Document Object Model (DOM) Transformación entre diferentes lenguajes XMLTransformación entre diferentes lenguajes XML
Etiquetas JSP personalizadasEtiquetas JSP personalizadas Introducción a J2EEIntroducción a J2EE Etiquetas Personalizadas y J2EEEtiquetas Personalizadas y J2EE Enterprise Java Beans (EJBs)Enterprise Java Beans (EJBs) Describir y Referenciar Servicios J2EEDescribir y Referenciar Servicios J2EE
Aplicación Web con una base de datos.Aplicación Web con una base de datos.
EjerciciosEjercicios
Bases de datos y XMLBases de datos y XML
Java y bases de datosJava y bases de datos
JDBCJDBC
SQL incrustado en XML: SQLXSQL incrustado en XML: SQLX
Aplicación Web con una base de Aplicación Web con una base de datosdatos
Plenario de AcuerdosPlenario de Acuerdos
Interfaces XMLInterfaces XML
Normas y procedimientos de Normas y procedimientos de evaluaciónevaluación
PrácticasPrácticas 40%40%
Proyecto Proyecto 60%60%
--------- ---------
TOTAL: TOTAL: 100%100%
Sesión 1:Sesión 1:
Conceptos básicos de XMLConceptos básicos de XML
Universidad del Valle de Universidad del Valle de PueblaPuebla
Maestría en Administración de Tecnologías de la InformaciónMaestría en Administración de Tecnologías de la Información
Dr. David PintoDr. David Pinto
Conceptos básicosConceptos básicos
XML: Extensible Mark-up Language (lenguaje de XML: Extensible Mark-up Language (lenguaje de marcado extensible)marcado extensible)
Es un lenguaje orientado a:Es un lenguaje orientado a: La definición de datos de carácter general. Nos La definición de datos de carácter general. Nos
permite permite definir modelos de datosdefinir modelos de datos. . Al compartir modelos de datos se facilita el Al compartir modelos de datos se facilita el intercambiointercambio
de datos entre sistemas (aplicaciones) heterogéneos.de datos entre sistemas (aplicaciones) heterogéneos. Crear Crear nuevos lenguajesnuevos lenguajes graciasgracias a sus mecanismos a sus mecanismos
de extensibilidad. Por ello, se dice que XML es un de extensibilidad. Por ello, se dice que XML es un metalenguaje (un lenguaje para crear nuevos metalenguaje (un lenguaje para crear nuevos lenguajes).lenguajes).
Se refiere únicamente a los datos, no a su Se refiere únicamente a los datos, no a su presentación. Deja a otras aplicaciones la tarea de presentación. Deja a otras aplicaciones la tarea de definir la estructura de visualización.definir la estructura de visualización.
Conceptos básicosConceptos básicos
XML XML es el formato y el modelo para es el formato y el modelo para intercambiar información entre intercambiar información entre componentes, aplicaciones, y empresas componentes, aplicaciones, y empresas a través de Internet a través de Internet
Microsoft, IBM, Firefox, etc., están Microsoft, IBM, Firefox, etc., están apostando fuertemente a esta tecnologíaapostando fuertemente a esta tecnología
XML XML es un estándar abierto a Internet es un estándar abierto a Internet (W3C)(W3C)
XML XML habilita una nueva generación de habilita una nueva generación de aplicaciones en Internetaplicaciones en Internet
Conceptos básicosConceptos básicos
XML
XML
¿Qué es XML?¿Qué es XML?
Texto que cumple ciertas reglasTexto que cumple ciertas reglas
Las reglas tienen puntos en Las reglas tienen puntos en común con HTMLcomún con HTML
Abierto a sistemas operativosAbierto a sistemas operativos
¿Qué es XML?¿Qué es XML?
XML es un sub-conjunto de SGML (Standard XML es un sub-conjunto de SGML (Standard Generalized Mark-up Language)Generalized Mark-up Language)
Creado y soportado por el World Wide Web Consortium (www.w3c.org)
SGMLXML
HTML
¿Qué es XML?¿Qué es XML?
XML es un sub-conjunto de SGML (Standard XML es un sub-conjunto de SGML (Standard Generalized Mark-up Language)Generalized Mark-up Language)
Creado y soportado por el World Wide Web Consortium (www.w3c.org)
¿Qué es XML?¿Qué es XML?
Más fácil que SGMLMás fácil que SGML
Más pequeñoMás pequeño
Pensado para ser utilizado en InternetPensado para ser utilizado en Internet
XML XML ees s un lenguaje utilizado paraun lenguaje utilizado para eestructurstructurarar y y describir datos de forma que puedan ser describir datos de forma que puedan ser entendidos o interpretados por diferentes entendidos o interpretados por diferentes aplicaaplicaccionioneess
Puede ser utilizado por cualquier lenguaje y/o Puede ser utilizado por cualquier lenguaje y/o sistema operativosistema operativo
¿Qué es XML?¿Qué es XML?
XML es un meta-lenguaje que nos permite definir XML es un meta-lenguaje que nos permite definir lenguajes de marcado, adecuados a usos determinadoslenguajes de marcado, adecuados a usos determinados
XML es un estándar de Internet, aprobado por la W3CXML es un estándar de Internet, aprobado por la W3C ( (http://www.w3.org/TR/REC-xml/http://www.w3.org/TR/REC-xml/))
Traducciones: Traducciones: httphttp://://www.w3www.w3..orgorg/2003/03//2003/03/TranslationsTranslations//OverviewLang.html#esOverviewLang.html#es
Los proveedores tratan de ajustarse a las Los proveedores tratan de ajustarse a las especificacionesespecificaciones
Microsoft (MSXML40.DLL) e IBM ofrecen un conjunto de Microsoft (MSXML40.DLL) e IBM ofrecen un conjunto de objetos para manejar XMLobjetos para manejar XML
¿Qué ¿Qué NONO es XML? es XML?
XML no es una versión mejorada de XML no es una versión mejorada de HTMLHTML
XML no es un lenguaje para hacer XML no es un lenguaje para hacer mejores páginas webmejores páginas web
XML no es difícilXML no es difícil
¿Dónde está la revolución?¿Dónde está la revolución? Para entender la revolución que plantea XML, hay Para entender la revolución que plantea XML, hay
que entender las tecnologías circundantesque entender las tecnologías circundantes XSLXSL XSLTXSLT DTDDTD SchemaSchema XPATHXPATH Etc.Etc.
Estas son las que realmente hacen la revolución Estas son las que realmente hacen la revolución (En especial XSLT, y DTD, y Schema)(En especial XSLT, y DTD, y Schema)
Algo de historia sobre XMLAlgo de historia sobre XML Desarrollo a partir de 1996, como un Desarrollo a partir de 1996, como un
sub-conjunto de SGMLsub-conjunto de SGML
Adoptado como estándar en Febrero Adoptado como estándar en Febrero de 1998, por el World Wide Web de 1998, por el World Wide Web Consortium (W3C)Consortium (W3C)
World Wide Web Consortium (W3C)World Wide Web Consortium (W3C)
Constituido en 1994 con el objetivo de Constituido en 1994 con el objetivo de desarrollar protocoles comunes para la desarrollar protocoles comunes para la evolución de Internetevolución de Internet
Es un consorcio de industrias Es un consorcio de industrias internacionales, y está participado por MIT internacionales, y está participado por MIT (EEUU), INRA (Francia), y Keio University (EEUU), INRA (Francia), y Keio University (Japón)(Japón)
Cuenta con el apoyo de DARPA (EEUU), y Cuenta con el apoyo de DARPA (EEUU), y la comisión europea (IEEE)la comisión europea (IEEE)
¿Qué ventajas tiene XML?¿Qué ventajas tiene XML?
Un documento en XML, puede Un documento en XML, puede tener varias formas de tener varias formas de presentaciónpresentación
¿Qué ventajas tiene XML?¿Qué ventajas tiene XML?
Formato ideal para transacciones B2BFormato ideal para transacciones B2B
Permite poderosas técnicas de extracción Permite poderosas técnicas de extracción y búsqueda de información (XSL y XPATH)y búsqueda de información (XSL y XPATH)
Las estrictas reglas para la composición de Las estrictas reglas para la composición de un documento XML, permite su fácil un documento XML, permite su fácil análisis sintácticoanálisis sintáctico
A diferencia de HTML, XML es sensitivo a A diferencia de HTML, XML es sensitivo a mayúsculas y minúsculasmayúsculas y minúsculas
Lenguajes EspecíficosLenguajes Específicos
HTML — ejemploHTML — ejemplo
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 3.2 FINAL//EN">FINAL//EN">
<HTML><HTML> <HEAD><HEAD> <TITLE>Memo</TITLE><TITLE>Memo</TITLE> </HEAD></HEAD> <BODY><BODY> <FONT FACE="Times New Roman" SIZE="2"><FONT FACE="Times New Roman" SIZE="2"> <P><P> <B>To: </B> Camino<BR> <B>To: </B> Camino<BR> <B>From: </B> Juanma<BR><B>From: </B> Juanma<BR> <B>Cc: </B> Nacho<BR><B>Cc: </B> Nacho<BR> <B>Subject: </B> Capítulo 1<B>Subject: </B> Capítulo 1 </P></P> <P> Qué opinas del formato? </P><P> Qué opinas del formato? </P> </FONT></FONT> </BODY></BODY></HTML></HTML>
Visualización de HTMLVisualización de HTML
Ejemplo en XMLEjemplo en XML
XML — ejemploXML — ejemplo
<?xml version="1.0"?><?xml version="1.0"?><MEMO><MEMO> <TO>Juanma</TO><TO>Juanma</TO> <FROM>Camino</FROM><FROM>Camino</FROM> <CC>Nacho</CC><CC>Nacho</CC> <SUBJECT>Capitulo 2</SUBJECT><SUBJECT>Capitulo 2</SUBJECT> <BODY>Empezamos con algo de <BODY>Empezamos con algo de codigo XML</BODY>codigo XML</BODY>
</MEMO></MEMO>
Visualización de un archivo XMLVisualización de un archivo XML
Visualización de un archivo XMLVisualización de un archivo XML
Visualización de un archivo XMLVisualización de un archivo XML
XML (ejemplo) Documento XML:
<libro> marca de comienzo
The XML Bible contenido
</libro> marca de fin
<autor nro=2332>
Elliotte Rusty Harold
</autor>
elemento atributo
El elemento y sus atributosEl elemento y sus atributos
<autor pais=“Uruguay”>Mario Benedetti</autor><autor pais=“Uruguay”>Mario Benedetti</autor>
Nombre del elemento
Nombre del atributo
Valor del atributo
Contenido del elemento
Etiqueta de fin
Reglas y pautas XMLReglas y pautas XML
Se dice que un documento XML es Se dice que un documento XML es ‘bien formado’ (well formed), cuando ‘bien formado’ (well formed), cuando cumple una serie de reglas escritas cumple una serie de reglas escritas en XML v1.0en XML v1.0 Los elementos deben seguir una Los elementos deben seguir una
estructura de árbol (estrictamente estructura de árbol (estrictamente jerárquica)jerárquica)
Los elementos deben estar Los elementos deben estar correctamente anidadoscorrectamente anidados
Los elementos no se pueden Los elementos no se pueden superponer entre ellossuperponer entre ellos
Estructura de un documento XMLEstructura de un documento XML
EstructuraEstructura LógicaLógica = cómo se = cómo se
estructura el estructura el documentodocumento
FísicaFísica = qué contiene = qué contiene el documentoel documento
PrólogoPrólogo XML DeclarationXML Declaration Document Type Document Type
DeclarationDeclaration Document ElementDocument Element
Siempre el raízSiempre el raíz Anidamiento de Anidamiento de
elementos restanteselementos restantes
<?xml version="1.0"?><!DOCTYPE FloresSilvestres SYSTEM “flores.dtd">
SintaxisSintaxis EtiquetasEtiquetas
Apertura/cierreApertura/cierre <TAG> Texto </TAG><TAG> Texto </TAG> Elemento vacíoElemento vacío <TAG></TAG> <TAG></TAG> <TAG/> <TAG/>
AtributosAtributos <TAG ATRIB=“valor”> <TAG ATRIB=“valor”> Texto </TAG>Texto </TAG>
EntidadesEntidades ParseadasParseadas <!ENTITY PL “poca <!ENTITY PL “poca
luz”> ...luz”> ...
<TERM>Esta planta <TERM>Esta planta necesita &PL;</TERM>necesita &PL;</TERM>
No parseadasNo parseadas <!ENTITY Img SYSTEM <!ENTITY Img SYSTEM “Img.gif” NDATA GIF>“Img.gif” NDATA GIF>
PredefinidasPredefinidas < < < <
& & & &
......
RecomendacionesRecomendaciones Todo contenido estará Todo contenido estará etiquetadoetiquetado. Toda etiqueta debe estar . Toda etiqueta debe estar delimitada por delimitada por
los símbolos de menor y mayorlos símbolos de menor y mayor. Ejemplo: <libro>. Ejemplo: <libro>
Las etiquetas se cierran en el mismo orden en el que se abrieron. La etiqueta 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 de cierre tiene el mismo nombre que la de apertura y se inicia por la barra ‘/’barra ‘/’..
Ejemplo: <libro> ... </libro>Ejemplo: <libro> ... </libro> Por comodidad se permiten etiquetas que sirvan tanto para la apertura como para el 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 ‘/’.cierre. Estas etiquetas deben acabar con el símbolo de barra ‘/’.
Los nombres de etiquetas son Los nombres de etiquetas son sensibles a mayúsculas y minúsculassensibles a mayúsculas y minúsculas (a (a diferencia de HTML)diferencia de HTML)
La estructura de una etiqueta sigue la terna La estructura de una etiqueta sigue la terna objeto-atributo-valorobjeto-atributo-valor.. Notación larga:Notación larga:
<etiqueta><etiqueta><atributo1> valor </atributo1><atributo1> valor </atributo1>......
</etiqueta></etiqueta> Notación corta (las dobles comillas son obligatorias, a diferencia de HTML):Notación corta (las dobles comillas son obligatorias, a diferencia de HTML):
<etiqueta atributo1=“valor” ... > </etiqueta><etiqueta atributo1=“valor” ... > </etiqueta> Ejemplo:Ejemplo:
<libro><libro><autor>Miguel De Cervantes</autor><autor>Miguel De Cervantes</autor><titulo>El Quijote</titulo><titulo>El Quijote</titulo><precio>18</precio><precio>18</precio>
</libro></libro>
RecomendacionesRecomendaciones La La estructura del documento es jerárquicaestructura del documento es jerárquica, en forma de , en forma de
árbolárbol, en la que siempre hay un primer , en la que siempre hay un primer elemento raízelemento raíz..
Todo documento XML Todo documento XML debe comenzar por una declaración debe comenzar por una declaración XMLXML con la siguiente estructura: con la siguiente estructura:
<?xml<?xmlversion=“Versión de XML”version=“Versión de XML”encoding=“Codificación”encoding=“Codificación”standalone=“Incluye_DTD”standalone=“Incluye_DTD”
?>?>
Donde cada atributo significa:Donde cada atributo significa: Versión de XML: número de versión que se utiliza.Versión de XML: número de versión que se utiliza. Codificación: formato de codificación, por ejemplo, UTF-8, UTF-16, 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, 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.(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 Incluye_DTD: puede tomar el valor “yes” (la especificación DTD se encuentra en el propio documento) o “no” (la especificación es un encuentra en el propio documento) o “no” (la especificación es un archivo externo).archivo externo).
Ejemplo:Ejemplo:<?xml version=“1.0” encoding=“UTF-8” standalone=“yes” ?><?xml version=“1.0” encoding=“UTF-8” standalone=“yes” ?>
<?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>
XML (Ejemplo...)
¿Qué problemas tiene HTML?¿Qué problemas tiene HTML? Es un meta-lenguaje de definición de presentaciónEs un meta-lenguaje de definición de presentación
Contiene datos + presentaciónContiene datos + presentación
No es fácilmente procesable por ‘máquinas’No es fácilmente procesable por ‘máquinas’
No fuerza al la buena estructura de la página No fuerza al la buena estructura de la página (pueden dejarse por error etiquetas sin cerrar)(pueden dejarse por error etiquetas sin cerrar)
Su interpretación depende del software utilizadoSu interpretación depende del software utilizado
Está pensado para su utilización en páginas Web.Está pensado para su utilización en páginas Web.
HTML versus XMLHTML versus XML
HTML se centra en HTML se centra en el despliegue, y es el despliegue, y es menos menos estructuradoestructurado
Las etiquetas y Las etiquetas y atributos son fijosatributos son fijos
Es posible olvidar Es posible olvidar el cierre de alguna el cierre de alguna etiquetaetiqueta
XML es sobre XML es sobre datos, y es datos, y es sumamente sumamente estructuradoestructurado
Las etiquetas y Las etiquetas y atributos son atributos son extensiblesextensibles
Se fuerza a tener Se fuerza a tener una estructura una estructura consistenteconsistente
¿Qué ventajas tiene XML?¿Qué ventajas tiene XML?
Fácil de procesar/entender por Fácil de procesar/entender por software o por seres humanossoftware o por seres humanos
Pensado para ser utilizado en Pensado para ser utilizado en cualquier lenguaje o alfabetocualquier lenguaje o alfabeto
Separa radicalmente la Separa radicalmente la información o contenido, de información o contenido, de su presentación o formatosu presentación o formato
Construyendo Construyendo documentos XMLdocumentos XML
EjemploEjemplo
<libros><autor <libros><autor pais=“Uruguay”>Leo pais=“Uruguay”>Leo Masliah</libros></autor>Masliah</libros></autor>
<libros><autor <libros><autor pais=“Uruguay”>Leo pais=“Uruguay”>Leo Masliah</autor> </libros>Masliah</autor> </libros>
Reglas y pautas XMLReglas y pautas XML
Los documentos deben tener un Los documentos deben tener un nodo raíznodo raíz
Todas las etiquetas deben estar Todas las etiquetas deben estar debidamente cerradasdebidamente cerradas
Las etiquetas vacías (etiquetas sin Las etiquetas vacías (etiquetas sin contenido) deben tener una contenido) deben tener una sintaxis especialsintaxis especial
EjemploEjemplo
<libros><autor <libros><autor pais=“Uruguay”>Leo pais=“Uruguay”>Leo Masliah<Ranking=100></autor></liMasliah<Ranking=100></autor></libros>bros>
<libros><libros><autor pais=“Uruguay”>Leo <autor pais=“Uruguay”>Leo
Masliah <Ranking=100/></autor>Masliah <Ranking=100/></autor></libros></libros>
Reglas y pautas XMLReglas y pautas XML Un nombre de elemento, atributo, entidad, etc., Un nombre de elemento, atributo, entidad, etc.,
comienza por una letra, y continúa con letras, comienza por una letra, y continúa con letras, dígitos, guiones, rayas, punto, dos puntos.dígitos, guiones, rayas, punto, dos puntos.
No pueden utilizarse las palabras XML, xml,Xml, No pueden utilizarse las palabras XML, xml,Xml, etc., como caracteres iniciales del nombre de un etc., como caracteres iniciales del nombre de un atributo, entidad, etc.atributo, entidad, etc.
XML es sensitivo a mayúsculas y minúsculas (no XML es sensitivo a mayúsculas y minúsculas (no es lo mismo <Autor> que <autor>es lo mismo <Autor> que <autor>
El uso de espacios en blanco, y los saltos de El uso de espacios en blanco, y los saltos de línea, funcionan al igual que en HTML (sólo se línea, funcionan al igual que en HTML (sólo se toma en cuenta cuando aparece en el valor de un toma en cuenta cuando aparece en el valor de un atributo, o cuando se indica su grado de atributo, o cuando se indica su grado de significado)significado)
SintaxisSintaxis
Las etiquetas se denominan ‘marcas’, y son las Las etiquetas se denominan ‘marcas’, y son las partes del documento que el ‘analizador partes del documento que el ‘analizador sintáctico’ (parser) espera comprendersintáctico’ (parser) espera comprender
Las marcas en un documento XML comienzan Las marcas en un documento XML comienzan con el carácter < y finalizan con >con el carácter < y finalizan con >
En el caso de referencias de entidad, el carácter En el caso de referencias de entidad, el carácter inicial es & y el final es ;inicial es & y el final es ;
La primer línea debe especificar la versión de La primer línea debe especificar la versión de XML (de momento sólo 1.0), la codificación de XML (de momento sólo 1.0), la codificación de caracteres (US-ASCII, UTF-8, ISO-8859-1,etc),y caracteres (US-ASCII, UTF-8, ISO-8859-1,etc),y va entre caracteres de <? ?> en vez de < .. >va entre caracteres de <? ?> en vez de < .. >
EjemploEjemplo
<?xml version=“1.0” <?xml version=“1.0” encoding=“UTF-8”?>encoding=“UTF-8”?>
SintaxisSintaxis
La segunda línea define el DTD La segunda línea define el DTD (se verá mas adelante), y es (se verá mas adelante), y es opcionalopcional
<!DOCTYPE mensaje SYSTEM <!DOCTYPE mensaje SYSTEM “mensaje.dtd”>“mensaje.dtd”>
Los Elementos en XMLLos Elementos en XML
Los elementos en XML pueden:Los elementos en XML pueden: Tener contenido (Texto, Valores, Tener contenido (Texto, Valores,
etc.)etc.) Contener otras etiquetas o Contener otras etiquetas o
atributosatributos Contener otras etiquetas, Contener otras etiquetas,
atributos, y contenido a la vezatributos, y contenido a la vez
Pueden estar vacíosPueden estar vacíos
EjemploEjemplo
<nombre>James Britt</nombre><nombre>James Britt</nombre>
<nombres><nombres><nombre>James</nombre><nombre>James</nombre><apellido>Britt</apellido><apellido>Britt</apellido>
</nombres></nombres>
<persona edad=30><nombre>James <persona edad=30><nombre>James Britt</nombre></persona>Britt</nombre></persona>
<Sexo=“Masculino”/><Sexo=“Masculino”/>
Los Atributos en XMLLos Atributos en XML
Los elementos pueden incorporar Los elementos pueden incorporar atributos, que son características o atributos, que son características o propiedades particularespropiedades particulares
Los atributos siempre deben estar Los atributos siempre deben estar marcados con comillas simples o marcados con comillas simples o dobles, y se sitúa como un valor dobles, y se sitúa como un valor adicional a una etiqueta.adicional a una etiqueta.
EjemploEjemplo
<libros><libros><titulo>El amor es la compensación <titulo>El amor es la compensación
de la de la muerte; su correlativo muerte; su correlativo esencial esencial </titulo></titulo>
<autor>Arthur <autor>Arthur Schopenhauer</autor>Schopenhauer</autor>
<precio moneda=“$”>200 <precio moneda=“$”>200 pesos</precio>pesos</precio></libros></libros>
Atributo
EjemploEjemplo
<?xml version=“1.0”?><?xml version=“1.0”?><!-- Aca va el tipo de documento --><!-- Aca va el tipo de documento --><!DOCTYPE ejemplo [<!DOCTYPE ejemplo [<!-- Esto es otro comentario --><!-- Esto es otro comentario --><!element Ejemplo (#PCDATA)><!element Ejemplo (#PCDATA)>......
Las entidades en XMLLas entidades en XML
En XML v1.0 existen 5 entidades En XML v1.0 existen 5 entidades predefinidas, para representar predefinidas, para representar caracteres especiales, y que no se caracteres especiales, y que no se interpretan como marcas para el interpretan como marcas para el procesador XML. De esta forma procesador XML. De esta forma podemos utilizar por ejemplo el podemos utilizar por ejemplo el carácter < , > , & , ‘ , “carácter < , > , & , ‘ , “
Las entidades en XMLLas entidades en XML
Entidad Carácter
& &
< <
> >
' ‘
" “
Las secciones CDATALas secciones CDATA
Otra forma de ingresar un Otra forma de ingresar un bloque de caracteres sin que el bloque de caracteres sin que el procesador XML los interprete, procesador XML los interprete, es utilizando los bloques es utilizando los bloques CDATA (Character Data)CDATA (Character Data)
Ingresar etiquetas HTML dentro Ingresar etiquetas HTML dentro de un documento XML (se verá de un documento XML (se verá su utilidad mas adelante)su utilidad mas adelante)
EjemploEjemplo
Sin una sección CDATASin una sección CDATA
<ejemplo><HTML><BODY>Hola, esto es un documento html dentro de
uno XML</BODY> </HTML>
</ejemplo>
EjemploEjemplo
Con una sección CDATACon una sección CDATA
<ejemplo><![CDATA[
<HTML>;<BODY>Hola, esto es un documento html dentro
de uno XML</BODY> </HTML>
]]></ejemplo>
Utilizando comentarios en XMLUtilizando comentarios en XML
En general, es necesaria la utilización de En general, es necesaria la utilización de comentarios en un documento XMLcomentarios en un documento XML
Estos deben ser ignorados por el Estos deben ser ignorados por el procesador sintáctico, y las reproducciones procesador sintáctico, y las reproducciones del documento. del documento.
Igual sintaxis que en HTML (<!-- y -->)Igual sintaxis que en HTML (<!-- y -->)
Nunca puede ir dentro de una etiqueta, etc.Nunca puede ir dentro de una etiqueta, etc.
Aplicaciones de XMLAplicaciones de XML Formato de intercambio de datosFormato de intercambio de datos
Sistemas heredadosSistemas heredados Integración de sistemas heterogéneosIntegración de sistemas heterogéneos
Publicación de datosPublicación de datos En diversos formatos (HTML, WML, PDF, etc.) a través de En diversos formatos (HTML, WML, PDF, etc.) a través de
transformaciones XSLTtransformaciones XSLT
Repositorios de datosRepositorios de datos Bases de datos nativas XMLBases de datos nativas XML Lenguajes de consulta y actualización: XQuery, XQL, XUpdate, Lenguajes de consulta y actualización: XQuery, XQL, XUpdate,
etc.etc.
Ficheros de configuración y logFicheros de configuración y log Aplicaciones, servidores Web, motores de Servlets, Aplicaciones, servidores Web, motores de Servlets,
descripción de componentes EJB, etc.descripción de componentes EJB, etc. Sistema operativoSistema operativo
Etc.Etc.
Almacenamiento de datos TradicionalAlmacenamiento de datos Tradicional
Bases de DatosBases de Datos Tiempo y costo para crear y mantenerTiempo y costo para crear y mantener
Archivos PlanosArchivos Planos El formato no es estandarizadoEl formato no es estandarizado Se deben escribir sus propios Se deben escribir sus propios
programas de validación de entrada y programas de validación de entrada y salidasalida
Almacenamiento de Datos XMLAlmacenamiento de Datos XML
La búsqueda de datos es relativamente La búsqueda de datos es relativamente fácilfácil
El formato es StandardEl formato es Standard
Las herramientas Standard para validación Las herramientas Standard para validación de entrada/salida ya existende entrada/salida ya existen
La facilidad de lectura de los archivos La facilidad de lectura de los archivos planos hacen mas fácil el controlplanos hacen mas fácil el control
Intercambio de Datos TradicionalIntercambio de Datos Tradicional
Delineación de valoresDelineación de valores Datos difíciles de leer/identificarDatos difíciles de leer/identificar Las relaciones entre los datos son Las relaciones entre los datos son
difíciles de documentardifíciles de documentar
Campos FijosCampos Fijos Limitados a cierta extensión de campoLimitados a cierta extensión de campo
Intercambio de Datos en XMLIntercambio de Datos en XML
Los datos son relativamente simples de Los datos son relativamente simples de leer y editar con un simple editor de textoleer y editar con un simple editor de texto
Relaciones complejas (árboles, herencia) Relaciones complejas (árboles, herencia) pueden ser comunicadaspueden ser comunicadas
Tags son auto-descriptivas, leídas por Tags son auto-descriptivas, leídas por humanoshumanos
Validación de datos automáticaValidación de datos automática
Despliegue Tradicional de DocumentosDespliegue Tradicional de Documentos
HTMLHTML Contenido e interfase gráfica mezcladosContenido e interfase gráfica mezclados
Buscar información en los datos es Buscar información en los datos es pesadopesado
Los contenidos están ‘atados’ a la lógica Los contenidos están ‘atados’ a la lógica y lenguaje HTMLy lenguaje HTML
Los Tags son genéricos por naturalezaLos Tags son genéricos por naturaleza
Despliegue de Documentos XMLDespliegue de Documentos XML
Significado de los tags es manejado por Significado de los tags es manejado por XSLXSL
Instrucciones para transformar un tipo de Instrucciones para transformar un tipo de documento en otrodocumento en otro
Transformación común XML -> HTMLTransformación común XML -> HTML
Un archivo XML puede ser enlazado a Un archivo XML puede ser enlazado a varios archivos XSLvarios archivos XSL
El contenido de un archivo puede ser El contenido de un archivo puede ser ‘renderizado’‘renderizado’para Web, impresion, celulares, etc. para Web, impresion, celulares, etc.
Separación de la presentación y el Separación de la presentación y el contenido contenido
Aplicaciones que procesan XMLAplicaciones que procesan XML
Verifican que documentos XML cumplan Verifican que documentos XML cumplan con los Standard para ser “bien formados”con los Standard para ser “bien formados”
Validan en base a las definiciones Validan en base a las definiciones especificadas en un DTDespecificadas en un DTD
Transforman los datos basadas en Transforman los datos basadas en instrucciones XSL (instrucciones XSL (Extensible Stylesheet Extensible Stylesheet LanguageLanguage))
Cuando utilizar XMLCuando utilizar XML
Almacenar y buscar pequeñasAlmacenar y buscar pequeñas cantidades de datos cantidades de datos
Intercambio de datos entre Intercambio de datos entre diferentes aplicaciones u diferentes aplicaciones u organizacionesorganizaciones
Separar contenidos de Separar contenidos de presentaciónpresentación
HerramientasHerramientas
Existen para varios lenguajesExisten para varios lenguajes Java, ASP, PHPJava, ASP, PHP
CocoonCocoon Aplicación para proceso de XMLAplicación para proceso de XML
Sopa de LetrasSopa de Letras
XML
XLL
XSL
XSLT
SAX
XPointer
XPath
DTDDOM
SGMLXRef
Schema
SOAPParser
XML-Data
XDR
XQL
Algunas definicionesAlgunas definiciones
XMLXML -- eXtended Mark-up LanguageeXtended Mark-up Language
DTDDTD -- Document Type DefinitionDocument Type Definition
XSLTXSLT -- eXtended StyleSheet LanguageeXtended StyleSheet Language
ParserParser -- Analizador sintácticoAnalizador sintáctico
DOMDOM -- Document Object ModelDocument Object Model
XHTMLXHTML -- eXtended HTMLeXtended HTML
Algunas tecnologías XMLAlgunas tecnologías XML
Especificación actualEspecificación actual XML v1.0 (1.1 = 1.0 + namespaces)XML v1.0 (1.1 = 1.0 + namespaces)
Definición de DocumentosDefinición de Documentos DTD o SchemasDTD o Schemas
Definición de estilosDefinición de estilos XSL=XSLT + XPATHXSL=XSLT + XPATH
Enlazado de documentosEnlazado de documentos XLL=Xlink + XpointerXLL=Xlink + Xpointer
Documentos válidos Documentos válidos
El documento debe estar “bien formado”El documento debe estar “bien formado”
Debe ser válido (tener un DTD)Debe ser válido (tener un DTD)
Su elemento raíz debe ser aquel definido Su elemento raíz debe ser aquel definido en el DTDen el DTD
Debe satisfacer las especificaciones Debe satisfacer las especificaciones indicadas en el DTDindicadas en el DTD
Ejercicios prácticosEjercicios prácticos
Introducción a XMLIntroducción a XML
Práctica 1Práctica 1
Cree manualmente un archivo XML Cree manualmente un archivo XML llamado “libros.xml” con información llamado “libros.xml” con información sobre 10 libros relacionados con TI.sobre 10 libros relacionados con TI.
Incluya para cada libro el título, Incluya para cada libro el título, autores, número de edición (1a, 2da, autores, número de edición (1a, 2da, etc), año/fecha de publicación, etc), año/fecha de publicación, editorial, presentación (impreso en editorial, presentación (impreso en papel o versión digital) y precio papel o versión digital) y precio aproximado.aproximado.
NameSpacesNameSpaces
Introducción a XMLIntroducción a XML
ProblemaProblema
<table><table>
<tr><tr>
<td>Apples</td><td>Apples</td>
<td>Bananas</td><td>Bananas</td>
</tr></tr>
</table></table>
<table><table>
<name>African Coffee Table</name><name>African Coffee Table</name>
<width>80</width><width>80</width>
<length>120</length><length>120</length>
</table></table>
Usando un prefijoUsando un prefijo
<h:table><h:table> <h:tr><h:tr> <h:td>Apples</h:td><h:td>Apples</h:td> <h:td>Bananas</h:td><h:td>Bananas</h:td> </h:tr></h:tr></h:table></h:table>
<f:table><f:table> <f:name>African Coffee Table</f:name><f:name>African Coffee Table</f:name> <f:width>80</f:width><f:width>80</f:width> <f:length>120</f:length><f:length>120</f:length></f:table></f:table>
Usando un prefijoUsando un prefijo
<root><root>
<h:table xmlns:h="http://www.w3.org/TR/html4/"><h:table xmlns:h="http://www.w3.org/TR/html4/"> <h:tr><h:tr> <h:td>Apples</h:td><h:td>Apples</h:td> <h:td>Bananas</h:td><h:td>Bananas</h:td> </h:tr></h:tr></h:table></h:table>
<f:table xmlns:f="http://www.w3schools.com/furniture"><f:table xmlns:f="http://www.w3schools.com/furniture"> <f:name>African Coffee Table</f:name><f:name>African Coffee Table</f:name> <f:width>80</f:width><f:width>80</f:width> <f:length>120</f:length><f:length>120</f:length></f:table></f:table>
</root></root>
Usando un prefijoUsando un prefijo
<root<rootxmlns:h="http://www.w3.org/TR/html4/"xmlns:h="http://www.w3.org/TR/html4/"xmlns:f="http://www.w3schools.com/furniture">xmlns:f="http://www.w3schools.com/furniture">
<h:table><h:table> <h:tr><h:tr> <h:td>Apples</h:td><h:td>Apples</h:td> <h:td>Bananas</h:td><h:td>Bananas</h:td> </h:tr></h:tr></h:table></h:table>
<f:table><f:table> <f:name>African Coffee Table</f:name><f:name>African Coffee Table</f:name> <f:width>80</f:width><f:width>80</f:width> <f:length>120</f:length><f:length>120</f:length></f:table></f:table>
</root></root>
Namespaces por defaultNamespaces por default
<table xmlns="http://www.w3.org/TR/html4/"><table xmlns="http://www.w3.org/TR/html4/"> <tr><tr> <td>Apples</td><td>Apples</td> <td>Bananas</td><td>Bananas</td> </tr></tr> </table></table>
<table xmlns="http://www.w3schools.com/furniture"><table xmlns="http://www.w3schools.com/furniture"> <name>African Coffee Table</name><name>African Coffee Table</name> <width>80</width><width>80</width> <length>120</length><length>120</length> </table></table>
Un uso prácticoUn 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ácticosEjercicios prácticos
Introducción a XMLIntroducción a XML
Práctica 2Práctica 2
Modifique los archivos Modifique los archivos generados en la práctica 1, de generados en la práctica 1, de tal manera que se tome en tal manera que se tome en cuenta la posible integración de cuenta la posible integración de los documentos con otros en el los documentos con otros en el futuro, evitando cualquier futuro, evitando cualquier incompatibilidad por duplicación incompatibilidad por duplicación de etiquetas.de etiquetas.