カスタムエディタ.¶
メタデータエディタ構成は、特定のアーキテクチャ·プラグイン標準のために定義されています(参照 アーキテクチャ·プラグインを実現する )。
エディタ構成は、ナビゲーションメニューを定義する(すなわち、ビューおよびオプションカードリスト)、フィールドリスト、および使用するコントロールタイプ。コントロールは、HTMLタイプ(例えば、テキスト、日付)またはより高度なコントロールバージョン AngularJS directive それがそうです。
このようなエディタ構成を構築するためには、ユーザは、要素名に基づいてビュー、タブ、およびフィールドを正確に構築するために、標準的なXSDを理解する必要がある(参照されたい)。 source file schemas/config-editor.xsd )である。エディタルート要素を作成し、追加します。
構造と
標準命名空間
<editor xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:noNamespaceSchemaLocation="../../../../../../config-editor.xsd"
xmlns:gn="http://www.fao.org/geonetwork"
xmlns:gco="http://www.isotc211.org/2005/gco"
xmlns:gmd="http://www.isotc211.org/2005/gmd"
xmlns:gmx="http://www.isotc211.org/2005/gmx"
xmlns:srv="http://www.isotc211.org/2005/srv"
xmlns:gml="http://www.opengis.net/gml"
xmlns:xlink="http://www.w3.org/1999/xlink">
エディタ構成は、まず、いくつかの汎用的な要素記述を定義し、次いで、少なくとも1つの要素のセットのビューを定義するべきである。
サブエレメント:
田 オプションの要素(参照) フィールドタイプを定義する )
フィールドセットを有するフィールド オプションの要素(参照) 標準の要素をグループ化する )
多言語フィールド オプションの要素(参照) 多言語フィールドの定義 )
観点 必須要素(参照) 構成ビュー )
フィールドタイプを定義する¶
表単一ドメインタイプ構成を定義する.デフォルトでは簡単なテキスト入力である.このリストは,簡単なテキストを用いずに入力された例外リストを含む.可能な値リストは、:
すべてのHTML 5入力タイプまたは
AngularJSコマンド名です。Textarea要素は‘data-’で始まる必要があり,‘-textarea’で終わることができる.命令が入力またはテキスト領域に適用されず、それを含むdivに適用される場合、それは‘-div’で終わることができる。
1つの要素は1つのタイプしか定義できない。
<editor>
<fields>
<for name="gmd:abstract" use="textarea"/>
<for name="gco:Real" use="number"/>
<for name="gco:Boolean" use="checkbox"/>
<for name="gco:Date" use="data-gn-date-picker"/>
より高度なフィールドタイプを定義する別の選択は、XSLテンプレートを使用して要素を捕捉することである。例えば、この方法は、ISO 19139のキーワードに使用される(参照)。 source file schemas/iso19139/src/main/plugin/iso19139/layout/layout-custom-fields-keywords.xsl )。
標準の要素をグループ化する¶
フィールドに表示される要素リスト(すなわち、ブロック要素)。これらの要素は一般にサブ要素を含み、標準で主要部分を定義する。例えば、ISO 19139では、識別および割り当てが主要部分であり、一般に情報のセットの形態で表示されるべきである。
<editor>
<fields>...</fields>
<fieldsWithFieldset>
<name>gmd:identificationInfo</name>
<name>gmd:distributionInfo</name>
多言語フィールドの定義¶
ここでは、標準的な多言語フィールドリストが構成される。
デフォルトの場合、標準ASがISO 19139のような多言語をサポートする場合、すべてのフィールドは多言語フィールドとして表示される。除外部分で例外を定義する場合(例えばGMD:識別子、例えばISO 19139)。
その後、この部分は、展開された要素を使用して多言語フィールドを表示する方法を定義することも可能になる。展開すると、言語切替器をクリックする必要がなく、各言語の1つのフィールドを表示することができる。
<editor>
<fields>...</fields>
<fieldsWithFieldset>...</fieldsWithFieldset>
<multilingualFields>
<expanded>
<name>gmd:title</name>
<name>gmd:abstract</name>
</expanded>
<exclude>
<name>gmd:identifier</name>
<name>gmd:metadataStandardName</name>
構成ビュー¶
少なくとも1つのビューを定義する必要があるが、必要に応じてより多くのビューパターンを定義することができる。
デフォルトでは、ISO 19139は3つのビュー(すなわち、3つのビュー)を定義している。デフォルト、高度、XML)、および1つの無効化(すなわち、激励)。参照してください source file schemas/iso19139/src/main/plugin/iso19139/layout/config-editor.xml 構成に用いられる。
もう1つの基本例はダブリンコアビューである(参照 source file schemas/dublin-core/src/main/plugin/dublin-core/layout/config-editor.xml )。
新しいビューを作成するには、以下の方法を使用してください。
<views>
<view name="viewNameInLocalizationFile">
...
</view>
サブエレメント:
view 1つまたは複数(参照) ビューを定義する )
ビューを定義する¶
ビューは、タグを有し、メタデータレコードの特定のプレゼンテーションを定義する。ビューは、1つまたは複数のオプションカードから構成される。
<views>
<view name="custom-view">
....
</view>
DisplayIfRecordおよびdisplayIfServiceInfo属性を使用して、メタデータに従ってコンテンツを記録するか、または現在のユーザセッションに応じてビューを表示または表示しないことができます。
属性:
name (必ず記入する)
格納されているビュー名のキー {{schema}}/loc/{{lang}}/strings.xml
または名前空間プレフィックスを有する要素名。
<strings>
<default>Simple</default>
<inspire>INSPIRE</inspire>
<custom-view>My view</custom-view>
不自由で不自由である. (オプション)固定値: true
属性が定義されていれば,メニューからビューを隠蔽する.ビューを簡単に無効にすることができます。
クラス (オプション)
フォーム要素に設定するカスタムCSSクラスを定義する.主にインデントタイプを設定するために使用される:
GN-Label-Over-Input:フォーム入力の上にラベルを置く
GN-インデント-カラー:各フィールドセットのカラー左ブロック
GN-DINTENT-BLISSCALE:各フィールドセット上の青色スケールカラー左ブロック
カスタムエディタスタイルの追加は、Catalog/Views/Default/less/gn_Editor_default.lessを参照してください。
Up AndownControlHidden (オプション)固定値: true
このビューにアップコントロールおよび下向きコントロールを表示すべきかどうかを定義します。定義されていなければ,コントロールが表示される.これらのコントロールは、エンドユーザがより少ないコントロールを使用して動作を簡略化することができるように、ビューに隠されている。
表示属性 (オプション)固定値: true
ビューをロードする際にプロパティをデフォルトで表示します。
表示ツール提示 (オプション)固定値: true
ビューをロードすると、デフォルトですべてのプリミティブのヘルプ文書が表示されます。
DisplayTooltipsMode (オプション)
ヘルプ文書を要素(デフォルト)にドロップするか、またはアイコンをクリックすることでヘルプ文書を表示します。
カレンダーに隠された時間 (オプション)固定値: true
カレンダーコントロールは、ユーザが日付または日時のみを設定することを許可すべきかどうかを定義します。属性が設定されていない場合は、日時を設定することができる。これは、ビューレベルで制御され、別のビューに切り替えることは、日付をより多く制御することを可能にすることができる。
DisplayIfRecord (オプション)
メタデータレコードにより計算されたブール値を返すXPath式を返す.Trueであれば,そのビューが表示される.例えば。メタデータ標準名にMedSeaが含まれている場合、カスタムビューが表示されます。
<view name="custom-view"
displayIfRecord="contains(gmd:MD_Metadata/
gmd:metadataStandardName/gco:CharacterString,
'MedSea')"
DisplayIfServiceInfo (オプション)
ブール値を返すXPath式は,サービス情報木(Jeeves/root/gui要素)によって計算される.Trueであれば,そのビューが表示される.
例えば。ユーザが管理者である場合、カスタムビュー:
<view name="custom-view"
displayIfServiceInfo="count(session[profile = 'Administrator']) = 1"
DisplayIfRecordとdisplayIfServiceInfoを組み合わせて使用することができる.AND演算子を用いる.両方の条件は、ビューを表示するためにTRUEに返さなければならない。
サブエレメント:
tab 1つまたは複数(参照) タブを定義する )
平面パターン異常 オプションの要素(参照) 構成複雑要素表示 )
シソーラスリスト オプションの要素(参照) シソーラスをカスタマイズする )
タブを定義する¶
1つのビューは、少なくとも1つのタブを含む。この場合、デフォルトで表示され、一方のオプションカードから他方のオプションカードに切り替えるための上部ツールバーは表示されない。
タイトルにカスタムビューのデフォルトタブとフィールドを追加します:
<views>
<view name="custom-view">
<tab id="custom-tab" default="true">
<section>
<field xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:citation/*/gmd:title"/>
</section>
</tab>
</view>
属性:
id (必ず記入する)
URLパラメータは、タブのタブキーをアクティブにするために使用される。このキーは、中で定義されたオプションカードタグにも使用できます。 {{schema}}/loc/{{lang}}/strings.xml
それがそうです。
約束を破る. (オプション)固定値: true
このタブがビューのデフォルトオプションカードであるかどうかを定義します。1つのビューでは1つのタブのみがデフォルトのオプションカードであるべきです。
ひじのレバー (オプション)固定値: true
タブがタブではなくプルダウンメニューに表示されるべきかどうかを定義します。このオプションは、エンドユーザがあまり使用しない高度な部分に使用される。このプルダウンオプション·カードメニューでは、複数のタブをグループ化することができる。
formatter-order (オプション)
XSLTフォーマットでは、このオプションカードの順序付けインデックス(エディタ用に注意)を定義します。
mode (オプション)固定値: flat
“平面”モデルは,編集が理解すべき重要な概念である.その制御方法は
複雑な要素を示していますサブレベルを持つ要素)と
存在しない要素を表示する(すなわち標準的な要素は、現在の文書内の要素ではなく)。
当選したタブが平面モードにある場合、オプションカードは、現在のメタデータ文書にない要素を表示することはなく、フィールドセットを有する要素リストで定義されている場合にのみ、複雑な要素をセットとして表示する(参照)。 標準の要素をグループ化する )。
非“フラット”モードでの連絡先例:
“フラット”モードでの連絡先の例:
このモードは、レイアウトをより簡単にするが、通常箱詰めされたいくつかの要素を除去するためにすべてのコントロールを提供しない。エンドユーザは、平面モードでこれらの隠れた要素にアクセスするために、依然として高度なビューモードに移動することができる。
少なくとも“フラット”モードでは、査読者または管理者のためのビューを保持することを推奨する。
標準に基づいて適切なテンプレートを構築する
どんな種類の間違いも修復します。
mode (必ず記入する)
DisplayIfRecord (オプション)
メタデータレコードにより計算されたブール値を返すXPath式を返す.Trueであれば,そのビューが表示される.
例えば。メタデータ標準名にMedSeaが含まれている場合、カスタムビューが表示されます。
<view name="custom-view" displayIfRecord="contains(gmd:MD_Metadata/ gmd:metadataStandardName/gco:CharacterString, 'MedSea')"/>
DisplayIfServiceInfo (オプション)
ブール値を返すXPath式は,サービス情報木(Jeeves/root/gui要素)によって計算される.Trueであれば,そのビューが表示される.
例えば。ユーザが管理者である場合、カスタムビュー:
<view name="custom-view" displayIfServiceInfo="count(session[profile = 'Administrator']) = 1"
結合している displayIfRecord そして displayIfServiceInfo 1つを使う AND 交換手さん。この場合、両方の条件が戻らなければなりません。 true 表示するビューに使用します。
構成複雑要素表示¶
“平面”モード異常を適用するための要素。デフォルトの場合、“フラット”モードは、サブ要素のみを含み、値を含まない要素を表示しない。
使用またはin属性は、存在しない要素を表示することができる。Gmd:description ptiveKeyword要素を表示するためには,メタデータレコードにその要素が存在しなくても,あるいはそのフィールドを表示して新たな適合項を追加すべきであっても,以下の操作を行う.
<field
xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:descriptiveKeywords/*/gmd:keyword"
or="keyword"
in="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:descriptiveKeywords/*"/>
</tab>
<!-- Elements that should not use the "flat" mode -->
<flatModeExceptions>
<for name="gmd:descriptiveKeywords" />
</flatModeExceptions>
</view>
シソーラスをカスタマイズする¶
変換タイプまたは許容キーワード数を構成するために、またはウィジェットがフィールドセットまたは電子シソーラスの簡単なフィールドとして表示されなければならない場合、特定の構成を定義してください:
例えば。2つのテーマだけがインスピレーションを引き出すことができます。
<thesaurusList>
<thesaurus key="external.theme.httpinspireeceuropaeutheme-theme"
maxtags="2"
fieldset="false"
transformations=""/>
</thesaurusList>
オプションカードに部分を追加する¶
部分はフィールドのセットである.Name属性が提供される場合、折り畳み可能なHTMLフィールドセットを作成する。Name属性が提供されていない場合は,内部要素のみを提示する.例えば、ルートフィールドセットのないタブが必要な場合は、名前のない必須部分を作成し、内部要素を作成するだけです。
属性:
name (オプション)
節ベースのフィールド名のデフォルト名をカバーするためのオプション名。この名称は必ず定義されなければならない
{{schema}}/loc/{{lang}}/strings.xml
それがそうです。XPath (オプション)
マッチする要素のXPath。節にXPathが設定されている場合,どのフィールドも含むべきではない.
mode (オプション)固定値: flat
“平面”モデルは,編集が理解すべき重要な概念である.その制御方法は
複雑な要素を示していますサブレベルを持つ要素)と
存在しない要素を表示する(すなわち標準的な要素は、現在の文書内の要素ではなく)。
当選したタブが平面モードにある場合、オプションカードは、現在のメタデータ文書にない要素を表示することはなく、フィールドセットを有する要素リストで定義されている場合にのみ、複雑な要素をセットとして表示する(参照)。 標準の要素をグループ化する )。
非“フラット”モードでの連絡先例:
“フラット”モードでの連絡先の例:
このモードは、レイアウトをより簡単にするが、通常箱詰めされたいくつかの要素を除去するためにすべてのコントロールを提供しない。エンドユーザは、平面モードでこれらの隠れた要素にアクセスするために、依然として高度なビューモードに移動することができる。
少なくとも“フラット”モードでは、査読者または管理者のためのビューを保持することを推奨する。
標準に基づいて適切なテンプレートを構築する
どんな種類の間違いも修復します。
mode (必ず記入する)
or (オプション)
要素が存在しない場合に一致するローカル名.
or (オプション)
GeoNetサブ項のローカル名(すなわち存在しない要素)をマッチングする.
<field xpath="/gmd:MD_Metadata/gmd:language" or="language" in="/gmd:MD_Metadata"/>
or (オプション)
in (オプション)
調べるためのまたは名前を持つGeoNet:サブ要素のXPath.一般に、XPath属性の最後の要素の親レベルを指す。
in (オプション)
その中でGeoNetサブクラスの要素を検索する.
DisplayIfRecord (オプション)
メタデータレコードにより計算されたブール値を返すXPath式を返す.Trueであれば,そのビューが表示される.
例えば。メタデータ標準名にMedSeaが含まれている場合、カスタムビューが表示されます。
<view name="custom-view" displayIfRecord="contains(gmd:MD_Metadata/ gmd:metadataStandardName/gco:CharacterString, 'MedSea')">
フィールドを追加する¶
簡単な要素を表示しますので、お使いください xpath
属性は表示する要素を指す:
<field xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:citation/*/gmd:title"/>
フィールドタグを書き換える場合は、ご利用ください name
属性を定義し,新しいラベルを定義する {{schema}}/loc/{{lang}}/strings.xml
:
<field name="myTitle"
xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:citation/*/gmd:title"/>
メタデータ文書に存在する複雑な要素を表示するためには、以下の操作を実行してください。
<field name="pointOfContact"
xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:pointOfContact"/>
この場合、すべてのサブ要素も表示されます。
メタデータ文書にフィールドが存在する場合にフィールドが表示されるか、またはフィールドが存在しない場合に追加ボタン(指定)が提供される in
そして or
属性):
<field name="pointOfContact"
xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:pointOfContact"
or="pointOfContact"
in="/gmd:MD_Metadata/gmd:identificationInfo/*"
del="."/>
オプションカードレベルの“プレーン”モードを起動し、フォームに既存の要素のみを表示させます:
<view name="custom-view">
<tab id="custom-tab" default="true" mode="flat">
<section>
<field
xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:citation/*/gmd:title"/>
<field name="pointOfContact"
xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/gmd:pointOfContact"
or="pointOfContact"
in="/gmd:MD_Metadata/gmd:identificationInfo/*"
del="."/>
</section>
</tab>
</view>
属性:
XPath (必ず記入する)
マッチする要素のXPath。
if (オプション)
計算されるオプションのXPath表現は、要素が場合によってのみ表示されるべきかどうかを定義するために使用される(例えば、サービスメタデータ記録のみ).例えば。
<field
xpath="/gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification/
gmd:resourceConstraints/gmd:MD_LegalConstraints/gmd:otherConstraints"
if="count(gmd:MD_Metadata/gmd:identificationInfo/srv:SV_ServiceIdentification) > 0"/>
name (オプション)
デフォルト名のフィールド名を上書きします。
IsMissing Label(ラベルなし) (オプション)
メタデータレコードに要素が存在しない場合に表示されるラベル.それは現在の記録にこの要素が足りないことを示す。これは、この要素が“未評価”であることを示す適合性部分に使用することができる。実験的の
or (オプション)
GeoNetサブ項のローカル名(すなわち存在しない要素)をマッチングする.
<field xpath="/gmd:MD_Metadata/gmd:language" or="language" in="/gmd:MD_Metadata"/>
in (オプション)
その中でGeoNetサブクラスの要素を検索する.
del (オプション)
Removeボタンをクリックする際に削除する要素の相対XPath.
例えば。テンプレート·フィールドがリンクに一致し、フィールドURLの編集が許可されている場合、Removeコントロールは、親要素gmd:onlineを削除すべきである。
<field name="url" xpath="/gmd:MD_Metadata/gmd:distributionInfo/gmd:MD_Distribution/gmd:transferOptions /gmd:MD_DigitalTransferOptions/gmd:onLine/gmd:CI_OnlineResource/gmd:linkage" del="../.."> <template>
DEL属性はテンプレートモードで使用することもできるし,テンプレートモードで使用しなくてもよい.分母または距離のみを編集する場合にspatialResolutionの例を削除する.分母や距離は必要であるが,del要素はspatialResolution先祖を指すため,強制フラグは表示されず,またRemove部品はspatialResolution要素を削除している.
<field xpath="/gmd:MD_Metadata/gmd:identificationInfo/ */gmd:spatialResolution/*/gmd:distance" del="../.."/> <field xpath="/gmd:MD_Metadata/gmd:identificationInfo/ */gmd:spatialResolution/ */gmd:equivalentScale/*/gmd:denominator" del="../../../.."/>
テンプレートモードのみ (オプション)固定値: true
テンプレートパターンが唯一使用されるべきモードであるべきかどうかを定義する.この場合、フィールドは、XMLテンプレートコード断片フィールド構成に従って常に表示される。デフォルトは間違っています。
Not DisplayedIfMissing(ヒットしていない場合は表示されていない) (オプション)固定値: true
このフィールドが見つかり,GeoNetサブ項が存在する場合には,新たなフィールドを追加するGeoNetサブ項は表示されない.
use (オプション)
使用する表単一ドメインタイプ(HTML 5タイプの1つ)や使用するAngularJSコマンド.このリストはオープン列挙と定義される.コマンドの場合、デフォルトの場合、その値は簡単なテキスト入力で設定されます。コマンドがCariage Return文字を処理する必要がある場合、コマンド名は、テキスト入力ではなくテキスト領域に値を設定するために“-textarea”を含む必要がある。
use (オプション)
フィールドタイプ。クライアントで使用される任意の角度命令がここに登録される。デフォルト値は簡単なテキストフィールドです。
サブエレメント:
テンプレート オプションの要素(参照) テンプレートベースのフィールドの追加 )
テンプレートベースのフィールドの追加¶
編集するXMLコードセグメントの一時的な配置.
テンプレートフィールドは、編集すべき要素に対応するXMLセグメントからなり、編集すべき値は、表現法によって識別される。各フィールドは、その中から1つの入力フィールドを作成する値として定義される必要がある。
このパターンは、編集するXML要素の複雑さを隠蔽するために使用される。例えば。
<field name="url"
templateModeOnly="true"
xpath="/gmd:MD_Metadata/gmd:distributionInfo/g.../gmd:linkage">
<template>
<values>
<key label="url"
xpath="gmd:URL"
tooltip="gmd:linkage"/>
</values>
<snippet>t
<gmd:linkage>
<gmd:URL>{{url}}</gmd:URL>
</gmd:linkage>
</snippet>
</template>
テンプレート·フィールド·モードは、部分コード·セグメント要素の編集のみを提供する。場合によっては、コードセグメントは、編集されたコードセグメントよりも多くの要素を含むことができる。この場合、コードセグメントは、このモードを使用するときに情報が失われないように、潜在的要素のリストを識別しなければならない。Gn:copy要素を使用して、テンプレートと現在の文書を正しく組み合わせます。
例えば。GMD:MD_Identifierは、保持する必要があるGMD:Authorityノードを含む場合がある。
<snippet>
<gmd:identifier>
<gmd:MD_Identifier>
<gn:copy select="gmd:authority"/>
<gmd:code>
<gco:CharacterString>{{code}}</gco:CharacterString>
</gmd:code>
</gmd:MD_Identifier>
</gmd:identifier>
</snippet>
警告:テンプレートベースのフィールドは、ISO規格の多言語編集をサポートしていません(すなわち、主要言語のみを編集するため,多言語要素を保持する).
文書の追加やヘルプ¶
エディタにHTMLセグメントを挿入する.
<field name="edmerpName"
xpath="/gmd:MD_Metadata/gmd:identificationInfo/*/
gmd:pointOfContact[*/gmd:role/*/@codeListValue='edmerp']"
del=".">
<text ref="edmerp-help"/>
このセグメントは、ネイティブファイルstrings.xmlで定義される:
<edmerp-help>
<div class="row">
<div class="col-xs-offset-2 col-xs-8">
<p class="help-block">The European Directory for Marine Environment
Research Project (EDMERP) contains descriptions of many projects.
This catalogue is maintained ...</p>
</div>
</div>
</edmerp-help>
属性:
ref (必ず記入する)
ローカル化ファイル中の要素の表記名を挿入する.
if (オプション)
計算するXPath式.Trueであれば,テキストを表示する.
添加組¶
一群の田野.
属性:
name (必ず記入する)
節標識別子。翻訳はクライアントに設定されています。
ユーザは、その上で一括編集のフィールドを実行することができる。
属性:
name (必ず記入する)
フィールド識別子。翻訳はクライアントに設定されています。
XPath (必ず記入する)
編集する要素のXPathです。
索引フィールド (オプション)
Luceneインデックスフィールド名(ダンプフィールドで定義される)。このフィールドは、現在の記録値(TODO)をプレビューするために使用される。
use (オプション)
フィールドタイプ。クライアントで使用される任意の角度命令がここに登録される。デフォルト値は簡単なテキストフィールドです。
取り外し可能な (オプション)固定値: true
このフィールドを削除されたものとしてマークすることができるかどうかを定義する。
挿入モード (オプション)
定義フィールドは、“挿入”または“置換”であるべきである。この属性(例えば、必須フィールドの設定はご遠慮くださいタイトル)。
コードリスト (オプション)
コードリスト識別子。例えば。トピック種別のGMD:MD_TopicCategoryCode.
template
挿入に用いる値のXMLテンプレートを定義する.