.NET 3.5并不完全支持XPATH 2.0或XSLT 2.0,这太糟糕了。有谁知道在将来的任何.NET版本中是否将包括这两个功能并完全支持它们?
.NET 3.5并不完全支持XPATH 2.0或XSLT 2.0,这太糟糕了。有谁知道在将来的任何.NET版本中是否将包括这两个功能并完全支持它们?
Answers:
我认为他们不会在短期内增加对XPath 2.0或XSLT 2.0的支持。
但是,只要这些不是BCL的一部分,只要您有可用的第三方实现,您就不会感到难过:
Microsoft以客户为导向。如果客户不想要它,他们就不会成功。
2009-11-18:我在这里 与XML团队联系并得到了以下回复:
尽管XML继续是我们平台未来发展的关键部分,但我们决定目前不采用XSLT 2.0实现。如果您要完成特定的XSLT任务,并且在使用XSLT 1.0时遇到困难,请告知我们,我们将尽最大努力为您提供帮助。
看到这篇博客文章
我们没有实现XSLT 2.0和XPath 2.0的原因有很多
实现这三种技术(XQuery,XSLT 2.0和XPath 2.0)需要大量的精力和资源。我们的指导原则是,我们相信创建XML查询技术的激增会使最终用户感到困惑。除了.NET Framework中已经存在的XPath 1.0和XSLT 1.0之外,我们宁愿实现一种促使人们学习的语言,而不是必须支持和解释另外三种XML查询和转换语言。有我们的客户和支持人员必须处理3种复杂的XML查询语言的复杂性,这两种语言看起来很相似,但在XPath 2.0和XQuery的情况下却表现得截然不同,因此对我们来说并不是那么有益。
XslCompiledTransform
用途XPathNavigator
为节点表示,而后者则完全实现了XDM,你可以真正实现所有XPath2功能(如运营商<<
和>>
)作为最重要的是自定义函数。
我的理解是,许多Microsoft XML资源已从XSLT 2.0转移到LINQ到XML,在我看来,这根本解决不了与XSLT相同的问题空间。
LINQ to XSD原本应该将LINQ to XML增强(以及XML Schema的好处,语法不太难看),但这是Microsoft在不久前开源到CodePlex上的,并且似乎没有社区支持。
同样,如果微软不希望将没有XSLT 2.0编辑器和调试器集成到Visual Studio中的情况下推出新的XSLT 2.0处理器,那么要扭转他们的“不采用”的决定就需要花费大量的精力/时间。
因此,我们有了Saxon.NET,它具有无可比拟的标准合规性声誉,并为.NET提供了出色的可扩展性选项。
Microsoft没有计划在.NET中发布对XPath / XSLT 2.0的支持。
XQSharp提供了XPath 2.0,XSLT 2.0和XQuery for .NET的第三方实现。
[编辑:XQSharp 2.0 beta(带有XSLT 2.0)已经发布]
我不敢相信它们不会进入某个阶段,因为它们是W3C的核心技术。但是,我找不到这些的当前引用(仅是很久以前发布的信息)。
在不久的将来,您应该看看支持所需的Xpath / XSLT版本的Saxon。