59
Cod. 1728.61 Cod. 1728.61 PLATAFORMA .NET Y PLATAFORMA .NET Y SERVICIOS WEB SERVICIOS WEB Fernando Fernando Álvarez García Álvarez García falvarez falvarez @ @ correo correo . . uniovi uniovi . . es es Cursos de Verano 2002 Cursos de Verano 2002 UNIVERSIDAD DE OVIEDO UNIVERSIDAD DE OVIEDO XML XML Dpto. de Informática Dpto. de Informática OOT OOT Lab Lab - - Laboratorio de Tecnologías de Orientación a Objetos Laboratorio de Tecnologías de Orientación a Objetos http:// http:// www www . . ootlab ootlab . . uniovi uniovi .es .es

Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

  • Upload
    vankien

  • View
    214

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cod. 1728.61Cod. 1728.61PLATAFORMA .NET Y PLATAFORMA .NET Y SERVICIOS WEBSERVICIOS WEB

FernandoFernando Álvarez GarcíaÁlvarez Garcíafalvarezfalvarez@@correocorreo..unioviuniovi..eses

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXML

Dpto. de InformáticaDpto. de InformáticaOOTOOTLabLab -- Laboratorio de Tecnologías de Orientación a ObjetosLaboratorio de Tecnologías de Orientación a Objetos

http://http://wwwwww..ootlabootlab..unioviuniovi.es.es

Page 2: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

ÍndiceÍndice

•• Intercambio de información en el WWWIntercambio de información en el WWW•• Introducción a XMLIntroducción a XML•• Tecnologías XMLTecnologías XML•• Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XML•• XML en .NETXML en .NET•• BibliografíaBibliografía

Page 3: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• HTML es el formato habitual de la información que HTML es el formato habitual de la información que

circula en el webcircula en el web•• Problema 1Problema 1: existe una gran cantidad de páginas web : existe una gran cantidad de páginas web

con código HTML erróneocon código HTML erróneo<<htmlhtml><><headhead><><titletitle>Lista de Asignaturas</>Lista de Asignaturas</titletitle>>

</</headhead>>

<<bodybody><h1>Lista de Asignaturas</><h1>Lista de Asignaturas</bodybody>>

–– ¿ Afortunadamente? , los navegadores están ¿ Afortunadamente? , los navegadores están preparados para tratar páginas web “mal escritas”preparados para tratar páginas web “mal escritas”

•• En En http://http://validatorvalidator.w3..w3.orgorg// hay un hay un validadorvalidador de de documentos HTMLdocumentos HTML

Page 4: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• Problema 2Problema 2: HTML mezcla la información propiamente : HTML mezcla la información propiamente

dicha con su aspecto (presentación)dicha con su aspecto (presentación)–– Búsqueda de páginas sobre “Búsqueda de páginas sobre “Miguel de CervantesMiguel de Cervantes””

•• ResultadosResultados–– Páginas con la lista de libros escritos por Miguel CervantesPáginas con la lista de libros escritos por Miguel Cervantes–– Páginas con información acerca de su vidaPáginas con información acerca de su vida–– Páginas de libros favoritos de particulares que incluyen Páginas de libros favoritos de particulares que incluyen

libros de Miguel de Cervanteslibros de Miguel de Cervantes•• Conclusión: Conclusión: no es posible indicar el significadono es posible indicar el significado que se que se

quiere dar a cada una de las palabras claves que forman quiere dar a cada una de las palabras claves que forman el criterio de búsquedael criterio de búsqueda

Page 5: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• Problema 2Problema 2: HTML mezcla la información propiamente : HTML mezcla la información propiamente

dicha con su aspecto (presentación)dicha con su aspecto (presentación)–– No se puede automatizar el análisis de la información No se puede automatizar el análisis de la información

contenida en una página webcontenida en una página web<TABLE><TR><TD>Don Quijote</TD><TD>1999</TD></TR><TABLE><TR><TD>Don Quijote</TD><TD>1999</TD></TR>

<TR><TD>Novelas Ejemplares</TD><TD>2001</TD></TR><TR><TD>Novelas Ejemplares</TD><TD>2001</TD></TR>

<TR><TD>Entremeses</TD><TD>1983</TD></TR><TR><TD>Entremeses</TD><TD>1983</TD></TR>

<TR><TD>Obras completas</TD><TD>1990</TD></TR><TR><TD>Obras completas</TD><TD>1990</TD></TR>

</TABLE></TABLE>

•• ¿ Cómo ordenar por fecha de publicación?¿ Cómo ordenar por fecha de publicación?•• ¿ Qué ocurre si se cambia el orden de las columnas?¿ Qué ocurre si se cambia el orden de las columnas?•• Conclusión: Conclusión: no es posible conocer el significadono es posible conocer el significado de la de la

información contenida en una página webinformación contenida en una página web

Page 6: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• Problema 3Problema 3: Comercio electrónico, : Comercio electrónico, B2CB2C

–– Un cliente desea obtener una lista de impresoras de Un cliente desea obtener una lista de impresoras de diferentes marcas que tengan unas características diferentes marcas que tengan unas características determinadasdeterminadas

•• No existe una forma estándar para que el cliente exprese No existe una forma estándar para que el cliente exprese las características de lo que desea buscar y obtenga los las características de lo que desea buscar y obtenga los resultados en un formato estructuradoresultados en un formato estructurado

•• La información buscada está diseminada a lo largo de La información buscada está diseminada a lo largo de párrafos de texto de las páginas web de los diferentes párrafos de texto de las páginas web de los diferentes fabricantesfabricantes

Page 7: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• Problema 4Problema 4: Comercio electrónico, : Comercio electrónico, B2BB2B

–– Dos empresas quieren comerciar electrónicamenteDos empresas quieren comerciar electrónicamente•• Tienen que acordar un formato para el intercambio de Tienen que acordar un formato para el intercambio de

informacióninformación•• Se produce un coste asociado al desarrollo de software Se produce un coste asociado al desarrollo de software

necesario para implementar dicho acuerdonecesario para implementar dicho acuerdo–– Escribir programas que den soporte a dicho formatoEscribir programas que den soporte a dicho formato

•• ¿ Qué hacer si se desea mantener relaciones ¿ Qué hacer si se desea mantener relaciones comerciales con varias empresas?comerciales con varias empresas?

–– Imponer nuestro formatoImponer nuestro formato–– Adoptar el suyoAdoptar el suyo–– Negociar uno nuevoNegociar uno nuevo

Page 8: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• Problema 5Problema 5: Síntesis de información que reside en : Síntesis de información que reside en

diferentes bases de datosdiferentes bases de datos–– En muchos casos, la información que necesita una En muchos casos, la información que necesita una

persona para realizar un trabajo reside en muchas y persona para realizar un trabajo reside en muchas y diferentes bases de datosdiferentes bases de datos

–– Es necesaria una tecnología que permita sintetizar Es necesaria una tecnología que permita sintetizar datos que residen en múltiples bases de datos y ofrecer datos que residen en múltiples bases de datos y ofrecer el resultado en función de las necesidades del usuarioel resultado en función de las necesidades del usuario

•• Dicho usuario puede ser un empleado de la propia Dicho usuario puede ser un empleado de la propia empresa o una empresa externaempresa o una empresa externa

–– ConclusiónConclusión: es necesario poder abstraer información de : es necesario poder abstraer información de múltiples bases de datosmúltiples bases de datos

Page 9: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• SoluciónSolución: Definición de un : Definición de un estándar de intercambio estándar de intercambio

de informaciónde información–– Requisito 1Requisito 1

•• Tiene que posibilitar la especificación del significado de Tiene que posibilitar la especificación del significado de cada porción de informacióncada porción de información

–– Requisito 2Requisito 2•• Debe posibilitar que dos o más interesados acuerden la Debe posibilitar que dos o más interesados acuerden la

utilización de una organización concreta de la informaciónutilización de una organización concreta de la información–– Porque hay una variedad infinita de tipos de información Porque hay una variedad infinita de tipos de información

que puede ser intercambiadaque puede ser intercambiada

Page 10: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• Cumplir requisito 1Cumplir requisito 1

–– Añadir Añadir metadatosmetadatos ((metainformaciónmetainformación) a los datos ) a los datos (información) propiamente dichos(información) propiamente dichos

•• Ejemplo: “autor” es un Ejemplo: “autor” es un metadatometadato sobre “Cervantes”sobre “Cervantes”•• Ejemplo: el esquema de una base de datos contiene Ejemplo: el esquema de una base de datos contiene

metadatosmetadatos sobre los datos contenidos en la mismasobre los datos contenidos en la misma–– ProblemaProblema: los : los metadatosmetadatos, por sí mismos, no permiten , por sí mismos, no permiten

especificar la organización de la información (2º especificar la organización de la información (2º requisito)requisito)

•• Ejemplo: el Ejemplo: el metadatometadato “autor” no permite saber si un libro “autor” no permite saber si un libro puede tener 0, 1 ó más autorespuede tener 0, 1 ó más autores

Page 11: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Intercambio de información en el Intercambio de información en el WWWWWW•• Cumplir requisito 2Cumplir requisito 2

–– Utilización de un Utilización de un contexto compartidocontexto compartido–– Un contexto compartido es una descripción formal de Un contexto compartido es una descripción formal de

las reglas que tienen que seguir los las reglas que tienen que seguir los metadatosmetadatos–– Se aplica a un tipo particular de documento y sirve Se aplica a un tipo particular de documento y sirve

como un contrato entre su emisor y su receptorcomo un contrato entre su emisor y su receptor•• Ejemplo: en B2B, dos empresas pueden acordar un tipo Ejemplo: en B2B, dos empresas pueden acordar un tipo

de documento “orden”. El contexto compartido aplicado de documento “orden”. El contexto compartido aplicado podría consistir en:podría consistir en:

–– Una “orden” puede contener 1 ó más “líneas de elemento”Una “orden” puede contener 1 ó más “líneas de elemento”–– Cada “línea de elemento” tiene una “referencia de Cada “línea de elemento” tiene una “referencia de

producto”, “precio unitario”, “cantidad”, etc.producto”, “precio unitario”, “cantidad”, etc.

Page 12: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

ÍndiceÍndice

•• Intercambio de información en el WWWIntercambio de información en el WWW•• Introducción a XMLIntroducción a XML•• Tecnologías XMLTecnologías XML•• Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XML•• XML en .NETXML en .NET•• BibliografíaBibliografía

Page 13: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLEspecificaciónEspecificación

•• XMLXML ((eXtensible Markup LanguageeXtensible Markup Language) es una ) es una implementación de los conceptos de implementación de los conceptos de metadatos metadatos y y contexto compartidocontexto compartido–– Es un subconjunto de SGML (Es un subconjunto de SGML (Standard Generalized Standard Generalized

Markup LanguageMarkup Language), lenguaje estandarizado por la ISO ), lenguaje estandarizado por la ISO ((International Organization for StandardizationInternational Organization for Standardization) en 1986) en 1986

•• SGML tiene sus orígenes en IBM, que quería un medio SGML tiene sus orígenes en IBM, que quería un medio para describir el contenido de documentos de tal manera para describir el contenido de documentos de tal manera que se pudiera publicar el mismo contenido en diferentes que se pudiera publicar el mismo contenido en diferentes formasformas

–– XML (ver. 1.0) es, desde Febrero de 1998, un estándar XML (ver. 1.0) es, desde Febrero de 1998, un estándar del W3C (WWW del W3C (WWW ConsortiumConsortium, , http://http://wwwwww.w3..w3.orgorg))

Page 14: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLEspecificaciónEspecificación

•• Metadatos Metadatos →→ etiquetas o marcasetiquetas o marcas ((tagtag))–– Su sintaxis es muy parecida a la usada en HTMLSu sintaxis es muy parecida a la usada en HTML

<autor>Miguel de Cervantes</autor><autor>Miguel de Cervantes</autor>

•• Contexto compartido Contexto compartido →→ definición de tipo de definición de tipo de documento documento (DTD, (DTD, DocumentDocument TypeType DefinitionDefinition))–– Un DTD es un conjunto de declaraciones que Un DTD es un conjunto de declaraciones que

especifican el orden, estructura y atributos permitidos especifican el orden, estructura y atributos permitidos para las marcas en un tipo particular de documentopara las marcas en un tipo particular de documento<!ELEMENT<!ELEMENT reflibroreflibro (titulo, autor+, editorial, año)>(titulo, autor+, editorial, año)>

<!ATTLIST autor<!ATTLIST autor emailemail CDATA #REQUIRED>CDATA #REQUIRED>

Page 15: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLSoftwareSoftware

•• Con el fin de sacar el máximo provecho a XML se Con el fin de sacar el máximo provecho a XML se necesita una abundante cantidad de necesita una abundante cantidad de tipos de tipos de softwaresoftware que le den soporteque le den soporte–– Componentes software básicosComponentes software básicos

•• Proporcionan capacidades básicas para el análisis y la Proporcionan capacidades básicas para el análisis y la generación de documentos XMLgeneración de documentos XML

•• Para diferentes lenguajesPara diferentes lenguajes–– Herramientas de desarrollo de softwareHerramientas de desarrollo de software

•• Permiten dotar a las aplicaciones de capacidades XMLPermiten dotar a las aplicaciones de capacidades XML•• Posibilitan la inclusión de componentes básicosPosibilitan la inclusión de componentes básicos

Page 16: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLSoftwareSoftware

•• Más tipos de softwareMás tipos de software–– Herramientas de desarrollo de documentosHerramientas de desarrollo de documentos

•• Para Para DTDs DTDs y documentos XMLy documentos XML–– Infraestructura WebInfraestructura Web

•• Navegadores y servidores web deberían soportar XMLNavegadores y servidores web deberían soportar XML–– Componentes traductoresComponentes traductores

•• Traducción entre formatos propietarios y XMLTraducción entre formatos propietarios y XML–– SGBD, fundamentalmenteSGBD, fundamentalmente

Page 17: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLConceptos básicosConceptos básicos

•• “Un “Un documento XMLdocumento XML es una unidad de información es una unidad de información que puede ser vista de dos maneras: como una que puede ser vista de dos maneras: como una secuencia lineal de caracteres que contiene los datos secuencia lineal de caracteres que contiene los datos y el marcado o como una estructura de datos y el marcado o como una estructura de datos abstracta que toma la forma de un árbol de nodos”abstracta que toma la forma de un árbol de nodos”–– Como secuencia de caracteres, facilita la lectura al ser Como secuencia de caracteres, facilita la lectura al ser

humanohumano–– Como estructura jerárquica, facilita su procesamiento por Como estructura jerárquica, facilita su procesamiento por

programas de ordenadorprogramas de ordenador•• Los caracteres pertenecerán al conjunto de caracteres Los caracteres pertenecerán al conjunto de caracteres

UnicodeUnicode•• Sensible a la utilización de mayúsculas y minúsculasSensible a la utilización de mayúsculas y minúsculas

Page 18: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLEjemplo de documento XMLEjemplo de documento XML

<?<?xml versionxml version="1.0"="1.0" encodingencoding="UTF="UTF--8"?>8"?>

<!DOCTYPE<!DOCTYPE planestudiosplanestudios SYSTEM "SYSTEM "FormatoPlanEstudiosFormatoPlanEstudios..dtddtd">">

<<planestudiosplanestudios>>

<asignatura<asignatura codigocodigo="1">="1">

<nombre>Fundamentos de Computadores</nombre><nombre>Fundamentos de Computadores</nombre>

<<creditoscreditos><><teoricosteoricos>4.5</>4.5</teoricosteoricos>>

<<practicospracticos>4.5</>4.5</practicospracticos>>

</</creditoscreditos>>

<tipo><troncal curso="1"/></tipo><tipo><troncal curso="1"/></tipo>

<<areasconocimientoareasconocimiento>>

<<areaarea><><nombreareanombrearea>ATC</>ATC</nombreareanombrearea>>

<<estaasignadaestaasignada/>/>

</</areaarea>>

......

</</planestudiosplanestudios>>

Page 19: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLdocumento

planestudios

asignatura

atributos

código:1

nombre curso tipo areasconocimiento

texto

Fundamentos ... 2atributos

texto troncal

asignatura

curso::1

area area

declaraciónPrólogo

Instancia del documento

Page 20: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLConceptos básicosConceptos básicos

•• El “El “marcadomarcado” es aquella parte del documento que ” es aquella parte del documento que debe ser entendida por el procesador XMLdebe ser entendida por el procesador XML– Empieza siempre con el carácter < o con el &– Ejemplos: <asignatura>, &amp;

• Las partes que se encuentran entre las marcas son las que deben resultar legibles para el ser humano y constituyen los “datos de carácter”– Ejemplos: Fundamentos de Computadores, 4.5

• También pueden ser legibles otras cosas– Por ejemplo, los valores de los atributos

Page 21: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLDocumentos bien formadosDocumentos bien formados

•• El marcado de un documento XML debe cumplir una El marcado de un documento XML debe cumplir una serie de requisitos sencillosserie de requisitos sencillos– De esta forma, un “analizador XML” podría construir el

árbol (vista jerárquica) sin ambigüedad a partir del marcado

– Una secuencia de caracteres que cumple los requisitos mencionados se dice “documento XML bien formado”

• Basta con que no se cumpla uno de los requisitos para poder decir que no tenemos un documento XML

• Los analizadores XML no corrigen los errores– Ejemplos de documentos NO XML:

<a><b></a></b>, <a><b></a>

Page 22: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLDocumentos válidosDocumentos válidos

• Adicionalmente, un documento XML puede tener asociado un DTD– Si cumple las restricciones de su DTD, será, además,

un “documento válido”– Obviamente, deberá ser también un “documento bien

formado”– Una pequeña variación en la jerarquía del documento

XML podría hacer que pasase a ser inválido• Aunque podría seguir siendo “bien formado”

Page 23: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLEjemplo de DTDEjemplo de DTD

<!ELEMENT planestudios (asignatura+)>

<!ELEMENT asignatura (nombre,creditos,tipo,areasconocimiento)>

<!ATTLIST asignatura codigo CDATA #REQUIRED>

<!ELEMENT nombre (#PCDATA)>

<!ELEMENT curso (#PCDATA)>

<!ELEMENT tipo (troncal | obligatoria | optativa)>

<!ELEMENT creditos (teoricos, practicos)>

<!ELEMENT practicos (#PCDATA)>

<!ELEMENT teoricos (#PCDATA)>

<!ELEMENT areasconocimiento (area+)>

<!ELEMENT area (nombrearea, estaasignada?)>

<!ELEMENT nombrearea (#PCDATA)>

<!ELEMENT estaasignada EMPTY>

<!ELEMENT troncal EMPTY>

<!ATTLIST troncal curso CDATA #REQUIRED>

...

Page 24: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLElementosElementos

• Los elementos indican la estructura lógica del documento– Definición de un elemento en un DTD<!ELEMENT asignatura (nombre,creditos,tipo,areasconocimiento)>

– El elemento en una instancia de un documento<<asignatura codigocodigo="1">="1">

<nombre>Fundamentos de Computadores</nombre><nombre>Fundamentos de Computadores</nombre>

<<creditoscreditos><><teoricosteoricos>4.5</>4.5</teoricosteoricos>>

<<practicospracticos>4.5</>4.5</practicospracticos>>

</</creditoscreditos>>

<tipo><troncal curso="1"/></tipo><tipo><troncal curso="1"/></tipo>

<<areasconocimientoareasconocimiento>>

......

<</asignatura/asignatura>>

Page 25: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLAtributosAtributos

• Los atributos proporcionan una forma alternativa de incluir información en un elemento– Es una pareja nombre-valor asociada al elemento– Definición de un atributo en un DTD

<!ATTLIST asignatura codigo CDATA #REQUIRED>

– El atributo en una instancia de un documento<<asignatura codigocodigo="1">="1">

<nombre>Fundamentos de Computadores</nombre><nombre>Fundamentos de Computadores</nombre>

<<creditoscreditos><><teoricosteoricos>4.5</>4.5</teoricosteoricos>>

<<practicospracticos>4.5</>4.5</practicospracticos>>

</</creditoscreditos>>

<tipo><troncal curso="1"/></tipo><tipo><troncal curso="1"/></tipo>

......

</asignatura></asignatura>

Page 26: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLElementos Elementos vs vs atributosatributos

•• Los Los atributosatributos no pueden contener no pueden contener subelementossubelementos•• Los Los atributosatributos sólo pueden especificarse una vez y en sólo pueden especificarse una vez y en

cualquier ordencualquier orden•• Los Los elementoselementos suelen representar datos y su suelen representar datos y su

contenido debe aparecer en todas las presentaciones contenido debe aparecer en todas las presentaciones visualesvisuales

•• Los Los atributosatributos suelen contener información de menor suelen contener información de menor importancia y normalmente son información sobre la importancia y normalmente son información sobre la informacióninformación

•• Los Los atributosatributos suelen representar propiedades de los suelen representar propiedades de los objetos y los elementos, las partes de los mismosobjetos y los elementos, las partes de los mismos

Page 27: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Introducción a XMLIntroducción a XMLEntidadesEntidades

•• En los casos más sencillos, una En los casos más sencillos, una entidadentidad es como una es como una abreviatura utilizada para un textoabreviatura utilizada para un texto–– La abreviatura se denomina La abreviatura se denomina nombre de la entidadnombre de la entidad–– El texto abreviado, es el El texto abreviado, es el contenido de la entidadcontenido de la entidad–– Definición de una entidad en un DTDDefinición de una entidad en un DTD

<!ENTITY euitio “Escuela de Informática de Oviedo”>

–– La entidad en una instancia de un documentoLa entidad en una instancia de un documento<<planestudiosplanestudios>>

<escuela><escuela>&&euitioeuitio;;</escuela></escuela>

<asignatura<asignatura codigocodigo="1">="1">

......

Page 28: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

ÍndiceÍndice

•• Intercambio de información en el WWWIntercambio de información en el WWW•• Introducción a XMLIntroducción a XML•• Tecnologías XMLTecnologías XML•• Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XML•• XML en .NETXML en .NET•• BibliografíaBibliografía

Page 29: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XMLTecnologías XMLNamespacesNamespaces

•• Dado que cualquier persona puede inventar tipos de Dado que cualquier persona puede inventar tipos de documento, necesitamos una forma de documento, necesitamos una forma de separarsepararnuestros nuestros nombres de elementosnombres de elementos de los de los demásde los de los demás–– FernandoFernando, el de , el de OviedoOviedo–– FernandoFernando, el de , el de GijónGijón

•• Necesitamos espacios de nombres diferentesNecesitamos espacios de nombres diferentes–– En XML,En XML, NamespacesNamespaces

<Oviedo:Fernando><Oviedo:Fernando>

<Gijón:Fernando><Gijón:Fernando>

–– OJO: hay varios OJO: hay varios OviedoOviedo en el mundoen el mundo

Page 30: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML NamespacesNamespaces

•• NamespacesNamespaces define una regla que dice que los define una regla que dice que los atributos que empiezan poratributos que empiezan por xmlnsxmlns:: deberían ser deberían ser interpretados como atributos de definición de prefijosinterpretados como atributos de definición de prefijos–– El nombre que sigue al atributo es una abreviatura local El nombre que sigue al atributo es una abreviatura local

para el espacio de nombrespara el espacio de nombres–– El valor del atributo es un URI (habitualmente, sobre el El valor del atributo es un URI (habitualmente, sobre el

que se tiene control) y que permite eliminar que se tiene control) y que permite eliminar ambigüedades entre nombres de elementosambigüedades entre nombres de elementos<Oviedo:Fernando<Oviedo:Fernandoxmlnsxmlns:Oviedo=“http://:Oviedo=“http://wwwwww..euitioeuitio..unioviuniovi.es/.es/ferfer”>”>

Yo mismoYo mismo

<Oviedo:Fernando><Oviedo:Fernando>

Page 31: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML NamespacesNamespaces

•• El El ámbito de validezámbito de validez de una declaración de un espacio de una declaración de un espacio de nombres abarca el elemento en que se define y de nombres abarca el elemento en que se define y todos sus descendientestodos sus descendientes–– Alguno de sus descendientes puede “Alguno de sus descendientes puede “sobreescribirsobreescribir” la ” la

declaracióndeclaración<<unioviuniovi::planestudiosplanestudios

xmlnsxmlns::unioviuniovi=“http://=“http://wwwwww..unioviuniovi.es”>.es”>

<<unioviuniovi:asignatura:asignatura codigocodigo="1">="1">

<<unioviuniovi:nombre>Fundamentos de Computadores</:nombre>Fundamentos de Computadores</unioviuniovi:nombre>:nombre>

<<unioviuniovi::creditoscreditos><><unioviuniovi::teoricosteoricos>4.5</>4.5</unioviuniovi::teoricosteoricos>>

<<unioviuniovi::practicospracticos>4.5</>4.5</unioviuniovi::practicospracticos>>

</</unioviuniovi::creditoscreditos>>

Page 32: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML NamespacesNamespaces

•• El El espacio de nombres por defectoespacio de nombres por defecto es definido sin es definido sin prefijo, por lo que se considera que los nombres de prefijo, por lo que se considera que los nombres de elemento en el ámbito de una definición sin prefijo elemento en el ámbito de una definición sin prefijo están en aquelestán en aquel<<planestudiosplanestudios

xmlnsxmlns=“http://=“http://wwwwww..unioviuniovi.es”>.es”>

<asignatura<asignatura codigocodigo="1">="1">

<nombre>Fundamentos de Computadores</nombre><nombre>Fundamentos de Computadores</nombre>

<<creditoscreditos><><teoricosteoricos>4.5</>4.5</teoricosteoricos>>

<<practicospracticos>4.5</>4.5</practicospracticos>>

</</creditoscreditos>>

......

Page 33: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XPathXPath

•• La forma estándar de localizar información en un La forma estándar de localizar información en un documento XML es documento XML es XPXPathath–– Permite referenciar elementos, atributos, datos de Permite referenciar elementos, atributos, datos de

carácter, etc.carácter, etc.//planestudiosplanestudios/asignatura/nombre/asignatura/nombre

–– XSLTXSLT (lenguaje de transformaciones de XSL) utiliza (lenguaje de transformaciones de XSL) utiliza XPXPath ath para la aplicación de estilos y transformacionespara la aplicación de estilos y transformaciones

–– XPXPointerointer utiliza utiliza XPathXPath para construir para construir URIs URIs que que referencien referencien partes (elementos, atributos, etc.) de un partes (elementos, atributos, etc.) de un documento XMLdocumento XML

Page 34: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XPathXPath

•• A una instancia del lenguaje XPA una instancia del lenguaje XPath ath se le denomina se le denomina expresiónexpresión–– Un camino de localización (Un camino de localización (locationlocation pathpath) es el tipo de ) es el tipo de

expresión más importante de XPexpresión más importante de XPathath•• Su sintaxis es similar a la utilizada en los sistemas Su sintaxis es similar a la utilizada en los sistemas

operativos operativos UnixUnix para localizar ficheros y directoriospara localizar ficheros y directorios•• Puede incluir Puede incluir predicadospredicados

–– Sirven para expresar restricciones en valores de atributos, Sirven para expresar restricciones en valores de atributos, elementos, etc. del elementos, etc. del location pathlocation path consideradoconsiderado//planestudiosplanestudios/asignatura[@/asignatura[@codigocodigo=“1”]=“1”]

//planestudiosplanestudios/asignatura[4]/asignatura[4]

Page 35: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLXSL

•• XSLXSL es una especificación para la es una especificación para la aplicación de aplicación de formatoformato a documentos XML de una manera estándara documentos XML de una manera estándar–– Una primera parte de la especificación define un Una primera parte de la especificación define un

lenguaje para la transformación de un documento XML lenguaje para la transformación de un documento XML en otro: en otro: XSLTXSLT

–– La segunda parte define la semántica del “formateado” La segunda parte define la semántica del “formateado” en la forma de un catálogo de objetos de formato: en la forma de un catálogo de objetos de formato: XSLXSL--FOFO

Page 36: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLXSL

TraductorHTML

Hoja de estilos

Documento XML

Documentode objetos de

formato

Procesador dehojas de estilos Traductor

PDF

Documento PDF

Documento HTML

Documento XML

Page 37: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLTXSLT

•• XSLT utiliza XSLT utiliza reglas de plantillareglas de plantilla que se aplican a que se aplican a determinados elementos del documento XML de determinados elementos del documento XML de entrada para generar, como resultado, un subárbol del entrada para generar, como resultado, un subárbol del documento XML de salida documento XML de salida <xsl:template match=”planestudios">

<html><head><title>Asignaturas</title>

</head>

<body><h1>Lista de Asignaturas</h1>

<xsl:apply-templates/>

</body>

</html>

</xsl:template>

Page 38: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLTXSLT

•• Las reglas de plantilla pueden incluir Las reglas de plantilla pueden incluir instrucciones de instrucciones de procesamientoprocesamiento que indican al procesador de hojas de que indican al procesador de hojas de estilos de qué manera debe continuar la aplicación de estilos de qué manera debe continuar la aplicación de reglas de plantilla reglas de plantilla <xsl:template match=”planestudios">

<html><head><title>Asignaturas</title>

</head>

<body><h1>Lista de Asignaturas</h1>

<xsl:apply-templates/>

</body>

</html>

</xsl:template>

Page 39: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLTXSLT

Page 40: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLXSL--FOFO

•• Mediante los Mediante los objetos de formatoobjetos de formato y sus propiedades se y sus propiedades se puede describir cómo se van a visualizar los puede describir cómo se van a visualizar los elementos de un documentoelementos de un documento–– Características de la páginaCaracterísticas de la página–– PárrafosPárrafos–– ListasListas–– TablasTablas–– Etc.Etc.

•• La especificación XSL indica el vocabulario XML que La especificación XSL indica el vocabulario XML que define estos objetos de formatodefine estos objetos de formato

Page 41: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLXSL--FOFO

•• El modelo XSLEl modelo XSL--FO se basa en cajas rectangulares, FO se basa en cajas rectangulares, denominadas denominadas áreasáreas, que pueden contener, que pueden contener–– Texto, espacio vacío, imágenes, otros objetos de Texto, espacio vacío, imágenes, otros objetos de

formatoformato•• Un objeto de formato produce, en general, un áreaUn objeto de formato produce, en general, un área

–– Aunque cambios de página, etc., pueden provocar la Aunque cambios de página, etc., pueden provocar la producción de varias áreasproducción de varias áreas

•• Los objetos de formato pueden representarLos objetos de formato pueden representar–– Elemento de una lista, una tabla, un bloque, etc.Elemento de una lista, una tabla, un bloque, etc.–– Hay varios objetos de formato para producir áreas de Hay varios objetos de formato para producir áreas de

cada tipocada tipo

Page 42: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLXSL--FOFO

•• Los objetos de formato tienen asociadas Los objetos de formato tienen asociadas propiedades propiedades de formatode formato–– Especifican cosas como el tamaño, la posición, la Especifican cosas como el tamaño, la posición, la

fuente, el color, etc., de los objetos de formatofuente, el color, etc., de los objetos de formato•• EjemploEjemplo

–– Objeto de formato de tipo bloque (párrafo) con 3 Objeto de formato de tipo bloque (párrafo) con 3 propiedades de formatopropiedades de formato<fo:block font-size=“9pt“ font-family=“sans-serif”

line-height=“24pt”>

Page 43: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLXSL--FOFO

•• Los forma habitual de construir documentos XSLLos forma habitual de construir documentos XSL--FO FO resulta de la aplicación de hojas de estilos (XSLT), resulta de la aplicación de hojas de estilos (XSLT), que contienen marcado FO, a documentos XML, que que contienen marcado FO, a documentos XML, que contienen la información propiamente dichacontienen la información propiamente dicha

Hoja de estilos

Documento XML

Documentode objetos de

formato(XSL-FO)

Procesador dehojas de estilos

ProcesadorXSL-FO

Documento PDF

Documento RTF

Page 44: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLXSL--FOFO

<<xslxsl::templatetemplate match="match="planestudiosplanestudios">"><<fofo::block fontblock font--sizesize="30pt"="30pt" fontfont--familyfamily="="sanssans--serifserif" ...>" ...>

Lista de AsignaturasLista de Asignaturas<<fofo::table bordertable border--widthwidth="0.5mm"="0.5mm" borderborder--stylestyle="="solidsolid">">

<<fofo::tabletable--column columncolumn column--widthwidth="80mm"/>="80mm"/>

<<fofo::tabletable--column columncolumn column--widthwidth="30mm"/>="30mm"/>

<<fofo::tabletable--column columncolumn column--widthwidth="30mm"/>="30mm"/>

<<fofo::tabletable--bodybody>>

<<fofo::tabletable--rowrow backgroundbackground--color="orange">color="orange">

<<fofo::tabletable--cellcell >>

<<fofo::block fontblock font--sizesize="16pt" color="red">="16pt" color="red">

AsignaturaAsignatura

</</fofo::blockblock>>

</</fofo::tabletable--cellcell>>

...<!...<!---- Resto de primera filaResto de primera fila ---->>

</</fofo::tabletable--rowrow>>

<<xslxsl::applyapply--templatestemplates> <!> <!---- Resto de filasResto de filas ---->>

Page 45: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XSLXSL--FOFO

Page 46: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XML XML Schema Schema (XSDL)(XSDL)

•• Los Los schemasschemas se presentan como la mejor forma de se presentan como la mejor forma de especificar modelos de contenidos XMLespecificar modelos de contenidos XML–– Permiten una mayor expresividad que los Permiten una mayor expresividad que los DTDsDTDs–– Eliminan alguno de los inconvenientes de los Eliminan alguno de los inconvenientes de los DTDsDTDs

•• Los Los DTDs DTDs no son documentos XMLno son documentos XML–– ¿ Cómo ¿ Cómo convertirconvertir los antiguos los antiguos DTDs DTDs en en schemasschemas??

•• Hay herramientas que (casi) automatizan el procesoHay herramientas que (casi) automatizan el procesohttp://http://wwwwww.w3..w3.orgorg/2000/04//2000/04/schemaschema__hackhack//

•• Después de la conversión hay que realizar algún trabajo Después de la conversión hay que realizar algún trabajo manual para sacar partido de la mayor expresividad de manual para sacar partido de la mayor expresividad de los los schemasschemas

Page 47: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Tecnologías XML Tecnologías XML XML XML SchemaSchema (XSDL)(XSDL)

<?<?xml versionxml version="1.0"="1.0" encodingencoding="UTF="UTF--8"?>8"?>

<<xsxs::schema xmlnsschema xmlns::xsxs=“http://www3.w3.=“http://www3.w3.orgorg/2001//2001/XMLSchemaXMLSchema”>”>

<<xsxs::element nameelement name=“=“planestudiosplanestudios”>”>

<<xsxs::complexTypecomplexType>>

<<xsxs::sequencesequence>>

<<xsxs::element nameelement name=“asignatura”=“asignatura” minOccursminOccurs=“1”=“1”

maxOccursmaxOccurs=“=“unboundedunbounded”>”>

<<xsxs::attribute nameattribute name=“=“codigocodigo”” typetype=“=“xsxs::stringstring””

use=“use=“requiredrequired”/>”/>

<<xsxs::complexTypecomplexType>>

<<xsxs::sequencesequence>>

<<xsxs::element nameelement name=“nombre”=“nombre” typetype=“=“xsxs::stringstring”/>”/>

<<xsxs::element nameelement name=“=“creditoscreditos”>”>

<<xsxs::complexTypecomplexType>>

......

Page 48: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

ÍndiceÍndice

•• Intercambio de información en el WWWIntercambio de información en el WWW•• Introducción a XMLIntroducción a XML•• Tecnologías XMLTecnologías XML•• Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XML•• XML en .NETXML en .NET•• BibliografíaBibliografía

Page 49: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XMLIntroducciónIntroducción

•• Para introducir capacidades XML a nuestras Para introducir capacidades XML a nuestras aplicaciones, necesitamos, al menos, un aplicaciones, necesitamos, al menos, un procesador procesador ((parserparser) XML) XML–– En forma de libreríaEn forma de librería–– Disponibles para diferentes lenguajes de programaciónDisponibles para diferentes lenguajes de programación–– Que permitan validar o no los documentosQue permitan validar o no los documentos

•• Dos opcionesDos opciones–– DOMDOM–– SAXSAX

Page 50: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XMLDOMDOM

•• Construye el árbolConstruye el árbol correspondiente al documento XMLcorrespondiente al documento XML•• Proporciona métodos/funciones para Proporciona métodos/funciones para

recorrerlo/modificarlorecorrerlo/modificarlo

Documento

Tipo documento Elemento

Atributo Elemento Atributo Texto

Texto TextoReferencia entidad

Page 51: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XMLSAXSAX

•• Notifica eventosNotifica eventos de cierta importancia que se van de cierta importancia que se van produciendo durante el procesamientoproduciendo durante el procesamiento–– Inicio de documento, inicio de elemento, fin de Inicio de documento, inicio de elemento, fin de

elemento, etc.elemento, etc.•• SAX proporciona nombres estándar para las SAX proporciona nombres estándar para las

retrollamadasretrollamadas ((callback functionscallback functions) que son invocadas ) que son invocadas ante la aparición de dichos eventosante la aparición de dichos eventos–– Escribir una aplicación SAX consiste en implementar Escribir una aplicación SAX consiste en implementar

dichas dichas retrollamadasretrollamadas

Page 52: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XMLSAXSAX

public void startDocumentpublic void startDocument() {() {

elementCountelementCount = 0;= 0;

}}

public void startElementpublic void startElement((String uriString uri,, String localNameString localName,,

String qNameString qName,, Attributes attrsAttributes attrs) {) {

elementCountelementCount++;++;

}}

public void endDocumentpublic void endDocument() {() {

SystemSystem.out..out.printlnprintln("Total("Total number of elementsnumber of elements: " +: " +

elementCountelementCount););

}}

Page 53: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

ÍndiceÍndice

•• Intercambio de información en el WWWIntercambio de información en el WWW•• Introducción a XMLIntroducción a XML•• Tecnologías XMLTecnologías XML•• Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XML•• XML en .NETXML en .NET•• BibliografíaBibliografía

Page 54: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

XML en .NETXML en .NETConfiguración de aplicaciones Web de .NETConfiguración de aplicaciones Web de .NET

•• ASP.NET almacena ASP.NET almacena información de configuracióninformación de configuración de de cada aplicación en un fichero XML denominado cada aplicación en un fichero XML denominado web.web.configconfig, que se almacena en el propio directorio , que se almacena en el propio directorio de la aplicaciónde la aplicación<?<?xml versionxml version="1.0"="1.0" encodingencoding="UTF="UTF--8"?>8"?>

<<configurationconfiguration>>

<<systemsystem.web>.web>

<<compilationcompilation defaultLanguagedefaultLanguage=“=“vbvb”” debugdebug=“=“falsefalse” />” />

......

</</systemsystem.web>.web>

</</configurationconfiguration>>

Page 55: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

XML en .NETXML en .NETServicios WebServicios Web

•• Describen su Describen su interfazinterfaz en documentos WSDL (son en documentos WSDL (son documentos XML)documentos XML)<?<?xml versionxml version="1.0"="1.0" encodingencoding="="utfutf--8" ?>8" ?><<definitionsdefinitionsxmlnsxmlns::soapsoap="http://="http://schemasschemas..xmlsoapxmlsoap..orgorg//wsdlwsdl//soapsoap/" ...>/" ...><<typestypes>>......<s:<s:element nameelement name="="HelloWorldHelloWorld"> <!"> <!---- ArgsArgs. entrantes. entrantes ---->>

<s:<s:complexTypecomplexType />/></s:</s:elementelement>><s:<s:element nameelement name="="HelloWorldResponseHelloWorldResponse">">

<s:<s:complexTypecomplexType> <!> <!---- Info. de respuestaInfo. de respuesta ---->><s:<s:sequencesequence>>

<s:<s:element minOccurselement minOccurs="0"="0" maxOccursmaxOccurs="1“="1“namename="="HelloWorldResultHelloWorldResult"" typetype="s:="s:stringstring"/>"/>

</s:</s:sequencesequence> ...> ...

Page 56: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

XML en .NETXML en .NETServicios WebServicios Web

•• Aceptan Aceptan peticiones entrantespeticiones entrantes en XML (p.e., SOAP)en XML (p.e., SOAP)<?<?xml versionxml version="1.0"="1.0" encodingencoding="="utfutf--8"?>8"?><<soapsoap::EnvelopeEnvelope

xmlnsxmlns::xsixsi="http://="http://wwwwww.w3..w3.orgorg/2001//2001/XMLSchemaXMLSchema--instanceinstance""xmlnsxmlns::xsdxsd="http://="http://wwwwww.w3..w3.orgorg/2001//2001/XMLSchemaXMLSchema""xmlnsxmlns::soapsoap="http://="http://schemasschemas..xmlsoapxmlsoap..orgorg//soapsoap//envelopeenvelope/">/"><<soapsoap::BodyBody>>

<<HelloWorld xmlnsHelloWorld xmlns="http://="http://tempuritempuri..orgorg/" />/" /></</soapsoap::BodyBody>>

</</soapsoap::EnvelopeEnvelope>>

•• Y devuelven Y devuelven respuestasrespuestas en XML (p.e. HTTP en XML (p.e. HTTP GetGet))<?<?xml versionxml version="1.0"="1.0" encodingencoding=“=“utfutf--8"?8"?<<string xmlnsstring xmlns=“http://=“http://tempuritempuri..orgorg/”>/”>HelloHello World</World</stringstring>>

Page 57: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

XML en .NETXML en .NETADO .NETADO .NET

•• Proporciona clases para la Proporciona clases para la manipulaciónmanipulación, como , como documentos XML, documentos XML, de de DataSetsDataSets obtenidos en obtenidos en consultas a SGBDconsultas a SGBD......connconn==new SQLConnectionnew SQLConnection(...);(...);SQLDataSetCommand cmdSQLDataSetCommand cmd==new SQLDataSetCommandnew SQLDataSetCommand(“(“selectselect ** fromfrom

ArticulosArticulos”,”, connconn););DataSet dsDataSet ds==new DataSetnew DataSet();();cmdcmd..FillDataSetFillDataSet((dsds,”,”ArticulosArticulos”);”);/* Crear documento XML a partir de/* Crear documento XML a partir de DataSetDataSet */*/XmlDataDocument docXmlDataDocument doc==new XmlDataDocumentnew XmlDataDocument((dsds););/* Procesar “/* Procesar “docdoc” con, por ejemplo DOM */” con, por ejemplo DOM */......

Page 58: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

ÍndiceÍndice

•• Intercambio de información en el WWWIntercambio de información en el WWW•• Introducción a XMLIntroducción a XML•• Tecnologías XMLTecnologías XML•• Desarrollo de aplicaciones con XMLDesarrollo de aplicaciones con XML•• XML en .NETXML en .NET•• BibliografíaBibliografía

Page 59: Fernando - di002.edv.uniovi.esdi002.edv.uniovi.es/~benja/cs/presentaciones/12-XML.NET.pdf · Páginas con la lista de libros escritos por Miguel Cervantes ... que se quiere dar a

Cursos de Verano 2002Cursos de Verano 2002UNIVERSIDAD DE OVIEDOUNIVERSIDAD DE OVIEDO

XMLXMLFernando Álvarez GarcíaFernando Álvarez García

BibliografíaBibliografía

•• GoldfarbGoldfarb, C. F., , C. F., PrescodPrescod, P., “, P., “The The XML XML handbookhandbook”, 3ª ”, 3ª edición, edición, Prentice HallPrentice Hall, 2001, 2001

•• WykeWyke, A. R., , A. R., RehmanRehman, S., , S., LeupenLeupen, S., “, S., “XML XML programmingprogramming”, ”, Microsoft Microsoft PressPress, 2002, 2002

•• YoungYoung, M. J., “, M. J., “XML XML step step by by stepstep”, 2ª edición, Microsoft ”, 2ª edición, Microsoft PressPress, 2002, 2002

•• PlattPlatt, D. S., “, D. S., “Así es Microsoft .NETAsí es Microsoft .NET”, ”, McGrawMcGraw--Hill, 2001Hill, 2001•• DickDick, K., “, K., “XML. A XML. A managers guidemanagers guide”, ”, Addison WesleyAddison Wesley, 2000, 2000•• McLaughlinMcLaughlin, B., “, B., “Java Java and and XMLXML”, 2ª edición, ”, 2ª edición, O’ReillyO’Reilly, 2001, 2001