2009-10-06 14 views
86

.NET 3.5 nie obsługuje w pełni XPATH 2.0 lub XSLT 2.0, co jest po prostu złe. Czy ktoś wie, czy te dwa będą włączone i w pełni obsługiwane w przyszłych wersjach .NET?XPath i XSLT 2.0 dla .NET?

+0

http://www.codeproject.com/Articles/24766/Using-Saxon-XSL-2-0-and-XQuery- 1-0-w-NET Biblioteka Java saxon implementuje XSL 2.0 i XQuery 1.0. Korzystając z IKVM i GNU Classpath, możesz uzyskać dostęp do tej biblioteki w .NET. Jednak interfejsy do używania Saxona bardzo różnią się od tych, z których korzystasz w .NET. Na tej stronie artykułu można pobrać adaptery interfejsu, które pomagają wypełnić lukę między interfejsem Saxona i .NET XslCompiledTransform. To z kolei znacznie ułatwia kod portu z używania .NET XSL 1.0 do Saxon XSL 2.0. – gls123

+2

Możesz wysłać tę prośbę o funkcję na [uservoice] (http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3795831-native-support-for-xpath-2-0-or-xslt- 2-0-w-net) przez Microsoft –

Odpowiedz

125

Nie sądzę, że dodadzą wsparcie dla XPath 2.0 lub XSLT 2.0 w najbliższym czasie.

Jednak nie powinien czuć się źle, jeśli nie są one częścią plc, tak długo, jak masz implementacje 3rd party dostępny:

Microsoft jest zorientowany na klienta. Jeśli klienci tego nie chcą, nie zrobią tego.


2009-11-18: Skontaktowałem się z zespołem XML here i dostał tej odpowiedzi:

Chociaż XML nadal jest kluczowym elementem naszej platformy w przyszłości, mamy nie zdecydował realizować implementację XSLT 2.0 w tym czasie. Jeśli istnieje to konkretne zadanie XSLT, które próbujesz wykonać, aby uzyskać i masz trudność z XSLT 1.0, poinformuj nas o tym , a my dołożymy wszelkich starań, aby Ci pomóc.


Ta lista jest teraz utrzymywana na github.com/maxtoroq/dotnet-xml

+21

Początkowo obiecywali implementację - to jest powód, dla którego jest tylko kilka implementacji, ponieważ gdy duża firma taka jak Microsoft powie, że to zrobimy, a my damy ją każdemu jako część systemu Windows, nie ma powodu, aby ją programować. Ale wtedy MS straciło kilka kluczowych osób w zespole XML i od tego czasu wsparcie 2.0 jest martwe. – CodeRipper

+6

Ta odpowiedź wygląda znajomo - kilka lat temu zadałem podobne pytanie i otrzymałem tę samą odpowiedź. Shame - XSLT 2.0 wygląda na dość ważną poprawę użyteczności językowej. –

+0

Lekki XPath2 dla .NET jest teraz na https://github.com/StefH/XPath2.Net – rakensi

2

Nie mogę uwierzyć, że nie będą na jakimś etapie, ponieważ są podstawowymi technologiami W3C. Jednak nie mogę znaleźć żadnego odniesienia do nich (tylko informacje zamieszczone dawno temu).

W najbliższej przyszłości powinieneś spojrzeć na numer Saxon, który obsługuje wymagane wersje Xpath/XSLT.

+0

Używałbym AltovaXML zamiast: http://www.altova.com/altovaxml.html Jest bezpłatny i obsługuje Java, .NET i WIN32 przez COM. Po prostu miałem nadzieję, że .NET będzie ją wspierać natywnie. –

+1

AltovaXML API jest bezużyteczny, a ponadto jest to kod natywny, a Saxon jest zarządzany. –

+1

Altova też jest wolniejsza. –

22

Zobacz ten blog post

Istnieje kilka powodów, dla których nie są wykonawcze XSLT 2.0 i XPath 2,0

To zajmuje sporo wysiłku i zasobów wdrożyć wszystkie 3 (technologie XQuery, XSLT 2.0 & XPath 2.0). Zgodnie z naszą zasadą , uważamy, że tworzy proliferację zapytań XML. Technologie są mylące dla użytkowników końcowych . Wolimy wdrożyć jedną język że my popychać ludzi do nauki niż mają na celu wspieranie i wyjaśnić trzy więcej kwerendy XML i transformacji językach, oprócz XPath 1.0 & XSLT 1.0, która już istnieje w NET Framework . Mając klientom i wspierać osoby mają do czynienia z złożoność 3 wyrafinowanych XML zapytań języków, z których dwa są wyglądać podobnego, ale zachowują się zupełnie inaczej w przypadku XPath 2.0 i XQuery wydawało nam nie było tak, że korzystny.

+11

To już 5 lat temu z bloga "Dlaczego nie zobaczysz XSLT 2.0 lub XPath 2.0 w * Następnej * wersji .NET Framework" (mój nacisk) –

+1

Dzięki! Nie zauważyłem tego! Nie zaakceptowałem tej odpowiedzi ponownie, mając nadzieję na nowe wyjaśnienie. (Chociaż jest to dobre wytłumaczenie, więc +1 pozostaje.) –

+0

Nic się tak naprawdę nie zmieniło od tego czasu; to niestety ostatni komunikat na ten temat. –

11

mojego zrozumienia jest to, że wiele zasobów Microsoft XML były przekazywane z XSLT 2.0 na LINQ do XML, które - moim zdaniem - nie odnosi się to samo problem-przestrzeń jak XSLT w ogóle.

LINQ to XSD miało wzmocnić LINQ do XML (a także korzyści wynikające z Schemy XML, składnia jest mniej brzydka), ale zostało to otwarte przez Microsoft na CodePlex jakiś czas temu i wydaje się nie mieć wsparcia społeczności.

Ponadto, jest mało prawdopodobne, że Microsoft wprowadziłby nowy procesor XSLT 2.0 bez edytora XSLT 2.0 i debuggera zintegrowanego z Visual Studio, więc potrzeba sporo czasu/wysiłku, aby odwrócić decyzję o "nieprzyjęciu".

Zamiast tego mamy Saxon.NET, który ma niezrównaną reputację zgodną ze standardami i zapewnia doskonałe możliwości rozszerzania .NET.

3

Microsoft nie planuje udostępnienia obsługi XPath/XSLT 2.0 w .NET.

XQSharp zapewnia zewnętrzną implementację XPath 2.0, XSLT 2.0 i XQuery dla .NET.

[Edycja: XQSharp 2,0 P (z XSLT 2.0) został zwolniony]

+0

@ Oliver-Hallam: Czy ta prognoza jest nadal ważna? Jesteś na dobrej drodze? –

+0

@ Oliver-Hallam: Czy XQSharp-XSLT 2.0 będzie szybszy od Saxon.NET? –

+0

@ Dimitre-Novatchev - Zabawne, o co teraz pytasz; powinniśmy udostępnić wersję beta naszej implementacji XSLT w ciągu najbliższych kilku godzin! Jeśli chodzi o szybkość, uważamy, że nasze wyniki są tak dobre, jak Saxon, choć jesteśmy stronniczy, więc chcielibyśmy niezależnej opinii! –