XDM欄位型別限制
在Experience Data Model (XDM)結構描述中,欄位的型別會限制欄位可包含哪種資料。 本檔案提供每種核心欄位型別的概觀,包括可對應的其他序列化格式,以及如何在API中定義自己的欄位型別,以強制實施不同的限制。
快速入門
使用本指南之前,請先檢閱結構描述組合的基本知識,以瞭解XDM結構描述、類別和結構描述欄位群組的簡介。
如果您打算在API中定義自己的欄位型別,強烈建議您從Schema Registry開發人員指南開始,瞭解如何建立欄位群組和資料型別,以包含您的自訂欄位。 如果您使用Experience PlatformUI建立結構描述,請參閱在UI中定義欄位的指南,以瞭解如何在自訂欄位群組和資料型別中定義的欄位上實作限制。
基底結構和範例 basic-types
XDM是以JSON結構描述為基礎建立,因此XDM欄位在定義其型別時繼承類似的語法。 瞭解不同的欄位型別在JSON結構描述中的呈現方式,有助於指出每種型別的基本限制。
NOTE
請參閱API基礎指南,以取得有關JSON結構描述和Platform 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
— 註解的群組(
<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