Come arrivare da XML a XSLT (senza perdersi per strada)

Studiando XML e XSD, mi sono imbattuto in una serie (direi una babele) di sigle diverse. In questo post cerco di fare un po’ d’ordine:

In modo molto semplificato (considerando che partiamo già da XML, che è un Markup Language derivato dall’antesignano SGML) possiamo dire che ci sono molti linguaggi, principalmente divisi nei seguenti contesti:

  • La descrizione della struttura dei dati
  • La descrizione dei dati
  • La descrizione del formato di rappresentazione dei dati

Per la struttura abbiamo l’ XML Schema Language (di cui esiste una infinità di diverse implementazioni), tra le quali XSD (di cui ho già parlato nel mio precedente post) è l’unica implementazione raccomandata dal W3C.

Per i dati abbiamo l’XML di cui, ad esempio, XHTML e XAML sono due implementazioni assai note, ciascuna nel suo campo di applicazione (Web e WPF).

Per la rappresentazione abbiamo gli Style Language, di cui abbiamo le seguenti implementazioni:

Tra queste, CSS è assai nota agli sviluppatori Web, mentre XSL è a sua volta una famiglia di linguaggi di trasformazione, così composta:

Tra questi ultimi,  XSLT sta per eXtensible Stylesheet Language Transformations e ha come obiettivo principale la trasformazione di:

  • un documento XML in un altro documento XML
  • un documento XML in un altro formato (ad esempio HTML, XHTML, RTF, ma anche in qualsiasi altro formato di solo testo).

Un esempio concreto è la visualizzazione di un file XML in Internet Explorer 8 che usa proprio un file XSLT per trasformare l’XML in XHTML.

E così, acronimo dopo acronimo, siamo arrivati a casa!

XML Schemas

Partecipare al progetto di federico è per me una fantastica fonte di stimoli per studiare anche le cose che fino ad oggi mi sono risultate indigeste. Fra queste (a parte XML che ho studiato per lavorare in XAML con WPF)  c’è XSD.

XSD sta per XML Schema Definition ed è il primo XML Schema Language “raccomandato” dal consorzio W3C (World Wide Web Consortium).

XSD serve a definire il tipo di un documento XML in termini di vincoli: quali elementi ed attributi possono apparire, in quale relazione reciproca, quale tipo di dati può contenere, ed altro. Può essere usata anche con un programma di validazione, al fine di accertare a quale tipo appartiene un determinato documento XML.

Oltre alla documentazione ufficiale:

ho trovato molto comodo questo tutorial della w3schools.com, grazie al quale, armato di pazienda (e di bella speranza), sto realizzando un piccolo file XSD che servirà a formalizzare (e all’occorrenza validare) gli elementi e attributi contenuti nel file XML (Maggiordomus.config.xml) usato per descrivere gli ambienti e gli attuatori gestiti della casa domotica gestita da Maggiordomus.

«maggio»
domlunmarmergiovensab
262728293012
3456789
10111213141516
17181920212223
24252627282930
31123456