.NET 3.5 no es completamente compatible con XPATH 2.0 o XSLT 2.0, lo cual es una lástima. ¿Alguien sabe si estos dos se incluirán y serán totalmente compatibles en futuras versiones de .NET?
.NET 3.5 no es completamente compatible con XPATH 2.0 o XSLT 2.0, lo cual es una lástima. ¿Alguien sabe si estos dos se incluirán y serán totalmente compatibles en futuras versiones de .NET?
Respuestas:
No creo que vayan a agregar soporte para XPath 2.0 o XSLT 2.0 en el corto plazo.
Sin embargo, no debería sentirse mal si estos no son parte de la BCL, siempre que tenga implementaciones de terceros disponibles:
Microsoft está orientado al cliente. Si los clientes no lo quieren, no lo conseguirán.
2009-11-18: Me comuniqué con el equipo XML aquí y obtuve esta respuesta:
Si bien XML sigue siendo una parte clave de nuestra plataforma en el futuro, hemos decidido no buscar una implementación XSLT 2.0 en este momento. Si hay una tarea XSLT específica que está tratando de realizar y tiene dificultades con XSLT 1.0, háganoslo saber y haremos todo lo posible para ayudarlo.
Esta lista ahora se mantiene en github.com/maxtoroq/dotnet-xml
Ver esta publicación de blog
Hay varias razones por las que no estamos implementando XSLT 2.0 y XPath 2.0
Se necesita mucho esfuerzo 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. Preferimos implementar un lenguaje más para que las personas aprendan que tener que admitir y explicar tres lenguajes de transformación y consulta XML más, además de XPath 1.0 y XSLT 1.0 que ya existen en .NET Framework. Tener a nuestros clientes y personal de soporte tiene que lidiar con la complejidad de 3 sofisticados lenguajes de consulta XML, dos de los cuales parecen similares pero se comportan de manera bastante diferente en el caso de XPath 2.0 y XQuery nos pareció que no era tan beneficioso.
XslCompiledTransform
utiliza XPathNavigator
para la representación de nodos, y este último implementa completamente XDM, en realidad puede implementar todas las funciones de XPath2 (como operadores <<
y >>
) como funciones personalizadas además de eso.
Tengo entendido que muchos recursos XML de Microsoft se desviaron de XSLT 2.0 a LINQ to XML, que, en mi opinión, no aborda el mismo espacio de problemas que XSLT en absoluto.
Se suponía que LINQ to XSD mejoraría LINQ to XML (además de los beneficios del esquema XML, la sintaxis es menos fea), pero Microsoft lo incorporó a 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".
En su lugar, tenemos Saxon.NET, que tiene una reputación de cumplimiento de estándares intachable y proporciona excelentes opciones de extensibilidad para .NET.
Microsoft no tiene planes de lanzar 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: se ha lanzado XQSharp 2.0 beta (con XSLT 2.0)]
No puedo creer que no lo estarán en algún momento, ya que son tecnologías centrales del W3C. Sin embargo, no puedo encontrar ninguna referencia actual a estos (solo información publicada hace mucho tiempo).
En un futuro próximo, debería echar un vistazo a Saxon, que es compatible con las versiones Xpath / XSLT que necesita.