XPath y XSLT 2.0 para .NET?

.NET 3.5 no admite completamente XPATH 2.0 o XSLT 2.0, lo cual es una lástima. ¿Alguien sabe si estos dos serán incluidos y totalmente compatibles en futuras versiones de .NET?

No creo que agreguen soporte para XPath 2.0 o XSLT 2.0 en el corto plazo.

Sin embargo, no debe sentirse mal si estos no son parte del BCL, siempre que tenga implementaciones de terceros disponibles:

  • Saxon : XPath 3.1, XQuery 3.1, XSLT 3.0
  • XmlPrime : XPath 3.1, XQuery 3.1, XSLT 2.0
  • QueryMachine : XPath 2.0, XQuery 1.0
  • Lightweight XPath2 para .NET : XPath 2.0
  • Exselt : XSLT 3.0

Microsoft está orientado al cliente. Si los clientes no lo quieren, no lo lograrán.


18-11-2009: me puse en contacto con el equipo de XML aquí y obtuve esta respuesta:

Si bien XML continúa siendo una parte clave de nuestra plataforma en el futuro, hemos decidido no aplicar una implementación XSLT 2.0 en este momento. Si hay una tarea XSLT específica que está intentando lograr y tiene dificultades con XSLT 1.0, infórmenos y haremos todo lo posible para ayudarlo.


Esta lista ahora se mantiene en github.com/maxtoroq/dotnet-xml

Ver esta publicación en el blog

Hay varias razones por las cuales no estamos implementando XSLT 2.0 y XPath 2.0

Se requieren muchos esfuerzos y recursos para implementar las 3 tecnologías (XQuery, XSLT 2.0 y XPath 2.0). Nuestro principio rector fue que creemos que crear una proliferación de tecnologías de consulta XML es confuso para los usuarios finales. Prefieremos implementar un lenguaje más que impulsemos a las personas a aprender que tener que respaldar y explicar tres lenguajes de transformación y consultas XML más, además de XPath 1.0 y XSLT 1.0 que ya existen en .NET Framework. Hacer que nuestros clientes y personas de soporte tengan que lidiar con la complejidad de 3 sofisticados lenguajes de consultas XML, dos de los cuales son similares pero se comportan de manera diferente en el caso de XPath 2.0 y XQuery no nos pareció tan beneficioso.

Tengo entendido que muchos recursos XML de Microsoft se desviaron de XSLT 2.0 a LINQ a XML, lo que, en mi opinión, no aborda el mismo espacio de problema que XSLT.

Se suponía que LINQ to XSD mejoraba LINQ to XML (además de los beneficios de XML Schema, la syntax es menos fea), pero esto fue abierto por Microsoft en CodePlex hace algún tiempo y parece que no tiene soporte de la comunidad.

Además, es poco probable que Microsoft lance un nuevo procesador XSLT 2.0 sin un editor y depurador XSLT 2.0 integrado en Visual Studio, por lo que se necesitaría bastante esfuerzo / tiempo para revertir su decisión de “no adopción”.

Por lo tanto, en su lugar tenemos Saxon.NET, que tiene una reputación de cumplimiento de estándares intachable y ofrece excelentes opciones de extensibilidad para .NET.

Microsoft no tiene planes para liberar soporte para XPath / XSLT 2.0 en .NET.

XQSharp proporciona una implementación de terceros de XPath 2.0, XSLT 2.0 y XQuery para .NET.

[Editar: XQSharp 2.0 beta (con XSLT 2.0) ha sido lanzado]

No puedo creer que no estén en algún momento dado que son tecnologías centrales del W3C. Sin embargo, no puedo encontrar ninguna referencia actual a estos (solo la información publicada hace mucho tiempo).

En el futuro cercano, debería echar un vistazo a Saxon, que es compatible con las versiones Xpath / XSLT que necesita.