.NET 3.5 не полностью поддерживает XPATH 2.0 или XSLT 2.0, что очень плохо. Кто-нибудь знает, будут ли эти два компонента полностью поддерживаться в будущих версиях .NET?
.NET 3.5 не полностью поддерживает XPATH 2.0 или XSLT 2.0, что очень плохо. Кто-нибудь знает, будут ли эти два компонента полностью поддерживаться в будущих версиях .NET?
Ответы:
Не думаю, что в ближайшее время они добавят поддержку XPath 2.0 или XSLT 2.0.
Однако вы не должны расстраиваться, если они не являются частью BCL, если у вас есть сторонние реализации:
Microsoft ориентирована на клиента. Если клиенты этого не хотят, они этого не сделают.
2009-11-18: Я связался с командой XML здесь и получил следующий ответ:
Хотя XML продолжает оставаться ключевой частью нашей платформы в будущем, мы решили не заниматься реализацией XSLT 2.0 в настоящее время. Если вы пытаетесь выполнить конкретную задачу XSLT и испытываете трудности с XSLT 1.0, сообщите нам, и мы сделаем все возможное, чтобы помочь.
Этот список теперь поддерживается на github.com/maxtoroq/dotnet-xml.
См. Это сообщение в блоге
Есть несколько причин, по которым мы не реализуем XSLT 2.0 и XPath 2.0.
Для реализации всех трех технологий (XQuery, XSLT 2.0 и XPath 2.0) требуется много усилий и ресурсов. Нашим руководящим принципом было то, что мы считаем, что распространение технологий XML-запросов сбивает с толку конечных пользователей. Мы предпочли бы реализовать еще один язык, который мы заставляем людей изучать, чем поддерживать и объяснять еще три языка XML-запросов и преобразований в дополнение к XPath 1.0 и XSLT 1.0, которые уже существуют в .NET Framework. Нашим клиентам и специалистам службы поддержки приходится иметь дело со сложностью трех сложных языков запросов XML, два из которых выглядят одинаково, но ведут себя совершенно по-разному в случае XPath 2.0, а XQuery казался нам не таким полезным.
XslCompiledTransform
используется XPathNavigator
для представления узла, а последний полностью реализует XDM, вы можете реализовать все функции XPath2 (например, операторы <<
и >>
) в виде дополнительных функций.
Насколько я понимаю, многие ресурсы Microsoft XML были переведены с XSLT 2.0 на LINQ to XML, который, на мой взгляд, не решает то же проблемное пространство, что и XSLT.
Предполагалось, что LINQ to XSD улучшит LINQ to XML (а также преимущества схемы XML, синтаксис менее уродливый), но некоторое время назад Microsoft предоставила его на CodePlex с открытым исходным кодом и, похоже, не пользуется поддержкой сообщества.
Кроме того, маловероятно, что Microsoft запустит новый процессор XSLT 2.0 без редактора XSLT 2.0 и отладчика, интегрированного в Visual Studio, поэтому потребуется немало усилий / времени, чтобы отменить их решение о «непринятии». [Обновление] Теперь есть расширение XSLT 3.0 для Microsoft VSCode (управляемое мной), которое интегрируется с процессором Saxon 3.0 XSLT.
Так что вместо этого у нас есть Saxon.NET, который имеет безупречную репутацию в области соответствия стандартам и предоставляет отличные возможности расширения для .NET.
Microsoft не планирует выпускать поддержку XPath / XSLT 2.0 в .NET.
XQSharp предоставляет стороннюю реализацию XPath 2.0, XSLT 2.0 и XQuery для .NET.
[edit: выпущена бета-версия XQSharp 2.0 (с XSLT 2.0)]
Я не могу поверить, что на каком-то этапе их не будет, поскольку они являются основными технологиями W3C. Однако я не могу найти текущую ссылку на них (только информация, опубликованная давно).
В ближайшем будущем вам стоит взглянуть на Saxon, который поддерживает нужные вам версии Xpath / XSLT.