2013-05-09 13 views
5

Attualmente sto usando Xalan 2.7.0 per le trasformazioni XSLT su XML, ma sto pensando di passare alla versione Saxon 9 per le trasformazioni XSLT. Quindi qualcuno potrebbe elencarmi i principali svantaggi dell'uso di Saxon su Xalan. Anche se so che Saxon supporta XSLT 2.0 e altri importanti cambiamenti ma vorrei conoscere di più sulle esperienze personali con Saxon 9 e i suoi pro e contro e altri benefici.Saxon 9 XSLT transformer vs Xalan 2.7

risposta

18

Ho usato Xalan 10 anni fa. Ho usato Saxon quasi esclusivamente negli ultimi 10 anni.

Non solo Saxon è un processore XSLT 2.0 e XSLT 3.0, ma è stato sviluppato e mantenuto molto attivamente.

Saxon 9.xx è uno dei processori XSLT più veloci. Il suo sviluppatore, il Dr. Michael Kay, è l'editore del W3C XSLT WG (Working Group) e quindi è probabile che sia quello che meglio comprende le specifiche XSLT e questo lo dimostra in Saxon. Qualsiasi funzione linguistica è implementata in modo rigoroso e preciso, di solito ben più avanti rispetto ad altri fornitori.

Dr. Kay riporta spesso il livello di conformità come indicato dall'esecuzione della suite di test W3C XSLT e XQuery WG, che consiste in decine di migliaia di test.

Saxon è supportato da diversi IDE, uno dei più importanti è oXygen. Saxon ha una mailing list utente molto attiva e il tipico tempo di risposta è solitamente misurato in ore.

Mentre sono installati circa 11 processori XSLT, quello che utilizzo il 99% del mio tempo è Saxon.

12

Integriamo sia Xalan e Saxon (6.5 e 9) nel nostro prodotto, oXygen XML Editor, quindi fondamentalmente supportiamo gli sviluppatori XSLT che utilizzano sia Saxon che Xalan.

Dalla nostra esperienza Saxon 9 è attivamente sviluppato mentre lo sviluppo di Xalan è in stallo da molti anni. Questo perché Saxon 9 è un processore XSLT 2 mentre Xalan è un processore XSLT 1 e non c'è molto che si possa fare su XSLT 1.

La maggior parte degli sviluppatori XSLT in questi giorni usa XSLT 2.0 quindi il fatto che Saxon 9 è un Il solo motore XSLT 2.0 è un buon motivo per scegliere Saxon 9. Non ha senso lottare con XSLT 1 mentre XSLT 2 è disponibile già da alcuni anni.

Xalan è concesso in licenza con Apache 2.0 e Saxon è concesso in licenza con Mozilla Public License (MPL). Dal punto di vista dell'utilizzo non c'è davvero alcuna differenza: sarà una differenza solo se cambierai il codice del processore da solo, nel caso di MPL devi rendere disponibili le tue modifiche al codice.

Un problema minore con Saxon 9 HE è che non supporta le estensioni direttamente, ma è possibile registrare estensioni integrate tramite l'API o passando una classe Initializer nella riga di comando che registrerà tali estensioni. Tuttavia, XSLT 2.0 fornisce molte nuove funzioni e istruzioni come standard, quindi è meno probabile che siano necessarie estensioni.

sassone 9 include anche il supporto per XSLT 3.0 (attualmente si tratta di una bozza di lavoro), ma con Saxon si ha accesso anticipato ad alcune delle nuove aggiunte in XSLT 3.

Per i nostri compiti XSLT interni che utilizziamo quasi tutti the time Saxon 9.

Spero che questo aiuti!

Con i migliori saluti, George

+0

Lo conosco un po 'vecchio thread. Con l'implementazione di Xalan in env multi-thread, siamo di fronte a problemi di blocco (problemi bloccati). https://stackoverflow.com/questions/46194800/converting-xmlxsl-in-html-using-java –

+0

Qualsiasi confronto relativo al rendimento tra questi due? –

2

solo per aggiungere a quello che George dice: non solo si ottiene una maggiore funzionalità w/Sassone di w/Xalan, ma si ottengono notevolmente migliorato le prestazioni (meno memoria, corre più veloce) anche in molti casi.

+0

Grazie mille @mike e george le tue opinioni sono così utili – Aditya

+0

Puoi commentare alcune funzionalità specifiche che ottieni con Saxon che non hai con Xalan? Sto cercando di trovare un elenco di punti specifici che posso usare per presentare. Grazie. – gtcharlie

+0

@gtcharlie ottieni XSLT 2.0 vs. 1.0, che ha tutta una serie di miglioramenti troppo numerosi da menzionare in un commento SO. Il raggruppamento è grande; un modello di dati sottostanti migliorato è un altro. Le funzioni di gestione delle stringhe XPath 2.0 integrate erano enormi per noi. ecc. ecc. –