Experience Data Model (XDM)中的命名空间
体验数据模型(XDM)架构中的所有字段都有关联的命名空间。 利用这些命名空间,可扩展架构并在将不同的架构组件组合在一起时防止字段冲突。 本文档概述了XDM中的命名空间以及它们在中的表示方式 架构注册表API.
命名空间允许您在一个命名空间中定义一个字段,因为这意味着与不同命名空间中的相同字段不同。 实际上,字段的命名空间指示创建字段的人员(例如标准XDM(Adobe)、供应商或您的组织)。
例如,假定一个XDM架构使用 个人联系人详细信息 字段组,其中有一个标准 mobilePhone
存在于中的字段 xdm
命名空间。 在同一架构中,您还可以自行创建一个 mobilePhone
其他命名空间下的字段(您的 租户ID)。 这两个字段可以共存,但具有不同的底层含义或约束。
命名空间语法
以下部分演示了如何在XDM语法中分配命名空间。
标准XDM standard
标准XDM语法可让您深入了解命名空间在架构中的表示方式(包括 如何在Adobe Experience Platform中翻译它们)。
标准XDM使用 JSON-LD 将命名空间分配给字段的语法。 此命名空间采用URI形式(如 https://ns.adobe.com/xdm
对于 xdm
命名空间),或作为在中配置的速记前缀 @context
模式的属性。
以下是标准XDM语法中产品的模式示例。 但以下各项除外 @id
(由JSON-LD规范定义的唯一标识符),下的每个字段 properties
以命名空间开头并以字段名称结尾。 如果使用下定义的速记前缀 @context
,则命名空间和字段名称用冒号(:
)。 如果不使用前缀,则命名空间和字段名称用斜杠(/
)。
{
"$id": "https://ns.adobe.com/xdm/schemas/mySchema",
"title": "Product",
"description": "Represents the definition of a Project",
"@context": {
"xdm": "https://ns.adobe.com/xdm",
"repo": "http://ns.adobe.com/adobecloud/core/1.0/",
"schema": "http://schema.org",
"tenantId": "https://ns.adobe.com/tenantId"
},
"properties": {
"@id": {
"type": "string"
},
"xdm:sku": {
"type": "string"
},
"xdm:name": {
"type": "string"
},
"repo:createdDate": {
"type": "string",
"format": "datetime"
},
"https://ns.adobe.com/xdm/channels/application": {
"type": "string"
},
"schema:latitude": {
"type": "number"
},
"https://ns.adobe.com/vendorA/product/stockNumber": {
"type": "string"
},
"tenantId:internalSku": {
"type": "number"
}
}
}
@context
properties
.@id
xdm:sku
xdm
是命名空间(https://ns.adobe.com/xdm
),和 sku
是字段名称。https://ns.adobe.com/xdm/channels/application
https://ns.adobe.com/xdm/channels
是命名空间,并且 application
是字段名称。https://ns.adobe.com/vendorA/product/stockNumber
https://ns.adobe.com/vendorA/product
是供应商命名空间,并且 stockNumber
是字段名称。tenantId:internalSku
tenantId
是租户命名空间(https://ns.adobe.com/tenantId
),和 internalSku
是字段名称。兼容模式 compatibility
在Adobe Experience Platform中,XDM架构表示在 兼容模式 语法,它不使用JSON-LD语法来表示命名空间。 相反,Platform将命名空间转换为父字段(以下划线开头),并将字段嵌套在其下。
例如,标准XDM repo:createdDate
已转换为 _repo.createdDate
和将在“兼容模式”中显示在以下结构下:
"_repo": {
"type": "object",
"properties": {
"createdDate": {
"type": "string",
"format": "datetime"
}
}
}
使用 xdm
命名空间显示为下的根字段 properties
并放置 xdm:
显示在中的前缀 标准XDM语法. 例如, xdm:sku
仅被列为 sku
而是。
以下JSON表示如何将上面显示的标准XDM语法示例转换为兼容模式。
{
"$id": "https://ns.adobe.com/xdm/schemas/mySchema",
"title": "Product",
"description": "Represents the definition of a Project",
"properties": {
"_id": {
"type": "string"
},
"sku": {
"type": "string"
},
"name": {
"type": "string"
},
"_repo": {
"type": "object",
"properties": {
"createdDate": {
"type": "string",
"format": "datetime"
}
}
},
"_channels": {
"type": "object",
"properties": {
"application": {
"type": "string"
}
}
},
"_schema": {
"type": "object",
"properties": {
"application": {
"type": "string"
}
}
},
"_vendorA": {
"type": "object",
"properties": {
"product": {
"type": "object",
"properties": {
"stockNumber": {
"type": "string"
}
}
}
}
},
"_tenantId": {
"type": "object",
"properties": {
"internalSku": {
"type": "number"
}
}
}
}
}
后续步骤
本指南概述了XDM命名空间以及它们在JSON中的表示方式。 有关如何使用API配置XDM模式的更多信息,请参见 架构注册表API指南.