.NET 3.5 non supporta completamente XPATH 2.0 o XSLT 2.0, il che è semplicemente un peccato. Qualcuno sa se questi due saranno inclusi e completamente supportati nelle future versioni di .NET?
.NET 3.5 non supporta completamente XPATH 2.0 o XSLT 2.0, il che è semplicemente un peccato. Qualcuno sa se questi due saranno inclusi e completamente supportati nelle future versioni di .NET?
Risposte:
Non credo che aggiungeranno presto il supporto per XPath 2.0 o XSLT 2.0.
Tuttavia, non dovresti sentirti male se questi non fanno parte del BCL, purché siano disponibili implementazioni di terze parti:
Microsoft è orientata al cliente. Se i clienti non lo vogliono, non ce la faranno.
18-11-2009: Ho contattato il team XML qui e ho ricevuto questa risposta:
Sebbene XML continui a essere una parte fondamentale della nostra piattaforma in futuro, abbiamo deciso di non perseguire un'implementazione di XSLT 2.0 in questo momento. Se c'è un'attività XSLT specifica che stai cercando di eseguire e hai difficoltà con XSLT 1.0, faccelo sapere e faremo del nostro meglio per aiutarti.
Questo elenco è ora gestito su github.com/maxtoroq/dotnet-xml
Vedi questo post del blog
Esistono diversi motivi per cui non stiamo implementando XSLT 2.0 e XPath 2.0
Sono necessari molti sforzi e risorse per implementare tutte e 3 le tecnologie (XQuery, XSLT 2.0 e XPath 2.0). Il nostro principio guida era che riteniamo che creare una proliferazione di tecnologie di query XML sia fonte di confusione per gli utenti finali. Preferiremmo implementare un altro linguaggio che spingiamo le persone a imparare piuttosto che dover supportare e spiegare altri tre linguaggi di query e trasformazione XML, oltre a XPath 1.0 e XSLT 1.0 che già esistono in .NET Framework. Avere i nostri clienti e le persone di supporto devono affrontare la complessità di 3 sofisticati linguaggi di query XML, due dei quali sembrano simili ma si comportano in modo abbastanza diverso nel caso di XPath 2.0 e XQuery ci è sembrato non essere così vantaggioso.
XslCompiledTransformutilizza XPathNavigatorper la rappresentazione dei nodi e quest'ultimo implementa completamente XDM, puoi effettivamente implementare tutte le funzionalità XPath2 (come gli operatori <<e >>) come funzioni personalizzate oltre a ciò.
La mia comprensione è che molte risorse XML di Microsoft sono state dirottate da XSLT 2.0 a LINQ a XML, il che, a mio avviso, non risolve affatto lo stesso spazio problematico di XSLT.
LINQ to XSD avrebbe dovuto migliorare LINQ to XML (oltre ai vantaggi di XML Schema, la sintassi è meno brutta), ma questo è stato reso open source da Microsoft su CodePlex qualche tempo fa e sembra non avere il supporto della comunità.
Inoltre, è improbabile che Microsoft lanci un nuovo processore XSLT 2.0 senza un editor e debugger XSLT 2.0 integrati in Visual Studio, quindi sarebbe necessario un po 'di sforzo / tempo per annullare la loro decisione di "non adozione".
Quindi abbiamo Saxon.NET, che ha una reputazione di conformità agli standard impeccabile e fornisce eccellenti opzioni di estensibilità per .NET.
Microsoft non prevede di rilasciare il supporto per XPath / XSLT 2.0 in .NET.
XQSharp fornisce un'implementazione di terze parti di XPath 2.0, XSLT 2.0 e XQuery per .NET.
[modifica: XQSharp 2.0 beta (con XSLT 2.0) è stato rilasciato]
Non riesco a credere che a un certo punto non ci saranno dato che sono tecnologie W3C fondamentali. Tuttavia non riesco a trovare alcun riferimento corrente a questi (solo informazioni pubblicate molto tempo fa).
Per il prossimo futuro dovresti dare un'occhiata a Saxon che supporta le versioni Xpath / XSLT di cui hai bisogno.