XSLTを用いてレコードのセットを更新する

アプリケーション変更

管理者ユーザは、ディレクトリAPIを使用してXSLT変換を介してレコードのセットを更新することができる。具体的な手順は以下のとおりである.

  • 管理者ユーザーとしてログイン

  • 更新する検索記録は、ご利用ください q サービス、サービス。特定の基準のすべてのテンプレートを選択:http://localhost:8080/geonnetwork/srv/eng/q?_schema=iso 19115-3&_isTemplate=y

  • Http://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 フォルダは、ユーザに新たな導入オプションを提供する。アプリケーションを再起動することなく、このフォルダにファイルを追加することができます。