拡張形式

最終公開日 : Sep 16, 2026

はじめに

JSON 拡張形式は、マスターデータ、技術情報、およびメタデータを取得するために使用されます。これは、検証、並べ替えなどのいくつかの機能を含めることができるように拡張された方法で設計されています。拡張形式をアクティブにするには、data や form-data などのサフィックスのない REST カテゴリを URL で使用する必要があります。

グローバル構造

JSON リクエスト本文

リクエストの本文は 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 応答本文

応答の本文は 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 形式
説明
必須
key
String
データセットのフォーマット設定されたキーを指定します。
形式:[a-zA-Z_][-a-zA-Z0-9_.]*
はい
label
String
現在のロケールのドキュメントラベル。これは、値がキーと異なる場合にのみ存在します。
いいえ
isSelectAllowed
Boolean
ユーザーの権限に従ってデータセットを選択できるかどうかを指定します。
はい
details
String
データセットの REST リソース URL を指定します。
いいえ
information
String
データセットの情報 REST リソース URL を指定します。
いいえ
hasChildren
Boolean
ユーザーの権限に従って、データセットに子があるかどうかを指定します。
はい
children
String
データセットの子の REST リソース URL を指定します。これは、hasChildren プロパティキーの値が true で、詳細リンクが要求された場合にのみ存在します。
いいえ
childrenHistory
String
履歴データセットの子の REST リソース URL を指定します。これは、hasChildren プロパティ キーの値が true で、詳細リンクが要求された場合にのみ存在します。
以下も参照してください。:
いいえ
{
  "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 形式 説明 必須
    content Object データセット情報に対応します。 はい
    key String データセットのフォーマット設定されたキー値を指定します。 形式:[a-zA-Z_][-a-zA-Z0-9_.]*、最大 64 文字に制限されます。 はい
    documentation JSON オブジェクトの Array ロケールごとに JSON オブジェクトを使用してローカライズされたドキュメントに対応します。 いいえ
    locale (documentation プロパティの下にネスト) String ドキュメントのロケール。 はい
    label (documentation プロパティの下にネスト) String ドキュメントラベル。 いいえ
    description (documentation プロパティの下にネスト) String ドキュメントの説明。 いいえ
    dataModel JSON オブジェクト データセットスキーマの場所を指定します。モジュールスキーマにパッケージ化されたものとパブリケーションのみがサポートされます。 はい
    module (dataModel プロパティの下にネスト) String データセットスキーマが配置されているモジュール名を指定します。 いいえ
    pathInModule (dataModel プロパティの下にネスト) String データセットスキーマが配置されているモジュール内のパスを指定します。 いいえ
    publication (dataModel プロパティの下にネスト) String データセットスキーマのパブリケーション名を指定します。 いいえ
    dataModel (dataModel プロパティの下にネスト) String データセットスキーマパブリケーションのデータモデル名を指定します。 いいえ
    versionName (dataModel プロパティの下にネスト) String データセットスキーマパブリケーションのバージョン名を指定します。 いいえ
    parent String 親データセットのフォーマット設定されたキー値を指定します。親がない場合は、null 値が保持されます。 はい
    activated Boolean データセットがアクティブ化されているかどうかを指定します。 はい
    owner String 所有者プロファイルを指定します。 はい
    creator String 作成者プロファイルを指定します。 はい
    creation_time Date 作成時刻を指定します。 はい
    updater String アップデータープロファイルを指定します。 はい
    update_time Date 更新時刻を指定します。 はい
    {
      "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 形式
説明
必須
name
String
モデルで定義されている許可されたテーブルの名前を指定します。
はい
label
String
テーブルのラベルを指定します。未定義の場合、スキーマノードの名前が返されます。
はい
説明
String
テーブルの説明を指定します。
いいえ
type
String
ノードのタイプを指定します。値は常に table と等しくなります。
はい
minOccurs
Number
許可された最小レコード数を指定します。
はい
maxOccurs
Number または String
許可された最大レコード数または unbounded を指定します。
はい
history
Boolean
テーブルの内容が履歴化されるかどうかを指定します。履歴がアクティブ化されている場合、その値は true であり、そうでない場合は false です。
以下も参照してください。:
いいえ
primaryKeyFields
Array
パスの配列として表される主キーの構成を指定します。
はい
inheritance
Boolean
テーブルのデータセット継承をアクティブにするかどうかを指定します。その値は、継承がアクティブ化されている場合は true であり、それ以外の場合は false です。
以下も参照してください。:
いいえ
fields
Array
フィールドの配列として表されるレコードノードの直接の子を指定します。各フィールドには、サブフィールドが再帰的に含まれる場合もあります。
はい

フィールドの構造

許可された各フィールドは、次のプロパティを持つ JSON オブジェクトで表されます。
JSON プロパティ
JSON 形式
説明
必須
name
String
モデルで定義されている許可フィールドの名前を指定します。
はい
label
String
ノードのラベルを指定します。未定義の場合、スキーマノードの名前が返されます。
はい
説明
String
フィールドの説明を指定します。
いいえ
type
String
フィールドのタイプを指定します。これには、単純型、group、table、foreignKey、association などがあります。
はい
minOccurs
Number
許可された最小オカレンスの数を指定します。
はい
maxOccurs
Number または String
許可された最大オカレンスまたは unbounded の数を指定します。
はい
readOnly
Boolean
フィールドアクセス許可がデータモデルアクセスプロパティから読み取り専用として定義されているかどうかを指定します。つまり、そのデータの読み取りまたは書き込みが可能かどうかです。フィールドが読み取り専用の場合、その値は true であり、それ以外の場合は false です。
以下も参照してください。:
はい
autoIncrement
Boolean
フィールドを自動インクリメントするかどうかを指定します。このプロパティは、整数フィールドタイプでのみ使用できます。フィールドが自動インクリメントされる場合、その値は true であり、それ以外の場合は false です。
以下も参照してください。:
いいえ
checkNullInput
Boolean
ユーザー入力時に null フィールドの制約のチェックをアクティブにするかどうかを指定します。その値は、アクティブ化されている場合は true、それ以外の場合は false です。
制約チェックは、フィールドのプロパティ osd:checkNullInput が trueに設定されている場合にアクティブになります。
はい
inheritedField
Object
継承されたフィールドの値ソースに関連する情報を保持します。
{
  "inheritedField": {
    "sourceRecord": "/path/to/record", // (optional)
    "sourceNode": "./path/to/Node"
  }
}
以下も参照してください。:
いいえ
foreignKey
Object
ターゲットテーブルに関連する情報を保持します。
以下も参照してください。:
いいえ (*)
association
Object
関連付けテーブルに関連する情報を保持します。
以下も参照してください。:
いいえ (*)
enumeration
String
フィールドが列挙値であるかどうかを指定します。可能な値は次のとおりです。
  • dynamic
  • foreignKey
  • nomenclature
  • programmatic
  • resource
  • static
以下も参照してください。:
その値に従って、selector リクエストパラメーターを使用してフィールドを使用して可能な値を取得できるかどうかを示します。
いいえ
enumerationDependencies
JSON オブジェクトの Array
メタデータ列挙の依存関係リストを指定します。externalKey、dynamic、または programmatic の列挙型でのみ使用できます。
以下も参照してください。:
いいえ
valueFunction
Boolean
フィールドが計算値であるかどうかを指定します。
以下も参照してください。:
いいえ
linkedField
Object
リンクされたフィールドに関連する情報を保持します。
いいえ
pathInDataset
String
スキーマノードから始まる相対フィールドのパスを指定します。
いいえ (**)
pathInRecord
String
テーブルノードから始まる相対フィールドのパスを指定します。
いいえ (*)
filterable
Boolean
filter リクエストパラメーターを使用してレコードをフィルタリングするためにフィールドを使用できるかどうかを指定します。
いいえ (*)
hiddenFilterPolicy
String
非表示のフィルターポリシーを指定します。
可能な値は、textSearchOnly、true、または falseです。
いいえ (*)
sortable
Boolean
sort リクエストパラメーターを使用して、フィールドを並べ替え基準で使用できるかどうかを指定します。
いいえ (*)
constraints
JSON オブジェクトの Array
フィールドの非プログラム制約を指定します。
以下も参照してください。:
いいえ
fields
JSON オブジェクトの Array
各フィールドグループの構造と入力を保持します。
いいえ
isBusinessObjectRelation
Boolean
フィールド構造が現在のテーブル内にあるのか、ビジネスオブジェクトを通じて与えられるのかを指定します。
いいえ
(*) テーブル、レコード、およびレコードフィールド操作でのみ使用できます。
(**) データセットツリー操作でのみ使用できます。

外部キーフィールドの構造

外部キーフィールドのメタモデルは、JSON オブジェクトで表されます。
{
  "dataspace": "BAuthors",
  "dataset": "Authors",
  "tablePath": "/root/Authors",
  "details": "http://.../BAuthors/Authors/root/Authors"
}
次のプロパティを保持します。
JSON プロパティ
JSON 形式
説明
必須
dataspace
String
ターゲットデータスペースまたはスナップショット識別子を指定します。指定しない場合は、テーブルのデータスペースと同じデータスペースに対応します。
いいえ
dataset
String
ターゲットデータセットの識別子を指定します。指定しない場合は、テーブルのデータセットと同じデータセットに対応します。
いいえ
tablePath
String
ターゲットテーブルのパスを指定します。
はい
details
String
ターゲットテーブルの REST リソース URL を指定します。
以下も参照してください。:
いいえ
historyDetails
String
履歴ターゲットテーブルの 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 形式
説明
必須
type
String
関連付けタイプを指定します。可能な値は、tableRefInverse、linkTable、xpathLink です。
以下も参照してください。:
はい
dataspace
String
ターゲットデータスペースまたはスナップショット識別子を指定します。指定しない場合は、テーブルのデータスペースと同じデータスペースに対応します。
いいえ
dataset
String
ターゲットデータセットの識別子を指定します。指定しない場合は、テーブルのデータセットと同じデータセットに対応します。
いいえ
tablePath
String
ターゲットテーブルのパスを指定します。
はい
details
String
ターゲットテーブルの REST リソース URL を指定します。
以下も参照してください。:
いいえ
fieldToSource
String
関連付けのソーステーブルを参照するフィールドを指定します。
関連付けタイプが tableRefInverse または linkTable のどちらであるかを定義します。
いいえ
fieldToTarget
String
ターゲットテーブルへのフィールドのパスを指定します。
関連付けタイプが linkTable の場合に定義されます。
いいえ
linkTablePath
String
リンクテーブルのパスを指定します。
関連付けタイプが linkTable の場合に定義されます。
いいえ
predicate
String
現在のノードを基準にして、関連付けの基準を指定します。
関連付けタイプが xpathLink の場合に定義されます。
いいえ
filter
String
関連するオブジェクトをフィルタリングするための XPath 述語式を指定します。
いいえ

リンクされたフィールドの構造

リンクされたフィールドのメタモデルは、JSON オブジェクトで表されます。
{
  "relationshipField": "/au_id",
  "tablePath": "/root/Authors",
  "linkedFieldPath": "/birth_date",
  "details": "http://.../BAuthors/Authors/root/Authors"
}
次のプロパティを保持します。
JSON プロパティ
JSON 形式
説明
必須
relationshipField
String
このリンクされたフィールドによって使用される関係を保持するフィールドのパスを指定します。
以下も参照してください。:
はい
tablePath
String
このリンクされたフィールドによって参照されるテーブルのパスを指定します。
はい
linkedFieldPath
String
このリンクされたフィールドによって参照されるパスを指定します。
以下も参照してください。:
はい
details
URI
ターゲットテーブルの REST リソース URL を指定します。
以下も参照してください。:
いいえ
以下も参照してください。:

列挙依存関係の構造

メタモデル列挙依存オブジェクトは、JSON オブジェクトで表されます。
{
  "localModify": false,
  "dataspace": "BAuthors",
  "dataset": "Authors",
  "targetPath": "/root/Authors",
  "details": "http://.../BAuthors/Authors/root/Authors"
}
次のプロパティを保持します。
JSON プロパティ
JSON 形式
説明
必須
localModify
Boolean
列挙型依存関係フィールドが、同じレコード内のフィールドに対して実行された変更の影響を受けるかどうかを指定します。
はい
dataspace
String
列挙型依存関係のターゲットデータスペースまたはスナップショット識別子を指定します。指定しない場合は、レコードのデータスペースと同じデータスペースに対応します。
いいえ
dataset
String
列挙型依存関係のターゲットデータセットの識別子を指定します。指定しない場合は、レコードのデータセットと同じデータセットに対応します。
いいえ
targetPath
String
列挙型依存関係のターゲットパスを指定します。
はい
details
String
列挙型依存関係のターゲット REST リソーステーブルの URL を指定します。
以下も参照してください。:
いいえ

並べ替え基準

リクエストに適用される並べ替え基準は、includeSortCriteria パラメーター (デフォルトでは非アクティブ) を使用して、オンデマンドで返すことができます。有効にすると、sortCriteria プロパティが応答ルートノードに直接追加されます。
sortCriteria プロパティは、順序付けられた並べ替え基準を含む JSON 配列として表されます。各並べ替え基準は、次のプロパティを持つ JSON オブジェクトに対応しています。
JSON プロパティ JSON 形式 説明 必須
path String フィールドのパス。 はい
order String 可能な値は、asc、lasc、desc、または ldesc です。 はい
sortByRelevancy プロパティは JSON Array で表され、それ自体が次のプロパティを持つ JSON オブジェクトを保持します。
JSON プロパティ JSON 形式 説明 必須
order String 並べ替えを昇順で行うか降順で行うかを定義します。可能な値は、lasc または ldesc です。 詳細については、 sortByRelevancy を参照してください。 はい

検証レポート

検証は、includeValidation パラメーターを使用してオンデマンドでアクティブ化できます (デフォルトでは非アクティブ化されています)。有効にすると、validation プロパティが 1 つまたは複数のメッセージとともにターゲットノードに直接追加されます。ターゲットノードのパスがないメッセージの場合、ルートノードに validation プロパティが追加されます。
validation プロパティは JSON Array で表され、メッセージごとに JSON オブジェクトを保持し、検証項目に対応し、次のプロパティを持ちます。
JSON プロパティ
JSON 形式
説明
必須
level
String
検証項目の重大度。可能な値は、info、warn、error、fatal です。
はい
message
String
検証項目の説明。
はい
details
String
絶対 URL に対応します。
検証項目に関連付けられているリソースの URL。
関連するリソースが存在し、それが含まれている場合、テーブルスコープとデータセットスコープでのみ使用できます。
以下も参照してください。:
いいえ

制約

このセクションは、ノードに読み取り/書き込み権限がある場合に自動的にアクティブになります。これは、データモデルで宣言された非プログラム的な制約を提供します。
constraints プロパティは、JSON 配列で表されます。すべての制約は、JSON オブジェクトの形式を取ります。それらには次のプロパティがあります。
JSON プロパティ
JSON 形式
説明
必須
type
String
制約のタイプを指定します。
以下も参照してください。:
はい
level
String
制約の重大度レベルを指定します。可能な値は、fatal、error、warning、または info です。
はい
content
Object
非プログラム制約の値を指定します。この値は、String や JSON オブジェクトなどの単純型にすることができます。
いいえ
min
Integer
excludeSegment 制約タイプの最小値を指定します。
いいえ
max
Integer
excludeSegment 制約タイプの最大値を指定します。
いいえ
message
String
フィールドの値が制約に準拠していない場合に返される検証メッセージを指定します。
はい
blocksCommit
String
ブロッキングまたは非ブロッキング制約の制御ポリシー管理を指定します。
詳細については、ブロッキング制約と非ブロッキング制約を参照してください。
いいえ

制約タイプ

このセクションでは、プログラム以外の制約タイプをリストします。
タイプ 説明
mandatory フィールドが必須であることを定義します。
fixedLengthStatic このフィールドに必要な正確な文字数を定義します。
fixedLengthDynamic これに必要な正確な文字数を提供するフィールドを指摘します。
minLengthStatic このフィールドに許可される最小文字数を定義します。
minLengthDynamic これに許可される最小文字数を提供するフィールドを指摘します。
maxLengthStatic このフィールドに許可される最大文字数を定義します。
maxLengthDynamic このフィールドに許可される最大文字数を提供するフィールドを示します。
excledeSegment このフィールドに許可されていない値の包括的範囲を定義します。
excludeValue このフィールドに許可されていない値のリストを定義します。
fractionDigits このフィールドに許可される小数点以下の最大数を定義します。
pattern フィールドの値と一致する必要がある正規表現パターンを定義します。
totalDigits この整数または 10 進数フィールドに許可される最大桁数を定義します。
boundaryMinInclusiveStatic このフィールドに許可される最小値 (最小値を含む) を定義します。
boundaryMinExclusiveStatic このフィールドに許可される最小値 (最小値を除く) を定義します。
boundaryMinInclusiveDynamic このフィールドに許可される最小値 (最小値を含む) を提供するフィールドを定義します。
boundaryMinExclusiveDynamic このフィールドに許可される最小値 (最小値を除く) を提供するフィールドを定義します。
boundaryMaxInclusiveStatic このフィールドに許可される最大値 (最大値を含む) を定義します。
boundaryMaxExclusiveStatic このフィールドに許可される最大値 (最大値を除く) を定義します。
boundaryMaxInclusiveDynamic このフィールドに許可される最大値 (最大値を含む) を提供するフィールドを定義します。
boundaryMaxExclusiveDynamic このフィールドに許可される最大値 (最大値を除く) を提供するフィールドを定義します。
以下も参照してください。:

コンテンツ

このセクションは、includeContent パラメーター (デフォルトでアクティブ) を使用して、オンデマンドで非アクティブ化できます。これは、許可されたユーザーのレコード値、データセット、またはコンテンツフィールドの 1 つのフィールドのコンテンツを提供します。また、ラベル、技術情報、URL などの追加情報もあります。
コンテンツは、サブノードごとにプロパティが設定されたJSON オブジェクトで表されます。

ノード値

JSON プロパティ
JSON 形式
説明
必須
content
ノード値が含まれます。association と selection を除くすべてのノードで使用できます。ただし、コンテンツは、details プロパティで提供される URL を呼び出すことで取得できます。
いいえ
details
String
絶対 REST リソース URL に対応します。
呼び出されたときにノードの詳細を返します。
応答タイプはメタタイプによって異なります。
  • foreignKey:ターゲットレコード (テーブル、レコード、およびフィールド操作で使用可能)。
  • resource:ターゲットリソース (データセットノード、テーブル、レコード、およびフィールド操作で使用可能)。
  • association:関連するレコードを含むターゲットテーブル (テーブルおよびレコード操作で使用可能)。
  • selection:関連するレコードを含むターゲットテーブル (テーブルおよびレコード操作で使用可能)。
  • group:ターゲットデータセットグループノード (データセットツリー操作で使用可能)。
  • table:ターゲットテーブル (データセットツリー操作で使用可能)。
例
http://.../BReference/dataset/root/table/pk/associationField
いいえ
historyDetails
String
絶対 REST リソース URL に対応します。
呼び出されたときにノード履歴の詳細を返します。
以下も参照してください。:
いいえ
label
String
現在のロケールの外部キーまたは列挙ラベルが含まれます。
現在のロケールがサポートされていない場合は、デフォルトのラベルが返されます。
いいえ
inheritanceMode
String
データセットの継承のみを考慮した、ノードの継承状態が含まれます。inheritedFieldMode プロパティと inheritanceMode プロパティの両方を同じノードで定義することはできません。
いいえ
inheritedFieldMode
String
データセットとフィールドの継承を考慮した、ノードのフィールドの継承状態が含まれます。両方の継承が使用される場合、フィールドの継承はデータセットの継承よりも優先されます。inheritedFieldMode プロパティと inheritanceMode プロパティの両方を同じノードで定義することはできません。
以下も参照してください。:
いいえ
selector
String
絶対 URL に対応します。
selector 操作に適切な URL が含まれています。
例
http://.../BReference/dataset/root/table/pk/enumField?selector=true
いいえ
validation
Array
現在のノードコンテキストに関係する検証レポートが含まれています。
以下も参照してください。:
いいえ

単純型のコンテンツ

単純なフィールド値は JSON オブジェクトに格納され、そのコンテンツは content プロパティの値です。
以下も参照してください。:

グループとリストのコンテンツ

XML スキーマ
JSON 形式
例
メタタイプ
グループ
xs:complexType
Object
サブノードごとのプロパティが含まれます。
単純オカレンスグループの例
{
  "road": {
    "content": "11 rue scribe"
  },
  "zipcode": {
    "content": "75009"
  },
  "country": {
    "content": "France"
  }
}
group
List
maxOccurs > 1
Array
JSON オブジェクトで表されるすべてのフィールドオカレンスの配列が含まれます。
各オブジェクトは、ノード値として表されます。
xs:int 型の複数オカレンスフィールドの例
[
  {
    "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"
      }
    }
  }
]
または
group

セレクタ—

列挙型を提供するフィールドで 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
      }
    }
以下も参照してください。: