私は、XML ドキュメント データベース テクノロジ、 Xquery /Xpath などについてはまったくの初心者です。したがって、これはおそらく非常に初心者の質問です。
シナリオ: 多数の XML 文書を入力として、いくつかの変換を実行したい これらの XML 文書に対して (XQuery を使用して) 実行できます。これらの結果を保存したいと思います。入力と同じ XML データ ストアに。
これまでのところ、BaseX ドキュメント データベースを使用してこれらの XML ドキュメントを保存および処理する実験を行っていますが、非常に使いやすく、感心しています。
理想的には、XQJ API ( http://xqj.net/basex/ ) を使用して BaseX とやり取りしたいと考えています。これは、XQJ がアプリケーション コードの実装を BaseX にできるだけ依存しないようにするためです。2 番目のオプションでは、Java コードを BaseX API に直接書き込みます。
問題: XQuery からの結果を新しい「ドキュメント」としてデータベースに格納する方法を理解するのに苦労しています。おそらくこれは、BaseX/XQJ API の問題よりも、XQuery (または XQuery Update) 自体の概念的な理解不足によるものです。
この単純な例では、このようなクエリがある場合、新しいドキュメントに必要な形式で XML 出力を返します。
let $items := //firstName
return <results>
{ for $item in $items
return <result> {$item} </result>
}
</results>
与える
<results>
<result>
<firstName>Bob</firstName>
</result>
<result>
<firstName>Joe</firstName>
</result>
<result>
<firstName>Tom</firstName>
</result>
</results>
<result>
後でクエリ/変換などで使用するために、この新しいドキュメントをデータベースに保存したいと思います。SQL では、これは理にかなっています。CREATE TABLE <name> SELECT <query>
orなどを行いますINSERT INTO
。しかし、XQuery で同等のものが何であるかは不明です。ここで必要なのは XQuery Update 機能だと思いますが、具体的な例を見つけるのに苦労しています。
XQJを扱う場合、これはさらに複雑になります
XQResultSequence rs = xqe.executeQuery("//firstName");
// what do i do with it now??
この XQResultSequence を BaseX を使用してデータベースに保持する方法はありますか? または、XQResultSequence で追加の XQuery を直接実行できますか?
助けてくれてありがとう!