私は現在、追加の配列と「レコード」を備えた XQuery エンジンである Brackit[1] と [2] を使用して、JSON クエリ機能の改善に取り組んでいます。基本的には JSONiq が使用するのと同じ XDM に従っていますが、残念ながら私は XQuery の専門家ではありません。多かれ少なかれセバスチャンからプロジェクトを引き継いで、特に一時的な機能強化を追加したと思います。
Brackit は、=>
レコード/オブジェクトの逆参照演算子を使用して、名前の値を取得します。
さらに[[expr()]]
、配列インデックスの検索に使用します。おそらく、純粋な JSONiq 仕様と同じです。
代わりに動的関数呼び出しを行う正当な理由があると確信しているので、変更する必要があるかもしれません。ただし、逆参照演算子はすべての場合に機能する可能性があると思います。これは、私の意見では、より優れた構文です。
このビジョンは、データストアで使用するための実証済みの最適化を備えた半構造化データ用のクエリコンパイラを持つことで素晴らしいと思います: http://wwwlgis.informatik.uni-kl.de/cms/dbis/projects/brackit/mission/
Brackit の決定的な機能の 1 つは、集合指向処理のための FLOWR 式のパイプライン処理です。
敬具
ヨハネス
[1] https://github.com/sirixdb/brackit
[2] http://wwwlgis.informatik.uni-kl.de/cms/fileadmin/publications/2013/Dissertation-Baechle.pdf