SlideShare uma empresa Scribd logo
1 de 21
XML & XSLT
     Per gestire siti statici
        multilanguage
(quando non si può avere un sito dinamico…)




                    Chiara Bettaglio
PRIMA
                                DESIGN
                                Produzione




          CONTENUTI


                CORREZIONI




                                    REVIEW


PUBLISH
ORA
               CONTENUTI E
               CORREZIONE

DESIGN




                PUBLISH
I miei files!




                 Un file Excel   Uno script DOS


Una cartella con
Fogli di stile XSL e database
Dei contenuti XML
I miei files!


            I fogli di stile XSLT

 Un motore per                I miei contenuti
processare l’XSLT                  in XML




                                        Un file per
                                       le istruzioni
XML   Mini database di informazioni




               XSLT Foglio di stile per XML
XSLT processor
• Xalan/Xerces (Java, open source)
• Saxon (Java, open source)                  <XSLT
                                             <XSLT
• Altova XSLT Engine (C++, gratis)             >
                                               >
• MS XML (C++, gratis)
                                     <XML>
                                     <XML>



                                                <HTML>
                                                <HTML>
                                XALAN
xHTML
•   I tag devono essere sempre chiusi
•   Nomi degli attributi in minuscolo
•   Valori degli attributi tra virgolette
•   Minimizzare gli attributi è proibito
•   Si usa l’ID invece che l’attributo name
•   Il DTD XHTML definisce alcuni elementi obbligatori

                     <td WIDTH=100% nowrap><br>
                      <td width="100%" nowrap=“nowrap">
                      <br/>
                      <image src=“img.gif“ alt=“ola!“/>
Individuo il mio contenuto   anche quello nascosto!!

             Testi


            links

                     Path immagini!

           Valuta!
Creo un master XML con il mio contenuto
<?xml version="1.0" encoding="utf-8"?>
<page>
    <store></store>
    <campaignID></campaignID>
                                          Parametri come valuta,
    <spare1></spare1>
    <spare2></spare2>
                                          Nome campagna e




                                          }
    <title></title>
<container>                               il mercato di vendita
    <box>
           <image1></image1>
           <image2></image2>
           <linkText></linkText>
           <linkTextURL></linkTextURL>
           <text></text>

   </box>
                                              Elementi ricorrenti
   <box>
            <image1></image1>
            <image2></image2>
            <linkText></linkText>
            <linkTextURL></linkTextURL>
            <text></text>
    </box>
</container>
                                          Eventuali testi, immagini,
</page>
                                           valori per attributi css
Da XML a Excel

                 Creo un file come
                 fosse una
                 maschera di
                 inserimento dati
                 per gli elementi
                 che ho individuato
                 in XML
                 Comprende
                 etichette e valori
                 in inglese che i
                 vari mercati
                 dovranno tradurre
                 localmente
Mappo l’XML in Excel
Tasto export + macro
Private Sub Pulsante_Clic()

ActiveWorkbook.XmlMaps("page_mapping").Export URL:=
ThisWorkbook.Path & "bintemplate.xml", Overwrite:=True

End Sub
xHTML to XSL

<table width="100%" cellpadding="0" cellspacing="0">
<tr><td class="header"> <xsl:value-of select="page/homePage/LEDSlamp"/>
   </td></tr>
<tr><td class="content" style="padding:6px;">
 <img src="/{$store}/img/site/campaigns/{$cp}/
   {page/homePage/LEDSlampImg}" align="right"/>
<xsl:value-of select="page/homePage/LEDSlampTxt" disable-output-
   escaping="yes"/><br/>
<a href="{page/homePage/LEDSlampLink}">
<strong><xsl:value-of
   select="page/homePage/LEDSlampLinkTXT"/></strong></a>
   </td></tr></table>
xHTML to XSL
 <xsl:for-each
  select="page/homePage/featuredProds/box">
…………………………………….
</xsl:for-each>

<xsl:if test="CurrencyPosition = 'after'">
&nbsp;<xsl:value-of select="$currency" disable-output-
  escaping="no"/>
</xsl:if>
Anche file di testo semplici!
title= <xsl:value-of select="page/homePage/campaignTitle" />&cr;
description= <xsl:value-of select="page/homePage/blurb" /> &cr;
keywords= <xsl:for-each select="page/seo/keywords">
    <xsl:value-of select="linkText"/>,
</xsl:for-each>&cr;
header=Y &cr;
footer=Y &cr;
                   file:stylesheet=style.css &cr;
Il batch…
<?xml version="1.0" encoding="utf-8"?>
<!DOCTYPE xsl:stylesheet [
    <!ENTITY nbsp "&#160;">
    <!ENTITY copy "&#169;">
    <!ENTITY reg "&#174;">
    <!ENTITY trade "&#8482;">
    <!ENTITY mdash "&#8212;">
    <!ENTITY ldquo "&#8220;">
    <!ENTITY rdquo "&#8221;">
    <!ENTITY pound "&#163;">
    <!ENTITY yen "&#165;">
    <!ENTITY cr "<xsl:text>
</xsl:text>">
]>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
<xsl:output method="text" encoding="utf-8"/>
<xsl:template match="/">

………………………………………………………………………………………………………………………………………………………….

</xsl:template>
</xsl:stylesheet>
…con le istruzioni
• java -classpath binxalan.jar;binserialiser.jar
  org.apache.xalan.xslt.Process -IN bintemplate.xml -XSL
  binhome.xsl -OUT home.html &cr;

• java -classpath binxalan.jar;binserialiser.jar
  org.apache.xalan.xslt.Process -IN bintemplate.xml -XSL
  bincp.xsl -OUT campaign.txt &cr;

• java -classpath binxalan.jar;binserialiser.jar
  org.apache.xalan.xslt.Process -IN bintemplate.xml -XSL
  bintext.xsl -OUT load.bat&cr;
Non solo html… ad esempio… il load!
&#62;&#62;script.ftp ECHO USERNAME &cr;
&#62;&#62;script.ftp ECHO PASSWORD &cr;
&#62;&#62;script.ftp ECHO ascii &cr;
&#62;&#62;script.ftp ECHO CD BASE PATH DI CARICAMENTO &cr;
&#62;&#62;script.ftp ECHO mkdir <xsl:value-of select="page/campaignName"/> &cr;
&#62;&#62;script.ftp ECHO CD BASE PATH DI CARICAMENTO&#47;<xsl:value-of
   select="page/campaignName"/>&#47;&cr;

FOR &#37;&#37;f in (&#42;.html, &#42;.txt, &#42;.css)
do &#62;&#62;script.ftp ECHO put &#37;&#37;f&cr;
&#62;&#62;script.ftp ECHO bye&cr;

FTP -v -s:script.ftp INDIRIZZO FTP SERVER &cr;

DEL script.ftp&cr;
REM DEL &#42;.html &cr;
REM DEL &#42;.txt &cr;
GOTO End &cr;
:End &cr;

start iexplore http://MIOSITO.COM
Il Clickme.bat
java -classpath binxalan.jar;binserialiser.jar
   org.apache.xalan.xslt.Process -IN bintemplate.xml -XSL
   binbatch.xsl -OUT doAll.bat

call doAll.bat
call load.bat

del doAll.bat
del load.bat

del *.html
del *.txt
Distribuzione alle opco
Inserimento
 Contenuti
 localizzati




               Preview / Correzione in Excel
                    Rerun del Template

Mais conteúdo relacionado

Semelhante a XML &amp; XSLT

jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerMatteo Magni
 
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerMatteo Magni
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009Massimiliano Dessì
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meetingguest67beeb9
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M Lguestbe916c
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)Alessandro Giorgetti
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerMatteo Magni
 
Primo approccio al design adattivo
Primo approccio al design adattivoPrimo approccio al design adattivo
Primo approccio al design adattivoSalvatore Paone
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS DevicesAndrea Picchi
 
Sviluppo web con Ruby on Rails
Sviluppo web con Ruby on RailsSviluppo web con Ruby on Rails
Sviluppo web con Ruby on Railsjekil
 
Web base-02-css
Web base-02-cssWeb base-02-css
Web base-02-cssStudiabo
 
Corso HTML per l'editoria
Corso HTML per l'editoriaCorso HTML per l'editoria
Corso HTML per l'editoriaDiego La Monica
 
Html e CSS ipertesti e siti web 4.5
Html e CSS   ipertesti e siti web 4.5Html e CSS   ipertesti e siti web 4.5
Html e CSS ipertesti e siti web 4.5orestJump
 
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...Codemotion
 
Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webMassimo Bonanni
 

Semelhante a XML &amp; XSLT (20)

jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
 
jQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesignerjQuery - 1 | WebMaster & WebDesigner
jQuery - 1 | WebMaster & WebDesigner
 
MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009MongoDB Scala Roma SpringFramework Meeting2009
MongoDB Scala Roma SpringFramework Meeting2009
 
MongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework MeetingMongoDb and Scala SpringFramework Meeting
MongoDb and Scala SpringFramework Meeting
 
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
Laboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M LLaboratorio Di  Basi Di  Dati 12  P H P   Gestione Di File  X M L
Laboratorio Di Basi Di Dati 12 P H P Gestione Di File X M L
 
HTML e CSS
HTML e CSSHTML e CSS
HTML e CSS
 
DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)DNM19 Sessione2 Orchard Temi e Layout (Ita)
DNM19 Sessione2 Orchard Temi e Layout (Ita)
 
Html e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesignerHtml e Css - 3 | WebMaster & WebDesigner
Html e Css - 3 | WebMaster & WebDesigner
 
Xaml su Xamarin
Xaml su XamarinXaml su Xamarin
Xaml su Xamarin
 
JavaScript
JavaScriptJavaScript
JavaScript
 
Primo approccio al design adattivo
Primo approccio al design adattivoPrimo approccio al design adattivo
Primo approccio al design adattivo
 
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
Corso WebApp iOS - Lezione 06:   Web Development for iOS DevicesCorso WebApp iOS - Lezione 06:   Web Development for iOS Devices
Corso WebApp iOS - Lezione 06: Web Development for iOS Devices
 
Sviluppo web con Ruby on Rails
Sviluppo web con Ruby on RailsSviluppo web con Ruby on Rails
Sviluppo web con Ruby on Rails
 
Xml Xslt
Xml  XsltXml  Xslt
Xml Xslt
 
Web base-02-css
Web base-02-cssWeb base-02-css
Web base-02-css
 
Corso HTML per l'editoria
Corso HTML per l'editoriaCorso HTML per l'editoria
Corso HTML per l'editoria
 
Html e CSS ipertesti e siti web 4.5
Html e CSS   ipertesti e siti web 4.5Html e CSS   ipertesti e siti web 4.5
Html e CSS ipertesti e siti web 4.5
 
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
Xamarin.Forms Performance Tips & Tricks - Francesco Bonacci - Codemotion Rome...
 
HTML5
HTML5HTML5
HTML5
 
Html5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo webHtml5 e css3 nuovi strumenti per un nuovo web
Html5 e css3 nuovi strumenti per un nuovo web
 

XML &amp; XSLT

  • 1. XML & XSLT Per gestire siti statici multilanguage (quando non si può avere un sito dinamico…) Chiara Bettaglio
  • 2. PRIMA DESIGN Produzione CONTENUTI CORREZIONI REVIEW PUBLISH
  • 3. ORA CONTENUTI E CORREZIONE DESIGN PUBLISH
  • 4. I miei files! Un file Excel Uno script DOS Una cartella con Fogli di stile XSL e database Dei contenuti XML
  • 5. I miei files! I fogli di stile XSLT Un motore per I miei contenuti processare l’XSLT in XML Un file per le istruzioni
  • 6. XML Mini database di informazioni XSLT Foglio di stile per XML
  • 7. XSLT processor • Xalan/Xerces (Java, open source) • Saxon (Java, open source) <XSLT <XSLT • Altova XSLT Engine (C++, gratis) > > • MS XML (C++, gratis) <XML> <XML> <HTML> <HTML> XALAN
  • 8. xHTML • I tag devono essere sempre chiusi • Nomi degli attributi in minuscolo • Valori degli attributi tra virgolette • Minimizzare gli attributi è proibito • Si usa l’ID invece che l’attributo name • Il DTD XHTML definisce alcuni elementi obbligatori <td WIDTH=100% nowrap><br> <td width="100%" nowrap=“nowrap"> <br/> <image src=“img.gif“ alt=“ola!“/>
  • 9. Individuo il mio contenuto anche quello nascosto!! Testi links Path immagini! Valuta!
  • 10. Creo un master XML con il mio contenuto <?xml version="1.0" encoding="utf-8"?> <page> <store></store> <campaignID></campaignID> Parametri come valuta, <spare1></spare1> <spare2></spare2> Nome campagna e } <title></title> <container> il mercato di vendita <box> <image1></image1> <image2></image2> <linkText></linkText> <linkTextURL></linkTextURL> <text></text> </box> Elementi ricorrenti <box> <image1></image1> <image2></image2> <linkText></linkText> <linkTextURL></linkTextURL> <text></text> </box> </container> Eventuali testi, immagini, </page> valori per attributi css
  • 11. Da XML a Excel Creo un file come fosse una maschera di inserimento dati per gli elementi che ho individuato in XML Comprende etichette e valori in inglese che i vari mercati dovranno tradurre localmente
  • 13. Tasto export + macro Private Sub Pulsante_Clic() ActiveWorkbook.XmlMaps("page_mapping").Export URL:= ThisWorkbook.Path & "bintemplate.xml", Overwrite:=True End Sub
  • 14. xHTML to XSL <table width="100%" cellpadding="0" cellspacing="0"> <tr><td class="header"> <xsl:value-of select="page/homePage/LEDSlamp"/> </td></tr> <tr><td class="content" style="padding:6px;"> <img src="/{$store}/img/site/campaigns/{$cp}/ {page/homePage/LEDSlampImg}" align="right"/> <xsl:value-of select="page/homePage/LEDSlampTxt" disable-output- escaping="yes"/><br/> <a href="{page/homePage/LEDSlampLink}"> <strong><xsl:value-of select="page/homePage/LEDSlampLinkTXT"/></strong></a> </td></tr></table>
  • 15. xHTML to XSL <xsl:for-each select="page/homePage/featuredProds/box"> ……………………………………. </xsl:for-each> <xsl:if test="CurrencyPosition = 'after'"> &nbsp;<xsl:value-of select="$currency" disable-output- escaping="no"/> </xsl:if>
  • 16. Anche file di testo semplici! title= <xsl:value-of select="page/homePage/campaignTitle" />&cr; description= <xsl:value-of select="page/homePage/blurb" /> &cr; keywords= <xsl:for-each select="page/seo/keywords"> <xsl:value-of select="linkText"/>, </xsl:for-each>&cr; header=Y &cr; footer=Y &cr; file:stylesheet=style.css &cr;
  • 17. Il batch… <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE xsl:stylesheet [ <!ENTITY nbsp "&#160;"> <!ENTITY copy "&#169;"> <!ENTITY reg "&#174;"> <!ENTITY trade "&#8482;"> <!ENTITY mdash "&#8212;"> <!ENTITY ldquo "&#8220;"> <!ENTITY rdquo "&#8221;"> <!ENTITY pound "&#163;"> <!ENTITY yen "&#165;"> <!ENTITY cr "<xsl:text> </xsl:text>"> ]> <xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/Transform"> <xsl:output method="text" encoding="utf-8"/> <xsl:template match="/"> …………………………………………………………………………………………………………………………………………………………. </xsl:template> </xsl:stylesheet>
  • 18. …con le istruzioni • java -classpath binxalan.jar;binserialiser.jar org.apache.xalan.xslt.Process -IN bintemplate.xml -XSL binhome.xsl -OUT home.html &cr; • java -classpath binxalan.jar;binserialiser.jar org.apache.xalan.xslt.Process -IN bintemplate.xml -XSL bincp.xsl -OUT campaign.txt &cr; • java -classpath binxalan.jar;binserialiser.jar org.apache.xalan.xslt.Process -IN bintemplate.xml -XSL bintext.xsl -OUT load.bat&cr;
  • 19. Non solo html… ad esempio… il load! &#62;&#62;script.ftp ECHO USERNAME &cr; &#62;&#62;script.ftp ECHO PASSWORD &cr; &#62;&#62;script.ftp ECHO ascii &cr; &#62;&#62;script.ftp ECHO CD BASE PATH DI CARICAMENTO &cr; &#62;&#62;script.ftp ECHO mkdir <xsl:value-of select="page/campaignName"/> &cr; &#62;&#62;script.ftp ECHO CD BASE PATH DI CARICAMENTO&#47;<xsl:value-of select="page/campaignName"/>&#47;&cr; FOR &#37;&#37;f in (&#42;.html, &#42;.txt, &#42;.css) do &#62;&#62;script.ftp ECHO put &#37;&#37;f&cr; &#62;&#62;script.ftp ECHO bye&cr; FTP -v -s:script.ftp INDIRIZZO FTP SERVER &cr; DEL script.ftp&cr; REM DEL &#42;.html &cr; REM DEL &#42;.txt &cr; GOTO End &cr; :End &cr; start iexplore http://MIOSITO.COM
  • 20. Il Clickme.bat java -classpath binxalan.jar;binserialiser.jar org.apache.xalan.xslt.Process -IN bintemplate.xml -XSL binbatch.xsl -OUT doAll.bat call doAll.bat call load.bat del doAll.bat del load.bat del *.html del *.txt
  • 21. Distribuzione alle opco Inserimento Contenuti localizzati Preview / Correzione in Excel Rerun del Template