XDM フィールドタイプ制約

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

はじめに

このガイドを使用する前に、XDM スキーマ、クラス、スキーマフィールドグループの概要について、​ スキーマ構成の基本を確認してください。

APIで独自のフィールドタイプを定義する場合は、​ スキーマレジストリ開発者ガイド ​から始めて、カスタムフィールドを含めるフィールドグループとデータタイプを作成する方法を学ぶことを強くお勧めします。 Experience Platform UIを使用してスキーマを作成する場合は、UIでのフィールドの定義に関するガイドを参照して、カスタムフィールドグループおよびデータタイプ内で定義したフィールドに対する制約を実装する方法を説明します。

ベース構造と例 basic-types

XDMはJSON スキーマ上に構築されているため、XDM フィールドはタイプを定義する際に同様の構文を継承します。 さまざまなフィールドタイプがJSON スキーマでどのように表現されるかを理解すると、各タイプの基本制約を示すのに役立ちます。 カスタムフィールド名では大文字と小文字が区別されないため、スキーマ内の同じレベルに異なる名前を付ける必要があります。

NOTE
Experience Platform APIのJSON スキーマおよびその他の基盤テクノロジーについて詳しくは、API基本ガイド ​を参照してください。

次の表は、各XDM タイプをJSON スキーマで表す方法と、そのタイプに準拠する値の例の概要を示しています。

XDM タイプ
JSON スキーマ
String
{"type": "string"}
"Platinum"
Number
{"type": "number"}
12925.49
Long
{
  "type": "integer",
  "maximum": 9007199254740991,
  "minimum": -9007199254740991
}
1478108935
Integer
{
  "type": "integer",
  "maximum": 2147483648,
  "minimum": -2147483648
}
24906290
ショート ​
{
  "type": "integer",
  "maximum": 32767,
  "minimum": -32768
}
15781
Byte
{
  "type": "integer",
  "maximum": 128,
  「最小」: -128
}
90
Date*
{
  "type": "string",
  "format": "date"
}
"2019-05-15"
DateTime*
{
  "type": "string",
  "format": "date-time"
}
"2019-05-15T20:20:39+00:00"
Boolean
{"type": "boolean"}
true

*​日付でフォーマットされたすべての文字列は、ISO 8601規格(RFC 3339、セクション 5.6)に準拠している必要があります。

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

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

NOTE
以下の表に記載されている標準XDM タイプの中には、Map タイプも含まれています。 マップは、データが特定の値にマッピングするキーとして表される場合、またはキーが静的スキーマに合理的に含まれず、データ値として扱われる必要がある場合に、標準スキーマで使用されます。
多くの標準XDM コンポーネントはマップタイプを使用しており、必要に応じて​ カスタムマップフィールドを定義することもできます。 以下の表に含まれるマップタイプは、既存のデータが以下のいずれかの形式で現在保存されている場合に、XDMにマッピングする方法を決定するのに役立ちます。

Parquet、Spark SQL、Java parquet

XDM タイプ
PARQUET
Spark SQL
Java
文字列
種類:BYTE_ARRAY
注釈:UTF8
StringType
java.lang.String
数値
型:DOUBLE
LongType
java.lang.Double
長い
型:INT64
LongType
java.lang.Long
整数
種類:INT32
注釈:INT_32
IntegerType
java.lang.Integer
​ ショート ​
種類:INT32
注釈:INT_16
ShortType
java.lang.Short
​ バイト ​
種類:INT32
注釈:INT_8
ByteType
java.lang.Short
日付
種類:INT32
注釈:DATE
DateType
java.util.Date
日時
種類:INT64
注釈:TIMESTAMP_MILLIS
TimestampType
java.util.Date
​ ブール値
型:BOOLEAN
BooleanType
java.lang.Boolean
マップ
MAP注釈付きグループ

<key-type>STRINGである必要があります)
MapType

keyTypeStringTypeである必要があります)
java.util.Map

Scala、.NET、およびCosmosDB scala

XDM タイプ
Scala
.NET
CosmosDB
文字列
String
System.String
String
数値
Double
System.Double
Number
長い
Long
System.Int64
Number
整数
Int
System.Int32
Number
​ ショート ​
Short
System.Int16
Number
​ バイト ​
Byte
System.SByte
Number
日付
java.util.Date
System.DateTime
String
日時
java.util.Date
System.DateTime
String
​ ブール値
Boolean
System.Boolean
Boolean
マップ
Map
(N/A)
object

MongoDB、Aerospike、およびProtobuf 2 mongo

XDM タイプ
MongoDB
Aerospike
Protobuf 2
文字列
string
String
string
数値
double
Double
double
長い
long
Integer
int64
整数
int
Integer
int32
​ ショート ​
int
Integer
int32
​ バイト ​
int
Integer
int32
日付
date
Integer
(Unix ミリ秒)
int64
(Unix ミリ秒)
日時
timestamp
Integer
(Unix ミリ秒)
int64
(Unix ミリ秒)
​ ブール値
bool
Integer
(0/1 バイナリ)
bool
マップ
object
map
map<key_type, value_type>

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

Schema Registry APIでは、形式とオプションの制約を使用してカスタムフィールドを定義できます。 詳しくは、Schema Registry APIでのカスタムフィールドの定義に関するガイドを参照してください。

recommendation-more-help
experience-platform-help-xdm