XMLファイルのコレクションを管理するアプリケーションがあり、XPathを使用してクエリを実行できるため、ユーザーはXPathクエリと一致するコレクションのサブセットを表示できます。XQueryをXPathに制限する
さまざまな技術的な理由から、私はXQueryエンジンに切り替えています。私は、XQueryはXPathのスーパーセットであることを理解しています。しかし、私は完全なXQuery機能を望んでいません。ユーザーがそれを使用して自分のDTDと一致しない新しいXMLオブジェクトを構築し、SVGベースのビューアで表示できないからです。
クエリ文字列をXPathとして簡単に検証し、XQueryエンジンに渡すことは簡単ですか?あるいは簡単な方法でそれらを変換できますか?
(私はC++を使用してXQillaに切り替えています。)
これは奇妙な条件です。おそらく、ノードコンストラクタ(XQuery)とスカラーアイテム構築(XPath 2.0)を禁止する場合は、代わりにXPath 1.0エンジンを使用する必要があります。それ以外の場合は、式を解析し、そのような構造を持つものを禁止する必要があります。他の解決策は、ソース文書に属するノードインスタンスの結果の式をフィルタリングすることです。 –
@Alejandro:XQueryからの移行は、新しいストレージエンジンであるBerkeley DB XMLで最適化されているためです。しかし、私たちのユーザーはXPathを期待しています。そして、クライアント/サーバーアーキテクチャを決定すると、表現力が増します(XQueryはTuringの完全性を理解しています)。 –
完全にXSLT 2.0で書かれた私のXPath 2.0パーサを使うことができます。 –