.NET 3.5 ne prend pas complètement en charge XPATH 2.0 ou XSLT 2.0, ce qui est tout simplement dommage. Quelqu'un sait-il si ces deux seront inclus et entièrement pris en charge dans les futures versions de .NET?
.NET 3.5 ne prend pas complètement en charge XPATH 2.0 ou XSLT 2.0, ce qui est tout simplement dommage. Quelqu'un sait-il si ces deux seront inclus et entièrement pris en charge dans les futures versions de .NET?
Réponses:
Je ne pense pas qu'ils ajouteront bientôt le support de XPath 2.0 ou XSLT 2.0.
Cependant, vous ne devriez pas vous sentir mal si ceux-ci ne font pas partie de la BCL, tant que vous avez des implémentations tierces disponibles:
Microsoft est orienté client. Si les clients n'en veulent pas, ils n'y arriveront pas.
2009-11-18: J'ai contacté l'équipe XML ici et j'ai obtenu cette réponse:
Bien que XML continue d'être un élément clé de notre plate-forme à l'avenir, nous avons décidé de ne pas poursuivre une implémentation XSLT 2.0 pour le moment. S'il y a une tâche XSLT spécifique que vous essayez d'accomplir et que vous rencontrez des difficultés avec XSLT 1.0, veuillez nous en informer et nous ferons de notre mieux pour vous aider.
Cette liste est maintenant maintenue sur github.com/maxtoroq/dotnet-xml
Voir ce billet de blog
Il y a plusieurs raisons pour lesquelles nous n'implémentons pas XSLT 2.0 et XPath 2.0
Il faut beaucoup d'efforts et de ressources pour implémenter les 3 technologies (XQuery, XSLT 2.0 et XPath 2.0). Notre principe directeur était que nous pensons que créer une prolifération de technologies de requête XML est source de confusion pour les utilisateurs finaux. Nous préférons implémenter un langage de plus que nous poussons les gens à apprendre plutôt que de prendre en charge et d'expliquer trois autres langages de requête et de transformation XML, en plus de XPath 1.0 et XSLT 1.0 qui existent déjà dans le .NET Framework. Le fait que nos clients et nos techniciens d'assistance doivent faire face à la complexité de 3 langages de requête XML sophistiqués dont deux se ressemblent mais se comportent assez différemment dans le cas de XPath 2.0 et XQuery ne nous a pas semblé aussi bénéfique.
XslCompiledTransform
utilisé XPathNavigator
pour la représentation des nœuds, et que ce dernier implémente entièrement XDM, vous pouvez en fait implémenter toutes les fonctionnalités XPath2 (comme les opérateurs <<
et >>
) en tant que fonctions personnalisées en plus de cela.
Je crois comprendre que de nombreuses ressources Microsoft XML ont été détournées de XSLT 2.0 vers LINQ vers XML, ce qui, à mon avis, ne traite pas du tout le même problème que XSLT.
LINQ to XSD était censé améliorer LINQ to XML (ainsi que les avantages du schéma XML, la syntaxe est moins moche), mais cela a été open-source par Microsoft sur CodePlex il y a quelque temps et ne semble pas avoir de support de la communauté.
En outre, il est peu probable que Microsoft lance un nouveau processeur XSLT 2.0 sans un éditeur et un débogueur XSLT 2.0 intégrés à Visual Studio, donc un peu d'effort / de temps serait nécessaire pour annuler leur décision de `` non-adoption ''.
Nous avons donc à la place Saxon.NET, qui jouit d'une réputation de conformité aux normes irréprochable et offre d'excellentes options d'extensibilité pour .NET.
Microsoft n'a pas l'intention de publier la prise en charge de XPath / XSLT 2.0 dans .NET.
XQSharp fournit une implémentation tierce de XPath 2.0, XSLT 2.0 et XQuery pour .NET.
[modifier: XQSharp 2.0 beta (avec XSLT 2.0) a été publié]
Je ne peux pas croire qu'ils ne le seront pas à un moment donné car ce sont des technologies de base du W3C. Cependant, je ne trouve aucune référence actuelle à ceux-ci (seules les informations publiées il y a longtemps).
Dans un proche avenir, vous devriez jeter un œil à Saxon qui prend en charge les versions Xpath / XSLT dont vous avez besoin.