在架構註冊表API中定義XDM欄位

所有體驗資料模型(XDM)欄位都使用標準 JSON架構 適用於其欄位類型的約束,以及Adobe Experience Platform強制實施的欄位名稱的附加約束。 使用方案註冊表API,您可以通過使用格式和可選約束來定義方案中的自定義欄位。 XDM欄位類型由欄位級屬性公開, meta:xdmType

注意

meta:xdmType 是系統生成的值,因此使用API時不需要將此屬性添加到欄位的JSON(除非 建立自定義映射類型)。 最佳做法是使用JSON架構類型(如 stringinteger),具有下表中定義的相應最小/最大約束。

下表概述了用於定義不同欄位類型(包括具有可選屬性的欄位類型)的適當格式。 有關可選屬性和類型特定關鍵字的詳細資訊,請通過 JSON架構文檔

要開始,請查找所需的欄位類型,並使用提供的示例代碼生成API請求 建立欄位組建立資料類型

XDM類型 可選屬性 範例
字串
  • pattern
  • minLength
  • maxLength
"sampleField":{ "type":"string","pattern":"^[A-Z]{2}$","maxLength":2 }
URI
"sampleField":{ "type":"string","format":"uri" }
枚舉
  • default
  • meta:enum
約束枚舉值提供在 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 }
布爾
  • default
"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" }
映射 映射類型欄位實質上是具有不受約束的鍵集的對象類型欄位。 與對象一樣,地圖 typeobject但是 meta:xdmType 已顯式設定為 map

地圖 不能 定義任何屬性。 它 必須 定義單個 additionalProperties 模式,用於描述映射中包含的值的類型(每個映射只能包含單個資料類型)。 的 type 值必須為 stringinteger

具有字串類型值的映射欄位:
"sampleField":{ "type":"object"、"meta:xdmType":"map","additionalProperties":{ "type":"字串" }
有關在XDM中建立自定義映射類型的詳細資訊,請參閱下節。

建立自定義映射類型

為了在XDM中有效地支援「類地圖」資料,可以使用 meta:xdmType 設定為 map 以明確管理對象時,應將鍵集視為不受約束。 被攝入到映射欄位中的資料必須使用字串鍵,並且只使用字串或整數值(由 additionalProperties.type)。

XDM對此儲存提示的使用設定了以下限制:

  • 映射類型MUST為類型 object
  • 映射類型不能定義屬性(換句話說,它們定義「空」對象)。
  • 映射類型必須包括 additionalProperties.type 欄位,該欄位描述可能放置在映射中的值 stringinteger

確保在完全必要時僅使用映射類型欄位,因為這些欄位具有以下效能缺陷:

  • 對於1億條記錄,Adobe Experience Platform查詢服務的響應時間從3秒縮短到10秒。
  • 地圖必須少於16個鍵,否則可能會進一步退化。

平台用戶介面在如何提取映射類型欄位的鍵方面也有局限性。 對象類型欄位可以展開,但映射將顯示為單個欄位。

後續步驟

本指南介紹如何在API中定義不同的欄位類型。 有關如何格式化XDM欄位類型的詳細資訊,請參見上的指南 XDM欄位類型約束

本頁內容