XDM欄位類型約束

在經驗資料模型(XDM)架構中,欄位的類型約束欄位可以包含的資料類型。 本文檔概述了每個核心欄位類型,包括可映射到的其他序列化格式以及如何在API中定義自己的欄位類型以強制實施不同的約束。

快速入門

使用本指南之前,請查看 架構組合基礎 介紹XDM架構、類和架構欄位組。

如果您計畫在API中定義自己的欄位類型,強烈建議您從 架構註冊表開發人員指南 瞭解如何建立域組和資料類型以在中包括自定義域。 如果使用Experience PlatformUI建立方案,請參閱上的指南 定義UI中的欄位 瞭解如何對自定義欄位組和資料類型中定義的欄位實施約束。

基本結構和示例

XDM構建在JSON架構之上,因此XDM欄位在定義其類型時繼承了類似的語法。 瞭解JSON架構中不同欄位類型的表示方式有助於指明每種類型的基本約束。

注意

查看 API基礎指南 有關平台API中JSON架構和其他基礎技術的詳細資訊。

下表概述了如何在JSON架構中表示每個XDM類型,以及與該類型一致的示例值:

XDM類型 JSON架構 範例
字串
{"type"(類型):"字串"
"Platinum"
Double
{"type"(類型):"數字"
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":"日期" }
"2019-05-15"
日期時間*
{ "type":"string","format":"日期時間" }
"2019-05-15T20:20:39+00:00"
布爾
{"type"(類型):"字串"
true

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

將XDM類型映射到其他格式

以下各節介紹了每種XDM類型如何映射到其他常用序列化格式:

重要

在下表中列出的標準XDM類型中, 地圖 類型。 當資料被表示為映射到某些值的鍵時,或當鍵不能合理地包括在靜態方案中且必須被視為資料值時,映射在標準方案中使用。

映射類型欄位是為行業和供應商架構使用而保留的,因此不能用於您定義的自定義資源。 映射類型包含在下表中僅用於幫助您確定如何將現有資料映射到XDM(如果當前資料以下面列出的任何格式儲存)。

Parke、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
日期時間 類型: 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 宇宙資料庫
字串 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、塞式機和Protobuf 2

XDM類型 蒙戈DB 塞式火箭 原武夫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欄位類型

「方案註冊表API」允許您通過使用格式和可選約束來定義自定義欄位。 請參閱上的指南 定義架構註冊表API中的自定義欄位 的子菜單。

本頁內容