データハブサーバーサイドライブラリ
/MarkLogic/data-hub-framework/dhf.xqyライブラリモジュールでは、MarkLogicデータハブと、XQueryまたはJavaScriptコードとのやり取りを容易にする関数を公開しています。
ライブラリをインクルードするには、次のように指定します。
site.data.dhflib.require.js
site.data.dhflib.require.xqy
DHF-LIB関数
- Run
- Run Writer
- Make Envelope
- Make Legacy Envelope
- コンテキスト
- Content Context
- Headers Context
- Triples Context
- Writer Context
- Add Trace Input
- Log Trace
プラグインとして指定された関数を実行します。このメソッドでは、関数のトレース機能を提供します。トレース機能は、一般的でない例外を捕捉し、トレースデータベースに記録します。
declare function dhf:run($context as json:object, $func)
- context
- このプラグインのコンテキスト。
- func
- 実行する関数。
site.data.dhflib.run.js
site.data.dhflib.run.xqy
ライタープラグインを実行します。この関数は、ライターを更新モードで実行するために必要です。すべてのデータハブプラグインは、クエリ専用モードで実行されるため、データを保持できません。この関数を使用してライターを実行すると、データを保持できます。
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
目的の形式(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)。
site.data.dhflib.makeenvelope.js
site.data.dhflib.makeenvelope.xqy
目的の形式(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)。
site.data.dhflib.makelegacyenvelope.js
site.data.dhflib.makelegacyenvelope.xqy
プラグインで使用する汎用コンテキストを作成します。コンテキストはRun関数に渡されます。コンテキストでは、適切なトレースに必要な情報を定義します。
declare function dhf:context($label as xs:string) as json:object
- label
- トレースのためにこのプラグインに指定するラベルです。
site.data.dhflib.context.js
site.data.dhflib.context.xqy
コンテンツプラグインのコンテキストを作成します。これはContextのために便利なメソッドであり、「content」というラベルのみを使用します。
declare function dhf:content-context([$raw-content]) as json:object
- raw-content
- (オプション)入力Flowに渡される生のコンテンツ。
site.data.dhflib.contentcontext.js
site.data.dhflib.contentcontext.xqy
ヘッダープラグインのコンテキストを作成します。これはContextのために便利なメソッドであり、「headers」というラベルのみを使用します。
declare function dhf:headers-context($content) as json:object
- content
- コンテンツプラグインからの出力。
site.data.dhflib.headercontext.js
site.data.dhflib.headercontext.xqy
トリプルプラグインのコンテキストを作成します。これはContextのために便利なメソッドであり、「triples」というラベルのみを使用します。
declare function dhf:triples-context($content, $headers) as json:object
- content
- コンテンツプラグインからの出力。
- headers
- ヘッダープラグインからの出力。
site.data.dhflib.triplescontext.js
site.data.dhflib.triplescontext.xqy
ライタープラグインのコンテキストを作成します。これはContextのために便利なメソッドであり、「writer」というラベルのみを使用します。
declare function dhf:writer-context($envelope) as json:object
- envelope
- 作成したエンベロープ。
site.data.dhflib.writercontext.js
site.data.dhflib.writercontext.xqy
トレース入力をコンテキストに追加します。複数のトレース入力を追加できますが、それぞれに固有のラベルが必要です。こうした入力は後でトレースに記録されます。
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
トレース機能が有効な場合は、トレースを記録します。
declare function dhf:log-trace($context as json:object)
- context
- コンテキスト。
site.data.dhflib.logtrace.js
site.data.dhflib.logtrace.xqy