スキーマコンフィギュレーションファイルの構文

このセクションでは、さまざまなタイプのスキーマコンフィギュレーションファイルの構文について説明します。

スキーマファイルの構文

ファイル属性

スキーマ拡張ファイルの最初の部分には、ファイルそれ自体に関する属性が含まれています。これらの属性は変更しないでください。変更すると、Cloud API が予期せぬ動作をする可能性があります。

  • $schema:JSON スキーマ名前空間宣言を参照します。
  • x-gw-combine:そのファイル内のスキーマによって参照されるか、そのファイル内のスキーマによって拡張されるスキーマ定義が含まれているファイルの配列を列挙します。

definitions セクション

definitions セクションには、1 つまたは複数のスキーマの定義が列挙されます。スキーマごとに、以下の属性が指定されます。

  • API 定義ドキュメントで使用される、スキーマの titledescription
  • Cloud API 用で、通常は object に設定される、リソース type
  • スキーマの properties のリスト。

すべてのスキーマプロパティに以下が含まれています。

  • プロパティ名(下の例内の activityPattern など)
  • API 定義ドキュメントで使用される、プロパティの titledescription
  • プロパティの「データ型」。
    • スカラー値プロパティの場合は、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 のリスト

すべてのマッパープロパティに以下が含まれています。

  • プロパティ名(下の例内の closeDatedescriptionmandatory など)
    • 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 のリスト

すべてのアップデータプロパティに以下が含まれています。

  • プロパティ名(下の例内の descriptionmandatory など)
  • 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
    • integration > schemas > ext > <API>.v1
  • <API>_ext-1.0.mapping.json
    • integration > mappers > ext > <API>.v1
  • <API>_ext-1.0.updater.json
    • integration > updaters > ext > <API>.v1

拡張ファイルには、ベースコンフィギュレーションファイルと同じ構文が含まれています。ただし、多くの場合、拡張ファイルでは、スキーマの拡張に必要のない一部の情報が省略されています。例えば、コンフィギュレーションファイルでリソースが宣言されている場合は、スキーマファイルでは、そのリソースの titledescription、および type が定義されます。同じリソースを追加のプロパティを含む拡張ファイルで拡張する場合は、titledescription、または type を繰り返す必要がありません。これらの値は、コンフィギュレーションファイルから継承されます。

すべての ext サブディレクトリに兄弟関係にある gw サブディレクトリがあります。gw サブディレクトリに、コンフィギュレーションファイルが格納されています。保険会社がこれらのファイルを変更することはできません。ただし、これらのファイルを参照すれば、ベースコンフィギュレーションリソースがどのように定義されているかを確認するのに役立つ可能性があります。