0

この 1 年間、Saxon を使用して Windows コマンド ラインから一連の XQuery Update を呼び出すために作成したバッチ スクリプトを実行してきました。oXygen 16 を使用している間は問題なく動作しましたが、部門内のすべてのマシンが oXygen 17.1 にアップグレードされた後、スクリプトは現在、修正できないように見えるエラーをスローしています。どんな考えでも大歓迎です。

これは、oXygen 16 がインストールされたときに機能していました。

java -cp "C:\Program Files\Oxygen XML Editor 16\lib\saxon9ee.jar" net.sf.saxon.Query -update:on -t -q:"C:\Users\%USERNAME%\Documents\SVN Working Copies\trunk\rbscXSL\Locations2015\AbID2dsc-items.xq"

.jar ファイルが同じ相対位置にあり (oXygen のバージョン番号だけがパスに変更されています)、以前と同じ名前であることを確認しました。それにもかかわらず、クラス パスを「C:\Program Files\Oxygen XML Editor 17\lib\saxon9ee.jar」に更新した後、スクリプトは次のエラーをスローします。

Saxonica の Saxon-EE 9.6.0.7J

Java バージョン 1.8.0_92

java.lang.UnsupportedOperationException: XQuery Update は、この Saxon 構成ではサポートされていません

net.sf.saxon.s9api.XQueryCompiler.setUpdatingEnabled (XQueryCompiler.java:212) で

net.sf.saxon.Query.doQuery(Query.java:281) で

net.sf.saxon.Query.main(Query.java:111) で

クエリ中の致命的なエラー: java.lang.UnsupportedOperationException: XQuery Update is not supported in this Saxon Configuration

ファイル名、ディレクトリ名、またはボリューム ラベルの構文が正しくありません。

私のマシンには Java 8 がインストールされています。また、XQuery Update が oXygen エディター内から呼び出された場合でも機能することを確認しました。

http://www.saxonica.com/documentation9.6/index.html#!using-xquery/commandlineおよびhttp://www.saxonica.com/documentation9.6/index.html#!conformance/を読んだ後update、 -tree:linked フラグと -qversion:1.0 フラグを追加しました (同じエラー メッセージが表示されます)。

java -cp "C:\Program Files\Oxygen XML Editor 17\lib\saxon9ee.jar" net.sf.saxon.Query -qversion:1.0 -tree:linked -update:on -t -q:"C:\Users\%USERNAME%\Documents\SVN Working Copies\trunk\rbscXSL\Locations2015\AbID2dsc-items.xq"

ドキュメントによると、-update:on フラグが設定されていて、XML が doc() または collection() 関数を使用して読み込まれている場合、XQuery Update を実行する必要があります。 XQuery ファイルからの変数:

declare variable $EAD as document-node()* := doc("sample_input.xml");
declare variable $ITEMS as document-node()* := doc("sample_input.AbID.xml");

他に何をしようか途方に暮れています。誰かがここで何がうまくいかないかを見ることができれば、私はどんなポインタでも大歓迎です!

4

1 に答える 1

0

独自の Saxon-EE ライセンスをお持ちですか、それとも oXygen に付属のライセンスに依存していますか? oXygen ライセンスは、oXygen 自体以外での Saxon-EE の使用を対象としていません (したがって、コマンド ラインから Saxon を実行する方法は対象外です)。おそらく、以前のリリースでは機能していたが、oXygen または Saxon のいずれかで修正された、oXygen が Saxon アクティベーションを処理する方法の抜け穴を見つけたのではないでしょうか。

于 2016-09-12T23:17:36.687 に答える