Upload
sal-villena
View
221
Download
0
Embed Size (px)
Citation preview
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
11/47/47
Introducción a XML
UPM-DATSIUPM-DATSI
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
22/47/47LicenciaLicencia
Copyright (c) 2001-2003 Francisco Manuel SÁNCHEZ MORENO Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License, Version 1.2 or any later version published by the Free Software Foundation; with no Invariant Sections, no Front-Cover Texts, and no Back-Cover Texts. A copy of the license is included in the section entitled "GNU Free Documentation License".
A copy of the GNU Free Documentation License can be found in: http://www.gnu.org/licenses/licenses.html#FDL
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
33/47/47Introducción XML (1/6)Introducción XML (1/6)
¿Que es un lenguaje de marcas?¿Que es un lenguaje de marcas?
- Lenguaje que emplea marcas o elementos para - Lenguaje que emplea marcas o elementos para señalar las diferentes secciones de un documento señalar las diferentes secciones de un documento (marcas+texto).(marcas+texto).
- Sirve para intercambiar datos en un formato - Sirve para intercambiar datos en un formato determinado determinado
- Ejemplos- Ejemplos.html -> Navegadores. (Especificación pública).html -> Navegadores. (Especificación pública).tex-> LaTex (Especificación pública).tex-> LaTex (Especificación pública).doc -> Microsoft Word (Especificación privada).doc -> Microsoft Word (Especificación privada).xml-> bases de datos, navegadores, programas de .xml-> bases de datos, navegadores, programas de
usuario (especificación pública)usuario (especificación pública)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
44/47/47Introducción XML (2/6)Introducción XML (2/6)
¿Cómo se usa un lenguaje de marcas?¿Cómo se usa un lenguaje de marcas?
- Debe considerarse- Debe considerarse- La sintaxis del lenguaje de marcas y los caracteres - La sintaxis del lenguaje de marcas y los caracteres
de marcas que se emplean.de marcas que se emplean.
- Escribir el documentos: marcas+texto- Escribir el documentos: marcas+texto
- Interpretar el documento: bien en un visualizador o - Interpretar el documento: bien en un visualizador o por una aplicación que procese los datospor una aplicación que procese los datos
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
55/47/47Introducción XML (3/6)Introducción XML (3/6)
¿Que es XML?¿Que es XML?- Extensible Markup Language- Extensible Markup Language
- Definiciones- Definiciones- Sirve para definir lenguaje de marcas.- Sirve para definir lenguaje de marcas.
- Es un lenguaje de representación de datos.- Es un lenguaje de representación de datos.
- No ha nacido sólo para internet- No ha nacido sólo para internet
- En XML- En XML- Sólo está definida la sintaxis.- Sólo está definida la sintaxis.
- El que quiera intercambiar datos en XML debe:- El que quiera intercambiar datos en XML debe:- Definir las marcas en .DTD - Definir las marcas en .DTD (Document Type (Document Type
Definition)Definition)
- Definir qué hacen las marcas en reglas de - Definir qué hacen las marcas en reglas de estilo .XSL estilo .XSL (Extensible Stylesheet Language) (Extensible Stylesheet Language) o .CSS o .CSS (Cascading Style Sheet)(Cascading Style Sheet)
- Escribir datos con las marcas en .XML - Escribir datos con las marcas en .XML (Extensible Mark-up Language)(Extensible Mark-up Language)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
66/47/47Introducción XML (4/6)Introducción XML (4/6)
HistoriaHistoria- SGML - SGML Estándar Generalized Mark-up LanguageEstándar Generalized Mark-up Language
- El padre HTML y XML- El padre HTML y XML
- Usa DTD para definir una estructura de el documento - Usa DTD para definir una estructura de el documento
- El DTD especifica las marcas que se van a usar.- El DTD especifica las marcas que se van a usar.
- Surgió en 1989 (más viejo que el web)- Surgió en 1989 (más viejo que el web)
- Especificación más de 600 páginas- Especificación más de 600 páginas
- HTML - HTML Hiper Text Mark-up LanguageHiper Text Mark-up Language- Era lo que la red necesitaba para compartir - Era lo que la red necesitaba para compartir
informacióninformación
- Darse a conocer investigadores y empresas- Darse a conocer investigadores y empresas
- Especificación 30 páginas- Especificación 30 páginas
- XML - XML - El HTML se ha quedado pequeño para e-comercio- El HTML se ha quedado pequeño para e-comercio
- Especificación 90 páginas- Especificación 90 páginas
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
77/47/47Introducción XML (5/6 )Introducción XML (5/6 )
Metas de XMLMetas de XML- Debe poderse utilizar en internet- Debe poderse utilizar en internet- Debe poder soportar una gran cantidad de - Debe poder soportar una gran cantidad de
aplicacionesaplicaciones- Biztalk (intercambio de documentos y mensajes)- Biztalk (intercambio de documentos y mensajes)- SOAP (procedimientos remotos)- SOAP (procedimientos remotos)
- Debe ser compatible con SGML- Debe ser compatible con SGML- Debe ser sencillo escribir programas que procesen - Debe ser sencillo escribir programas que procesen
datosdatos- El número de características opcionales debe - El número de características opcionales debe
mantenerse al mínimo (idealmente a cero). Cuanto mantenerse al mínimo (idealmente a cero). Cuanto mas complejo sea un lenguaje menos se usará.mas complejo sea un lenguaje menos se usará.
- Los datos escritos en XML deben poderse leer por el - Los datos escritos en XML deben poderse leer por el hombrehombre
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
88/47/47Introducción XML (6/6 )Introducción XML (6/6 )
Ventajas de XMLVentajas de XML
- Es internacional. Es internacional. - Emplea caracteres UNICODE Emplea caracteres UNICODE (www.unicode.org)(www.unicode.org)
- Puede ser estructurado usando DTD, Puede ser estructurado usando DTD, - Se puede validar la sintaxis y el contenido de los datos.Se puede validar la sintaxis y el contenido de los datos.- Se asegura el crear documentos estándar.Se asegura el crear documentos estándar.
- Se puede componer con otros documentos.Se puede componer con otros documentos.- Enlaces dinámicos (nunca se pierde el enlace)Enlaces dinámicos (nunca se pierde el enlace)
- Es flexible. Es flexible. - DTD por defecto.DTD por defecto.
- Es fácil de usar. Es fácil de usar. - Es sólo un poco más complicado que HTMLEs sólo un poco más complicado que HTML
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
99/47/47XML: Ejemplo 1 (1/3)XML: Ejemplo 1 (1/3)
CANCION en HTML (cancion.html)CANCION en HTML (cancion.html)
<dt>Hot Cop<dd> by Jacques Morali, Henri Belolo, and Victor Willis<ul><li>Producer: Jacques Morali<li>Publisher: PolyGram Records<li>Length: 6:20<li>Written: 1978<li>Artist: Village People</ul>
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1010/47/47XML: Ejemplo 1 (2/3)XML: Ejemplo 1 (2/3)
CANCION en XML (cancion.xml)CANCION en XML (cancion.xml)
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?>
<!-- File: cancion.xml -->
<SONG LENGTH="6:20"> <TITLE>Hot Cop</TITLE> <COMPOSER>Jacques Morali</COMPOSER> <COMPOSER>Henri Belolo</COMPOSER> <COMPOSER>Victor Willis</COMPOSER> <PRODUCER>Jacques Morali</PRODUCER> <PUBLISHER>PolyGram Records</PUBLISHER> <YEAR>1978</YEAR> <ARTIST>Village People</ARTIST></SONG>
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1111/47/47
EJEMPLO 1: CANCION en XML (cancion.xml)EJEMPLO 1: CANCION en XML (cancion.xml)
XML: Ejemplo 1 (3/3)XML: Ejemplo 1 (3/3)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1212/47/47
EJEMPLO 2: Inventario en XML (inventario.xml) EJEMPLO 2: Inventario en XML (inventario.xml) Se estructura con jerarquía en árbolSe estructura con jerarquía en árbol
Dar nombres significativos a las entidadesDar nombres significativos a las entidades
INVENTORY
BOOK
TITLE AUTHOR BINDING PAGES PRICE
TITLE AUTHOR BINDING PAGES PRICE
TITLE AUTHOR BINDING PAGES PRICE
BOOK BOOK
XML: Ejemplo 2 (1/3)XML: Ejemplo 2 (1/3)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1313/47/47
<?xml version="1.0"?>
<!-- File Name: Inventory.xml -->
<INVENTORY> <BOOK> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR>Mark Twain</AUTHOR> <BINDING>mass market paperback</BINDING> <PAGES>298</PAGES> <PRICE>$5.49</PRICE> </BOOK> <BOOK> <TITLE>Leaves of Grass</TITLE> <AUTHOR>Walt Whitman</AUTHOR> <BINDING>hardcover</BINDING> <PAGES>462</PAGES> <PRICE>$7.75</PRICE> </BOOK>
<BOOK> <TITLE>The Legend of Sleepy Hollow</TITLE> <AUTHOR>Washington Irving</AUTHOR> <BINDING>mass market paperback</BINDING> <PAGES>98</PAGES> <PRICE>$2.95</PRICE> </BOOK> <BOOK> <TITLE>The Marble Faun</TITLE> <AUTHOR>Nathaniel Hawthorne</AUTHOR> <BINDING>trade paperback</BINDING> <PAGES>473</PAGES> <PRICE>$10.95</PRICE> </BOOK>......</INVENTORY>
EJEMPLO 2: Inventario en XML (inventario.xml)EJEMPLO 2: Inventario en XML (inventario.xml)
XML: Ejemplo 2 (2/3)XML: Ejemplo 2 (2/3)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1414/47/47
EJEMPLO 2: Inventario en XML (inventario.xml)EJEMPLO 2: Inventario en XML (inventario.xml)
Prologo
Documento
XML: Ejemplo 2 (3/3)XML: Ejemplo 2 (3/3)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1515/47/47Sintaxis XMLSintaxis XML
Sintaxis en XMLSintaxis en XML- Los documentos en XML deben estar bien - Los documentos en XML deben estar bien
formateadosformateados- Las reglas son:- Las reglas son:
- ¡¡SIEMPRE!! Abrir y cerrar las marcas.- ¡¡SIEMPRE!! Abrir y cerrar las marcas.- Las marcas sin datos pueden acabar en />Las marcas sin datos pueden acabar en />
- Hay un elemento raíz único.- Hay un elemento raíz único.- Los valores de los atributos van entre comillas.- Los valores de los atributos van entre comillas.- El símbolo ‘<‘ se utiliza sólo para comenzar marcas.- El símbolo ‘<‘ se utiliza sólo para comenzar marcas.
- Se necesita analizadores léxicos para revisar la - Se necesita analizadores léxicos para revisar la sintaxis (sintaxis (parsers)parsers)
<TITLE>Hot Cop</TITLE> <COMPOSER>Jacques Morali</COMPOSER> <COMPOSER/> <COMPOSER>Victor Willis</COMPOSER>
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1616/47/47Parser XMLParser XML
Parser (analizador léxico)Parser (analizador léxico)<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><SONG LENGTH="6:20"> <TITLE>Hot Cop</TITLE> <COMPOSER>Jacques Morali</Composer> <COMPOSER>Henri Belolo</COMPOSER> <COMPOSER>Victor Willis</COMPOSER> <PRODUCER>Jacques Morali</PRODUCER> <PUBLISHER>PolyGram Records</PUBLISHER> <YEAR>1978</YEAR> <ARTIST>Village People</ARTIST></SONG>
ERROR
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1717/47/47Visualización XML (1/3)Visualización XML (1/3)
Enlazar con hojas de estilosEnlazar con hojas de estilos- Hoja de estilos-> fichero que contiene instrucciones de - Hoja de estilos-> fichero que contiene instrucciones de
cómo formatear el documento XMLcómo formatear el documento XML
- Pueden ser - Pueden ser - CSS (Cascading Style Sheet) (usadas también por - CSS (Cascading Style Sheet) (usadas también por
HTML)HTML)
- XSL (eXtensible Style Language (diseñada para - XSL (eXtensible Style Language (diseñada para XML)XML)
Enlazar datos (Data binding)Enlazar datos (Data binding)- Crear página HTML- Crear página HTML
- Enlazar el documento XML a ella- Enlazar el documento XML a ella
- Asociar elementos HTML a elementos XML- Asociar elementos HTML a elementos XML
Scripting Scripting - Igual que el anterior, pero asociando Java-scripts- Igual que el anterior, pero asociando Java-scripts
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1818/47/47Visualización XML (2/3)Visualización XML (2/3)
Lenguajes de definición de estilosLenguajes de definición de estilos
- CSS1 = CSS1 = Cascading Style Sheets Level 1Cascading Style Sheets Level 1- http://www.w3.org/TR/REC-CSS1http://www.w3.org/TR/REC-CSS1
- CSS2 = CSS2 = Cascading Style Sheets Level 2Cascading Style Sheets Level 2- http://www.w3.org/TR/REC-CSS2/http://www.w3.org/TR/REC-CSS2/
- XSL = - XSL = Extensible Style LanguageExtensible Style Language- http://www.w3.org/TR/xsl/- http://www.w3.org/TR/xsl/
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
1919/47/47Visualización XML (3/3)Visualización XML (3/3)
-XSLT (Extensible Style Language Transformation)-XSLT (Extensible Style Language Transformation)
http://www.w3.org/TR/xslthttp://www.w3.org/TR/xslt
- XSL se ha dividido en tres especificaciones diferentes.- XSL se ha dividido en tres especificaciones diferentes.- XSLT (Extensible Style Language Transformation)- XSLT (Extensible Style Language Transformation)
- Xpath- Xpath
- XSL- XSL
- XSLT. Es un lenguaje para transformar datos de XML - XSLT. Es un lenguaje para transformar datos de XML a un formato cualquiera, pero basado en texto (por a un formato cualquiera, pero basado en texto (por ejemplo a XHTML)ejemplo a XHTML)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2020/47/47Visualización XML con CSS (1/3)Visualización XML con CSS (1/3)
SintaxisSintaxis
- Formato fichero .css:Formato fichero .css:Etiqueta1 {regla de estilo1}Etiqueta1 {regla de estilo1}Etiqueta2 {regla de estilo2} Etiqueta2 {regla de estilo2} ........
- EjemploEjemplo- Se crea el fichero “libro.css” con:Se crea el fichero “libro.css” con:
LIBRO {font-size:20px}LIBRO {font-size:20px}
- En el fichero libro.xml deberá incluirse la cabecera:En el fichero libro.xml deberá incluirse la cabecera:<?xml-stylesheet type="text/css" <?xml-stylesheet type="text/css" href=”libro.css"?>href=”libro.css"?>
- Finalmente en libro.xml se escriben los datos:Finalmente en libro.xml se escriben los datos:<LIBRO> <LIBRO> <<Titulo> Programación de Aplicaciones web Titulo> Programación de Aplicaciones web </</Titulo> Titulo> <Autor> Santiago RODRIGUEZ et. al </Autor> <Autor> Santiago RODRIGUEZ et. al </Autor> <Editorial> Paraninfo </Editorial><Editorial> Paraninfo </Editorial><Lengua> Español </Lengua> <Lengua> Español </Lengua> <Pgs> 586 </Pgs> <Pgs> 586 </Pgs> <ISBN> 84-9732-181-2 </ISBN><ISBN> 84-9732-181-2 </ISBN>
</LIBRO></LIBRO>
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2121/47/47Visualización XML con CSS (2/3)Visualización XML con CSS (2/3)
SintaxisSintaxis
- Formato fichero .css2:Formato fichero .css2:.EtiquetaClase1 {regla de estilo1}.EtiquetaClase1 {regla de estilo1}#EtiquetaId2 {regla de estilo2} #EtiquetaId2 {regla de estilo2} ........
- EjemploEjemplo- Se crea el fichero “libro.css” con:Se crea el fichero “libro.css” con:
.Clase1 {font-size:20px}.Clase1 {font-size:20px}#TipoID1 {font-size:25px}#TipoID1 {font-size:25px}
- En el fichero libro.xml deberá incluirse la cabecera:En el fichero libro.xml deberá incluirse la cabecera:<?xml-stylesheet type="text/css" href=”libro.css"?<?xml-stylesheet type="text/css" href=”libro.css"?>>
- Finalmente en libro.xml se escriben los datos:Finalmente en libro.xml se escriben los datos:<LIBRO class=“Clase1”> <LIBRO class=“Clase1”> <<Titulo> Programación de Aplicaciones web Titulo> Programación de Aplicaciones web </</Titulo> Titulo> <Autor> Santiago RODRIGUEZ et. al </Autor> <Autor> Santiago RODRIGUEZ et. al </Autor> <Editorial id=“TipooID1”> Paraninfo </Editorial><Editorial id=“TipooID1”> Paraninfo </Editorial><Lengua> Español </Lengua> <Lengua> Español </Lengua> <Pgs> 586 </Pgs> <Pgs> 586 </Pgs> <ISBN> 84-9732-181-2 </ISBN><ISBN> 84-9732-181-2 </ISBN>
</LIBRO></LIBRO>
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2222/47/47Visualización XML con CSS (3/3)Visualización XML con CSS (3/3)
SintaxisSintaxis
- Etiqueta {regla:valor;...}Etiqueta {regla:valor;...}- Reglas típicas: http://www.w3.org/TR/REC-CSS2/descidx.htmlReglas típicas: http://www.w3.org/TR/REC-CSS2/descidx.html
- font-familyfont-familyEtiqueta{font-family:Arial, sans-serif, fantasy}Etiqueta{font-family:Arial, sans-serif, fantasy}
- font-sizefont-sizeEtiqueta{font-size:12pt; font-family:Arial}Etiqueta{font-size:12pt; font-family:Arial}
- background-colorbackground-colorEtiqueta{background-color:#FFFFFF}Etiqueta{background-color:#FFFFFF}Etiqueta{background-color: white}Etiqueta{background-color: white}Etiqueta{background-color: rgb(255,255,255)}Etiqueta{background-color: rgb(255,255,255)}
- floatfloatEtiqueta{float: right} Etiqueta{float: right}
Hace que una imagen se justifique a la derecha y el texto la rodee.Hace que una imagen se justifique a la derecha y el texto la rodee.
- margin-leftmargin-leftEtiqueta{margin-left:20pt}Etiqueta{margin-left:20pt}
- text-transformtext-transformEtiqueta{text-transform:capitalize}Etiqueta{text-transform:capitalize}
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2323/47/47CSS: Ejemplo 1 (1/3)CSS: Ejemplo 1 (1/3)
Hoja de estilos (.CSS) (SONG.css)Hoja de estilos (.CSS) (SONG.css)SONG {display: block}TITLE {display: block; font-family: Helvetica, serif; font-size: 20pt; font-weight: bold}COMPOSER {display: block; font-family: Times, Times New Roman, serif; font-size: 14pt; font-style: italic}ARTIST {display: block; font-family: Times, Times New Roman, serif; font-size: 14pt; font-weight: bold; font-style: italic}PUBLISHER {display: block; font-family: Times, Times New Roman, serif; font-size: 14pt}YEAR {display: block; font-family: Times, Times New Roman, serif; font-size: 14pt}
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2424/47/47 CSS: Ejemplo 1 (2/3) CSS: Ejemplo 1 (2/3)
Inclusión de hoja de estilosInclusión de hoja de estilos<?xml-stylesheet type="text/css" href=”song.css"?><?xml-stylesheet type="text/css" href=”song.css"?>
<?xml version="1.0" encoding="ISO-8859-1" standalone="yes"?><?xml-stylesheet type="text/css" href="song.css"?><SONG LENGTH="6:20"> <TITLE>Hot Cop</TITLE> <COMPOSER>Jacques Morali</COMPOSER> <COMPOSER>Henri Belolo</COMPOSER> <COMPOSER>Victor Willis</COMPOSER> <PRODUCER>Jacques Morali</PRODUCER> <PUBLISHER>PolyGram Records</PUBLISHER> <YEAR>1978</YEAR> <ARTIST>Village People</ARTIST></SONG>
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2525/47/47
SONG {display: block}TITLE {display: block; font-family: Helvetica, serif; font-size: 20pt; font-weight: bold}COMPOSER {display: block; font-family: Times, Times New Roman, serif; font-size: 14pt; font-style: italic}
ARTIST {display: block; font-family: Times, Times New Roman, serif; font-size: 14pt; font-weight: bold; font-style: italic}PUBLISHER {display: block; font-family: Times, Times New Roman, serif; font-size: 14pt}YEAR {display: block; font-family: Times, Times New Roman, serif; font-size: 14pt}
CSS: Ejemplo 1 (3/3)CSS: Ejemplo 1 (3/3)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2626/47/47
/* File Name: Inventory01.css */
BOOK {display:block; margin-top:12pt; font-size:10pt}
TITLE {font-style:italic}
AUTHOR {font-weight:bold}
Hoja de estilos (.CSS) (inventory.css)Hoja de estilos (.CSS) (inventory.css)
CSS: Ejemplo 2 (1/4)CSS: Ejemplo 2 (1/4)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2727/47/47
<?xml version="1.0"?>
<!-- File Name: Inventory01.xml -->
<?xml-stylesheet type="text/css" href="Inventory01.css"?>
<INVENTORY> <BOOK> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR>Mark Twain</AUTHOR> <BINDING>mass market paperback</BINDING> <PAGES>298</PAGES> <PRICE>$5.49</PRICE> </BOOK> ....</INVENTORY>
Inclusión de hoja de estilosInclusión de hoja de estilos<?xml-stylesheet type="text/css" href=” <?xml-stylesheet type="text/css" href=” Inventory01.cssInventory01.css "?> "?>
CSS: Ejemplo 2 (2/4)CSS: Ejemplo 2 (2/4)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2828/47/47CSS: Ejemplo 2 (3/4)CSS: Ejemplo 2 (3/4)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
2929/47/47
/* File Name: Inventory02.css */
BOOK {display:block; margin-top:12pt; font-size:10pt}
TITLE {display:block; font-size:12pt; font-weight:bold; font-style:italic}
AUTHOR {display:block; margin-left:15pt; font-weight:bold}
BINDING {display:block; margin-left:15pt}
PAGES {display:none}
PRICE {display:block; margin-left:15pt}
Si ponemos otra hoja de estilosSi ponemos otra hoja de estilos<?xml-stylesheet type="text/css" href=” <?xml-stylesheet type="text/css" href=” Inventory02.cssInventory02.css"?>"?>
CSS: Ejemplo 2 (4/4)CSS: Ejemplo 2 (4/4)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3030/47/47
Dos pasos básicosDos pasos básicos1º- Crear la hoja de estilos XSL1º- Crear la hoja de estilos XSL
<?xml version="1.0"?>
<!-- File Name: XslDemo01.xsl -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <H2>Book Description</H2> <SPAN STYLE="font-style:italic">Author: </SPAN> <xsl:value-of select="BOOK/AUTHOR"/><BR/> <SPAN STYLE="font-style:italic">Title: </SPAN> <xsl:value-of select="BOOK/TITLE"/><BR/> <SPAN STYLE="font-style:italic">Price: </SPAN> <xsl:value-of select="BOOK/PRICE"/><BR/> <SPAN STYLE="font-style:italic">Binding type: </SPAN> <xsl:value-of select="BOOK/BINDING"/><BR/> <SPAN STYLE="font-style:italic">Number of pages: </SPAN> <xsl:value-of select="BOOK/PAGES"/> </xsl:template></xsl:stylesheet>
XSL: Ejemplo (1/5)XSL: Ejemplo (1/5)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3131/47/47
2º- Enlazar el documento XML con la hoja de estilos XSL2º- Enlazar el documento XML con la hoja de estilos XSL
<?xml version="1.0"?>
<!-- File Name: XslDemo01.xml -->
<?xml-stylesheet type="text/xsl" href="XslDemo01.xsl"?>
<BOOK> <TITLE>Moby-Dick</TITLE> <AUTHOR> <FIRSTNAME>Herman</FIRSTNAME> <LASTNAME>Melville</LASTNAME> </AUTHOR> <BINDING>hardcover</BINDING> <PAGES>724</PAGES> <PRICE>$9.95</PRICE></BOOK>
XSL: Ejemplo (2/5)XSL: Ejemplo (2/5)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3232/47/47XSL: Ejemplo (3/5)XSL: Ejemplo (3/5)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3333/47/47
<?xml version="1.0"?>
<!-- File Name: XslDemo06.xsl -->
<xsl:stylesheet xmlns:xsl="http://www.w3.org/TR/WD-xsl"> <xsl:template match="/"> <H2>Books In Stock</H2> <TABLE BORDER="1" CELLPADDING="5"> <THEAD> <TH>Title</TH> <TH>Author</TH> <TH>Binding Type</TH> <TH>Number of Pages</TH> <TH>Price</TH> </THEAD> <xsl:for-each select="INVENTORY/BOOK[@InStock='yes']"> <TR ALIGN="CENTER"> <TD> <xsl:value-of select="TITLE"/> </TD> <TD> <xsl:value-of select="AUTHOR"/> <BR/> (born <xsl:value-of select="AUTHOR/@Born"/>) </TD>
<TD> <xsl:value-of select="BINDING"/> </TD> <TD> <xsl:value-of select="PAGES"/> </TD> <TD> <xsl:value-of select="PRICE"/> </TD> </TR> </xsl:for-each> </TABLE> </xsl:template></xsl:stylesheet>
1º- Crear la hoja de estilos XSL1º- Crear la hoja de estilos XSLXSL: Ejemplo (4/5)XSL: Ejemplo (4/5)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3434/47/47
2º- Enlazar el documento XML con la hoja de estilos XSL2º- Enlazar el documento XML con la hoja de estilos XSL<?xml version="1.0"?>
<!-- File Name: XslDemo06.xml -->
<?xml-stylesheet type="text/xsl" href="XslDemo06.xsl"?>
<INVENTORY> <BOOK InStock="yes"> <TITLE>The Adventures of Huckleberry Finn</TITLE> <AUTHOR Born="1835">Mark Twain</AUTHOR> <BINDING>mass market paperback</BINDING> <PAGES>298</PAGES> <PRICE>$5.49</PRICE> </BOOK> <BOOK InStock="no"> <TITLE>Leaves of Grass</TITLE> <AUTHOR Born="1819">Walt Whitman</AUTHOR> <BINDING>hardcover</BINDING> <PAGES>462</PAGES> <PRICE>$7.75</PRICE> </BOOK>......</INVENTORY>
XSL: Ejemplo (5/5)XSL: Ejemplo (5/5)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3535/47/47DTD: Document Type DefinitionDTD: Document Type Definition
Validación del documentoValidación del documento
- Para que sea válido el documento XML- Para que sea válido el documento XML- Debe estar bien formateado- Debe estar bien formateado
- Debe tener una definición de tipos de dato (.DTD)- Debe tener una definición de tipos de dato (.DTD)
- Debe cumplir las especificaciones definidas en el - Debe cumplir las especificaciones definidas en el (.DTD)(.DTD)
- Se definen las marcas y su posible aparición- Se definen las marcas y su posible aparición? -> La marca puede aparecer una o ninguna vez.? -> La marca puede aparecer una o ninguna vez.
+ -> La marca debe aparecer al menos una vez.+ -> La marca debe aparecer al menos una vez.
* -> El elemento puede aparecer cualquier número * -> El elemento puede aparecer cualquier número de veces.de veces.
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3636/47/47DTD: Ejemplo (1/2)DTD: Ejemplo (1/2)
EJEMPLO: Definicion de datos, (cancion.dtd)EJEMPLO: Definicion de datos, (cancion.dtd)
<!ELEMENT SONG (TITLE, COMPOSER+, PRODUCER*, PUBLISHER*, LENGTH?, YEAR?, ARTIST+)>
<!ELEMENT TITLE (#PCDATA)>
<!ELEMENT COMPOSER (#PCDATA)><!ELEMENT PRODUCER (#PCDATA)><!ELEMENT PUBLISHER (#PCDATA)><!-- This should be a four digit year like "1999", not a two-digit year like "99" --><!ELEMENT YEAR (#PCDATA)>
<!ELEMENT ARTIST (#PCDATA)>
<!ATTLIST SONG LENGTH CDATA #IMPLIED>
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3737/47/47
EJEMPLO: Utilización de cancion.dtdEJEMPLO: Utilización de cancion.dtd
<?xml version="1.0" encoding="ISO-8859-1" standalone="no"?><!DOCTYPE SONG SYSTEM "song.dtd"><SONG LENGTH="6:20"> <TITLE>Hot Cop</TITLE> <COMPOSER>Jacques Morali</COMPOSER> <COMPOSER>Henri Belolo</COMPOSER> <COMPOSER>Victor Willis</COMPOSER> <PRODUCER>Jacques Morali</PRODUCER> <PUBLISHER>PolyGram Records</PUBLISHER> <YEAR>1978</YEAR> <ARTIST>Village People</ARTIST></SONG>
DTD: Ejemplo (2/2)DTD: Ejemplo (2/2)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3838/47/47
By Michael J.Young
Editorial Microsoft
BibliografíaBibliografía
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
3939/47/47BibliografíaBibliografía
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
4040/47/47EnlacesEnlaces
http://www.ibiblio.org/xml/http://www.ibiblio.org/xml/
http://www.wdvl.com/Authoring/Languages/XML/http://www.wdvl.com/Authoring/Languages/XML/XHTML/exs.htmlXHTML/exs.html
http://html.about.com/compute/html/index.htm?http://html.about.com/compute/html/index.htm?rnk=c1&terms=xmlrnk=c1&terms=xml
http://www.w3.org/http://www.w3.org/
http://www.w3.org/TR/REC-xml (Expecificación XML)http://www.w3.org/TR/REC-xml (Expecificación XML)
http://www.whatis.com (siglas)http://www.whatis.com (siglas)
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
4141/47/47SOAPSOAP
¿qué es SOAP?¿qué es SOAP?- Es un protocolo de comunicaciones Es un protocolo de comunicaciones
- basado en arquitectura cliente-servidorbasado en arquitectura cliente-servidor- Petición y respuesta usan XMLPetición y respuesta usan XML- Utiliza el puerto 80Utiliza el puerto 80
--
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
4242/47/47Ejemplo 1: BabelFishEjemplo 1: BabelFishhttp://gayuba2.datsi.fi.upm.es/~fsanchez/translation.phphttp://gayuba2.datsi.fi.upm.es/~fsanchez/translation.php
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
4343/47/47
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
4444/47/47http://gayuba2.datsi.fi.upm.es/~fsanchez/translation.php
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
4545/47/47
http://gayuba2.datsi.fi.upm.es/~fsanchez/google.phphttp://gayuba2.datsi.fi.upm.es/~fsanchez/google.php
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
4646/47/47
© 2001-2003 Francisco Manuel SÁNCHEZ MORENO
http://laurel.datsi.fi.upm.es/~fsanchez/
4747/47/47
¡PODEIS DESPERTAR!¡PODEIS DESPERTAR!¡PODEIS DESPERTAR!¡PODEIS DESPERTAR!