XDM フィールドタイプ制約

Experience Data Model(XDM) スキーマでは、フィールドのタイプによって、フィールドに格納できるデータの種類が制限されます。 このドキュメントでは、各コアフィールドタイプの概要を示します。マッピングできるその他のシリアル化形式や、異なる制約を実施するために API で独自のフィールドタイプを定義する方法も示します。

はじめに

このガイドを使用する前に、 スキーマ構成の基本 XDM スキーマ、クラス、スキーマフィールドグループの紹介。

API で独自のフィールドタイプを定義する予定がある場合は、まず スキーマレジストリ開発者ガイド を参照して、カスタムフィールドを含めるフィールドグループとデータ型を作成する方法を確認してください。 Experience PlatformUI を使用してスキーマを作成する場合は、 UI でのフィールドの定義 を参照して、カスタムフィールドグループおよびデータ型内で定義するフィールドに制約を実装する方法を確認してください。

基本構造と例

XDM は JSON スキーマの上に構築されているので、XDM フィールドの型を定義する際に、同様の構文を継承します。 JSON スキーマで異なるフィールドタイプがどのように表されるかを理解すると、各タイプの基本制約を示すのに役立ちます。

メモ

詳しくは、 API の基本事項ガイド を参照してください。

次の表に、各 XDM タイプが JSON スキーマで表される方法と、タイプに準拠する値の例を示します。

XDM タイプ JSON スキーマ
文字列 ​
{"type":"string"}
"Platinum"
Double
{"type":"number"}
12925.49
Long
{ "type":"integer", "maximum":9007199254740991, "minimum":-9007199254740991 }
1478108935
Integer
{ "type":"integer", "maximum":2147483648, "minimum":-2147483648 }
24906290
Short
{ "type":"integer", "maximum":32768, "minimum":-32768 }
15781
バイト ​
{ "type":"integer", "maximum":128、"minimum":-128 }
90
日付 ​*
{ "type":"string", "format":"date" }
"2019-05-15"
DateTime*
{ "type":"string", "format":"date-time" }
"2019-05-15T20:20:39+00:00"
Boolean
{"type":"string"}
true

*すべての日付形式の文字列は、ISO 8601 標準 (RFC 3339、セクション 5.6) をクリックします。

他の形式への XDM タイプのマッピング

以下の節では、各 XDM タイプを他の一般的なシリアル化形式にどのようにマッピングするかを説明します。

重要

次の表に示す標準 XDM タイプの中で、 マップ タイプも含まれます。 マップは、特定の値にマッピングされるキーとしてデータが表される場合、またはキーを静的スキーマに合理的に含めることができず、データ値として処理する必要がある場合に、標準スキーマで使用されます。

マップタイプフィールドは、業界およびベンダースキーマでの使用のために予約されているので、定義したカスタムリソースでは使用できません。 以下の表に含まれるマップタイプの組み込みは、既存のデータが以下に示す形式のいずれかで格納されている場合に、そのデータを XDM にマッピングする方法を判断するのに役立つように作成されています。

Parquet、Spark SQL、Java

XDM タイプ Parquet Spark SQL Java
文字列 タイプ: BYTE_ARRAY
注釈: UTF8
StringType java.lang.String
Double 型:DOUBLE LongType java.lang.Double
Long 型:INT64 LongType java.lang.Long
整数 タイプ: INT32
注釈: INT_32
IntegerType java.lang.Integer
Short タイプ: INT32
注釈: INT_16
ShortType java.lang.Short
Byte タイプ: INT32
注釈: INT_8
ByteType java.lang.Short
日付 タイプ: INT32
注釈: DATE
DateType java.util.Date
DateTime タイプ: INT64
注釈: TIMESTAMP_MILLIS
TimestampType java.util.Date
ブール型 型:BOOLEAN BooleanType java.lang.Boolean
マップ MAP注釈付きグループ

(<key-type> は、 STRING)
MapType

(keyType は、 StringType)
java.util.Map

Scala、.NET、CosmosDB

XDM タイプ Scala .NET CosmosDB
文字列 String System.String String
ダブル Double System.Double Number
Long Long System.Int64 Number
整数 Int System.Int32 Number
Short Short System.Int16 Number
Byte Byte System.SByte Number
日付 java.util.Date System.DateTime String
DateTime java.util.Date System.DateTime String
ブール型 Boolean System.Boolean Boolean
マップ Map (なし) object

MongoDB、Aerospike、および Protobuf 2

XDM タイプ MongoDB Aerospike Protobuf 2
文字列 string String string
ダブル double Double double
Long long Integer int64
整数 int Integer int32
Short int Integer int32
Byte int Integer int32
日付 date Integer
(Unix ミリ秒)
int64
(Unix ミリ秒)
DateTime timestamp Integer
(Unix ミリ秒)
int64
(Unix ミリ秒)
ブール型 bool Integer
(0/1 バイナリ)
bool
マップ object map map<key_type, value_type>

API での XDM フィールドタイプの定義

すべての XDM フィールドは、標準の JSON スキーマ フィールドの種類に適用される制約。 Experience Platform. スキーマレジストリ API を使用すると、形式とオプションの制約を使用して、追加のフィールドの種類を定義できます。 XDM フィールドタイプは、フィールドレベルの属性で公開されます。 meta:xdmType.

メモ

meta:xdmType はシステムで生成される値なので、API を使用する際に、フィールド用にこのプロパティを JSON に追加する必要はありません。 ベストプラクティスは、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" }
マップ ​ 地図 次の値を指定する プロパティを定義します。 It 必須 単一の additionalProperties マップ内に含まれる値のタイプを記述するスキーマ(各マップには 1 つのデータ型のみを含めることができます)。 値には任意の有効な XDM を指定できます type 属性、または $ref 属性。

string-type 値を持つ map フィールド:
"sampleField": {
          "type": "object",
          "additionalProperties":{
            "type": "string"
  }
}
値の文字列配列を持つ map フィールド:
"sampleField": {
          "type": "object",
          "additionalProperties":{
            "type": "array",
            "items": {
              "type": "string"
    }
  }
}
別のデータ型を参照する map フィールド:
"sampleField":{ "type":"object", "additionalProperties":{ "$ref":"https://ns.adobe.com/xdm/data/paymentitem" } }

このページ