スキーマコンフィギュレーションファイルの構文
このセクションでは、さまざまなタイプのスキーマコンフィギュレーションファイルの構文について説明します。
スキーマファイルの構文
ファイル属性
スキーマ拡張ファイルの最初の部分には、ファイルそれ自体に関する属性が含まれています。これらの属性は変更しないでください。変更すると、Cloud API が予期せぬ動作をする可能性があります。
$schema:JSON スキーマ名前空間宣言を参照します。x-gw-combine:そのファイル内のスキーマによって参照されるか、そのファイル内のスキーマによって拡張されるスキーマ定義が含まれているファイルの配列を列挙します。
definitions セクション
definitions セクションには、1 つまたは複数のスキーマの定義が列挙されます。スキーマごとに、以下の属性が指定されます。
- API 定義ドキュメントで使用される、スキーマの
titleとdescription。 - Cloud API 用で、通常は object に設定される、リソース
type。 - スキーマの
propertiesのリスト。
すべてのスキーマプロパティに以下が含まれています。
- プロパティ名(下の例内の
activityPatternなど) - API 定義ドキュメントで使用される、プロパティの
titleとdescription。 - プロパティの「データ型」。
- スカラー値プロパティの場合は、
typeが指定されます。これにより、プロパティの JSON データ型が定義されます。 - 複合値プロパティ(タイプキーなど)の場合は、
refが指定されます。これにより、プロパティの URI 参照が定義されます。
- スカラー値プロパティの場合は、
- プロパティの業務機能に必要なオプション属性。
Activity スキーマの一部を以下に示します。"definitions": {
"Activity": {
"title": "Activity",
"description": "An `Activity` is an assignable item...",
"type": "object",
"properties": {
"activityPattern": {
"title": "Activity pattern",
"description": "The code of the `ActivityPattern` used...
"type": "string"
...
},
"activityType": {
"title": "Activity type",
"description": "The type of this activity, such as `general`...",
"$ref": "#/definitions/TypeKeyReference",
...
},
...
}
}
}マッピングファイル構文
ファイル属性
マッピング拡張ファイルの最初の部分には、ファイルそれ自体に関する属性が含まれています。これらの属性は変更しないでください。変更すると、Cloud API が予期せぬ動作をする可能性があります。
$schema:JSON スキーマ名前空間宣言を参照します。x-gw-combine:そのファイル内のスキーマによって参照されるか、そのファイル内のスキーマによって拡張されるスキーマ定義が含まれているファイルの配列を列挙します。
mapping セクション
マッピングファイルには mappers セクションが含まれています。このセクションでは、1 つまたは複数の API リソースと、リソース内の読み取り可能なプロパティごとのデータとプロパティのマッピングが列挙されます。
リソースごとに、以下の属性が指定されます。
- リソースの構造を定義する
schemaDefinition- これは、
schema.jsonファイル内で宣言されたスキーマを参照します。
- これは、
- このリソースに関するマッピング情報の
rootとして機能するデータモデルエンティティ。 propertiesのリスト
すべてのマッパープロパティに以下が含まれています。
- プロパティ名(下の例内の
closeDate、description、mandatoryなど)path属性これは、プロパティの値を生成するために使用される Gosu 式です。通常、この式は、ルート属性で定義されたエンティティからの値を返します。- プロパティの特性によっては、追加の属性がある場合があります。
Activity リソースのマッパーの部分を以下に示します。"mappers": {
"Activity": {
"schemaDefinition": "Activity",
"root": "entity.Activity",
"properties": {
"closeDate": {
"path": "Activity.CloseDate"
},
"description": {
"path": "Activity.Description"
},
"mandatory": {
"path": "Activity.Mandatory"
},
...
}
}
}次の点に注目します。
- このリソースは、名前が
Activityのスキーマで定義されます(このスキーマは、他のschema.jsonファイルで定義されます)。 - リソースマッピングのルートは
entity.Activityです。 - リソースのインスタンスごとに:
closeDateプロパティがActivityエンティティのCloseDateフィールドに設定されます。descriptionプロパティがActivityエンティティのDescriptionフィールドに設定されます。mandatoryプロパティがActivityエンティティのMandatoryフィールドに設定されます。
アップデータファイルの構文
ファイル属性
アップデータファイルの最初の部分には、ファイルそれ自体に関する属性が含まれています。これらの属性は変更しないでください。変更すると、Cloud API が予期せぬ動作をする可能性があります。
$schema:JSON スキーマ名前空間宣言を参照します。x-gw-combine:そのファイル内のスキーマによって参照されるか、そのファイル内のスキーマによって拡張されるスキーマ定義が含まれているファイルの配列を列挙します。
updaters セクション
アップデータファイルには updaters セクションが含まれています。このセクションでは、1 つまたは複数の API リソースと、リソース内の書き込み可能なプロパティごとのデータとデータモデルのマッピングが列挙されます。
リソースごとに、以下の属性が指定されます。
- リソースの構造を定義する
schemaDefinition- これは、
schema.jsonファイル内で宣言されたスキーマを参照します。
- これは、
- このリソースに関するマッピング情報の
rootとして機能するデータモデルエンティティ。 propertiesのリスト
すべてのアップデータプロパティに以下が含まれています。
- プロパティ名(下の例内の
descriptionやmandatoryなど) path属性これにより、リソースプロパティごとに、リソースプロパティが書き込まれるデータモデルエンティティプロパティが定義されます。- プロパティの特性によっては、追加の属性がある場合があります。
Activity リソースのアップデータの部分を以下に示します。"updaters": {
"Activity": {
"schemaDefinition": "Activity",
"root": "entity.Activity",
"properties": {
"description": {
"path": "Activity.Description"
},
"mandatory": {
"path": "Activity.Mandatory"
},
...
}
}
}次の点に注目します。
- このリソースは、名前が
Activityのスキーマで定義されます(このスキーマは、他のschema.jsonファイルで定義されます)。 - リソースマッピングのルートは
entity.Activityです。 - リソースのインスタンスごとに:
descriptionプロパティの値がActivityエンティティのDescriptionフィールドに書き込まれます。mandatoryプロパティの値がActivityエンティティのMandatoryフィールドに書き込まれます。
マッピングファイルには表示されるが、アップデータファイルには表示されないプロパティがあることに注意してください。この現象は、読み取り専用のプロパティでよく見られます。例えば、Activity エンティティには、アクティビティをクローズするときにアプリケーションが設定する CloseDate プロパティがあります。このプロパティは、読み取り可能なため、マッピングファイルに表示されます。しかし、書き込みはできないため、アップデータファイルには表示されません。
拡張ファイル
スキーマをコンフィギュレーションする場合は、必ず、拡張ファイルを変更します。Cloud API のコンテキストでは、拡張ファイルは、保険会社がベースコンフィギュレーションを追加またはオーバーライドするように変更可能なファイルです。すべての拡張ファイルが、その名前の中に「ext」が含まれ、ext サブディレクトリに配置されています。
スキーマコンフィギュレーションでは、Cloud API に以下のタイプの拡張ファイルが含まれています。
- 保険会社が新しいプロパティをスキーマに追加するスキーマ拡張ファイル
- 保険会社がデータモデルからスキーマへのデータのマップ方法を定義するマッピング拡張ファイル
- 保険会社がスキーマからデータモデルへのデータのマップ方法を定義するアップデータ拡張ファイル(書き込み可能なプロパティ用)
すべての API に独自の拡張ファイルのセットが含まれています。ファイルの名前と、それらにアクセスするために使用可能な Guidewire Studio 内のノードは次のとおりです。
<API>_ext-1.0.schema.json<API>_ext-1.0.mapping.json<API>_ext-1.0.updater.json
拡張ファイルには、ベースコンフィギュレーションファイルと同じ構文が含まれています。ただし、多くの場合、拡張ファイルでは、スキーマの拡張に必要のない一部の情報が省略されています。例えば、コンフィギュレーションファイルでリソースが宣言されている場合は、スキーマファイルでは、そのリソースの title、description、および type が定義されます。同じリソースを追加のプロパティを含む拡張ファイルで拡張する場合は、title、description、または type を繰り返す必要がありません。これらの値は、コンフィギュレーションファイルから継承されます。
すべての ext サブディレクトリに兄弟関係にある gw サブディレクトリがあります。gw サブディレクトリに、コンフィギュレーションファイルが格納されています。保険会社がこれらのファイルを変更することはできません。ただし、これらのファイルを参照すれば、ベースコンフィギュレーションリソースがどのように定義されているかを確認するのに役立つ可能性があります。