cheap nfl jerseys china cheap nfl jerseys free shipping wholesale nfl jerseys china wholesale jerseys from china cheap nfl jerseys free shipping cheap nfl jerseys for sale cheap jerseys free shipping wholesale nfl jerseys from china cheap nfl jerseys sale cheap nike nfl jerseys china wholesale jerseys free shipping cheap nfl jerseys wholesale wholesale nfl jerseys online cheap nfl jerseys wholesale china jerseys wholesale cheap coach handbags outlet authentic designer handbags cheap coach handbags outlet cheap coach purses outlet discount coach bags coach bags sale coach purse outlet cheap real coach purses coach handbags sale online coach purse outlet michael kors outlet online store cheap michael kors bags cheap michael kors purse michael kors factory outlet online cheap michael kors handbags cheap michael kors purses michael kors bags outlet online cheap michael kors purse michael kors handbags discount
XML
XML
eXtensible Markup Language
eXtensible Markup Language
sistema per lo scambio di dati tra sistemi informativi

XSL
eXtensible Stylesheet Language

Un file XML non ha tag predefiniti, quindi si possono usare i fogli di stile, ma occorre definire tutti gli elementi, altrimenti il documento XML viene visualizzato come un'unica stringa.
Ma i fogli di stile hanno forti limitazioni con XML: non visualizzano il valore degli attributi, non consentono di inserire testo, nè di selezionare parti del testo.

Si utilizza pertanto XSL, che utilizza tre linguaggi per eseguire tre compiti fondamentali:
  1. XPath individua gli elementi e i loro attributi
  2. XSLT trasforma i dati
  3. XSL-FO formatta gli oggetti: ora formalmente denominato XSL
Questo conferisce estrema potenza e versatilità per esempio potremmo utilizzare un altro linguaggio per indivduare gli elementi, o produrre direttamente codice XHTML invece di usare XSL-FO, senza cambiare le altre parti.

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="stile.xslt" ?>

il tutorial W3Schools


XPath

È una sintassi per creare espressioni (pattern) che individuano i nodi di un albero XML. Assomiglia al path del File System. Gli attributi si estraggono con @.
Ecco alcuni esempi:
/articolo/paragrafo/@titolo
/articolo/paragrafo[position()=2]
/articolo/paragrafo[position()=last()]

Esistono i concetti di nodo corrente (.) e nodo padre (..) e sono stati introdotti i concetti di 'tutti i discendenti' (//) e 'tutti i sottoelementi' (*).
/articolo//immagineindividua tutti gli elementi contenuti in qualsiasi livello.

Esistono numerose funzioni: count(), concat(,,,), substring(), string-length(), starts-with(), end-width(), number(), round(), floor(), ceiling() (
W3Schools)


XSLT

Ha il compito di trasformare un documento XML in un altro documento di uguale o altra struttura (XML, XHTML, WML, RTF o in semplici formati testuali). Le informazioni sulla trasformazione vanno messe in un foglio di stile XSLT:

<?xml version="1.0"?>
<xsl:stylesheet version="1.0" xmlns:xsl="http://www.w3.org/1999/XSL/transorm">
...
</xsl:stylesheet>

All'interno si utilizza
XPath per individuare gli elementi da tasformare e si creano dei template per indicare la trasformazione. Ecco come si visualizza il titolo del secondo capitolo:

<xsl:template match="/libro/capitolo[position()=2]">
    <xsl:value-of select="@titolo"/>
</xsl:template>

Per essere sicuri che il processo proceda anche nei sottoelementi, occorre inserire:
<xsl:apply-templates/>

Ed ecco come si può aggiungere testo e condizionarlo:
<xsl:template match="capitolo"> <h3>
    <xsl:if test="@tipo='bibliografia'">
        Bibliografia
    </xsl:if>
    <xsl:value-of select="@titolo"/> </h3>
<xsl:apply-templates/>
</xsl:template>

Per le scelte multiple abbiamo le istruzioni:
<xsl:choose> <xsl:when>, <xsl:otherwise> oppure <xsl:for-each>

Ed ecco come si costruisce un tag XHTML, per esempio img:
<xsl:template match="immagine">
    <xsl:element name="img">
        <xsl:attribute name="src">
            <xsl:value-of select="@file"/>
        </xsl:attribute>
    </xsl:element>
</xsl:template>

il tutorial W3Schools


XSL-FO

  • XSL-FO è un linguaggio per formattare dati XML
  • XSL-FO sta per Extensible Stylesheet Language Formatting Objects
  • XSL-FO è una raccomandazione W3C
  • XSL-FO è ora chiamato formalmente XSL
  • il tutorial W3Schools