eXtensible Stylesheet Language (XSL)

HTML è orientato solo alla presentazione dei documenti

HTML fu creato come un linguaggio di presentazione del documento, che consentisse agli utenti di condividere le informazioni su sistemi differenti. Esso dovrebbe fornire solo delle indicazioni generiche sulla formattazione, che resterebbe compito del browser.

I tag aggiunti nel corso degli anni, specialmente quelli delle estensioni non ufficiali, erano dei veri e propri tag di formattazione. Il W3C si rese conto che l’introduzione di una moltitudine di nuovi tag che rispondessero ad ogni esigenza di formattazione era incoerente con i principi di HTML. Per questo sono stati inseriti in HTML 4.0 i fogli di stile, una tecnica di SGML utilizzata, ovviamente, anche in XML.

È difficile, inoltre, scrivere del codice HTML che mostri gli stessi dati in modi differenti, a seconda delle esigenze dell’utente. È ancora più difficile realizzare delle viste personalizzate di dati diversi dal testo, come ad esempio i risultati dell’interrogazione di una base di dati.

Fogli di stile XSL

XSL è un'applicazione XML che può essere usata per manipolare, ordinare e filtrare i dati di un documento XML. I risultati di queste trasformazioni possono essere:

1.    documenti HTML visualizzabili da un browser;

2.    nuovi documenti XML.

Affinché un documento XML abbia una visualizzazione analoga a quella di HTML, XSL consente di utilizzare tutti i tag di HTML 4.0, seguendo però anche per essi le restrizioni sintattiche di XML.

Esempio Espandi

Consideriamo questo breve documento XML:

<?xml version="1.0" ?>
<?xml-stylesheet type="text/xsl" href="
studenti.xsl"?>
<STUDENTI>
  <STUDENTE Matricola="
200768">Verdi Fabio</STUDENTE>
  <STUDENTE Matricola="
937653">Rossi Luca</STUDENTE>
  <STUDENTE Matricola="
485745">Neri Anna</STUDENTE>
</STUDENTI>

Il foglio di stile per visualizzare sia i nomi che le matricole degli studenti è il seguente:

<?xml version="1.0" ?>
<xsl:template xmlns:xsl="http://www.w3.org/TR/WD-xsl">
  <xsl:for-each select="
STUDENTI/STUDENTE">
    <DIV>
Studente: <B><xsl:value-of/></B></DIV>
    
Matricola: <B><xsl:value-of select="@Matricola"/></B>
    <P></P>
  </xsl:for-each>
</xsl:template>

dal quale si ottiene il seguente output:

Studente: Verdi Fabio
Matricola: 200768

Studente: Rossi Luca
Matricola: 937653

Studente: Neri Anna
Matricola: 485745

---

Slide precedenteProssima slideIndiceBibliografia

---

Altre slides: