用于.NET的XPath和XSLT 2.0?

.NET 3.5并不完全支持XPATH 2.0或XSLT 2.0,这太糟糕了。 有谁知道这两个将在未来的.NET版本中包含和完全支持

我不认为他们会很快增加对XPath 2.0或XSLT 2.0的支持。

但是,如果这些不是BCL的一部分,只要您有第三方实现可用,就不应该感觉不好:

  • 撒克逊 :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
  • 用于.NET的轻量级XPath2 :XPath 2.0
  • Exselt :XSLT 3.0

微软以客户为导向。 如果客户不需要,他们不会做到。


2009-11-18:我在这里联系了XML团队,得到了这样的回应:

虽然XML仍然是我们未来平台的重要组成部分,但我们决定暂时不推行XSLT 2.0实现。 如果您正在尝试完成特定的XSLT任务并且XSLT 1.0遇到问题,请告诉我们,我们将尽我们所能帮助。


这个列performance在保存在github.com/maxtoroq/dotnet-xml

看到这个博客文章

有几个原因我们没有实现XSLT 2.0和XPath 2.0

实现所有3种技术(XQuery,XSLT 2.0和XPath 2.0)需要花费大量的精力和资源。 我们的指导原则是,我们认为创buildXML查询技术的扩散令terminal用户感到困惑。 除了已经存在于.NET Framework中的XPath 1.0和XSLT 1.0之外,我们宁愿实现一种我们推动人们学习的语言,而不是支持和解释另外三种XML查询和转换语言。 让我们的客户和支持人员必须处理3种先进的XML查询语言的复杂性,其中两种看起来相似,但在XPath 2.0中performance得非常不同,XQuery在我们看来并不是那么有益。

我的理解是许多Microsoft XML资源从XSLT 2.0转移到了LINQ to XML,在我看来,它并没有像XSLT那样解决相同的问题空间。

LINQ to XSD被认为可以增强LINQ to XML(以及XML Schema的好处,语法不那么难看),但是这是微软在CodePlex前一段时间开源的,似乎没有社区支持。

另外,如果没有将XSLT 2.0编辑器和debugging器集成到Visual Studio中,微软不太可能推出新的XSLT 2.0处理器,因此需要相当多的努力/时间来扭转他们的“不采用”的决定。

相反,我们拥有Saxon.NET,它具有无与伦比的标准合规声誉,并为.NET提供了出色的可扩展性选项。

微软没有计划在.NET中发布对XPath / XSLT 2.0的支持。

XQSharp为.NET提供了XPath 2.0,XSLT 2.0和XQuery的第三方实现。

[编辑:XQSharp 2.0 beta(带有XSLT 2.0)已经发布]

我不能相信他们会在某个阶段,因为他们是W3C的核心技术。 不过,我找不到任何当前的参考(只有很久以前发布的信息)。

在不久的将来,您应该看看支持您需要的Xpath / XSLT版本的Saxon 。