所有體驗資料模型(XDM)欄位都使用標準 JSON架構 適用於其欄位類型的約束,以及Adobe Experience Platform強制實施的欄位名稱的附加約束。 使用方案註冊表API,您可以通過使用格式和可選約束來定義方案中的自定義欄位。 XDM欄位類型由欄位級屬性公開, meta:xdmType
。
meta:xdmType
是系統生成的值,因此使用API時不需要將此屬性添加到欄位的JSON(除非 建立自定義映射類型)。 最佳做法是使用JSON架構類型(如 string
和 integer
),具有下表中定義的相應最小/最大約束。
下表概述了用於定義不同欄位類型(包括具有可選屬性的欄位類型)的適當格式。 有關可選屬性和類型特定關鍵字的詳細資訊,請通過 JSON架構文檔。
要開始,請查找所需的欄位類型,並使用提供的示例代碼生成API請求 建立欄位組 或 建立資料類型。
XDM類型 | 可選屬性 | 範例 |
---|---|---|
字串 |
|
"sampleField":{ "type":"string","pattern":"^[A-Z]{2}$","maxLength":2 } |
URI |
"sampleField":{ "type":"string","format":"uri" } |
|
枚舉 |
|
約束枚舉值提供在 enum 陣列,而每個值的面向客戶的可選標籤可在下面提供 meta:enum :
"sampleField":{ "type":"string","enum":[ "value1"、"value2"、"value3" ]、"meta:enum:{ "value1":"值1"、"值2":"值2"、"值3":"值3" }, "default":"值1" } 請注意 meta:enum 值 不 聲明枚舉或自行驅動任何資料驗證。 在大多數情況下, meta:enum 也提供 enum 確保資料受到約束。 但是,有些使用情況 meta:enum 沒有相應的 enum 陣列。 請參閱上的教程 定義建議值 的子菜單。
|
編號 |
"sampleField":{ "type":"數字" } |
|
長 |
"sampleField":{ "type":"integer","minimum":-9007199254740992,「maximum」(最大):9007199254740992 } |
|
整數 |
"sampleField":{ "type":"integer","minimum":-2147483648,「maximum」:2147483648 } |
|
短 |
"sampleField":{ "type":"integer","minimum":-32768,「最大值」:32768 } |
|
位元組 |
"sampleField":{ "type":"integer","minimum":-128,「最大值」:128 } |
|
布爾 |
|
"sampleField":{ "type":"boolean","default":false } |
日期 |
"sampleField":{ "type":"string","format":"date"、"examples":["2004-10-23"] } |
|
DateTime |
"sampleField":{ "type":"string","format":"date-time"、"examples":[" 2004-10-23T12:00:00-06:00"]} |
|
陣列 | 基本標量類型(如字串)的陣列:
"sampleField":{ "type":"array","items":{ "type":"字串" }由另一方案定義的對象陣列: "sampleField":{ "type":"array","items":{ "$ref":"https://ns.adobe.com/xdm/data/paymentitem" } |
|
對象 | 的 type 定義的每個子欄位的屬性 properties 可以使用任何標量類型定義:
"sampleField":{ "type":"object","properties":{ "field1":{ "type":"string" }, "field2":{ "type":"數字" } }通過引用 $id 資料類型:
"sampleField":{ "type":"object", "$ref":"https://ns.adobe.com/xdm/common/phoneinteraction" } |
|
映射 | 映射類型欄位實質上是具有不受約束的鍵集的對象類型欄位。 與對象一樣,地圖 type 值 object 但是 meta:xdmType 已顯式設定為 map 。地圖 不能 定義任何屬性。 它 必須 定義單個 additionalProperties 模式,用於描述映射中包含的值的類型(每個映射只能包含單個資料類型)。 的 type 值必須為 string 或 integer 。具有字串類型值的映射欄位: "sampleField":{ "type":"object"、"meta:xdmType":"map","additionalProperties":{ "type":"字串" }有關在XDM中建立自定義映射類型的詳細資訊,請參閱下節。 |
為了在XDM中有效地支援「類地圖」資料,可以使用 meta:xdmType
設定為 map
以明確管理對象時,應將鍵集視為不受約束。 被攝入到映射欄位中的資料必須使用字串鍵,並且只使用字串或整數值(由 additionalProperties.type
)。
XDM對此儲存提示的使用設定了以下限制:
object
。additionalProperties.type
欄位,該欄位描述可能放置在映射中的值 string
或 integer
。確保在完全必要時僅使用映射類型欄位,因為這些欄位具有以下效能缺陷:
平台用戶介面在如何提取映射類型欄位的鍵方面也有局限性。 對象類型欄位可以展開,但映射將顯示為單個欄位。
本指南介紹如何在API中定義不同的欄位類型。 有關如何格式化XDM欄位類型的詳細資訊,請參見上的指南 XDM欄位類型約束。