スキーマレジストリ API での XDM フィールドの定義

すべてのエクスペリエンスデータモデル (XDM) フィールドは、標準の JSON スキーマ フィールドタイプに適用される制約と、Adobe Experience Platformで適用されるフィールド名に対する追加の制約が含まれます。 スキーマレジストリ API を使用すると、形式とオプションの制約を使用して、スキーマ内のカスタムフィールドを定義できます。 XDM フィールドタイプは、フィールドレベルの属性で公開されます。 meta:xdmType.

メモ

meta:xdmType はシステムで生成される値なので、API を使用する場合 ( カスタムマップタイプの作成) をクリックします。 ベストプラクティスは、JSON スキーマのタイプ ( string および integer) に適切な最小/最大制約を設定します。

次の表に、オプションのプロパティを含む、様々なフィールドタイプを定義するための適切な書式の概要を示します。 オプションのプロパティとタイプ固有のキーワードに関する詳細については、JSON スキーマのドキュメントを参照してください。

最初に、目的のフィールドタイプを見つけ、提供されたサンプルコードを使用して、の API リクエストを作成します。 フィールドグループの作成 または データ型の作成.

XDM タイプ オプションで指定できるプロパティ
文字列 ​
  • pattern
  • minLength
  • maxLength
"sampleField": {
            "type": "string",
            "pattern": "^[A-Z]{2}$",
            "maxLength": 2
}
URI
"sampleField": {
          "type": "string",
          "format": "uri"
}
Enum
  • default
  • meta:enum
制約付き列挙値は、 enum 配列を使用する場合、各値のオプションの顧客向けラベルを meta:enum:
"sampleField": {
          "type": "string",
          "enum": [
              "value1",
              "value2",
              "value3"
          ],
          "meta:enum": {
              "value1": "Value 1",
              "value2": "Value 2",
              "value3": "Value 3"
          },
          "default": "value1"
}

なお、 meta:enum 値が not 列挙を宣言するか、データの検証を独自に実行します。 ほとんどの場合、文字列は meta:enum また、 enum データが制約を受けるようにする ただし、次のような場合に使用できます。 meta:enum 対応する enum 配列。 に関するチュートリアルを参照してください。 推奨値の定義 を参照してください。
数値 ​
"sampleField": {
          "type": "number"
}
Long
"sampleField": {
          "type": "integer",
          "minimum": -9007199254740992,
          "maximum": 9007199254740992
}
Integer
"sampleField": {
          "type": "integer",
          "minimum": -2147483648,
          "maximum": 2147483648
}
Short
"sampleField": {
          "type": "integer",
          "minimum": -32768,
          "maximum": 32768
}
バイト ​
"sampleField": {
          "type": "integer",
          "minimum": -128,
          "maximum": 128
  }
Boolean
  • default
"sampleField": {
          "type": "boolean",
          "default": false
}
日付 ​
"sampleField": {
          "type": "string",
          "format": "date",
          "examples": ["2004-10-23"]
}
DateTime
"sampleField":{ "type":"string", "format":"date-time", "examples":["2004-10-23T12:00:00-06:00"] }
配列 ​ 基本的なスカラー型(例:文字列)の配列:
"sampleField": {
          "type": "array",
          "items": {
            "type": "string"
  }
}
別のスキーマで定義されたオブジェクトの配列:
"sampleField":{ "type":"array", "items":{ "$ref":"https://ns.adobe.com/xdm/data/paymentitem" } }
オブジェクト ​ この type 以下で定義された各サブフィールドの属性 properties 任意のスカラー型を使用して定義できます。
"sampleField": {
          "type": "object",
          "properties": {
            "field1": {
              "type": "string"
            },
            "field2": {
              "type": "number"
    }
  }
}
オブジェクトタイプのフィールドは、 $id データ型:
"sampleField":{ "type":"object", "$ref":"https://ns.adobe.com/xdm/common/phoneinteraction" }
マップ ​ マップタイプフィールドは、基本的には、制限のないキーのセットを持つオブジェクトタイプのフィールドです。 オブジェクトと同様に、マップには typeobjectですが、 meta:xdmType が明示的にに設定されている map.

地図 次の値を指定する プロパティを定義します。 It 必須 単一の additionalProperties マップ内に含まれる値のタイプを記述するスキーマ(各マップには 1 つのデータ型のみを含めることができます)。 この type 値は次のいずれかでなければなりません string または integer.

string-type 値を持つ map フィールド:
"sampleField":{ "type":"object", "meta:xdmType":"map", "additionalProperties":{ "type":"string" } }
XDM でのカスタムマップタイプの作成について詳しくは、以下の節を参照してください。

カスタムマップタイプの作成

XDM で「マップに似た」データを効率的にサポートするために、オブジェクトに meta:xdmType に設定 map これは、キーセットが制約されていないかのようにオブジェクトを管理する必要があることを明確にするためです。 マップフィールドに取り込まれるデータは、文字列キーと、文字列値または整数値 ( additionalProperties.type) をクリックします。

XDM では、このストレージヒントの使用に次の制限を設けます。

  • マップタイプはタイプである必要があります object.
  • マップタイプには、プロパティを定義することはできません(つまり、「空の」オブジェクトを定義します)。
  • マップタイプには additionalProperties.type マップ内に配置される値を示すフィールド。 string または integer.

必要に応じて、次のパフォーマンス上の欠点があるので、マップタイプのフィールドのみを使用していることを確認します。

  • Adobe Experience Platformクエリサービスの応答時間は、1 億件のレコードに対して 3 秒から 10 秒に短縮されます。
  • マップのキー数は 16 個未満にする必要があります。16 個未満にすると、さらに低下する可能性があります。

また、Platform のユーザーインターフェイスでは、マップタイプフィールドのキーを抽出する方法に制限があります。 オブジェクトタイプのフィールドは展開できますが、マップは代わりに 1 つのフィールドとして表示されます。

次の手順

このガイドでは、API で様々なフィールドタイプを定義する方法について説明しました。 XDM フィールドタイプの形式について詳しくは、 XDM フィールドタイプ制約.

このページ