XDM欄位類型限制

在Experience Data Model(XDM)結構中,欄位的類型會限制欄位可包含的資料類型。 本檔案概略介紹每個核心欄位類型,包括可對應的其他序列化格式,以及如何在API中定義您自己的欄位類型,以強制執行不同的限制。

快速入門

使用本指南之前,請先檢閱 綱要構成基本知識 XDM結構、類別和結構欄位群組的簡介。

如果您打算在API中定義自己的欄位類型,強烈建議您從 Schema Registry開發人員指南 了解如何建立欄位群組和資料類型,以在中納入自訂欄位。 如果您是使用Experience PlatformUI來建立結構,請參閱 定義UI中的欄位 了解如何對您在自訂欄位群組和資料類型中定義的欄位實施限制。

基礎結構與範例

XDM是以JSON結構描述為基礎而建置,因此XDM欄位在定義其類型時會繼承類似的語法。 了解JSON結構描述中不同欄位類型的呈現方式,有助於指出每種類型的基本限制。

注意

請參閱 API基礎指南 如需Platform API中JSON結構描述和其他基礎技術的詳細資訊。

下表概述每個XDM類型在JSON結構描述中的表示方式,以及符合類型的範例值:

XDM類型 JSON結構 範例
字串
{"type":"string"}
"Platinum"
Double
{"type":"number"}
12925.49
{ "type":"integer", "maximum":9007199254740991,「最低」:-9007199254740991 }
1478108935
整數
{ "type":"integer", "maximum":2147483648,「最低」:-2147483648 }
24906290
簡稱
{ "type":"integer", "maximum":32768,「最低」:-32768 }
15781
位元組
{ "type":"integer", "maximum":128,「最低」:-128 }
90
日期*
{ "type":"string", "format":"date" }
"2019-05-15"
DateTime*
{ "type":"string", "format":"date-time" }
"2019-05-15T20:20:39+00:00"
布林值
{"type":"string"}
true

*所有日期格式字串都必須符合ISO 8601標準(RFC 3339,第5.6節)。

將XDM類型對應至其他格式

以下各節說明各種XDM類型如何對應至其他常見序列化格式:

注意

在下表所列的標準XDM類型中, 地圖 也包含類型。 當資料以對應至特定值的索引鍵來表示,或當索引鍵無法合理納入靜態架構且必須視為資料值時,標準架構中會使用地圖。

許多標準XDM元件都使用對應類型,您也可以 定義自訂地圖欄位 如果需要。 如果現有資料目前是以下列任何格式儲存,下表中包含的對應類型可協助您判斷如何將現有資料對應至XDM。

Parquet、Spark SQL和Java

XDM類型 鑲木 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
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類型 斯卡拉 .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
DateTime java.util.Date System.DateTime String
布林值 Boolean System.Boolean Boolean
地圖 Map (不適用) object

MongoDB、Aerospike和Protobuf 2

XDM類型 MongoDB 塞普克 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毫秒)
DateTime timestamp Integer
(Unix毫秒)
int64
(Unix毫秒)
布林值 bool Integer
(0/1二進位)
bool
地圖 object map map<key_type, value_type>

在API中定義XDM欄位類型

Schema Registry API可讓您透過使用格式和選用限制來定義自訂欄位。 請參閱 定義結構註冊表API中的自訂欄位 以取得更多資訊。

本頁內容