XSLTを用いてレコードのセットを更新する¶
アプリケーション変更¶
管理者ユーザは、ディレクトリAPIを使用してXSLT変換を介してレコードのセットを更新することができる。具体的な手順は以下のとおりである.
管理者ユーザーとしてログイン
更新する検索記録は、ご利用ください
q
サービス、サービス。特定の基準のすべてのテンプレートを選択:http://localhost:8080/geonnetwork/srv/eng/q?_schema=iso 19115-3&_isTemplate=yHttp://localhost:8080/geonnetwork/srv/eng/metadata.select?selected=add-allを使用して、検索に一致するすべてのレコードを選択します。
使用http://localhost:8080/geonnetwork/srv/eng/md.processing.Batch?process=my-custom-processトリガプロセス
進捗レポートをhttp://localhost:8080/geonetwork/srv/eng/md.processing.batch.reportで確認
このプロセスの終了時に、要約は、以下のことを説明する。
処理する記録数
処理する記録数
見つからないレコード数(選択後にレコードが削除されないように)
誤り記録数
プロセスがその基準で定義されていないレコード数
現在ユーザが編集できないレコード数
プロセスを1つのメタデータレコードに適用することも可能であり,方法は使用する. md.processing
サービス。例えば。Http://localhost:8080/geonnetwork/srv/eng/md.process?uuid=46 eac 9 e 4-33 cb-45 b 7-a 104-7 bcc 8 e 654 c 98&process=keyds-mapper&search=water&Replace=Water
パラメータは:
Uuidまたはid:メタデータuuidまたはメタデータ内部識別子
プロセス:プロセス識別子
プロセスに応じて他の追加パラメータを追加する(以下参照).
バッチ処理を追加する¶
処理ファイルを作成しています¶
Batch Processは各アーキテクチャに基づいて定義される.標準の利用可能なプロセスリストをチェックしますので、チェックしてください <datadirectory>/config/schemaPlugins/<schemaId>/process
ファイルです。
♪the process
フォルダにはXSLTのセットが含まれている.拡張子を持たないXSLTファイルの名前は、プロセスをトリガするために使用されます。例えば使用すれば md.processing.batch?process=my-custom-process
プロセスXSLTを名前付けしなければならない. my-custom-process.xsl
それがそうです。
記録を処理しているXML¶
XSLTプロセスは,選択中の各メタデータレコードに適用される.各文書はルート要素としてメタデータXML文書を持つ. geonet:info
元素です。♪the geonet:info
要素はメタデータに関するメタデータを含む.このプロセスは,データベースに保存する際にレコードを変更しないように,この要素を削除しなければならない.
<gmd:MD_Metadata>
...
<geonet:info xmlns:geonet="http://www.fao.org/geonetwork">
<id>73481</id>
<uuid>bb151890-2da5-4cfb-8659-7839e7138be7</uuid>
<schema>iso19139</schema>
<createDate>2015-12-23T17:05:36</createDate>
<changeDate>2015-12-23T18:07:40</changeDate>
<source>2cc603e1-981c-41a2-a183-39429c7dcc49</source>
<ownerId>1</ownerId>
<edit>true</edit>
<owner>true</owner>
<isPublishedToAll>false</isPublishedToAll>
<view>true</view>
<notify>true</notify>
<download>true</download>
<dynamic>true</dynamic>
<featured>true</featured>
<selected>true</selected>
</geonet:info>
</gmd:MD_Metadata>
パラメータを追加する¶
XSLTプロセスは,以下の命令を用いてURLで提供されるパラメータを検索することができる. xsl:param
それがそうです。例えば使用すれば md.processing.batch?process=my-custom-process&myParameter=test
それがそうです。
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform" version="2.0"
exclude-result-prefixes="#all">
<xsl:param name="myParameter" select="''"/>
本例では、 xsl:param
変数として使用することができる $myParameter
URLパラメータによって設定されていない場合には、ヌル値を有することになる。パラメータ設定が正しいかどうかチェックしますので、ご利用ください xsl:message
ログファイルに情報を出力する.
<xsl:param name="myParameter" select="''"/>
<xsl:message>myParameter: <xsl:value-of select="$myParameter"/></xsl:message>
XSLTプロセスはまたディレクトリパラメータにアクセスすることができる:
GuiLang:現在のユーザインタフェース言語
BaseUrl:サービスベースURL(例えば
http://localhost:8080/geonetwork
)CatalogUrl:ディレクトリURL(例えば
http://localhost:8080/geonetwork/srv/eng
)NodeId:ノード識別子(デフォルト)
srv
)
これらのパラメータの1つをプロセスで使用するには、使用してください xsl:param
:
<xsl:param name="guiLang" select="''"/>
コピーするのが最低の要求です¶
プロセスは少なくとも以下のようにしなければならない.
すべてのもののコピー
GeoNetの削除:情報メタデータ
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:geonet="http://www.fao.org/geonetwork" version="2.0"
exclude-result-prefixes="#all">
<!-- Do a copy of every nodes and attributes recursively -->
<xsl:template match="@*|node()">
<xsl:copy>
<xsl:apply-templates select="@*|node()"/>
</xsl:copy>
</xsl:template>
<!-- Remove geonet:* elements. -->
<xsl:template match="geonet:*" priority="2"/>
</xsl:stylesheet>
そして,カスタムフローはメタデータレコードを更新する.
加工事例.¶
見 source file schemas/iso19139/src/main/plugin/iso19139/process 例を挙げましょう
プロセスが実行しなければならない最低操作に加えて、プロセスは、新しいテンプレートを使用して他の動作を定義することができる:
要素を削除する。例。DQ_TopologicalConsistencyに関するすべての報告を削除しています:
<xsl:template match="gmd:report[gmd:DQ_TopologicalConsistency]"
priority="2"/>
優先度を2に設定して、すべてのコンテンツをコピーするマスターテンプレートに優先するようにテンプレートを設定します。
プロセスをアドバイスとして登録する¶
見 メタデータの内容改善に関する提案 それがそうです。
プロセスをエディタ操作として登録する¶
エディタでXSLTプロセスを使用して特定の動作をトリガすることができます。例えば、メタデータ識別子で終わるリソース識別子が定義されていない場合、INSPIREビューは、リソース識別子を追加するボタンを表示する。
<action type="batch"
process="add-resource-id"
if="count(gmd:MD_Metadata/gmd:identificationInfo/*/
gmd:citation/gmd:CI_Citation/
gmd:identifier[
ends-with(
gmd:MD_Identifier/gmd:code/gco:CharacterString,
//gmd:MD_Metadata/gmd:fileIdentifier/gco:CharacterString
)]) = 0"/>
Ref:`作成-カスタム-編集‘;を参照されたい。
導入のためのXSLT変換の追加¶
XSL変換の追加 web/geonetwork/xsl/conversion/import
フォルダは、ユーザに新たな導入オプションを提供する。アプリケーションを再起動することなく、このフォルダにファイルを追加することができます。