of 19
7/25/2019 Creative XML (1)
1/19
XML CREATIVOLVARO SALIDO FERNNDEZ
7/25/2019 Creative XML (1)
2/19
Qu era eso del XML?
Metale!ua"e Le!ua"e de #ar$as % ta!s
Estru$tura & ta!s' atr()utos
Datos o XML & Et(t*
For#ato o XML& Notat(o
dar For#ato a XML&
Tras+or#a$(oes de XML a ,TML & XSL
XSL&
es-e$(.$a$(/ 01C -ara a-l($ar +or#ato a XML
#etale!ua
le!ua"es
de.e
re!las
7/25/2019 Creative XML (1)
3/19
O)"etos * XML
O)"eto es u es-$(#e de ua $lase2 Clase es u $o"uto de atr()utos * #todos -ro-(os !eerales2
O)"eto t(ee al!uos atr()utos * #todos de su $lase2
XML -er#(te For#atear o)"etos2
7/25/2019 Creative XML (1)
4/19
Tras+or#a$(oes XSL
X-at3 Rutas de d(re$tor(os X4uer* M*SQL
XSL5FO CSS
67 Crear ua hoja de estilos XSL 8-lat(llas9
:7 Crear plantillaXSL & ua -or $ada +ra!#eto a +or#atear
Mat$3 ;odo a -art(r del $ual se a-l($a la tras+or#a$(/#l@2J@dtd@do$)oo2dtd
ArtK$ulos d((d(dos e se$$(oes2
L()ros d((d(dos e $a-Ktulos2
DTD * es4ue#a2 EXTENSIN ;2>#lto$a--ed(>a$oled!e#ets$olo-3o9' 888(te#(Gedl(storderedl(st-ro$edures(#-lel(star(a)lel(stse!#etedl(st!loss)()l(ol(st$alloutl(st4adasete>a#-le.!ureta)lee4uat(o(+or#ale>a#-le(+or#al.!ure(+or#alta)le(+or#ale4uat(os(de)ar)lo$4uoteaddresse-(!ra-3#ed(ao)"e$ts$rees3ottas-rodu$t(oset$ostra(td#s!sets$reel(teralla*out-ro!ra#l(st(!$os$ree$o-ro!ra#l(st(!s*o-s(s)r(d!e3eadre#arre3(stor*(de>ter#+u$s*o-s(s$lasss*o-s(s#et3ods*o-s(s$ostru$tors*o-s(sdestru$tors*o-s(s.elds*o-s(s$#ds*o-s(s$aut(o(#-ortatotet(-ar(!a$3or-ara+or#al-aras(#-araaotat(o9' 8888se$t(o98s(#-lese$t998s(#-lese$t988se$t69' 8s(#-lese$t998re+etr*999?988se$t(o9' 8s(#-lese$t998s(#-lese$t988se$t69' 8s(#-lese$t998re+etr*99' 8!lossar*)()l(o!ra-3*(de>to$a--ed(>a$oled!e#ets$olo-3o
PELEMENT t(tle 8B=CDATA(l(e#ed(ao)"e$tre#arsu-ers$r(-tsu)s$r(-t>re+l(ol(a$3or)()l(ore+altaotat(o(de>ter#a))rea$ro*#datee#-3as(s+ootote+oototere++ore(!-3rase-3rase4uoteordasord.rstter#!losster#$ore+trade#ar-rodu$tu#)er-rodu$ta#edata)asea--l($at(o3ardare$(tat(o$(tere+etr*$(tet(tle$(te)()l(o(daut3or-erso-ersoa#eor!or!a#eed(tor"o)t(tlere-la$ea)le-a$a!e-ara#eterter#de+oter#(als*ste#(te#o-t(oo-t(oal-ro-ert*(l(ee4uat(ota!#aru-toes*#)oll(teral$ode$ostate#a(lur(!u(($o!u()utto!u(#eu(te#!u(#eu!u(su)#eu!u(la)el#eu$3#ouse)uttoe*$o#)oe*$a-e*$odee*s*#s3ort$uta$$el-ro#-tear.lea#e$o##ad$o#-uterouser(-ut+u$t(oara#ereturaluet*-e$lassa#ee>$e-t(oa#e(ter+a$ea#e#et3oda#e#od(.e((t(al(Geroo$lassooe>$e-t(ooo(ter+a$eerror$odeerrorte>terrora#eerrort*-e9
PELEMENTse$t(o 888t(tlet(tlea))resu)t(tle9' 8(+o9?9' 888(te#(Gedl(storderedl(st-ro$edures(#-lel(star(a)se!#etedl(st!lossl(st)()l(ol(st$alloutl(st4adasete>a#-le.!ureta)lee4uat(o(+or#ale>a#-le(+or#al.(+or#alta)le(+or#ale4uat(os(de)ar)lo$4uoteaddresse-(!ra-3#ed(ao)"e$ts$rees3ottas-rodu$t(o$ostra(tde+#s!sets$reel(teralla*out-ro!ra#l(st(!$os$ree$o-ro!ra#l(st(!s*o-s(s)r(d!e3eadre#are3(stor*(de>ter#+u$s*o-s(s$lasss*o-s(s#et3ods*o-s(s$ostru$tors*o-s(sdestru$tors*o-s(s.elds*o-s(s$#ds*o-s(s$aut(o(#-ortatotet(-ar(!a$3or-ara+or#al-aras(#-araaotat(o98888se$t(o9' 8s(#-lese$t998s(#-lese$t98re+etr*999?988se$t(o9' 8s(#-lese$t998s(#-lese$t98re+etr*98!lossar*)()l(o!ra-3*(de>to$99
7/25/2019 Creative XML (1)
8/19
Coert(r XML e =DF ut(l(GadoDo$ Hoo' XSL5FO* FO=
XSL5FO& le!ua"e de o)"etos de +or#ateo XSL -ara !eerardo$u#etos e +or#ato =DF a -art(r de uestros do$u#etosXML2 Las $ara$terKst($as de la -U!(a2
Los -Urra+os2
Las l(stas2
Las ta)las2
Los ela$es2
et$2
EXTENSIN ;2+o< o detro de ua -lat(lla de XSL
7/25/2019 Creative XML (1)
9/19
XSL5FO=U!(as * Re!(oes
7/25/2019 Creative XML (1)
10/19
XSL5FO Hlo4ues de $ote(doOut-utHlo$s o+ $otet Flo (to =a!es o+ t3e out-ut #ed(a2
XSL5FO out-ut (s or#all* ested (s(de +o&)lo$ele#ets' ested (s(de +o&Woele#ets' ested (s(de +o&-a!e5se4ue$e ele#ets&+o&-a!e5se4ue$e +o&Wo Wo5a#e%>sl5re!(o5)od* +o&)lo$ P55 Out-ut !oes 3ere 55 @+o&)lo$
@+o&Wo@+o&-a!e5se4ue$e
Hlo$ Area Attr()utes
Hlo$s are se4ue$es o+ out-ut ( re$ta!ular )o>es&+o&)lo$ )order5(dt3%6## T3(s )lo$ o+ out-ut (ll 3ae a oe #(ll(#eter )order aroud (t2@+o&)lo$
3tt-&@@21s$3ools2$o#@>sl+o@>
7/25/2019 Creative XML (1)
11/19
Coert(r XML e =DF ut(l(GadoDo$ Hoo' XSL5FO * FO=
FO=& El FO= 8For#att(! O)"e$t to =DF9 es el -r(#er -ro$esadorde o)"etos de +or#ateo XSL 4ue a-are$(/2 E#-eG/ a serdesarrollada e sol(tar(o -or a#es Tau)er -ero -oster(or#ete s($or-oro al A-a$3e XML =ro"e$t lo 4ue estU a$elerado sudesarrollo2
ers(/& Fo-5J26265DEV5sr$2G(- 4ue se -uede o)teer e la
s(!u(ete d(re$$(/& 3tt-&@@>#l2a-a$3e2or!@d(st@+o-@2 =rerre4u(s(tos
Co#o *a 3e#os d($3o es ua a-l($a$(/ e aa -or lo 4ue -ara-oder ut(l(Garla el Y($o re4u(s(to e$esar(o es teer (stalado la#U4u(a (rtual aa2
http://xml.apache.org/dist/fop/http://xml.apache.org/dist/fop/http://xml.apache.org/dist/fop/http://xml.apache.org/dist/fop/7/25/2019 Creative XML (1)
12/19
Coert(r XML e =DF ut(l(GadoDo$ Hoo' XSL5FO * FO=
A -art(r de a4uK tee#os dos -os()(l(dades& eerar el =DF e dos -asos&
Tras+or#ar el .$3ero !astroo2>#l el +or#ato XSL5FO #ed(ate laXSLT ater(or * $ual4u(er -ro$esador XSLT2 S( -or e"e#-lo ut(l(Ga#osel XT
>t art($ulo2>#l art($ulo2>sl art($ulo2+o
Tras+or#ar el resultado a =DF ut(l(Gado el FO= $o#o *a sa)e#os&
Fo- art($ulo2+o art($ulo-d+2-d+
O !eerarlo e u Y($o -aso ut(l(Gado el FO= de la s(!u(ete#aera&
Fo- 5>sl art($ulo2>sl 5>#l art($ulo2>#l 5-d+ art($ulo-d+2-d+
7/25/2019 Creative XML (1)
13/19
sado FO= de A-a$3e -arareal(Gar tras+or#a$(oes
D&6ASIRXML+o-56265sr$+o-5626sr$"aaor!a-a$3e+o-toolsattass
7/25/2019 Creative XML (1)
14/19
sado FO= de A-a$3e -arareal(Gar tras+or#a$(oes
3tt-&@@2ut(l(t(es5ol(e2(+o@+o-reder@B2dC
luSo
http://www.utilities-online.info/foprender/#.U5dvCvl_uSohttp://www.utilities-online.info/foprender/#.U5dvCvl_uSohttp://www.utilities-online.info/foprender/#.U5dvCvl_uSohttp://www.utilities-online.info/foprender/#.U5dvCvl_uSo7/25/2019 Creative XML (1)
15/19
Resultado
7/25/2019 Creative XML (1)
16/19
=ro$eso
=rere4u(s(tos
Co#o *a 3e#os d($3o es ua a-l($a$(/ e aa -or lo 4ue -ara -oder Y($o re4u(s(to e$esar(o es teer (stalado la #U4u(a (rtual aa2)asta $o el aa 6262> o su-er(or2$o#o #K(#o la ers(/ 6262: del D[' *a 4ue -ara las ers(oes 6262> e"e#-los 4ue da -ro)le#as2
Istala$(/
des$o#-r(#(r el .$3ero$rea ua !ra $at(dad de d(re$tor(os $o todo lo e$esar(o -ara e#-eer su +u$(oa#(eto& e"e#-los' do$u#eta$(/' .$3eros )at' et$2
ANEXO
7/25/2019 Creative XML (1)
17/19
=ro$esoFu$(oa#(eto
=ara -ro)ar 4ue todo os +u$(oa $orre$ta#ete -ode#os real(Gar los
Detro de la $ar-eta ra(G del FO=' #ed(ate el (tr-rete de $o#ade el ar$3(o +o-
S( todo el -ro$eso ater(or 3a +u$(oado $orre$ta#ete s(!(.$ara 4utodo -er+e$ta#ete (stalado -ara tra)a"ar $o el FO=2
\ -ara $oert(r uestro do$u#eto 3ola2+o' lo $olo$a#os e el d(re$toa-l($a$(/ * e"e$uta#os el .$3ero Fo-2)at de la s(!u(ete #aera&
Fo- 3ola2+o 3ola2-d+
Lo $ual os !eera el s(!u(ete .$3ero =DF&,ola2+o e +or#ato =DF
ANEXO
7/25/2019 Creative XML (1)
18/19
=ro$eso=ero $o la ater(or e>-res(/ s/lo 3e#os e"e$utado la o-$(/ #Us se$(lla 4ue os o+re$e la a-l($a$(ut(l(Gar el FO= d(re$ta#ete $o#o )roser de .$3eros XSL5FO2 No tedrKa#os #Us 4ue e"e$utar el $os(!u(ete #aera&
Fo- 3ola2+o 5at
O)te(edo el s(!u(ete resultado&,ola2+o (sual(Gado e )roser del FO=2
Ta#)( -odrKa#os $oert(r al +or#ato MIF' TXT' et$2
=ara ter#(ar esta se$$(/ s(#-le#ete u $o#etar(o2 Es (#-ortate 4ue os ."(s 4ue el do$u#eto!eerado d(re$ta#ete desde el .$3ero 3ola2+o2 =ara el e"e#-lo lo 3e es$r(to d(re$ta#ete a #ao2 =ater(or#ete se trata de u .$3ero XML 4ue -odrKa#os 3a)er !eerado desde otro .$3ero XML #edde$(r' la $oers(/ de uestro XML or(!(al a =DF 3u)(ese $ostado de dos -artes&
Coers(/ XML or(!(al a XSL5FO #ed(ate XSLT * u -ro$esador XSLT2 Coers(/ de XSL5FO a =DF #ed(ate el -ro$esador FO=2
El FO= os -er#(te ta#)( real(Gar esta a$$(/ e u Y($o -aso 8el FO= llea ($or-orado el -ro$essu-oe#os 4ue uestro do$u#eto (($(al se lla#a 3ola2>#l' #ed(ate la s(!u(ete (stru$$(/ lo 3ureal(Gar&
Fo- 5>sl 3ola2>sl 5>#l 3ola2>#l 5-d+ 3ola2-d+
ANEXO
7/25/2019 Creative XML (1)
19/19
Fuetes de (s-(ra$(/
XML & Maual I#-res$(d()le2 ua D(e!o ut(rreG allardo2 Aa*a Mult(#ed(a8:JJ9
3tt-&@@2-ro!ra#a$(o2$o#@art($ulo@$oert(r>#le-d+ut(l(Gado>sl5+o*+o-]1
3tt-&@@do$)oo2or!@
3tt-&@@>#l!ra-3($s2a-a$3e2or!@+o-@doload23t#l
3tt-&@@2ad($tosaltra)a"o2$o#@tutor(ales@tutor(ales2-3-?-a!(a%+o-
3tt-&@@23(-erte>to2(+o@do$u#etos@>sl23t# 3tt-&@@>#l5ut(ls2$o#@$o+ere$(a5>sl23t#l
3tt-&@@$at$ode2$o#@$(s^]*t@>sl+o23t#l
3tt-&@@2+ree+or#atter2$o#@>sl5tras+or#er23t#lB>slt5e>a#-les
3tt-&@@21s$3ools2$o#@>sl+o@>sl+o-a!es2as-
3tt-&@@2ut(l(t(es5ol(e2(+o@+o-reder@B2dCluSo
http://www.programacion.com/articulo/convertir_xml_en_pdf_utilizando_xsl-fo_y_fop_73http://www.programacion.com/articulo/convertir_xml_en_pdf_utilizando_xsl-fo_y_fop_73http://docbook.org/http://xmlgraphics.apache.org/fop/download.htmlhttp://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=fophttp://www.hipertexto.info/documentos/xsl.htmhttp://xml-utils.com/conferencia-xsl.htmlhttp://catcode.com/cis97yt/xslfo.htmlhttp://www.freeformatter.com/xsl-transformer.html#xslt-exampleshttp://www.w3schools.com/xslfo/xslfo_pages.asphttp://www.utilities-online.info/foprender/#.U5dvCvl_uSohttp://www.utilities-online.info/foprender/#.U5dvCvl_uSohttp://www.utilities-online.info/foprender/#.U5dvCvl_uSohttp://www.w3schools.com/xslfo/xslfo_pages.asphttp://www.w3schools.com/xslfo/xslfo_pages.asphttp://www.freeformatter.com/xsl-transformer.html#xslt-exampleshttp://www.freeformatter.com/xsl-transformer.html#xslt-exampleshttp://catcode.com/cis97yt/xslfo.htmlhttp://catcode.com/cis97yt/xslfo.htmlhttp://xml-utils.com/conferencia-xsl.htmlhttp://xml-utils.com/conferencia-xsl.htmlhttp://www.hipertexto.info/documentos/xsl.htmhttp://www.hipertexto.info/documentos/xsl.htmhttp://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=fophttp://www.adictosaltrabajo.com/tutoriales/tutoriales.php?pagina=fophttp://xmlgraphics.apache.org/fop/download.htmlhttp://xmlgraphics.apache.org/fop/download.htmlhttp://docbook.org/http://docbook.org/http://www.programacion.com/articulo/convertir_xml_en_pdf_utilizando_xsl-fo_y_fop_73http://www.programacion.com/articulo/convertir_xml_en_pdf_utilizando_xsl-fo_y_fop_73http://www.programacion.com/articulo/convertir_xml_en_pdf_utilizando_xsl-fo_y_fop_73