2

既存データベースの RESTXQ 実装に問題があります。RestXQTrigger が正しく機能していない可能性があると思います。

.xqm問題: 複数のファイル内の RESTXQ サービスを含むコレクションを (ダッシュボード経由で) 削除しました。ただし、サービスは登録解除されず、eXist を再起動した後でも引き続き使用できます。

この登録解除を強制する方法はありますか?つまり、以前のコレクション/ファイルを再作成し、各ファイルを 1 つずつ削除する以外に意味があり.xqmます (この方法では、トリガーが機能するようです)。

4

2 に答える 2

4

現時点では、eXist の RESTXQ はドキュメント トリガー イベントのみを実装し、コレクション トリガー イベントは実装していません。これは、実装する時間があるときに解決する必要がある単なる制限です。

名前空間には、eXist で提供される XQuery モジュールがあります: http://exquery.org/ns/restxq/exist。このモジュールの関数を使用すると、RESTXQ レジストリを手動で操作できます。で有効にできます$EXIST_HOME/conf.xml。その後、eXist を再起動して関数のドキュメントを再構築すると、関数ブラウザ アプリでこれらの関数のドキュメントを表示できるはずです。特に、次の関数が必要になる可能性が最も高いです。

exrest:deregister-module(xs:anyURI("/db/my-module.xqm"))exrest:register-module(xs:anyURI("/db/my-module.xqm"))

モジュールから個々の関数を登録および登録解除するための関数もあり、これらは呼び出されregister-resource-functionderegister-resource-function上記と似ていますが、qname#arityの形式の関数シグネチャ (xs:string として) である 2 番目の引数を取ります。"fn:substring#2"

于 2014-12-22T15:11:22.343 に答える
2

データベースを停止し、レジストリ ファイルを手動で削除できます。$EXIST_HOME/webapp/WEBINF/data/restxq.registry

于 2014-12-19T16:40:52.747 に答える