24 Lug

XSLT: Extensible Stylesheet Language Transformation

Fonte: www.vitruviantux.net

XSLT è un linguaggio che consente di effettuare trasformazioni, tramite la manipolazione di un file xml di partenza e secondo uno schema scelto, di documenti xml in altri formati (xml con diversa strutturazione, file di testo semplice, HTML, PDF, RTF.. e chi più ne ha più ne metta).

Detta così sembra una cosa da nulla. Lo pensavo anche io inizialmente ma mi sono ricreduto negli ultimi giorni quando mi è venuto in mente come utilizzare tale linguaggio per semplificarmi la vita.

Dopo averlo usato per generare codice Java da un file XML per il progetto di Programmazione Avanzata mi sono reso conto che la strada della programmazione generativa tramite XSLT si presta in modo particolare per la automazione di compiti particolarmente ripetitivi e monotoni.

Da buon programmatore pigro (e sviluppatore Java soprattutto in ambito Enterprise) ci sono 2 cose in particolare che mi caratterizzano:

  1. Odio scrivere interfacce grafiche usando Swing et similia;
  2. Ho una netta propensione per definire dati e grafica usando XML (e naturalmente HTML come suo sottoinsieme).

Bene sull’esempio di XAML per WPF (una delle poche cose che veramente invidio a .NET) mi son detto: “Perché non descrivere anche in Java le interfaccie con un simpatico documento xml?”.

Risposta: “Inventiamoci un insieme di tag che effettuino il wrap dei principali componenti Swing e creiamo delle regole con XSLT per generare il codice che dovremo altrimenti scrivere a manina!!”.

Si esistono anche gli ambienti RAD (Matisse per NetBeans e VisualDesigner per Eclipse sono alcuni..) ma a me piace vedere le cose con mano e poi il mio fine ultimo non è esattamente la fase di Wrapping )

Al momento, in circa 2 giorni, ho reso funzionali gli oggetti: JPane, JButton, JFrame, JLabel, JTextField, JPasswordField, JComboBox, BorderLayout e BoxLayout.

Non ci ho lavorato moltissimo ma già in questo modo devo dire che il risparmio di tempo per scrivere un interfaccia è abbastanza alto.

Accennavo prima al fine ultimo.. bene avete presente sempre in XAML (ma anche in JavaFX) il simpaticissimo Pad che consente di visualizzare on-the-fly l’interfaccia mentre viene descritta senza necessità di avviare l’applicazione? Bene il passo ultimo sarà quello. Per ora l’idea è di realizzarlo utilizzando un browser e delle append di condice javascript ma prima di arrivare a ciò voglio avere una buona traduzione dei componenti e dei layout principali nel mio nuovo “linguaggio di descrizione”.

Naturalmente il linguaggio al momento non consente il bind tra eventi e componenti, questa parte sarà una delle ultime affrontate, ma in linea di principio l’intenzione è di lavorare a livello di View non di Controller: il mini-framework non voglio che si disperda perdendo organicità al momento.

Stay Tuned!

Segnala presso:
Aggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Del.icio.usAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a diggAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a FURLAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a blinklistAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a redditAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Feed Me LinksAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a TechnoratiAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Yahoo My WebAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a NewsvineAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SocializerAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Ma.gnoliaAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Stumble UponAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Google BookmarksAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a RawSugarAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SquidooAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SpurlAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a BlinkBitsAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a NetvouzAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a RojoAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a BlogmarksAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Shadows
Aggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Co.mmentsAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a ScuttleAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a BloglinesAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a TailrankAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SegnaloAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a OKnotizieAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a NetscapeAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Bookmark.itAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a AskAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SmarkingAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a LinkagogoAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a DeliriousAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SocialdustAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Live-MSNAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SlashDotAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SphinnAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a DiggitaAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a SeotribuAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a FaceBookAggiungi 'XSLT: Extensible Stylesheet Language Transformation' a Upnews

Continua a leggere..

Nessun Commento »

Puoi lasciare una risposta, oppure fare un trackback dal tuo sito.


Vuoi essere il primo a lasciare un commento per questo articolo? Utilizza il modulo sotto..

Lascia un commento

XHTML: Puoi utilizzare questi tag: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <code> <em> <i> <strike> <strong>