在架构注册API中定义XDM字段

所有体验数据模型(XDM)字段均使用标准 JSON架构 应用于其字段类型的约束,以及Adobe Experience Platform强制实施的对字段名称的其他约束。 架构注册表API允许您通过使用格式和可选约束来定义架构中的自定义字段。 XDM字段类型由字段级别属性公开, meta:xdmType.

注意

meta:xdmType 是系统生成的值,因此在使用API时,您无需将此属性添加到字段的JSON中(除非 创建自定义映射类型)。 最佳实践是使用JSON架构类型(例如 stringinteger),并且具有下表中定义的相应最小/最大约束。

下表概述了用于定义不同字段类型(包括具有可选属性的字段类型)的相应格式。 有关可选属性和特定类型关键词的更多信息,请通过 JSON模式文档.

要开始,请找到所需的字段类型,然后使用提供的示例代码来构建 创建字段组创建数据类型.

XDM类型 可选属性 示例
字符串
  • pattern
  • minLength
  • maxLength
"sampleField":{ "type":"string", "pattern":"^[A-Z]{2}$", "maxLength":2 }
URI
"sampleField":{ "type":"string", "format":"uri" }
Enum
  • default
  • meta:enum
约束枚举值在 enum 数组中,而每个值的可选面向客户的标签可以在 meta:enum:
"sampleField":{ "type":"string", "enum":[ "value1"、"value2"、"value3" ]、"meta:enum":{ "value1":"Value 1"、"value2":"Value 2"、"value3":"Value 3" }, "default":"value1" }

请注意, meta:enumnot 声明枚举或自行驱动任何数据验证。 在大多数情况下, meta:enum 此外, enum 以确保数据受到约束。 但是,在某些用例中, meta:enum 没有相应的 enum 数组。 请参阅 定义建议值 以了解更多信息。
Number
"sampleField":{ "type":"number" }
Long
"sampleField":{ "type":"integer", "minimum":-9007199254740992, "maximum":9007199254740992 }
整数
"sampleField":{ "type":"integer", "minimum":-2147483648, "maximum":2147483648 }
Short
"sampleField":{ "type":"integer", "minimum":-32768, "maximum":32768 }
Byte
"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"] }
Array 基本标量类型(例如字符串)的数组:
"sampleField":{ "type":"array", "items":{ "type":"string" } }
由其他模式定义的对象数组:
"sampleField":{ "type":"array", "items":{“$ref”:"https://ns.adobe.com/xdm/data/paymentitem } }
对象 type 下定义的每个子字段的属性 properties 可以使用任何标量类型定义:
"sampleField":{ "type":"object"、"properties":{ "field1":{ "type":"string" }, "field2":{ "type":"number" } } }
可通过引用 $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":"string" } }
有关在XDM中创建自定义映射类型的更多信息,请参阅以下部分。

创建自定义映射类型

为了在XDM中高效地支持“类似地图”数据,可以使用 meta:xdmType 设置为 map 要明确说明应当像对键集不受约束一样管理对象。 摄取到映射字段中的数据必须使用字符串键,并且只能使用字符串或整数值(由 additionalProperties.type)。

XDM对使用此存储提示施加了以下限制:

  • 映射类型MUST为类型 object.
  • 映射类型必须不定义属性(换句话说,它们定义“空”对象)。
  • 映射类型必须包括 additionalProperties.type 字段,用于描述可能放置在映射中的值, stringinteger.

请确保您只在绝对必要时才使用映射类型字段,因为这些字段存在以下性能缺陷:

  • 对于1亿条记录,Adobe Experience Platform查询服务的响应时间会从3秒降为10秒。
  • 地图必须少于16个键值,否则就有进一步退化的风险。

平台用户界面在如何提取映射类型字段的键值方面也存在限制。 对象类型字段可以展开,而映射显示为单个字段。

后续步骤

本指南介绍如何在API中定义不同的字段类型。 有关XDM字段类型的格式的详细信息,请参阅 XDM字段类型约束.

在此页面上