XDM字段类型约束

上次更新: 2023-10-18
  • 主题:
  • Schemas
    查看有关此主题的更多信息
  • 创建对象:
  • Developer
    User
    Admin
    Leader

在Experience Data Model (XDM)架构中,字段的类型会限制字段可以包含的数据类型。 本文档概述了每种核心字段类型,包括它们可以映射到的其他序列化格式,以及如何在API中定义自己的字段类型以强制实施不同的限制。

快速入门

在使用本指南之前,请查阅 模式组合基础 有关XDM架构、类和架构字段组的介绍。

如果您计划在API中定义自己的字段类型,强烈建议您从 架构注册开发人员指南 了解如何创建字段组和数据类型,以便在中包含自定义字段。 如果您使用Experience PlatformUI创建架构,请参阅上的指南 在UI中定义字段 了解如何在自定义字段组和数据类型中定义的字段上实施约束。

基本结构和示例

XDM基于JSON架构构建,因此XDM字段在定义其类型时继承类似的语法。 了解不同字段类型在JSON架构中的表示方式有助于指示每种类型的基本约束。

注意

请参阅 API基础指南 有关JSON架构和Platform API中的其他底层技术的更多信息。

下表概述了每个XDM类型在JSON架构中的表示方式,以及符合该类型的示例值:

XDM类型 JSON架构 示例
字符串
{"type": "string"}
"Platinum"
编号
{"type": "number"}
12925.49
Long
{ "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991 }
1478108935
整数
{ "type": "integer", "maximum": 2147483648, "minimum": -2147483648 }
24906290
Short
{ "type": "integer", "maximum": 32768, "minimum": -32768 }
15781
字节
{ "type": "integer", "maximum": 128, "minimum": -128 }
90
日期*
{ "type": "string", "format": "date" }
"2019-05-15"
日期时间*
{ "type": "string", "format": "date-time" }
"2019-05-15T20:20:39+00:00"
Boolean
{"type": "string"}
true

*所有日期格式字符串必须符合ISO 8601标准(RFC 3339,5.6节)。

将XDM类型映射到其他格式

以下各节将介绍每个XDM类型如何映射到其他常见的序列化格式:

注意

在下表列出的标准XDM类型中, 地图 类型也包含在内。 当数据表示为映射到特定值的键时,或者在静态架构中无法合理地包含键且必须视为数据值时,在标准架构中使用映射。

许多标准XDM组件使用映射类型,您还可以 定义自定义映射字段 如果需要。 下表包含映射类型,其目的是为了帮助您确定如何将现有数据映射到XDM(如果当前以下面列出的任何格式存储)。

Parquet、Spark SQL和Java

XDM类型 Parquet 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-annotated group

(<key-type> 必须为 STRING)
MapType

(keyType 必须为 StringType)
java.util.Map

Scala、.NET和CosmosDB

XDM类型 Scala .NET CosmosDB
字符串 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、Arospike和Protobuf 2

XDM类型 MongoDB 塞式火箭 Protobuf 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中定义自定义字段 以了解更多信息。

在此页面上