XDM欄位型別限制

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

快速入門

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

如果您打算在API中定義自己的欄位型別,強烈建議您從Schema Registry開發人員指南開始,瞭解如何建立欄位群組和資料型別,以包含您的自訂欄位。 如果您使用Experience Platform UI建立結構描述,請參閱在UI中定義欄位的指南,以瞭解如何對您在自訂欄位群組和資料型別中定義的欄位實作限制。

基底結構和範例 basic-types

XDM是以JSON結構描述為基礎建立,因此XDM欄位在定義其型別時繼承類似的語法。 瞭解不同的欄位型別在JSON結構描述中的呈現方式,有助於指出每種型別的基本限制。 自訂欄位名稱不區分大小寫,且在結構描述的相同層級上必須有不同的名稱。

NOTE
如需JSON結構描述和Experience Platform API中其他基礎技術的詳細資訊,請參閱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
Short
{
  "type": "integer",
  "maximum":32767,
  "minimum": -32768
}
15781
Byte
{
  "type": "integer",
  "maximum":128,
  "minimum": -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
String
型別: BYTE_ARRAY
註解: UTF8
StringType
java.lang.String
Number
類型:DOUBLE
LongType
java.lang.Double
Long
類型:INT64
LongType
java.lang.Long
Integer
型別: INT32
註解: INT_32
IntegerType
java.lang.Integer
Short
型別: INT32
註解: INT_16
ShortType
java.lang.Short
Byte
型別: INT32
註解: INT_8
ByteType
java.lang.Short
Date
型別: INT32
註解: DATE
DateType
java.util.Date
DateTime
型別: INT64
註解: TIMESTAMP_MILLIS
TimestampType
java.util.Date
Boolean
類型:BOOLEAN
BooleanType
java.lang.Boolean
Map
MAP — 註解的群組

<key-type>必須為STRING
MapType

keyType必須為StringType
java.util.Map

Scala、.NET和CosmosDB scala

XDM型別
Scala
.NET
CosmosDB
String
String
System.String
String
Number
Double
System.Double
Number
Long
Long
System.Int64
Number
Integer
Int
System.Int32
Number
Short
Short
System.Int16
Number
Byte
Byte
System.SByte
Number
Date
java.util.Date
System.DateTime
String
DateTime
java.util.Date
System.DateTime
String
Boolean
Boolean
System.Boolean
Boolean
Map
Map
(不適用)
object

MongoDB、Surospike和Protobuf 2 mongo

XDM型別
MongoDB
尖峰
Protobuf 2
String
string
String
string
Number
double
Double
double
Long
long
Integer
int64
Integer
int
Integer
int32
Short
int
Integer
int32
Byte
int
Integer
int32
Date
date
Integer
(Unix毫秒)
int64
(Unix毫秒)
DateTime
timestamp
Integer
(Unix毫秒)
int64
(Unix毫秒)
Boolean
bool
Integer
(0/1二進位)
bool
Map
object
map
map<key_type, value_type>

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

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

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