XML, Java e dintorni

Nel mio ultimo progetto ho lavorato molto con l’XML per via dei web services e dei relativi data-binding. Più che altro sono stato incuriosito da questo libro e cosi’ ho cominciato a spulciare in rete se ne vale l’acquisto, partendo dalle origini delle librerie JAVA per XML perchè dovete sapere che al di là di uno standard ci sono le sue implementazioni….

Per chi non lo sapesse in pratica esistono 2 famosi parser XML chiamati DOM (giunto alla versione 3 nell’Aprile 2004) e SAX (giunto alla versione 2.0.2 nello stesso mese), a cui si è aggiunto nel tempo STAX cercando di prendere i vantaggi da entrambi.

Per cercare di omogeneizzare l’XML estrapolato da DOM, SAX e STAX, quelli di SUN (principalmente Jeff Suttor, Norman Walsh) realizzano una serie di interfacce e classi  sotto il nome di JAXP 1.3, sorgente che viene donato nell’aprile 2005 (Neeraj Bajaj compare tra i nomi della documentazione java) a quelli di Apache.

Vediamo poi che JAXP 1.3 finisce il suo corso nel Febbraio 2008 a cui segue JAXP 1.4  per essere incluso in JAVA SE 6. Tuttavia JAXP 1.3 è ancora un punto di riferimento.

Affianco ai parser troviamo l’XSL che include:

  • XSLT per trasformare un documento XML in un altro che sia anche HTML o WML, ha bisogno di un processore XSLT che sappia interpretare il foglio di stile XSLT.
  • XPath che è un linguaggio usato da XSLT per accedere a parti di un documento XML
  • XSL-FO usato per formattare documenti XML la cui implementazione è realizzata dalle librerie Apache FOP ( il cui sito è davvero interessante) principalmente pensato per convertire il documento in PDF ma non solo.

Tornando alle librerie Java abbiamo:

  • Xalan 2.7.1 che è un XSLT processor il quale si basa su JAXP 1.3, XSLT 1.0 e XPATH 1.0
  • Xerces 1.4.4 che è un parser java basato su XML 1.0, DOM 1/2 e SAx 1/2

Tornando indietro nel tempo, il 23 gennaio 2007 al W3C i vari working group rilasciano diverse specifiche che coinvolgono XQuery 1.0, XPath 2.0 e XSLT 2.0. Nei working group vediamo principalmente IBM, SUN (ritroviamo Norman Walsh coinvolto) e Oracle.

XQuery nasce come linguaggio per fare query su database in XML, il linguaggio è, diciamo, più naturale del XSLT.

L’unico editor dell’ XSLT 2.0 è Michael Kay, il quale prima lavorava per Software AG e poi si mette in proprio per fondare Saxonica da cui Saxon l’XSLT processor.

Saxon è quindi l’unico ad implementare XSLT 2.0 (ci dovrebbe essere uno di Oracle) che rispetta le specifiche …del suo stesso autore :-) . Saxon, viene rilasciato nella versione Saxon-B come open source mentre la versione Saxon-SA rilasciato con licenza commerciale; solo che la versione open souce è veramente limitata.

Di conseguenza non credo per ora di prendere il libro anche se puo’ essere uno stimolo per studiare XSLT 1.0 almeno.

Note: