xml: breve introducci´on a los servicios webantares.sip.ucm.es/luis/java06-07/xml.pdf · xml:...

30
XML: breve introducci´ on a los servicios Web Luis Fernando Llana D´ ıaz Departamento de Sistemas Inform´ aticos y Computaci´ on Universidad Complutense de Madrid 22 de mayo de 2007 Luis Fernando Llana D´ ıaz Departamento de Sistemas Inform´ aticos y Computaci´ onUniversidad Complutense de Madrid XML: breve introducci´ on a los servicios Web

Upload: others

Post on 18-Jan-2021

4 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

XML: breve introduccion a los servicios Web

Luis Fernando Llana Dıaz

Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

22 de mayo de 2007

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 2: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

EXtensible Markup Language (XML)

Formato de texto marcado simple inspirado en HTML.

Publicacion de documentos a gran escala.

Intercambio electronico de datos.

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 3: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Open Document Format (odt) I

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 4: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Open Document Format (odt) II

1<?xml version="1.0" encoding="UTF -8"?>

2<office:document -content

3xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1 .0"

4xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1 .0"

5xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1 .0"

6xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1 .0"

7xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1 .0"

8xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl -fo-compatible:1 .0"

9xmlns:xlink="http: //www.w3.org /1999/ xlink"

10xmlns:dc="http: //purl.org/dc/elements /1.1/"

11xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1 .0"

12xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1 .0"

13xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg -compatible:1 .0"

14xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1 .0"

15xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1 .0"

16xmlns:math="http: //www.w3.org /1998/ Math/MathML"

17xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1 .0"

18xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1 .0"

19xmlns:ooo="http:// openoffice.org /2004/ office"

20xmlns:ooow="http: // openoffice.org /2004/ writer"

21xmlns:oooc="http: // openoffice.org /2004/ calc"

22xmlns:dom="http://www.w3.org /2001/xml -events"

23xmlns:xforms="http://www.w3.org /2002/ xforms"

24xmlns:xsd="http://www.w3.org /2001/ XMLSchema"

25xmlns:xsi="http://www.w3.org /2001/ XMLSchema -instance"

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 5: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Open Document Format (odt) III

26office:version="1.0">

27<office:scripts/>

28<office:font -face -decls >

29<style:font -face

30style:name="DejaVu Sans Mono"

31svg:font -family="&apos;DejaVu Sans Mono&apos;"

32style:font -family -generic="modern"

33style:font -pitch="fixed"/>

34<style:font -face style:name="DejaVu Sans"

35svg:font -family="&apos;DejaVu Sans&apos;"

36style:font -family -generic="roman"

37style:font -pitch="variable"/>

38<style:font -face style:name="DejaVu Sans1"

39svg:font -family="&apos;DejaVu Sans&apos;"

40style:font -family -generic="swiss"

41style:font -pitch="variable"/>

42<style:font -face style:name="DejaVu Sans2"

43svg:font -family="&apos;DejaVu Sans&apos;"

44style:font -family -generic="system"

45style:font -pitch="variable"/>

46</office:font -face -decls>

47<office:automatic -styles/>

48<office:body >

49<office:text >

50<office:forms

51form:automatic -focus="false"

52form:apply -design -mode="false"/>

53<text:sequence -decls>

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 6: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Open Document Format (odt) IV

54<text:sequence -decl

55text:display -outline -level="0"

56text:name="Illustration"/>

57<text:sequence -decl

58text:display -outline -level="0"

59text:name="Table"/>

60<text:sequence -decl

61text:display -outline -level="0"

62text:name="Text"/>

63<text:sequence -decl

64text:display -outline -level="0"

65text:name="Drawing"/>

66</text:sequence -decls >

67<text:h text:style -name="Heading_20_1" text:outline -level="1">

68Primera parte del ingenioso hidalgo don Quijote de la Mancha

69</text:h >

70<text:h text:style -name="Heading_20_2" text:outline -level="2">

71Capıtulo primero. Que trata de la condicion y ejercicio del famoso hidalgo don Quijote de la Mancha

72</text:h >

73<text:p text:style -name="Text_20_body">

74En un lugar de la Mancha ,

75de cuyo nombre no quiero acordarme , no ha mucho tiempo que vivıa un

76hidalgo de los de lanza en astillero , adarga antigua , rocın flaco y

77galgo corredor. Una olla de algo mas vaca que carnero , salpicon las

78mas noches , duelos y quebrantos los sabados , lantejas los viernes ,

79algun palomino de a~nadidura los domingos , consumıan las tres partes de

80su hacienda. El resto della concluıan sayo de velarte , calzas de

81velludo para las fiestas , con sus pantuflos de lo mesmo , y los dıas de

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 7: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Open Document Format (odt) V

82entresemana se honraba con su vellorı de lo mas fino. Tenıa en su casa

83una ama que pasaba de los cuarenta , y una sobrina que no llegaba a los

84veinte , y un mozo de campo y plaza , que ası ensillaba el rocın como

85tomaba la podadera. Frisaba la edad de nuestro hidalgo con los

86cincuenta a~nos; era de complexion recia , seco de carnes , enjuto de

87rostro , gran madrugador y amigo de la caza. Quieren decir que tenıa el

88sobrenombre de Quijada , o Quesada , que en esto hay alguna diferencia

89en los autores que deste caso escriben; aunque , por conjeturas

90verosımiles , se deja entender que se llamaba Quejana. Pero esto

91importa poco a nuestro cuento; basta que en la narracion del no se

92salga un punto de la verdad.

93</text:p >

94<text:p text:style -name="Text_20_body">

95Es , pues , de saber que este sobredicho hidalgo , los ratos que

96estaba ocioso , que eran los mas del a~no , se daba a leer libros de

97caballerıas , con tanta aficion y gusto , que olvido casi de todo punto

98el ejercicio de la caza , y aun la administracion de su hacienda. Y

99llego a tanto su curiosidad y desatino en esto , que vendio muchas

100hanegas de tierra de sembradura para comprar libros de caballerıas en

101que leer , y ası , llevo a su casa todos cuantos pudo haber dellos; y de

102todos , ningunos le parecıan tan bien como los que compuso el famoso

103Feliciano de Silva , porque la claridad de su prosa y aquellas

104entricadas razones suyas le parecıan de perlas , y mas cuando llegaba a

105leer aquellos requiebros y cartas de desafıos , donde en muchas partes

106hallaba escrito: La razon de la sinrazon que a mi razon se hace , de

107tal manera mi razon enflaquece , que con razon me quejo de la vuestra

108fermosura. Y tambien cuando leıa: ... los altos cielos que de vuestra

109divinidad divinamente con las estrellas os fortifican , y os hacen

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 8: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Open Document Format (odt) VI

110merecedora del merecimiento que merece la vuestra grandeza.

111</text:p >

112<text:p text:style -name="Text_20_body">

113Con estas razones perdıa el pobre caballero el juicio , y

114desvelabase por entenderlas y desentra~narles el sentido , que no se lo

115sacara ni las entendiera el mesmo Aristoteles , si resucitara para solo

116ello. No estaba muy bien con las heridas que don Belianıs daba y

117recebıa , porque se imaginaba que , por grandes maestros que le hubiesen

118curado , no dejarıa de tener el rostro y todo el cuerpo lleno de

119cicatrices y se~nales. Pero , con todo , alababa en su autor aquel acabar

120su libro con la promesa de aquella inacabable aventura , y muchas veces

121le vino deseo de tomar la pluma y dalle fin al pie de la letra , como

122allı se promete; y sin duda alguna lo hiciera , y aun saliera con ello ,

123si otros mayores y continuos pensamientos no se lo estorbaran. Tuvo

124muchas veces competencia con el cura de su lugar -que era hombre

125docto , graduado en Siguenza -, sobre cual habıa sido mejor caballero:

126Palmerın de Ingalaterra o Amadıs de Gaula; mas maese Nicolas , barbero

127del mesmo pueblo , decıa que ninguno llegaba al Caballero del Febo , y

128que si alguno se le podıa comparar , era don Galaor , hermano de Amadıs

129de Gaula , porque tenıa muy acomodada condicion para todo; que no era

130caballero melindroso , ni tan lloron como su hermano , y que en lo de la

131valentıa no le iba en zaga.

132</text:p >

133</office:text >

134</office:body >

135</office:document -content >

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 9: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Scalable Vector Graphics (svg) I

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 10: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Scalable Vector Graphics (svg) II

1<?xml version="1.0" encoding="UTF -8" standalone="no"?>

2<!-- Created with Inkscape (http: // www.inkscape.org /) -->

3<svg

4xmlns:dc="http: //purl.org/dc/elements /1.1/"

5xmlns:cc="http: //web.resource.org/cc/"

6xmlns:rdf="http://www.w3.org /1999/02/22 -rdf -syntax -ns#"

7xmlns:svg="http://www.w3.org /2000/ svg"

8xmlns="http://www.w3.org /2000/ svg"

9xmlns:sodipodi="http:// sodipodi.sourceforge.net/DTD/sodipodi -0. dtd"

10xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape"

11width="210mm"

12height="297mm"

13id="svg2"

14sodipodi:version="0.32"

15inkscape:version="0.44.1"

16sodipodi:docbase="/home/luis/docencia/Java06 -07/ transparencias/XML"

17sodipodi:docname="dibujo.svg"

18inkscape:export -filename="/home/luis/docencia/Java06 -07/ transparencias/XML/dibujo.png"

19inkscape:export -xdpi="90"

20inkscape:export -ydpi="90">

21<defs

22id="defs4" />

23<sodipodi:namedview

24id="base"

25pagecolor="#ffffff"

26bordercolor="#666666"

27borderopacity="1.0"

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 11: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Scalable Vector Graphics (svg) III

28inkscape:pageopacity="0.0"

29inkscape:pageshadow="2"

30inkscape:zoom="2.7766144"

31inkscape:cx="344.20917"

32inkscape:cy="791.81311"

33inkscape:document -units="px"

34inkscape:current -layer="layer1"

35inkscape:window -width="1272"

36inkscape:window -height="944"

37inkscape:window -x="0"

38inkscape:window -y="0" />

39<metadata

40id="metadata7">

41<rdf:RDF >

42<cc:Work

43rdf:about="">

44<dc:format >image/svg+xml</dc:format >

45<dc:type

46rdf:resource="http://purl.org/dc/dcmitype/StillImage" />

47</cc:Work >

48</rdf:RDF >

49</metadata >

50<g

51inkscape:label="Capa 1"

52inkscape:groupmode="layer"

53id="layer1">

54<rect

55style="fill:blue;fill -opacity:1;fill -rule:evenodd;stroke:black;stroke -width:1px;stroke -linecap:butt;stroke -linejoin:miter;stroke -opacity:1"

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 12: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Scalable Vector Graphics (svg) IV

56id="rect1871"

57width="220.72549"

58height="252.05428"

59x="185.1246"

60y="213.60532" />

61<path

62style="fill:#c83737;fill -opacity:1;fill -rule:evenodd;stroke:black;stroke -width:1px;stroke -linecap:butt;stroke -linejoin:round;stroke -opacity:1"

63d="M 184.99964 ,213.40085 L 405.96018 ,213.4385 L 297.91558 ,90.454429 L 184.99964 ,213.40085 z "

64id="path3693"

65sodipodi:nodetypes="cccc" />

66<rect

67style="opacity:0 .98000004; fill:yellow;fill -opacity:1;stroke -linejoin:round"

68id="rect4580"

69width="38.231209"

70height="47.789009"

71x="216.84264"

72y="243.53319" />

73<rect

74style="opacity:0 .98000004; fill:yellow;fill -opacity:1;stroke -linejoin:round"

75id="rect4582"

76width="34.647034"

77height="54.360001"

78x="334.52307"

79y="279.37494" />

80<rect

81style="opacity:0 .98000004; fill:yellow;fill -opacity:1;stroke -linejoin:round"

82id="rect4584"

83width="60.930988"

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 13: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Formato Scalable Vector Graphics (svg) V

84height="78.254501"

85x="264.03427"

86y="388.09494" />

87</g>

88</svg>

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 14: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Ventajas e inconvenientes

Pros

Facilidad para el uso automatico.

Facilidad para transformacion de datos.

Cons

Potencia de calculo.

Consumo de memoria.

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 15: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Tratamiento automatico de datos

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 16: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Definicion de documento XML

Fichero xml/resumenValor.dtd

1<?xml version="1.0" encoding="iso -8859 -15" ?>

2<!ELEMENT valor (nombre , dato*)>

3<!ELEMENT dato (# PCDATA)>

4<!ATTLIST dato fecha CDATA #REQUIRED >

Datos:

1<?xml version="1.0" encoding="iso -8859 -15" ?>

2<!DOCTYPE valor SYSTEM "/home/luis/WEB/aplicaciones/hola/xml/resumenValor.dtd">

3<valor ><nombre >Endesa </nombre >

4<dato fecha="01/01/2007" >35 ,8300</dato>

5<dato fecha="02/01/2007" >35 ,5700</dato>

6<dato fecha="03/01/2007" >35 ,4000</dato>

7<dato fecha="04/01/2007" >35 ,5500</dato>

8<dato fecha="05/01/2007" >35 ,3000</dato>

9<dato fecha="08/01/2007" >35 ,2100</dato>

10<dato fecha="09/01/2007" >35 ,4400</dato>

11<dato fecha="10/01/2007" >36 ,4800</dato>

12<dato fecha="11/01/2007" >37 ,1300</dato>

13.................................

14<dato fecha="31/01/2007" >38 ,5700</dato>

15</valor >

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 17: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

XSL a HTML I

Fichero datosValorHTML.xsl

1<?xml version="1.0" encoding="ISO -8859 -15"?>

2<!-- $Id: transparencias .tex ,v 1.3 2007 -05 -21 17 :32:46 luis Exp $ -->

3<xsl:stylesheet

4xmlns:xsl="http://www.w3.org /1999/ XSL/Transform"

5xmlns="http://www.w3.org/TR/html4"

6version="1.0"

7>

89<xsl:output method="html" />

10<xsl:template match="/" >

11<xsl:apply -templates />

12</xsl:template >

13<xsl:template match="valor" >

14<table >

15<tr><th>Fecha </th><th>Precio </th></tr>

16<xsl:for -each select="//dato">

17<tr>

18<xsl:choose >

19<xsl:when test="position () mod 2 = 0">

20<xsl:attribute name="class">par</xsl:attribute >

21</xsl:when >

22<xsl:when test="position () mod 2 = 1">

23<xsl:attribute name="class">impar </xsl:attribute >

24</xsl:when >

25</xsl:choose >

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 18: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

XSL a HTML II

26<td><xsl:value -of select="@fecha"/></td><td><xsl:value -of select="."/></td>

27</tr>

2829</xsl:for -each>

30</table >

31</xsl:template >

32</xsl:stylesheet >

Resultado

1<h1 >Datos de Endesa entre el 01/01/2007 y el fin 31/01/2007 </h1>

2<table xmlns="http :// www.w3.org/TR/html4">

3<tr>

4<th>Fecha </th>

5<th>Precio </th>

6</tr>

7<tr class="impar">

8<td>01/01/2007 </td>

9<td>35 ,8300</td>

10</tr>

11<tr class="par">

12<td>02/01/2007 </td>

1314<td>35 ,5700</td>

15</tr>

16<tr class="impar">

17<td>03/01/2007 </td>

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 19: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

XSL a HTML III

18<td>35 ,4000</td>

19</tr>

20<tr class="par">

21<td>04/01/2007 </td>

22<td>35 ,5500</td>

23</tr>

24<tr class="impar">

25<td>05/01/2007 </td>

26..........................

27<tr class="impar">

28<td>31/01/2007 </td>

2930<td>38 ,5700</td>

31</tr>

32</table >

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 20: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

XSL a LATEX I

Fichero datosValorLaTeX.xsl

1<?xml version="1.0" encoding="ISO -8859 -15"?>

2<!-- $Id: transparencias .tex ,v 1.3 2007 -05 -21 17 :32:46 luis Exp $ -->

3<xsl:stylesheet

4xmlns:xsl="http://www.w3.org /1999/ XSL/Transform"

5xmlns="http://www.w3.org/TR/html4"

6version="1.0"

7>

89<xsl:output method="text" />

10<xsl:param name="valor" />

11<xsl:param name="fechaIni" />

12<xsl:param name="fechaFin" />

13<xsl:template match="/" >

14\def\valor{<xsl:value -of select="$valor"/>}

15\def\fechaIni{<xsl:value -of select="$fechaIni"/>}

16\def\fechaFin{<xsl:value -of select="$fechaFin"/>}

17<xsl:apply -templates />

18</xsl:template >

19<xsl:template match="valor" >

20\section *{<xsl:value -of select="nombre"/>}

21\begin{longtable }{cr}

22Fecha &amp; Precio \\\ hline\endhead

23<xsl:for -each select="//dato">

24<xsl:choose >

25<xsl:when test="position () mod 2 = 0">

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 21: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

XSL a LATEX II

26\filaPar

27</xsl:when >

28<xsl:when test="position () mod 2 = 1">

29\filaImpar

30</xsl:when >

31</xsl:choose >

32<xsl:value -of select="@fecha"/> &amp; <xsl:value -of select="."/>\\

33</xsl:for -each>

34\end{longtable}

35</xsl:template >

36</xsl:stylesheet >

12\def\valor{Endesa}

3\def\fechaIni {01/01/2007}

4\def\fechaFin {31/01/2007}

56\section *{ Endesa}

7\begin{longtable }{cr}

8Fecha & Precio \\\ hline\endhead

910\filaImpar

1101/01/2007 & 35 ,8300\\

1213\filaPar

1402/01/2007 & 35 ,5700\\

15

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 22: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

XSL a LATEX III

16\filaImpar

1703/01/2007 & 35 ,4000\\

1819\filaPar

2004/01/2007 & 35 ,5500\\

2122...................................

23...................................

24\filaImpar

2531/01/2007 & 38 ,5700\\

2627\end{longtable}

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 23: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Generacion de XML

1public class DatosValorXML {

2private String path;

3private int valor;

4private Date fechaIni , fechaFin;

5private Connection con;

6.......

7.......

8public String datos () throws SQLException {

9String nombreValor = null;

10PreparedStatement pstmt =

11con.prepareStatement("select valores.nombre , datos.fecha , datos.precio "+

12"from datos left join valores on valores.id=datos.valor "+

13"where datos.valor =? and datos.fecha >=? and datos.fecha <=?");

14pstmt.setInt(1,valor ); pstmt.setDate(2,fechaIni ); pstmt.setDate(3,fechaFin );

15ResultSet rs = pstmt.executeQuery ();

16StringBuffer datos = new StringBuffer ();

17SimpleDateFormat df = new SimpleDateFormat("dd/MM/yyyy");

18DecimalFormat nf = new DecimalFormat("# ,###.0000");

19while (rs.next ()) {

20if (nombreValor ==null)

21nombreValor = rs.getString("valores.nombre");

22datos.append(Tags.tag(xml_dato ,Tags.attribute(xml_fecha ,df.format(rs.getDate("datos.fecha"))),

23nf.format(rs.getDouble("datos.precio"))));

24}

25return cabecera ()+ Tags.tag(xml_valor ,"",

26Tags.tag(xml_nombre ,"",nombreValor )+

27datos ,true);

28}

29}

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 24: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Transformacion HTML

1public class DatosValor extends HttpServlet {

2................

3................

4protected String muestraDatos(ValorFechas vf ,HttpServletRequest request ,

5HttpServletResponse response ,

6Connection con)

7throws ServletException , SQLException ,

8ParserConfigurationException ,SAXException ,IOException ,

9TransformerConfigurationException ,TransformerException{

10DatosValorXML dv = new DatosValorXML(vf.getValor(),

11new java.sql.Date(vf.getIni (). getTime ()),

12new java.sql.Date(vf.getFin (). getTime ()),

13getServletContext (). getRealPath("."),

14con);

15.....................

16.....................

17String ficheroXSL=getServletContext (). getRealPath("xml/datosValorHTML.xsl");

18TransformerFactory xsltFactory = TransformerFactory.newInstance ();

19Templates xsltTemplate = xsltFactory.newTemplates(new StreamSource(ficheroXSL ));

20Transformer transf = xsltTemplate.newTransformer ();

2122CharArrayWriter datos = new CharArrayWriter ();

23transf.transform(new DOMSource(docDV),new StreamResult (datos ));

2425response.setContentType("text/html");

26return Tags.h(1,"","Datos de "+nombre+" entre el "+ini+" y el fin "+fin)+

27datos.toString ();

28}

29}

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 25: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Transformacion PDF (vıa LATEX) I

1public class DatosValorPDF extends DatosValor {

2...........................

3public String muestraDatos(ValorFechas vf ,

4HttpServletRequest request ,

5HttpServletResponse response ,

6Connection con)

7throws ServletException , IOException , SQLException , ParserConfigurationException ,

8SAXException , IOException , TransformerConfigurationException , TransformerException {

9String directorio = getDirLaTeX ();

10generaContenido(vf ,

11getServletContext (). getRealPath(directorio+"/"+strContenido),

12request ,response ,con);

13int term = compilaLaTeX(directorio ,strFicheroLaTeX );

14response.setContentType("application/pdf");

15ServletOutputStream out = response.getOutputStream ();

16out.println(IncluyeFichero.incluye(getServletContext (). getRealPath(directorio+"/"+strFicheroLaTeX+".pdf")));

17borraDir(directorio );

18return "";

19}

2021private void generaContenido(ValorFechas vf , String fich ,

22HttpServletRequest request ,

23HttpServletResponse response ,

24Connection con)

25throws ServletException , SQLException , ParserConfigurationException ,

26SAXException , IOException , TransformerConfigurationException , TransformerException {

27.............................

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 26: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Transformacion PDF (vıa LATEX) II

28.............................

29String ficheroXSL=getServletContext (). getRealPath("xml/datosValorLaTeX.xsl");

30TransformerFactory xsltFactory = TransformerFactory.newInstance ();

31Templates xsltTemplate = xsltFactory.newTemplates(new StreamSource(ficheroXSL ));

32Transformer transf = xsltTemplate.newTransformer ();

33transf.setParameter("valor",nombre );

34transf.setParameter("fechaIni",ini);

35transf.setParameter("fechaFin",fin);

36transf.transform(new DOMSource(docDV),new StreamResult (fich ));

37}

38}

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 27: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Servicios Web

¿Que ocurre cuando el cliente no es un humano?http://weather.noaa.gov/pub/data/observations/metar/stations/LEMD.TXT

12007/05/22 16:00

2LEMD 221600Z 04003 KT 340 V100 9999 FEW025TCU SCT045 BKN200 23/13 Q1012 NOSIG

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 28: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Servicios Web

¿Que ocurre cuando el cliente no es un humano?http://weather.noaa.gov/pub/data/observations/metar/stations/LEMD.TXT

12007/05/22 16:00

2LEMD 221600Z 04003 KT 340 V100 9999 FEW025TCU SCT045 BKN200 23/13 Q1012 NOSIG

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 29: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Servicios Web

Quiero sumar 2 y 3

1<?xml version="1.0" ?>

2<methodCall >

3<methodName >Calculator.add</methodName >

4<params >

5<param ><value ><int>2</int></value ></param >

6<param ><value ><int>3</int></value ></param >

7</params >

8</methodCall >

El resultado es 5

1<?xml version="1.0" encoding="UTF -8"?>

2<methodResponse xmlns:ex="http: //ws.apache.org/xmlrpc/namespaces/extensions">

3<params >

4<param ><value ><i4>5</i4></value ></param >

5</params >

6</methodResponse >

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web

Page 30: XML: breve introducci´on a los servicios Webantares.sip.ucm.es/luis/Java06-07/XML.pdf · XML: breve introduccion a los servicios Web. Formato Scalable Vector Graphics (svg) I Luis

Servicios Web

Quiero sumar 2 y 3

1<?xml version="1.0" ?>

2<methodCall >

3<methodName >Calculator.add</methodName >

4<params >

5<param ><value ><int>2</int></value ></param >

6<param ><value ><int>3</int></value ></param >

7</params >

8</methodCall >

El resultado es 5

1<?xml version="1.0" encoding="UTF -8"?>

2<methodResponse xmlns:ex="http: //ws.apache.org/xmlrpc/namespaces/extensions">

3<params >

4<param ><value ><i4>5</i4></value ></param >

5</params >

6</methodResponse >

Luis Fernando Llana Dıaz Departamento de Sistemas Informaticos y ComputacionUniversidad Complutense de Madrid

XML: breve introduccion a los servicios Web