XDM欄位型別限制

在Experience Data Model (XDM)結構描述中,欄位的型別會限制欄位可包含哪種資料。 本檔案提供每種核心欄位型別的概觀,包括可對應的其他序列化格式,以及如何在API中定義自己的欄位型別,以強制實施不同的限制。

快速入門

使用本指南前,請先檢閱 結構描述組合的基本面 瞭解XDM結構描述、類別和結構描述欄位群組。

如果您打算在API中定義自己的欄位型別,強烈建議您從 Schema Registry開發人員指南 瞭解如何建立欄位群組和資料型別,以將您的自訂欄位納入。 如果您使用Experience Platform UI建立方案,請參閱以下指南: 在UI中定義欄位 瞭解如何在自訂欄位群組和資料型別中定義的欄位上實作限制。

基底結構和範例 basic-types

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

NOTE
請參閱 API基礎指南 以進一步瞭解JSON結構描述和平台API中的其他基礎技術。

下表概述每個XDM型別在JSON結構描述中的呈現方式,以及與型別相容的範例值:

XDM型別
JSON結構描述
範例
字串
{"type": "string"}
"Platinum"
編號
{"type": "number"}
12925.49
Long
{ "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991 }
1478108935
整數
{ "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"
日期時間*
{ "type": "string", "format": "date-time" }
"2019-05-15T20:20:39+00:00"
Boolean
{"type": "string"}
true

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

將XDM型別對應到其他格式

以下各節說明每個XDM型別如何對應至其他常見的序列化格式:

NOTE
在下表中列出的標準XDM型別中, 地圖 也包含型別。 當資料以對應到特定值的索引鍵來表示,或索引鍵無法合理地包含在靜態結構描述中且必須被視為資料值時,標準結構描述會使用對應。
許多標準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-annotated group

(<key-type> 必須是 STRING)
MapType

(keyType 必須是 StringType)
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
(不適用)
object

MongoDB、Surospike和Protobuf 2 mongo

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毫秒)
日期時間
timestamp
Integer
(Unix毫秒)
int64
(Unix毫秒)
布林值
bool
Integer
(0/1二進位)
bool
地圖
object
map
map<key_type, value_type>

在API中定義XDM欄位型別 define-fields

Schema Registry API可讓您透過使用格式和選用限制來定義自訂欄位。 請參閱以下指南: 定義結構描述登入API中的自訂欄位 以取得詳細資訊。

recommendation-more-help
62e9ffd9-1c74-4cef-8f47-0d00af32fc07