.NET 3.5 não oferece suporte completo a XPATH 2.0 ou XSLT 2.0, o que é muito ruim. Alguém sabe se esses dois serão incluídos e totalmente suportados em quaisquer versões futuras do .NET?
.NET 3.5 não oferece suporte completo a XPATH 2.0 ou XSLT 2.0, o que é muito ruim. Alguém sabe se esses dois serão incluídos e totalmente suportados em quaisquer versões futuras do .NET?
Respostas:
Eu não acho que eles irão adicionar suporte para XPath 2.0 ou XSLT 2.0 tão cedo.
No entanto, você não deve se sentir mal se eles não fizerem parte do BCL, contanto que você tenha implementações de terceiros disponíveis:
A Microsoft é orientada para o cliente. Se os clientes não quiserem, não conseguirão.
18/11/2009: Entrei em contato com a equipe XML aqui e recebi esta resposta:
Embora XML continue a ser uma parte importante de nossa plataforma no futuro, decidimos não buscar uma implementação de XSLT 2.0 no momento. Se houver uma tarefa XSLT específica que você está tentando realizar e está tendo dificuldades com o XSLT 1.0, informe-nos e faremos o possível para ajudar.
Esta lista agora é mantida em github.com/maxtoroq/dotnet-xml
Veja esta postagem do blog
Existem vários motivos pelos quais não estamos implementando XSLT 2.0 e XPath 2.0
É preciso muito esforço e recursos para implementar todas as 3 tecnologias (XQuery, XSLT 2.0 e XPath 2.0). Nosso princípio orientador era que acreditamos que a criação de uma proliferação de tecnologias de consulta XML confunde os usuários finais. Preferimos implementar mais uma linguagem que incentivamos as pessoas a aprender do que ter que oferecer suporte e explicar mais três linguagens de consulta e transformação XML, além de XPath 1.0 e XSLT 1.0 que já existem no .NET Framework. Ter nossos clientes e pessoal de suporte tem que lidar com a complexidade de 3 linguagens de consulta XML sofisticadas, duas das quais são semelhantes, mas se comportam de maneira bem diferente no caso do XPath 2.0 e XQuery não nos pareceu tão benéfico.
XslCompiledTransform
usa XPathNavigator
para representação de nó, e o último implementa totalmente o XDM, você pode realmente implementar todas as funcionalidades XPath2 (como operadores <<
e >>
) como funções personalizadas em cima disso.
Meu entendimento é que muitos recursos Microsoft XML foram desviados de XSLT 2.0 para LINQ to XML, que - na minha opinião - não aborda o mesmo espaço de problema que o XSLT.
O LINQ to XSD deveria aprimorar o LINQ to XML (assim como os benefícios do XML Schema, a sintaxe é menos feia), mas foi disponibilizado pela Microsoft para o CodePlex há algum tempo e parece não ter suporte da comunidade.
Além disso, é improvável que a Microsoft lance um novo processador XSLT 2.0 sem um editor e depurador XSLT 2.0 integrado ao Visual Studio, então um pouco de esforço / tempo seria necessário para reverter sua decisão de 'não adoção'.
Portanto, em vez disso, temos o Saxon.NET, que tem uma reputação de conformidade de padrões inatacável e oferece excelentes opções de extensibilidade para .NET.
A Microsoft não tem planos de lançar suporte para XPath / XSLT 2.0 em .NET.
XQSharp fornece uma implementação de terceiros de XPath 2.0, XSLT 2.0 e XQuery para .NET.
[editar: XQSharp 2.0 beta (com XSLT 2.0) foi lançado]
Eu não posso acreditar que eles não estarão em algum estágio, já que são tecnologias centrais do W3C. No entanto, não consigo encontrar nenhuma referência atual a eles (apenas informações postadas há muito tempo).
Em um futuro próximo, você deve dar uma olhada no Saxon, que suporta as versões Xpath / XSLT de que você precisa.