.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
Щоб впровадити всі 3 технології (XQuery, XSLT 2.0 та XPath 2.0), потрібно багато зусиль та ресурсів. Нашим керівним принципом було те, що ми вважаємо, що створення розповсюдження технологій запитів XML заплутує кінцевих користувачів. Ми воліємо застосувати ще одну мову, яку ми підштовхуємо людей до вивчення, ніж підтримувати та пояснювати ще три мови запитів та перетворень XML, на додаток до XPath 1.0 та XSLT 1.0, які вже існують у .NET Framework. Маючи наших клієнтів та підтримку, люди повинні мати справу зі складністю 3 складних мов запитів XML, дві з яких схожі, але поводяться зовсім інакше у випадку з XPath 2.0 та XQuery нам здавалося не таким корисним.
XslCompiledTransform
використовується XPathNavigator
для представлення вузла, і останній повністю реалізує XDM, ви можете фактично реалізувати всю функціональність XPath2 (наприклад, оператори <<
та >>
) як власні функції.
Я розумію, що багато ресурсів Microsoft XML було перенаправлено з XSLT 2.0 на LINQ в XML, що - на мій погляд - взагалі не стосується того самого простору проблем, як XSLT.
LINQ to XSD мав покращити LINQ до XML (як і переваги XML Schema, синтаксис менш потворний), але це було відкрито для Microsoft на CodePlex деякий час тому і, схоже, не має підтримки з боку спільноти.
Крім того, малоймовірно, що Microsoft запустить новий процесор XSLT 2.0 без редактора XSLT 2.0 та налагоджувача, інтегрованого в Visual Studio, тому знадобиться чимало зусиль / часу, щоб змінити рішення про неприйняття.
Отже, замість цього ми маємо Saxon.NET, який має неперевершену репутацію відповідності стандартам і забезпечує чудові можливості розширюваності для .NET.
Microsoft не планує випускати підтримку XPath / XSLT 2.0 у .NET.
XQSharp забезпечує незалежну реалізацію XPath 2.0, XSLT 2.0 та XQuery для .NET.
[редагувати: випущено бета-версію XQSharp 2.0 (із XSLT 2.0)]
Я не можу повірити, що вони не будуть на якомусь етапі, оскільки вони є основними технологіями W3C. Однак я не можу знайти жодного поточного посилання на них (лише інформація, опублікована давно).
Найближчим часом вам слід поглянути на Saxon, який підтримує потрібні вам версії Xpath / XSLT.