XPathおよびXSLT 2.0 for .NET?[閉まっている]


91

.NET 3.5はXPATH 2.0またはXSLT 2.0を完全にはサポートしていません。これらの2つが将来の.NETバージョンに含まれ、完全にサポートされるかどうか誰かが知っていますか?


codeproject.com/Articles/24766/…Java saxonライブラリはXSL 2.0とXQuery 1.0を実装しています。IKVMとGNUクラスパスを使用すると、.NETでこのライブラリにアクセスできます。ただし、Saxonを使用するためのインターフェースは、.NETで使用するものとは大きく異なります。この記事のページから、Saxonインターフェースと.NET XslCompiledTransformの間のギャップを埋めるのに役立つインターフェースアダプターをダウンロードできます。これにより、.NET XSL 1.0からSaxon XSL 2.0へのコードの移植がはるかに簡単になります。
gls123 2013年

3
この機能リクエストは、Microsoftのuservoiceに投稿できます
Binoj Antony '29

回答:


131

XPath 2.0やXSLT 2.0のサポートがすぐに追加されるとは思いません。

ただし、サードパーティの実装が利用可能である限り、これらがBCLの一部ではない場合でも問題はありません。

マイクロソフトは顧客指向です。顧客がそれを望まなければ、彼らはそれを作りません。


2009-11-18:私はここのXMLチームに連絡し、 この応答を得ました:

XMLは今後もプラットフォームの重要な部分ですが、現時点ではXSLT 2.0の実装を追求しないことにしました。達成しようとしている特定のXSLTタスクがあり、XSLT 1.0で問題が発生している場合は、お知らせください。できる限りのお手伝いをさせていただきます。


このリストは現在github.com/maxtoroq/dotnet-xmlで管理されています


22
彼らは当初実装を約束しました-マイクロソフトのような大企業が私たちがそれを実行し、私たちがWindowsの一部としてそれをすべての人に与えると言うときそれをプログラムする理由がないので、それが実装がほとんどない理由です。しかしその後、MSはXMLチームの主要人物を数名失い、それ以来2.0のサポートはなくなりました。
CodeRipper 2010

6
その答えは不気味によく似ています。私は数年前に同様の質問をして、同じ答えを得ました。恥-XSLT 2.0は、言語のユーザビリティのかなり重要な改善のように見えます。
Eamon Nerbonne、2011年

.NET用の軽量XPath2はに今あるgithub.com/StefH/XPath2.Net
rakensi

1
@alirobe 投票しないもっと多いです。XSLTが好きな人の情熱を証明するだけです。学校で教えられた多くのことが現実の世界で使用されることはめったにありません。
Max Toro

1
参考:.Net Core機能リクエスト:github.com/dotnet/corefx/issues/2295 for XPath / XSLT v2&3 support。
JohnLBevan 2017年

23

このブログ投稿を見る

XSLT 2.0とXPath 2.0を実装しない理由はいくつかあります

3つのテクノロジー(XQuery、XSLT 2.0、XPath 2.0)をすべて実装するには、多くの労力とリソースが必要です。私たちの指針となる原則は、XMLクエリテクノロジーの急増を作成することはエンドユーザーを混乱させると信じていました。.NET Frameworkに既に存在するXPath 1.0とXSLT 1.0に加えて、さらに3つのXMLクエリと変換言語をサポートおよび説明する必要があるよりも、人々に学習させる1つの言語を実装したいと考えています。お客様とサポート担当者が3つの高度なXMLクエリ言語の複雑さに対処する必要があるため、2つは似ていますが、XPath 2.0とXQueryの場合の動作はまったく異なり、それほど有益ではないように見えました。


12
5年前の「次のバージョンの.NET FrameworkでXSLT 2.0またはXPath 2.0が表示されない理由」(私の強調)
Brian Agnew

1
ありがとう!気づかなかった!新しい説明を期待して、この回答を再び受け入れませんでした。(良い説明ですが、+ 1は残ります。)
ウィムテンブリンク

3
とは言っても、.NETでXSLTを扱う際には、2つの点に注意する必要があります。1)XSLT 2.0の大きな利点の1つをカバーするexslt:node-set()をサポートします。2)msxsl:scriptを使用すると、拡張性APIをいじらずに、C#/ VB / JScript.NETを使用して、XSLT内で任意の複雑な関数を直接定義します。以来XslCompiledTransform用途XPathNavigatorノード表現のために、後者は完全にXDMを実装して、あなたが実際に(事業者のように、すべてのXPath2機能を実装することができます<<し、>>その上にカスタム関数など)。
Pavel Minaev、2009年

1
それは主題に関する最後のコミュニケーションではありません。例:blogs.msdn.com/xmlteam/archive/2007/01/29/xslt-2-0.aspx
ソーン

10
2013年、変更なし:(
Evgeni Nabokov

13

私の理解では、多くのMicrosoft XMLリソースはXSLT 2.0からLINQ to XMLに転用されており、私の見解では、XSLTと同じ問題領域にはまったく対応していません。

LINQ to XSDはLINQ to XMLを強化するはずでしたが(XMLスキーマの利点と同様に、構文はそれほど醜くありません)、これは少し前にMicrosoftによってCodePlexにオープンソース化されたものであり、コミュニティのサポートはないようです。

また、MicrosoftがXSLT 2.0エディターとデバッガーをVisual Studioに統合せずに新しいXSLT 2.0プロセッサーを起動する可能性は低いため、「採用しない」という決定を元に戻すにはかなりの労力/時間が必要になります。

そのため、代わりにSaxon.NETがあります。これは、比類のない標準準拠の評判があり、.NETに優れた拡張性オプションを提供します。


3

マイクロソフトは、.NETでXPath / XSLT 2.0のサポートをリリースする予定はありません。

XQSharpは、XPath 2.0、XSLT 2.0、およびXQuery for .NETのサードパーティ実装を提供します。

[編集:XQSharp 2.0ベータ(XSLT 2.0付き)がリリースされました]


@ Oliver-Hallam:この予測はまだ有効ですか?順調ですか?
Dimitre Novatchev

@ Oliver-Hallam:XQSharp-XSLT 2.0はSaxon.NETよりも高速ですか?
Dimitre Novatchev

@ Dimitre-Novatchev-あなたが今尋ねる面白い。XSLT実装のベータ版が数時間以内にリリースされるはずです。スピードに関しては、パフォーマンスはサクソンと同じくらい良いと信じていますが、偏見があるので、独立した意見が大好きです!
Oliver Hallam

1
XQSharpはXMLPrimeと呼ばれるようになりました
Mike Gale

2

それらはW3Cのコア技術であるため、それらがいつの段階にあるとは思えません。しかし、私はこれらへの現在の参照を見つけることができません(かなり前に投稿された情報のみ)。

近い将来、必要なXpath / XSLTバージョンをサポートするSaxonを確認する必要があります。


代わりにAltovaXMLを使用します:altova.com/altovaxml.htmlこれは無料で、COMを介してJava、.NET、WIN32をサポートしています。.NETがネイティブでサポートすることを期待しているだけです。
ウィムテンブリンク

1
AltovaXML APIは役に立たないだけでなく、ネイティブコードであり、Saxonは管理されています。
Max Toro

1
Altovaの大きな問題は、保持するテキストノードのみの空白を正しく実装することを拒否することです。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.