テンプレートファイル
概要
RDEでは、データセットの構造と検証ルールを定義するためのテンプレートファイルを使用します。これらのファイルは、RDE構造化処理の実行時に重要な役割を果たし、データの整合性と品質を保証します。
前提条件
- JSON Schema の基本的な理解
- RDEデータセット構造の知識
- テキストエディタまたはJSON編集ツール
テンプレートファイルの種類
RDEで扱う主要なテンプレートファイル:
- invoice.schema.json: 送り状のスキーマ定義
- invoice.json: 送り状データの実体
- metadata-def.json: メタデータ定義
- metadata.json: メタデータの実体
invoice.schema.json について
概要
送り状のスキーマを定義するファイルです。JSON Schemaの標準仕様に準拠し、送り状の画面生成とバリデーションに使用されます。
基本構造
| invoice.schema.json の基本構造 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 | |
invoice.schema.jsonの定義
| 項目名 (JSONポインタ) | 型 | フォーマット | 必須 | 固定値 | 説明 |
|---|---|---|---|---|---|
| (ドキュメントルート) | object | - | ○ | - | JSONドキュメントのルート。 |
| /$schema | string | uri | ○ | https://json-schema.org/draft/2020-12/schema |
メタスキーマ(スキーマのスキーマ)のID。 |
| /$id | string | uri | ○ | - | このスキーマのID。ユニークであること |
| /description | string | - | - | - | スキーマの説明 |
| /type | string | - | ○ | "object" | 値は固定。 |
| /required | array | - | ○ | - | 固有情報を入力させる場合は"custom"を含める。試料情報を入力させる場合は"sample"を含める。 |
| /properties | object | - | ○ | - | |
| /custom | object | - | - | - | 送り状の固有情報を格納するオブジェクト。固有情報を入力させない場合は省く。 |
| /type | string | - | ○ | "object" | 値は固定。 |
| /label | object | - | ○ | - | 固有情報の見出しとして使用する文字列。言語別に指定する。 |
| /ja | string | - | ○ | - | 見出しの日本語表記。 |
| /en | string | - | ○ | - | 見出しの英語表記。 |
| /required | object | - | ○ | - | 必須のキー名を指定する。複数指定可。 |
| /properties | object | - | ○ | - | 固有情報項目のマップ。表示や入力する際の項目の順序は、このスキーマでの記述順に従う。 |
| /{最初のキーの名前} | object | - | - | - | 最初の項目のキー名。キーの名前はファイル全体でユニークであること。 |
| /type | string | - | ○ | - | 項目の値のデータ型。"boolean", "integer", "number", "string"のいずれか1つを指定する。"boolean","integer", "number", "string"のいずれの場合もnullを許容しない。※注1 |
| /description | string | - | - | - | 項目の説明。画面には表示しない。 |
| /examples | array | - | - | - | 値の例。画面には表示しない。 |
| /default | 任意 | - | - | - | 初期値を指定する。 |
| /{最初のスキーマキーワード} | キーワードに依存 | - | - | - | 項目の値に関する制約を指定するキーワード。 |
| /{2番目のスキーマキーワード} | キーワードに依存 | - | - | - | 同上 |
| /... | - | - | - | - | |
| /label | object | - | ○ | - | 画面に表示する項目のラベル。言語別に指定する。 |
| /ja | string | - | ○ | - | 日本語表示時のラベル。 |
| /en | string | - | ○ | - | 英語表示時のラベル。 |
| /options | object | - | - | - | 項目に関するオプションの指定。 |
| /widget | string | - | - | - | 画面部品を明示的に指定する場合に使う。"textarea"のみ指定可。通常はtypeの値に応じた画面部品が生成される。 |
| /rows | integer | - | - | - | 画面部品がtextareaの場合の行数を指定する。 |
| /unit | string | - | - | - | 画面に表示する単位。 |
| /placeholder | object | - | - | - | 画面部品に設定するプレイスホルダ。言語別に指定する。省略可能。 |
| /ja | string | - | - | - | 日本語表示時のプレイスホルダ。 |
| /en | string | - | - | - | 英語表示時のプレイスホルダ。 |
| /{2番目のキーの名前} | object | - | - | - | 2番目の項目のキー名。 |
| (以下繰り返し) | - | - | - | - | |
| /sample | object | - | - | - | 送り状の試料情報を格納するオブジェクト。試料情報を入力させない場合は省く。 |
| /type | string | - | ○ | "object" | 値は固定。 |
| /label | object | - | ○ | - | 試料情報の見出しとして使用する文字列。言語別に指定する。 |
| /ja | string | - | ○ | - | 見出しの日本語表記。 |
| /en | string | - | ○ | - | 見出しの英語表記。 |
| /properties | object | - | ○ | - | 試料のプロパティ |
| /generalAttributes | object | - | - | - | 一般項目。一般項目を入力しない場合は省略可。 |
| /type | string | - | ○ | "array" | |
| /items | array | - | ○ | - | |
| /0 | object | - | - | - | 最初の一般項目。 |
| /type | string | - | ○ | "object" | |
| /required | array | - | ○ | ["termId"] | 一般項目が持つ必須プロパティ。固定。 |
| /properties | object | - | ○ | - | |
| /termId | object | - | ○ | - | |
| /const | string | - | ○ | - | この一般項目の用語ID。 |
| /1 | object | - | - | - | 2番目の一般項目。 |
| (以下繰り返し) | - | - | - | - | |
| /specificAttributes | object | - | - | - | 分類別項目。分類別項目を入力しない場合は省略可。 |
| /type | string | - | ○ | "array" | |
| /items | array | - | ○ | "string" | |
| /0 | object | - | - | - | 最初の分類別項目。 |
| /type | string | - | ○ | "object" | |
| /required | array | - | ○ | ["classId","termId"] | 分類別項目が持つ必須プロパティ。固定。 |
| /properties | object | - | ○ | - | |
| /classId | object | - | ○ | - | |
| /const | string | uuid | ○ | - | この分類別項目の試料分類ID。 |
| /termId | object | - | ○ | - | |
| /const | string | - | ○ | - | この分類別項目の用語ID。 |
| /1 | object | - | - | - | 2番目の分類別項目。 |
| (以下繰り返し) | - | - | - | - |
invoice.schema.jsonで利用可能なスキーマキーワード一覧
項目の値に関する制約として指定可能なスキーマキーワードを下表に示す。
| type | キーワード | 値の型 | 説明 | 値の制約 |
|---|---|---|---|---|
| すべて | type | string | 値の型を指定する。取り得る値は"boolean", "integer", "number", "string"のいずれか。 | 指定できる型は1つのみ |
| const | typeに依存 | 定数を指定する。このキーワードが存在する場合は入力・編集不可。 | ||
| enum | array | 取り得る値を指定する。 | ||
| numberまたは integer | maximum | number | 数値が指定された値以下であることを宣言する。 | |
| exclusiveMaximum | number | 数値が指定された値未満であることを宣言する。 | ||
| minimum | number | 数値が指定された値以上であることを宣言する。 | ||
| exclusiveMinimum | number | 数値が指定された値より大きいことを宣言する。 | ||
| string | maxLength | integer | 文字列の長さの最大値を指定する。 | 値は2,147,483,647以下であること。 |
| minLength | integer | 文字列の長さの最小値を指定する。0以上。 | ||
| pattern | string | 正規表現で指定したパターンを持つことを宣言する。 | 開発言語に依存しないパターンに限定 | |
| format | string | 文字列のフォーマットを指定。指定可能な値はフォーマット一覧を参照のこと。 |
invoice.schema.jsonで利用可能なフォーマット一覧
スキーマキーワードformatが取り得る値を下表に示す。
| type | キーワード |
|---|---|
| date | 日付。RFC 3339のfull-date。 |
| time | 時刻。RFC 3339のfull-time。 |
| uri | URI |
| uuid | UUID。URN形式ではなく素のUUID |
| markdown | Markdown形式の文字列。このフォーマットはJSONスキーマの標準仕様には存在しない。 |
invoice.schema.jsonのオプションについて
項目に関する各種のオプションはoptionsキーワードによって指定できる。オプションとして指定可能なキーワードを下表に示す。
| キーワード | 値の型 | 説明 |
|---|---|---|
| format | string | 生成する画面部品の種類を明示的に指定する。取り得る値は”textarea”のみとする。 |
| widget | string | 生成する画面部品の種類を明示的に指定する。取り得る値は”textarea”のみとする。 |
| rows | integer | widgetの値が”textarea”の場合のrows属性の値を指定する。 |
| unit | string | 単位の表示内容を指定する。 |
| placeholder | object | 画面部品に設定するプレイスホルダ。日本語と英語を指定できる。 |
invoice.json について
概要
invoice.schema.jsonで定義されたスキーマに基づく実際のデータファイルです。
基本構造
| invoice.json の例 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | |
metadata-def.json について
概要
メタデータの構造と制約を定義するファイルです。データセットに付随するメタデータの形式を規定します。
基本構造
| metadata-def.json の例 | |
|---|---|
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | |
invoice.jsonの定義
| 項目 (JSONポインタ) | バリュー型 | フォーマット | 必須 | 説明 |
|---|---|---|---|---|
| (ドキュメントルート) | object | - | ○ | |
| /datasetId | string | uuid | ○ | データの登録先となるデータセットのID。 |
| /basic | object | - | ○ | 送り状の基本情報を格納するオブジェクト。 |
| /dateSubmitted | string | date | ○ | 送り状が提出された日。読み取り専用。 |
| /dataOwnerId | string | - | - | データを所有するユーザのID。 |
| /dataName | string | - | ○ | データの名前。 |
| /instrumentId | string | uuid | - | 装置ID。 |
| /experimentId | string | - | - | 実験ID。ユーザが自由に採番する。 |
| /description | string | - | - | データセットの説明。 |
| /custom | object | - | - | 送り状の固有情報を格納するオブジェクト。オブジェクトに含まれるプロパティは送り状スキーマによって異なる。 |
| … | - | - | - | |
| /sample | object | - | - | 送り状の試料情報を格納するオブジェクト。プロパティはsampleId, ownerIdを除いて試料APIの試料属性と一致。試料への閲覧権限が無い場合は、子のプロパティを含めて出力項目に含めない。 |
| /sampleId | string | uuid | - | 試料のID。送り状の初回提出時に指定した場合、以下のプロパティは不要。 |
| /names | array | - | ○ | 試料名のリスト。 |
| /0 | string | - | ○ | 試料の主たる名前。 |
| … | - | - | - | 2番目以降の名前。 |
| /composition | string | - | - | 試料の組成。 |
| /referenceUrl | string | uri | - | 試料の参考URL。 |
| /description | string | - | - | 試料の説明。 |
| /generalAttributes | array | - | - | 一般試料属性のリスト。画面の一般項目に該当する。 |
| /0 | object | - | - | 最初の属性。※注1 "boolean","integer", "number", "string"は、値の設定がない場合は出力しない。以下。同様。 |
| /termId | string | uuid | ○ | 属性の名前としての用語ID。 |
| /value | string | - | - | 属性の値。 |
| … | - | - | ○ | 2番目以降の属性。 |
| /specificAttributes | array | - | - | 特定試料属性のリスト。画面の分類別項目に該当する。 |
| /0 | object | - | - | 最初の属性。 |
| /classId | string | uuid | ○ | 試料分類のID。 |
| /termId | string | uuid | ○ | 属性の名前としての用語ID。 |
| /value | string | - | - | 属性の値。 |
| … | - | - | - | 2番目以降の属性。 |
| /ownerId | string | - | - | 試料管理者のID。 |
metadata-def.json
データ構造化が出力するメタデータの名前やデータ型を宣言するファイル。送り状等に入力されるメタデータは、metadata-def.jsonに定義する必要はありません。
metadata-def.jsonの構築例
metadata-def.jsonの構築例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 | |
metadata-def.jsonの定義
| 項目 (JSONポインタ) | バリュー型 | フォーマット | 必須 | 説明 |
|---|---|---|---|---|
| (ルート) | object | - | ○ | JSONドキュメントのルート。 |
| /{最初のキーの名前} | object | - | ○ | 最初のメタデータ項目のキー名。全てのキー名はファイル内でユニークであること。 |
| /name | object | - | ○ | - |
| /ja | string | - | ○ | メタデータ項目名の日本語表記。 |
| /en | string | - | ○ | メタデータ項目名の英語表記。 |
| /schema | object | - | ○ | JSON Schema (2020-12)のキーワードであるtypeとformatを使用する。これらのキーワードの定義はJSON Schemaに従う。 |
| /type | string | - | ○ | "s メタデータの値の型。取り得る値は"array", "boolean"、"integer"、"number"、"string"。"array"の場合、要素の型は規定しない。 |
| /format | string | - | - | "d メタデータの値のフォーマット。取り得る値は"date-time"、"duration"。 |
| /unit | string | - | - | メタデータ項目の値に付加する単位。単位が無い場合は省略する。 |
| /description | string | - | - | メタデータ項目の説明。 |
| /uri | string | uri | - | メタデータ項目のキーに紐づくURI/URL。 |
| /mode | string | - | - | "S このメタデータ項目が有効である計測モード。計測モードの指定がない場合は省略可。 |
| /order | integer | - | - | メタデータ項目の表示順序。値の昇順に表示する。同値の場合の表示順は不定。 |
| /{2番目のキーの名前} | object | - | - | 2番目のメタデータ項目のキー名。 |
| (以下繰り返し) | - | - |
Note
構築例で提示したmetadata-def.jsonにvariableという定義にない属性がある。この場合、RDEでは、variableを無視して取込は行わない。
metadata.json
metadata-def.jsoは、データ構造化処理が抽出したメタデータを格納するファイルです。
metadata.jsonの構築例
metadata.jsonの構築例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | |
metadata.jsonの定義
| 項目 (JSONポインタ) | バリュー型 | フォーマット | 必須 | 説明 |
|---|---|---|---|---|
| /constant | object | - | ○ | 全ての計測に共通なメタデータの集合。このファイル定義での「計測」には計算などを含む。 |
| /{キーの名前} | object | - | ○ | メタデータのキーの名前。 |
| /value | キーに依存 | - | ○ | メタデータの値。 |
| /unit | string | - | - | メタデータの値の単位。単位が無い場合は省略可。 |
| /{キーの名前} | object | - | ○ | メタデータのキーの名前。 |
| ... | - | - | ○ | |
| /variable | array | - | ○ | 計測ごとに異なるメタデータセットの配列。 |
| /0 | object | - | ○ | 最初の計測に固有なメタデータの集合。 |
| /{キーの名前} | object | - | - | メタデータのキーの名前。配列の各要素でキーが存在しない場合は省略可能。 |
| /value | キーに依存 | - | ○ | メタデータの値。 |
| /unit | string | - | - | メタデータの値の単位。単位が無い場合は省略可。 |
| /{キーの名前} | object | - | - | メタデータのキーの名前。 |
| ... | - | - | ○ | |
| /1 | object | - | ○ | 2番目の計測に固有なメタデータの集合。 |
| (以下繰り返し) | - | - | ○ |
繰り返しメタデータについて
RDEには、計測ごとに異なるメタデータセットとして繰り返しメタデータが定義可能です。繰り返しメタデータとして登録する場合、variable: 1というフィールドを追加してください。RDEのシステムには、variableは取込は行われません。
しかし、metadata-def.jsonでvariable: 1にセットしたメタデータについては、metadata.jsonでvariableに追加されます。
catalog.schema.json
データカタログのスキーマファイル。スキーマの形式はJSON Schemaの標準仕様に準拠します。
catalog.schema.json構築例
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 | |
catalog.schema.jsonの定義
| 項目 (JSONポインタ表現) | バリュー型 | フォーマット | 必須 | 説明 |
|---|---|---|---|---|
| (ドキュメントルート) | object | - | ○ | |
| /$schema | string | uri | ○ | メタスキーマ(スキーマのスキーマ)のID。固定文字列https://json-schema.org/draft/2020-12/schemaを指定。 |
| /$id | string | uri | ○ | このスキーマのID。ユニークであること。 |
| /description | string | - | - | このスキーマの説明。 |
| /type | string | - | ○ | 値は固定。 |
| /required | array | - | - | 値は固定。 |
| /properties | object | - | ○ | |
| /catalog | object | - | ○ | データカタログ項目を格納するオブジェクト。 |
| /type | string | - | ○ | 値は固定。 |
| /label | object | - | ○ | 見出しとして使用する文字列。言語別に指定する。 |
| /ja | string | - | ○ | 見出しの日本語表記。 |
| /en | string | - | ○ | 見出しの英語表記。 |
| /required | object | - | ○ | 必須のキー名を指定する。複数指定可。 |
| /properties | object | - | ○ | データカタログ項目のマップ。表示や入力する際の項目の順序は、このスキーマでの記述順に従う。 |
| /{最初のキーの名前} | object | - | ○ | 最初の項目のキー名。キーの名前はファイル全体でユニークであること。 |
| /type | string | - | ○ | 項目の値のデータ型。"boolean", "integer", "number", "string"のいずれか1つを指定する。 |
| /description | string | - | - | 項目の説明。画面には表示しない。 |
| /examples | array | - | - | 値の例。画面には表示しない。 |
| /default | 任意 | - | - | 初期値を指定する。 |
| /{最初のスキーマキーワード} | キーワードに依存 | - | - | 項目の値に関する制約を指定するキーワード。 |
| /{2番目のスキーマキーワード} | キーワードに依存 | - | - | 同上 |
| … - | - | - | ||
| /label | object | - | ○ | 画面に表示する項目のラベル。言語別に指定する。 |
| /ja | string | - | ○ | 日本語表示時のラベル。 |
| /en | string | - | ○ | 英語表示時のラベル。 |
| /options | object | - | - | 項目に関するオプションの指定。 |
| /widget | string | - | - | 画面部品を明示的に指定する場合に使う。"textarea"のみ指定可。通常はtypeの値に応じた画面部品が生成される。 |
| /rows | integer | - | - | 画面部品がtextareaの場合の行数を指定する。 |
| /unit | string | - | - | 画面に表示する単位。 |
| /placeholder | object | - | - | 画面部品に設定するプレイスホルダ。言語別に指定する。省略可能。 |
| /ja | string | - | - | 日本語表示時のプレイスホルダ。 |
| /en | string | - | - | 英語表示時のプレイスホルダ。 |
| /{2番目のキーの名前} | object | - | ○ | 2番目の項目のキー名。 |
| (以下繰り返し)- | - | - |
catalog.schema.jsonで利用可能なスキーマキーワード一覧
項目の値に関する制約として指定可能なスキーマキーワードを下表に示す。
| type | キーワード | 値の型 | 説明 | 値の制約 |
|---|---|---|---|---|
| すべて | type | string | 値の型を指定する。取り得る値は"boolean", "integer", "number", "string"のいずれか。 | 指定できる型は1つのみ |
| const | typeに依存 | 定数を指定する。このキーワードが存在する場合は入力・編集不可。 | ||
| enum | array | 取り得る値を指定する。 | ||
| numberまたは integer | maximum | number | 数値が指定された値以下であることを宣言する。 | |
| exclusiveMaximum | number | 数値が指定された値未満であることを宣言する。 | ||
| minimum | number | 数値が指定された値以上であることを宣言する。 | ||
| exclusiveMinimum | number | 数値が指定された値より大きいことを宣言する。 | ||
| string | maxLength | integer | 文字列の長さの最大値を指定する。 | 値は2,147,483,647以下であること。 |
| minLength | integer | 文字列の長さの最小値を指定する。0以上。 | ||
| pattern | string | 正規表現で指定したパターンを持つことを宣言する。 | 開発言語に依存しないパターンに限定 | |
| format | string | 文字列のフォーマットを指定。指定可能な値はフォーマット一覧を参照のこと。 |
catalog.schema.jsonのオプションについて
項目に関する各種のオプションはoptionsキーワードによって指定できる。オプションとして指定可能なキーワードを下表に示す。
| キーワード | 値の型 | 説明 |
|---|---|---|
| format | string | 生成する画面部品の種類を明示的に指定する。取り得る値は”textarea”のみとする。 |
| widget | string | 生成する画面部品の種類を明示的に指定する。取り得る値は”textarea”のみとする。 |
| rows | integer | widgetの値が”textarea”の場合のrows属性の値を指定する。 |
| unit | string | 単位の表示内容を指定する。 |
| placeholder | object | 画面部品に設定するプレイスホルダ。日本語と英語を指定できる。 |