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