データハブサーバーサイドライブラリ

/MarkLogic/data-hub-framework/dhf.xqyライブラリモジュールでは、MarkLogicデータハブと、XQueryまたはJavaScriptコードとのやり取りを容易にする関数を公開しています。

ライブラリをインクルードするには、次のように指定します。

site.data.dhflib.require.js
site.data.dhflib.require.xqy

DHF-LIB関数

Run

プラグインとして指定された関数を実行します。このメソッドでは、関数のトレース機能を提供します。トレース機能は、一般的でない例外を捕捉し、トレースデータベースに記録します。

declare function dhf:run($context as json:object, $func)
context
このプラグインのコンテキスト。
func
実行する関数。
関数が返す内容。
site.data.dhflib.run.js
site.data.dhflib.run.xqy
Run Writer

ライタープラグインを実行します。この関数は、ライターを更新モードで実行するために必要です。すべてのデータハブプラグインは、クエリ専用モードで実行されるため、データを保持できません。この関数を使用してライターを実行すると、データを保持できます。

declare function dhf:run-writer($writer-function, $id as xs:string+, $envelope as item(), $options as map:map)
writer-function
実行するライター関数。これは、xdmp:functionでなければなりません。詳細については、以下の例を参照してください。
id
現在のFlow実行のID。
envelope
書き込むエンベロープ。
options
オプションのmap:map
site.data.dhflib.runwriter.js
site.data.dhflib.runwriter.xqy
Make Envelope

目的の形式(XMLまたはJSON)でエンベロープを作成します。データ形式がXMLの場合、名前空間はhttp://marklogic.com/entity-servicesです。

declare function dhf:make-envelope($content, $headers, $triples, $data-format) as document-node()
content
エンベロープのコンテンツセクション。
headers
エンベロープのヘッダーセクション。
トリプル
エンベロープのトリプルセクション。
data-format
エンベロープの作成に使用する形式(xml|json)。
XMLまたはJSONエンベロープ(データ形式に依存)。
site.data.dhflib.makeenvelope.js
site.data.dhflib.makeenvelope.xqy
Make Legacy Envelope

目的の形式(XMLまたはJSON)でレガシーエンベロープを作成します。データ形式がXMLの場合、名前空間はhttp://marklogic.com/data-hub/envelopeです。この関数は、1.xからアップグレードされ、すでに本番環境にレガシーエンベロープを保持するユーザーを対象としています。

declare function dhf:make-legacy-envelope($content, $headers, $triples, $data-format) as document-node()
content
エンベロープのコンテンツセクション。
headers
エンベロープのヘッダーセクション。
トリプル
エンベロープのトリプルセクション。
data-format
エンベロープの作成に使用する形式(xml|json)。
XMLまたはJSONエンベロープ(データ形式に依存)。
site.data.dhflib.makelegacyenvelope.js
site.data.dhflib.makelegacyenvelope.xqy
コンテキスト

プラグインで使用する汎用コンテキストを作成します。コンテキストはRun関数に渡されます。コンテキストでは、適切なトレースに必要な情報を定義します。

declare function dhf:context($label as xs:string) as json:object
label
トレースのためにこのプラグインに指定するラベルです。
Run関数で使用するコンテキストオブジェクト。
site.data.dhflib.context.js
site.data.dhflib.context.xqy
Content Context

コンテンツプラグインのコンテキストを作成します。これはContextのために便利なメソッドであり、「content」というラベルのみを使用します。

declare function dhf:content-context([$raw-content]) as json:object
raw-content
(オプション)入力Flowに渡される生のコンテンツ。
Run関数で使用するコンテキストオブジェクト。このコンテキストオブジェクトには、「content」というラベルが含まれています。
site.data.dhflib.contentcontext.js
site.data.dhflib.contentcontext.xqy
Headers Context

ヘッダープラグインのコンテキストを作成します。これはContextのために便利なメソッドであり、「headers」というラベルのみを使用します。

declare function dhf:headers-context($content) as json:object
content
コンテンツプラグインからの出力。
Run関数で使用するコンテキストオブジェクト。このコンテキストオブジェクトには、「headers」というラベルが含まれています。
site.data.dhflib.headercontext.js
site.data.dhflib.headercontext.xqy
Triples Context

トリプルプラグインのコンテキストを作成します。これはContextのために便利なメソッドであり、「triples」というラベルのみを使用します。

declare function dhf:triples-context($content, $headers) as json:object
content
コンテンツプラグインからの出力。
headers
ヘッダープラグインからの出力。
Run関数で使用するコンテキストオブジェクト。このコンテキストオブジェクトには、「triples」というラベルが含まれています。
site.data.dhflib.triplescontext.js
site.data.dhflib.triplescontext.xqy
Writer Context

ライタープラグインのコンテキストを作成します。これはContextのために便利なメソッドであり、「writer」というラベルのみを使用します。

declare function dhf:writer-context($envelope) as json:object
envelope
作成したエンベロープ。
Log Trace関数で使用するコンテキストオブジェクト。このコンテキストオブジェクトには、「writer」というラベルが含まれています。
site.data.dhflib.writercontext.js
site.data.dhflib.writercontext.xqy
Add Trace Input

トレース入力をコンテキストに追加します。複数のトレース入力を追加できますが、それぞれに固有のラベルが必要です。こうした入力は後でトレースに記録されます。

declare function dhf:add-trace-input($context as json:object, $input-label as xs:string, $input) as json:object
context
コンテキスト。
input-label
入力のラベル。
input
コンテキストに追加する入力。
指定したコンテキストと、追加入力を返します。
site.data.dhflib.addtraceinput.js
site.data.dhflib.addtraceinput.xqy
Log Trace

トレース機能が有効な場合は、トレースを記録します。

declare function dhf:log-trace($context as json:object)
context
コンテキスト。
site.data.dhflib.logtrace.js
site.data.dhflib.logtrace.xqy