JSON 拡張形式は、マスターデータ、技術情報、およびメタデータを取得するために使用されます。検証、並べ替えなどのいくつかの機能を含めることができるように拡張された方法で設計されています。拡張形式をアクティブにするには、data や form-data などのサフィックスのない REST カテゴリを URL で使用する必要があります。
リクエストの本文は JSON オブジェクトで表され、その内容は操作とカテゴリによって異なります。
リクエストの本文には、マスターデータ値を保持する content プロパティが少なくとも含まれています。
データセットノード
指定したノードの下のターミナルノードのターゲット値を指定します。このリクエストは、データセットノードの Update 操作に使用されます。
{
  "content": {
    "nodeName1": {
      "content": true
    },
    "nodeName2": {
      "content": 2
    },
    "nodeName3": {
      "content": "Hello"
    }
  }
}
レコード
各フィールドの値を設定して、ターゲットレコードの内容を指定します。欠落しているフィールドの場合、動作はリクエストパラメーター byDelta によって異なります。この構造体は、ローカル列挙型の依存関係フィールド値が宣言されている場合に、テーブルレコードの挿入、レコードの更新、またはセレクターの Select 操作に使用されます。
lastUpdateDate など、一部の技術データは content プロパティの横に追加できます。
{
  ...
  "lastUpdateDate": "2015-12-25T00:00:00.001",
  ...
  "content": {
    "gender": {
      "content": "Mr."
    },
    "lastName": {
      "content": "Chopin"
    },
    "lastName-en": {
      "content": "Chopin",
      "inheritedFieldMode": "inherit"
    },
    "firstName": {
      "content": "Fryderyk"
    },
    "firstName-en": {
      "content": "Frédéric",
      "inheritedFieldMode": "overwrite"
    },
    "birthDate": {
      "content": "1810-03-01"
    },
    "deathDate": {
      "content": "1849-10-17"
    },
    "jobs": {
      "content": [
        {
          "content": "CM"
        },
        {
          "content": "PI"
        }
      ]
    },
    "infos": {
      "content": [
        {
          "content": "https://en.wikipedia.org/wiki/Chopin"
        }
      ]
    }
  }
}
レコードフィールド
各フィールドの値を設定して、レコードターミナルノードの下のフィールドのターゲット値を指定します。欠落しているフィールドの場合、動作はリクエストパラメーター byDelta によって異なります。この構造は、テーブルレコードの更新にのみ使用されます。
{
  "content": [
    {
      "content": "CM"
    },
    {
      "content": "PI"
    }
  ]
}
レコードテーブル
各フィールドの値を示すことにより、1 つ以上のレコードの内容を定義します。欠落しているフィールドの場合、動作はリクエストの byDelta パラメーターによって異なります。この構造は、テーブルのレコードを挿入または更新するときに使用されます。
{
  "rows": [
    {
      "content": {
        "gender": {
          "content": "M"
        },
        "lastName": {
          "content": "Saint-Saëns"
        },
        "firstName": {
          "content": "Camille"
        },
        "birthDate": {
          "content": "1835-10-09"
        },
        ...
      }
    },
    {
      "content": {
        "gender": {
          "content": "M"
        },
        "lastName": {
          "content": "Debussy"
        },
        "firstName": {
          "content": "Claude"
        },
        "birthDate": {
          "content": "1862-10-22"
        },
        ...
      }
    }
  ]
}
削除するレコードテーブル
1 つ以上のレコードを定義します。この構造は、同じテーブルから複数のレコードを削除するときに使用されます。
{
  "rows": [
    {
      "details": "http://.../root/table/1"
    },
    {
      "details": "http://.../root/table/2"
    },
    {
      "primaryKey": "./oid=3"
    },
    {
      "foreignKey": "4"
    },
    ...
  ]
}
フィールド
ターゲットフィールドの内容を指定します。このリクエストは、フィールドの更新に使用されます。
リクエストは、content エントリのみを保持することにより、node value で定義されたものと同じ構造になります。追加のエントリは単に無視されます。
ユーザーインターフェイスを開くまたは閉じる
ユーザーインターフェイスが開いているか閉じているか、および使用不可メッセージを指定します。
{
  "content": {
    "toolStatus": {
      "content": true    // or false
    },
    "toolStatusCloseMessage": {
      "content": "Access is temporarily forbidden for maintenance."
    }
  }
}
リクエストで言及できるのは書き込み可能なフィールドのみです。これには、次の場合は含まれません。
関連付けノード
選択ノード
値関数
セッターを持たない JavaBean フィールド
認証されたユーザーのノードに対する書き込み不可権限
応答の本文は JSON オブジェクトで表され、その内容は操作とカテゴリによって異なります。
Select 操作には、2 つの異なる部分が含まれます。
meta という名前の最初のものには、応答の完全な構造が含まれています。
2 番目の content、rows、pagination... などの再グループ化には、リクエストに対応する値が含まれています。
データセットツリー
テーブルノードと非ターミナルグループノードの階層が含まれます。
{
  "meta": {
    "fields": [
      {
        "name": "rootName",
        "label": "Localized label",
        "description": "Localized description",
        "type": "group",
        "pathInDataset": "/rootName",
        "fields": [
          {
            "name": "settings",
            "label": "Settings",
            "type": "group",
            "pathInDataset": "/rootName/settings",
            "fields": [
              {
                "name": "settingA",
                "label": "A settings label",
                "type": "group",
                "pathInDataset": "/rootName/settings/settingA"
              },
              {
                "name": "settingB",
                "label": "B settings label",
                "type": "group",
                "pathInDataset": "/rootName/settings/settingB"
              }
            ]
          },
          {
            "name": "table1",
            "label": "Table1 localized label",
            "type": "table",
            "minOccurs": 0,
            "maxOccurs": "unbounded",
            "pathInDataset": "/rootName/table1"
          },
          {
            "name": "table2",
            "label": "Table2 localized label",
            "type": "table",
            "minOccurs": 0,
            "maxOccurs": "unbounded",
            "pathInDataset": "/rootName/table2"
          }
        ]
      }
    ]
  },
  "validation": [
    {
      "level": "error",
      "message": "Value must be greater than or equal to 0.",
      "details": "http://.../rootName/settings/settingA/settingA1?includeValidation=true"
    },
    {
      "level": "error",
      "message": "Field 'Settings A2' is mandatory.",
      "details": "http://.../rootName/settings/settingA/settingA2?includeValidation=true"
    }
  ],
  "content": {
    "rootName": {
      "details": "http://.../rootName",
      "openApiDetails": "http://.../api/.../rootName",
      "content": {
        "settings": {
          "details": "http://.../rootName/settings",
          "openApiDetails": "http://.../api/.../rootName/settings",
          "content": {
            "weekTimeSheet": {
              "details": "http://.../rootName/settings/settingA",
              "openApiDetails": "http://.../api/.../rootName/settings/settingA"
            },
            "vacationRequest": {
              "details": "http://.../rootName/settings/settingB",
              "openApiDetails": "http://.../api/.../rootName/settings/settingB"
            }
          }
        },
        "table1": {
          "details": "http://.../rootName/table1",
          "openApiDetails": "http://.../api/.../rootName/table1",
          "boDetails": "http://.../data-bo/.../rootName/table1"
        },
        "table2": {
          "details": "http://.../rootName/table2",
          "openApiDetails": "http://.../api/.../rootName/table2",
          "boDetails": "http://.../data-bo/.../rootName/table2"
        }
      }
    }
  }
}
meta および validation プロパティはオプションです。
データセットノード
指定されたノードの下のターミナルノードのリストが含まれます。
{
  "meta": {
    "fields": [
      {
        "name": "nodeName1",
        "label": "Localized label of the field node 1",
        "description": "Localized description",
        "type": "boolean",
        "minOccurs": 1,
        "maxOccurs": 1,
        "pathInDataset": "/rootName/.../nodeName1"
      },
      {
        "name": "nodeName2",
        "label": "Localized label of the field node 2",
        "type": "int",
        "minOccurs": 1,
        "maxOccurs": 1,
        "pathInDataset": "/rootName/.../nodeName2"
      }
    ]
  },
  "content": {
    "nodeName1": {
      "content": true
    },
    "nodeName2": {
      "content": -5,
      "validation": [
        {
          "level": "error",
          "message": "Value must be greater than or equal to 0."
        }
      ]
    }
  }
}
データセットリスト
指定されたデータスペースまたはデータセットそれぞれのルート データセットまたは子データセットのリストを含む JSON オブジェクト。
すべてのデータセット JSON オブジェクト には次のプロパティがあります。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | データセットのフォーマット設定されたキーを指定します。 形式: | はい | 
| 
 | 
 | 現在のロケールのドキュメントラベル。これは、値がキーと異なる場合にのみ存在します。 | いいえ | 
| 
 | 
 | ユーザーの権限に従ってデータセットを選択できるかどうかを指定します。 | はい | 
| 
 | 
 | データセットの REST リソース URL を指定します。 | いいえ | 
| 
 | 
 | データセットの情報 REST リソース URL を指定します。 | いいえ | 
| 
 | 
 | ユーザーの権限に従って、データセットに子があるかどうかを指定します。 | はい | 
| 
 | 
 | データセットの子の REST リソース URL を指定します。これは、 | いいえ | 
| 
 | 
 | 履歴データセットの子の REST リソース URL を指定します。これは、 以下も参照してください。 | いいえ | 
{
  "rows": [
    {
      "key": "mydataset",
      "isSelectAllowed": true,
      "details": "http://.../data/v1/BReference/mydataset",
      "information": "http://.../data/v1/BReference/mydataset:information",
      "hasChildren": true,
      "children": "http://.../data/v1/BReference/mydataset:children"
    },
    {
      // Another dataset
    }
  ],
  "pagination": {
    "firstPage": "http://.../data/v1/BReference?pageSize=4",
    "nextPage": "http://.../data/v1/BReference?pageSize=4&firstElementIndex=4",
    "previousPage": null,
    "lastPage": "http://.../data/v1/BReference?pageSize=4&firstElementIndex=8"
  }
}
データセット情報
次のプロパティを含む JSON オブジェクト
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | データセット情報に対応します。 | はい | 
| 
 | 
 | データセットのフォーマット設定されたキー値を指定します。 形式: | はい | 
| 
 | JSON  | ロケールごとに JSON  | いいえ | 
| 
 | 
 | ドキュメントのロケール。 | はい | 
| 
 | 
 | ドキュメントラベル。 | いいえ | 
| 
 | 
 | ドキュメントの説明。 | いいえ | 
| 
 | JSON  | データセットスキーマの場所を指定します。モジュールスキーマにパッケージ化されたものとパブリケーションのみがサポートされます。 | はい | 
| 
 | 
 | データセットスキーマが配置されているモジュール名を指定します。 | いいえ | 
| 
 | 
 | データセットスキーマが配置されているモジュール内のパスを指定します。 | いいえ | 
| 
 | 
 | データセットスキーマのパブリケーション名を指定します。 | いいえ | 
| 
 | 
 | データセットスキーマパブリケーションのデータモデル名を指定します。 | いいえ | 
| 
 | 
 | データセットスキーマパブリケーションのバージョン名を指定します。 | いいえ | 
| 
 | 
 | 親データセットのフォーマット設定されたキー値を指定します。親がない場合は、 | はい | 
| 
 | 
 | データセットがアクティブ化されているかどうかを指定します。 | はい | 
| 
 | 
 | 所有者プロファイルを指定します。 | はい | 
| 
 | 
 | 作成者プロファイルを指定します。 | はい | 
| 
 | 
 | 作成時刻を指定します。 | はい | 
| 
 | 
 | アップデータープロファイルを指定します。 | はい | 
| 
 | 
 | 更新時刻を指定します。 | はい | 
{
  "content": {
    "key": "mydataset",
    "documentation": [
      {
        "locale": "en-US",
        "label": "My label",
        "description": "My description"
      },
      {
        "locale": "fr-FR",
        "label": "Mon libellé",
        "description": "Ma description"
      }
    ],
    "dataModel": {
       "module": "modulename",
       "pathInModule": "/WEB-INF/ebx/schemas/mydataset.xsd"
    },
    "parent": null,
    "activated": true,
    "owner": "Beveryone",
    "creator": "Uadmin",
    "creation_time": "2023-10-10T15:49:03.023",
    "updater": "Uadmin",
    "update_time": "2023-10-10T15:49:03.005"
  }
}
テーブル
次のプロパティを含む JSON オブジェクト
(オプション) テーブルメタモデル
(オプション) 適用される並べ替え基準
(オプション) テーブル検証レポート
選択したレコードの JSON 配列に対応する rows プロパティ。各レコードは、JSON オブジェクトで表されます。レコードが選択されていない場合、JSON 配列は空です。
(オプション) pagination データを含む pagination プロパティ。
{
  "rows": [
    {
      "label": "Claude Levi-Strauss",
      "details": "http://.../root/individu/1",
      "content": {
        "id": {
          "content": 1
        },
        ...
      }
    },
    {
      "label": "Sigmoud Freud",
      "details": "http://.../root/individu/5",
      "content": {
        "id": {
          "content": 2
        },
        ...
      }
    },
    ...
    {
      "label": "Alfred Dreyfus",
      "details": "http://.../root/individu/10",
      "content": {
        "id": {
          "content": 30
        },
        ...
      }
    }
  ],
  "sortCriteria": [
    {
      "path": "/name",
      "order": "lasc"
    },
    ...
  ],
  "pagination": {
    "firstPage": null,
    "previousPage": null,
    "nextPage": "http://.../root/individu?pageRecordFilter=./id=9&pageSize=9&pageAction=next",
    "lastPage": "http://.../root/individu?pageSize=9&pageAction=last"
  }
}
レコード
以下を含む JSON オブジェクト
ラベル
(オプション) レコード URL
(オプション) 技術データ
(オプション) テーブルメタモデル
(オプション) レコード検証レポート
(オプション) レコードの継承モード。root、inherit、overwrite、または occult のいずれかになります。
レコードの内容
{
  "label": "Name1",
  "details": "http://.../rootName/table1/pk1",
  "creationDate": "2015-02-02T19:00:53.142",
  "creationUser": "admin",
  "lastUpdateDate": "2015-09-01T17:22:24.684",
  "lastUpdateUser": "admin",
  "inheritanceMode": "root",
  "meta": {
    "name": "table1",
    "label": "Table1 localized label",
    "type": "table",
    "minOccurs": 0,
    "maxOccurs": "unbounded",
    "primaryKeys": [
      "/pk"
    ],
    "inheritance": "true",
    "fields": [
      {
        "name": "pk",
        "label": "Identifier",
        "type": "string",
        "minOccurs": 1,
        "maxOccurs": 1,
        "pathInRecord": "pk",
        "filterable": true,
        "sortable": true
      },
      {
        "name": "name",
        "label": "Name",
        "type": "string",
        "minOccurs": 1,
        "maxOccurs": 1,
        "pathInRecord": "name",
        "filterable": true,
        "sortable": true
      },
      {
        "name": "name-fr",
        "label": "Nom",
        "type": "string",
        "minOccurs": 1,
        "maxOccurs": 1,
        "inheritedField": {
          "sourceNode": "./name"
        },
        "pathInRecord": "name-fr",
        "filterable": true,
        "sortable": true
      },
      {
        "name": "parent",
        "label": "Parent",
        "description": "Localized description.",
        "type": "foreignKey",
        "minOccurs": 1,
        "maxOccurs": 1,
        "foreignKey": {
          "tablePath": "/rootName/table1",
          "details": "http://.../rootName/table1"
        },
        "enumeration": "foreignKey",
        "pathInRecord": "parent",
        "filterable": true,
        "sortable": true
      }
    ]
  },
  "content": {
    "pk": {
      "content": "pk1"
    },
    "name": {
      "content": "Name1"
    },
    "name-fr": {
      "content": "Name1",
      "inheritedFieldMode": "inherit"
    },
    "parent": {
      "content": null,
      "selector":"http://.../rootName/table1?selector=true",
      "validation": [
        {
          "level": "error",
          "message": "Field 'Parent' is mandatory."
        }
      ]
    }
  },
  "validation": {
    ...
  }
}
フィールド
関連付けノードまたは選択ノードの場合、includeDetails パラメーターが true に設定されている場合に限り、関連付けられたレコードを含むターゲットテーブルが含まれます。
他の種類のノードの場合、現在のノード値が含まれます。
ユーザーインターフェイスの状態の取得
ユーザーインターフェイスのステータスと使用不可メッセージが含まれます。
{
  "content": {
    "toolStatus": {
      "content": true,
      "label": "Open",
      "selector": "http://.../domain/toolStatus/toolStatus?selector=true"
    },
    "toolStatusCloseMessage": {
      "content": "Access is temporarily forbidden for maintenance."
    }
  }
}
ノード、レコードとフィールド、プロパティと値は、解決された権限 (権限を参照) に応じて非表示になる場合があります。
このセクションは、includeMetamodel パラメーターを使用してオンデマンドでアクティブ化できます。content セクションの構造と JSON タイプについて説明します。
このセクションは、Select 操作ではデフォルトで無効になっています。
テーブルメタモデルは、次のプロパティを持つ JSON オブジェクトで表されます。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | モデルで定義されている許可されたテーブルの名前を指定します。 | はい | 
| 
 | 
 | テーブルのラベルを指定します。未定義の場合、スキーマノードの名前が返されます。 | はい | 
| 
 | 
 | テーブルの説明を指定します。 | いいえ | 
| 
 | 
 | ノードのタイプを指定します。値は常に  | はい | 
| 
 | 
 | 許可された最小レコード数を指定します。 | はい | 
| 
 | 
 | 許可された最大レコード数または  | はい | 
| 
 | 
 | テーブルの内容を履歴化するかどうかを指定します。履歴がアクティブ化されている場合、その値は  以下も参照してください。 | いいえ | 
| 
 | 
 | パスの配列として表される主キーの構成を指定します。 | はい | 
| 
 | 
 | テーブルのデータセット継承をアクティブにするかどうかを指定します。継承がアクティブになっている場合、その値は  以下も参照してください。 | いいえ | 
| 
 | 
 | フィールドの配列として表されるレコードノードの直接の子を指定します。各フィールドには、サブフィールドが再帰的に含まれる場合もあります。 | はい | 
許可された各フィールドは、次のプロパティを持つ JSON オブジェクトで表されます。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | モデルで定義されている許可フィールドの名前を指定します。 | はい | 
| 
 | 
 | ノードのラベルを指定します。未定義の場合、スキーマノードの名前が返されます。 | はい | 
| 
 | 
 | フィールドの説明を指定します。 | いいえ | 
| 
 | 
 | フィールドのタイプを指定します。これには、単純型、 | はい | 
| 
 | 
 | 許可された最小オカレンスの数を指定します。 | はい | 
| 
 | 
 | 許可された最大オカレンスまたは  | はい | 
| 
 | 
 | フィールドアクセス許可がデータモデルアクセスプロパティから読み取り専用として定義されているかどうかを指定します。つまり、そのデータを読み書きできるかどうかです。フィールドが読み取り専用の場合、その値は  以下も参照してください。 | はい | 
| 
 | 
 | フィールドを自動インクリメントするかどうかを指定します。このプロパティは、整数フィールド型でのみ使用できます。フィールドが自動インクリメントされる場合、その値は  以下も参照してください。 | いいえ | 
| 
 | 
 | ユーザー入力時に、 フィールドのプロパティ  | はい | 
| 
 | 
 | 継承されたフィールドの値ソースに関連する情報を保持します。 
{
  "inheritedField": {
    "sourceRecord": "/path/to/record", // (optional)
    "sourceNode": "./path/to/Node"
  }
}以下も参照してください。 | いいえ | 
| 
 | 
 | ターゲットテーブルに関連する情報を保持します。 以下も参照してください。 | いいえ (*) | 
| 
 | 
 | 関連付けテーブルに関連する情報を保持します。 以下も参照してください。 | いいえ (*) | 
| 
 | 
 | フィールドが列挙値であるかどうかを指定します。可能な値は次のとおりです。 
 以下も参照してください。その値に従って、 | いいえ | 
| 
 | JSON  | メタデータ列挙の依存関係リストを指定します。 以下も参照してください。 | いいえ | 
| 
 | 
 | フィールドが計算値であるかどうかを指定します。 以下も参照してください。 | いいえ | 
| 
 | 
 | リンクされたフィールドに関連する情報を保持します。 以下も参照してください。 | いいえ | 
| 
 | 
 | スキーマノードから始まる相対フィールドパスを指定します。 | いいえ (**) | 
| 
 | 
 | テーブルノードから始まる相対フィールドパスを指定します。 | いいえ (*) | 
| 
 | 
 | 
 | いいえ (*) | 
| 
 | 
 | 非表示のフィルターポリシーを指定します。 可能な値は、 | いいえ (*) | 
| 
 | 
 | 
 | いいえ (*) | 
| 
 | JSON  | フィールドの非プログラム制約を指定します。 以下も参照してください。 | いいえ | 
| 
 | JSON  | 各フィールドグループの構造と入力を保持します。 | いいえ | 
| 
 | 
 | フィールド構造が現在のテーブル内にあるのか、ビジネスオブジェクトを通じて与えられるのかを指定します。 | いいえ | 
(*) テーブル、レコード、およびレコードフィールドの操作でのみ使用できます。
(**) データセットツリー操作でのみ使用できます。
外部キーフィールドのメタモデルは、JSON オブジェクトで表されます。
{
  "dataspace": "BAuthors",
  "dataset": "Authors",
  "tablePath": "/root/Authors",
  "details": "http://.../BAuthors/Authors/root/Authors"
}
次のプロパティを保持します。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | ターゲットデータスペースまたはスナップショット識別子を指定します。指定しない場合は、テーブルのデータスペースと同じデータスペースに対応します。 | いいえ | 
| 
 | 
 | ターゲットデータセットの識別子を指定します。指定しない場合は、テーブルのデータセットと同じデータセットに対応します。 | いいえ | 
| 
 | 
 | ターゲットテーブルのパスを指定します。 | はい | 
| 
 | 
 | ターゲットテーブルの REST リソース URL を指定します。 以下も参照してください。 | いいえ | 
| 
 | 
 | 履歴ターゲットテーブルの REST リソース URL を指定します。 以下も参照してください。 | いいえ | 
関連フィールドのメタモデルは、JSON オブジェクトで表されます。このオブジェクトは、関連付けタイプに依存するプロパティを保持します。
tableRefInverse
{
  "type": "tableRefInverse",
  "dataspace": "BTitles",
  "dataset": "Titles",
  "tablePath": "/root/Titles",
  "details": "http://.../BTitles/Titles/root/Titles",
  "fieldToSource": "/root/Titles/au_id",
  "filter": "./unit_price > 10"
}
linkTable
{
  "type": "linkTable",
  "tablePath": "/root/Inventory",
  "details": "http://.../BInventory/Inventory/root/Inventory",
  "linkTablePath": "/root/Inventory",
  "fieldToSource": "/root/Inventory/store",
  "fieldToTarget": "/root/Inventory/item",
  "filter": "./price > 10"
}
xpathLink
{
  "type": "xpathLink",
  "tablePath": "/root/Inventory",
  "details": "http://.../BAuthors/Authors/root/Inventory",
  "predicate": "/root/Inventory[./price < 100]",
  "filter": "./price > 10"
}
次のプロパティを保持します。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | 関連付けタイプを指定します。可能な値は、 以下も参照してください。 | はい | 
| 
 | 
 | ターゲットデータスペースまたはスナップショット識別子を指定します。指定しない場合は、テーブルのデータスペースと同じデータスペースに対応します。 | いいえ | 
| 
 | 
 | ターゲットデータセットの識別子を指定します。指定しない場合は、テーブルのデータセットと同じデータセットに対応します。 | いいえ | 
| 
 | 
 | ターゲットテーブルのパスを指定します。 | はい | 
| 
 | 
 | ターゲットテーブルの REST リソース URL を指定します。 以下も参照してください。 | いいえ | 
| 
 | 
 | 関連付けのソーステーブルを参照するフィールドを指定します。 関連付けタイプが  | いいえ | 
| 
 | 
 | ターゲットテーブルへのフィールドのパスを指定します。 関連付けタイプが  | いいえ | 
| 
 | 
 | リンクテーブルのパスを指定します。 関連付けタイプが  | いいえ | 
| 
 | 
 | 現在のノードを基準にして、関連付けの基準を指定します。 関連付けタイプが  | いいえ | 
| 
 | 
 | 関連するオブジェクトをフィルタリングするための XPath 述語式を指定します。 | いいえ | 
リンクされたフィールドのメタモデルは、JSON オブジェクトで表されます。
{
  "relationshipField": "/au_id",
  "tablePath": "/root/Authors",
  "linkedFieldPath": "/birth_date",
  "details": "http://.../BAuthors/Authors/root/Authors"
}
次のプロパティを保持します。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | このリンクされたフィールドによって使用される関係を保持するフィールドのパスを指定します。 以下も参照してください。 | はい | 
| 
 | 
 | このリンクされたフィールドによって参照されるテーブルのパスを指定します。 | はい | 
| 
 | 
 | このリンクされたフィールドによって参照されるパスを指定します。 以下も参照してください。 | はい | 
| 
 | 
 | ターゲットテーブルの REST リソース URL を指定します。 以下も参照してください。 | いいえ | 
メタモデル列挙依存オブジェクトは、JSON オブジェクトで表されます。
{
  "localModify": false,
  "dataspace": "BAuthors",
  "dataset": "Authors",
  "targetPath": "/root/Authors",
  "details": "http://.../BAuthors/Authors/root/Authors"
}
次のプロパティを保持します。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | 列挙依存フィールドが、同じレコード内のフィールドに対して実行された変更によって影響を受けるかどうかを指定します。 | はい | 
| 
 | 
 | 列挙型依存関係のターゲットデータスペースまたはスナップショット識別子を指定します。指定しない場合は、レコードのデータスペースと同じデータスペースに対応します。 | いいえ | 
| 
 | 
 | 列挙型依存関係のターゲットデータセットの識別子を指定します。指定しない場合は、レコードのデータセットと同じデータセットに対応します。 | いいえ | 
| 
 | 
 | 列挙型依存関係のターゲットパスを指定します。 | はい | 
| 
 | 
 | 列挙型依存関係のターゲット REST リソーステーブル URL を指定します。 以下も参照してください。 | いいえ | 
リクエストに適用される並べ替え基準は、includeSortCriteria パラメーター (デフォルトでは非アクティブ) を使用して、オンデマンドで返すことができます。有効にすると、sortCriteria プロパティが応答ルートノードに直接追加されます。
sortCriteria プロパティは、順序付けられた並べ替え基準を含む JSON Array として表されます。各並べ替え基準は、次のプロパティを持つ JSON オブジェクトに対応しています。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | フィールドのパス。 | はい | 
| 
 | 
 | 可能な値は、 | はい | 
sortByRelevancy プロパティは JSON Array で表され、それ自体が次のプロパティを持つ JSON オブジェクトを保持します。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | 並べ替えを昇順で行うか降順で行うかを定義します。可能な値は、 詳細については、sortByRelevancy を参照してください。 | はい | 
検証は、includeValidation パラメーターを使用してオンデマンドでアクティブ化できます (デフォルトでは非アクティブ)。有効にすると、validation プロパティが 1 つまたは複数のメッセージとともにターゲットノードに直接追加されます。ターゲットノードのパスがないメッセージの場合、validation プロパティがルートノードに追加されます。
validation プロパティは JSON Array で表され、メッセージごとに JSON オブジェクトを保持し、検証項目に対応し、次のプロパティを持ちます。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | 検証項目の重大度。可能な値は、 | はい | 
| 
 | 
 | 検証項目の説明。 | はい | 
| 
 | 
 絶対 URL に対応します。 | 検証項目に関連付けられているリソースの URL。 関連するリソースが存在し、それが含まれている場合、テーブルスコープとデータセットスコープでのみ使用できます。 以下も参照してください。 | いいえ | 
このセクションは、ノードに読み取り/書き込み権限がある場合に自動的にアクティブになります。これは、データモデルで宣言された非プログラム的な制約を提供します。
constraints プロパティは、JSON Array で表されます。すべての制約は、JSON オブジェクトの形式を取ります。それらには次のプロパティがあります。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | 
 | 制約のタイプを指定します。 以下も参照してください。 | はい | 
| 
 | 
 | 制約の重大度レベルを指定します。可能な値は、 | はい | 
| 
 | 
 | 非プログラム制約の値を指定します。この値は、 | いいえ | 
| 
 | 
 | 
 | いいえ | 
| 
 | 
 | 
 | いいえ | 
| 
 | 
 | フィールドの値が制約に準拠していない場合に返される検証メッセージを指定します。 | はい | 
| 
 | 
 | ブロッキングまたは非ブロッキング制約の制御ポリシー管理を指定します。 詳細については、ブロッキングと非ブロッキングの制約を参照してください。 | いいえ | 
このセクションでは、プログラム以外の制約タイプをリストします。
| タイプ | 説明 | 
|---|---|
| 
 | フィールドが必須であることを定義します。 | 
| 
 | このフィールドに必要な正確な文字数を定義します。 | 
| 
 | これに必要な正確な文字数を提供するフィールドを指定します。 | 
| 
 | このフィールドに許可される最小文字数を定義します。 | 
| 
 | これに許可される最小文字数を提供するフィールドを指定します。 | 
| 
 | このフィールドに許可される最大文字数を定義します。 | 
| 
 | このフィールドに許可される最大文字数を提供するフィールドを指定します。 | 
| 
 | このフィールドに許可されていない値の包括的範囲を定義します。 | 
| 
 | このフィールドに許可されていない値のリストを定義します。 | 
| 
 | このフィールドに許可される小数点以下の最大数を定義します。 | 
| 
 | フィールドの値と一致する必要がある正規表現パターンを定義します。 | 
| 
 | この整数または 10 進数フィールドに許可される最大桁数を定義します。 | 
| 
 | このフィールドに許可される最小値 (最小値を含む) を定義します。 | 
| 
 | このフィールドに許可される最小値 (最小値を除く) を定義します。 | 
| 
 | このフィールドに許可される最小値 (最小値を含む) を提供するフィールドを定義します。 | 
| 
 | このフィールドに許可される最小値 (最小値を除く) を提供するフィールドを定義します。 | 
| 
 | このフィールドに許可される最大値 (最大値を含む) を定義します。 | 
| 
 | このフィールドに許可される最大値 (最大値を除く) を定義します。 | 
| 
 | このフィールドに許可される最大値 (最大値を含む) を提供するフィールドを定義します。 | 
| 
 | このフィールドに許可される最大値 (最大値を除く) を提供するフィールドを定義します。 | 
このセクションは、includeContent パラメーター (デフォルトでアクティブ) を使用して、オンデマンドで非アクティブ化できます。これは、許可されたユーザーのレコード値、データセット、またはコンテンツフィールドの 1 つのフィールドのコンテンツを提供します。また、ラベル、技術情報、URL などの追加情報もあります。
コンテンツは、サブノードごとにプロパティが設定された JSON オブジェクトで表されます。
| JSON プロパティ | JSON 形式 | 説明 | 必須 | 
|---|---|---|---|
| 
 | ノード値が含まれます。 | 
 | |
| 
 | 
 絶対 REST リソース URL に対応します。 | 呼び出されたときにノードの詳細を返します。 応答タイプはメタタイプによって異なります。 
 例 
 | 
 | 
| 
 | 
 絶対 REST リソース URL に対応します。 | 呼び出されたときにノード履歴の詳細を返します。 以下も参照してください。 | 
 | 
| 
 | 
 | 現在のロケールの外部キーまたは列挙ラベルが含まれます。 現在のロケールがサポートされていない場合は、デフォルトのラベルが返されます。 | 
 | 
| 
 | 
 | データセットの継承のみを考慮した、ノードの継承状態が含まれます。 以下も参照してください。 | 
 | 
| 
 | 
 | データセットとフィールドの継承を考慮した、ノードのフィールドの継承状態が含まれます。両方の継承が使用される場合、フィールドの継承はデータセットの継承よりも優先されます。 以下も参照してください。 | 
 | 
| 
 | 
 絶対 URL に対応します。 | selector 操作に適切な URL が含まれています。 例 
 | 
 | 
| 
 | 
 | 現在のノードコンテキストに関係する検証レポートが含まれています。 以下も参照してください。 | 
 | 
単純なフィールド値は JSON オブジェクトに格納され、そのコンテンツは content プロパティの値です。
| XML スキーマ | JSON 形式 | 例 | メタタイプ | 
|---|---|---|---|
| Group 
 | 
 サブノードごとのプロパティが含まれます。 | 単純オカレンスグループの例 
{
  "road": {
    "content": "11 rue scribe"
  },
  "zipcode": {
    "content": "75009"
  },
  "country": {
    "content": "France"
  }
} | 
 | 
| List 
 | 
 JSON  各オブジェクトは、ノード値として表されます。 | 
 
[
  {
    "content": 0
  },
  {
    "content": 1
  },
  {
    "content": 2
  },
  {
    "content": 3
  }
]複数オカレンスグループの例 
[
  {
    "content": {
      "road": {
        "content": "11 rue scribe"
      },
      "zipcode": {
        "content": "75009"
      },
      "country": {
        "content": "France"
      }
    }
  },
  {
    "content": {
      "road": {
        "content": "711 Atlantic Ave"
      },
      "zipcode": {
        "content": "MA 02111"
      },
      "country": {
        "content": "United States"
      }
    }
  }
] | または 
 | 
列挙型を提供するフィールドで selector プロパティで表される URL を呼び出すと、次のプロパティを含む JSON オブジェクトが返されます。
JSON オブジェクトの Array に対応する rows。各行には返される content (永続化可能) と対応する label の 2 つのエントリが含まれています。確立された可能な項目のリストは、現在のコンテキストによって異なります。
(オプション) pagination データを含む pagination (デフォルトでアクティブ)。
{
  "rows": [
    {
      "content": "F",
      "label": "feminine"
    },
    {
      "content": "M",
      "label": "masculine"
    }
  ],
  "pagination": {
    "firstPage": null,
    "nextPage": null,
    "previousPage": null,
    "lastPage": null
  }
}