Espaciado de nombres en el modelo de datos de experiencia (XDM)
Todos los campos de los esquemas XDM (Experience Data Model) tienen un área de nombres asociada. Estas áreas de nombres le permiten ampliar los esquemas y evitar conflictos de campos a medida que se reúnen distintos componentes de esquema. Este documento proporciona información general sobre los espacios de nombres en XDM y cómo se representan en la API de Registro de esquemas.
El espacio de nombres permite definir un campo en un área de nombres para que signifique algo diferente que el mismo campo en una área de nombres diferente. En la práctica, el área de nombres de un campo indica quién creó el campo (como un XDM estándar (Adobe), un proveedor o su organización).
Por ejemplo, considere un esquema XDM que use el grupo de campos Datos personales de contacto, que tiene un campo mobilePhone
estándar que existe en el área de nombres xdm
. En el mismo esquema, también puede crear un campo mobilePhone
independiente en un área de nombres diferente (su ID de inquilino). Ambos campos pueden coexistir juntos mientras tienen diferentes significados o restricciones subyacentes.
Sintaxis de espacio de nombres
Las secciones siguientes muestran cómo se asignan los espacios de nombres en la sintaxis XDM.
XDM estándar standard
La sintaxis XDM estándar proporciona una perspectiva de cómo se representan los espacios de nombres en los esquemas (incluido cómo se traducen en Adobe Experience Platform).
El XDM estándar utiliza la sintaxis JSON-LD para asignar áreas de nombres a los campos. Este espacio de nombres se presenta en forma de URI (como https://ns.adobe.com/xdm
para el espacio de nombres xdm
) o como prefijo abreviado que se configura en el atributo @context
de un esquema.
El siguiente es un esquema de ejemplo para un producto con sintaxis XDM estándar. Con la excepción de @id
(el identificador único definido por la especificación JSON-LD), cada campo bajo properties
comienza con un área de nombres y termina con el nombre del campo. Si se usa un prefijo abreviado definido en @context
, el espacio de nombres y el nombre de campo se separarán mediante dos puntos (:
). Si no se usa un prefijo, el espacio de nombres y el nombre de campo se separarán mediante una barra diagonal (/
).
{
"$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
es el espacio de nombres (https://ns.adobe.com/xdm
) y sku
es el nombre del campo.https://ns.adobe.com/xdm/channels/application
https://ns.adobe.com/xdm/channels
es el área de nombres y application
es el nombre del campo.https://ns.adobe.com/vendorA/product/stockNumber
https://ns.adobe.com/vendorA/product
es el espacio de nombres del proveedor y stockNumber
es el nombre del campo.tenantId:internalSku
tenantId
es el espacio de nombres del inquilino (https://ns.adobe.com/tenantId
) y internalSku
es el nombre del campo.Modo de compatibilidad compatibility
En Adobe Experience Platform, los esquemas XDM se representan con la sintaxis Modo de compatibilidad, que no utiliza la sintaxis JSON-LD para representar áreas de nombres. En su lugar, Platform convierte el área de nombres en un campo principal (que comienza con un guion bajo) y anida los campos en él.
Por ejemplo, el XDM estándar repo:createdDate
se convierte a _repo.createdDate
y aparecería en la siguiente estructura en el modo de compatibilidad:
"_repo": {
"type": "object",
"properties": {
"createdDate": {
"type": "string",
"format": "datetime"
}
}
}
Los campos que utilizan el área de nombres xdm
aparecen como campos raíz en properties
y sueltan el prefijo xdm:
que aparecería en sintaxis XDM estándar. Por ejemplo, xdm:sku
simplemente aparece como sku
.
El siguiente JSON representa cómo se traduce el ejemplo de sintaxis XDM estándar que se muestra arriba al modo de compatibilidad.
{
"$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"
}
}
}
}
}
Pasos siguientes
Esta guía proporciona información general sobre las áreas de nombres XDM y cómo se representan en JSON. Para obtener más información sobre cómo configurar esquemas XDM mediante la API, consulte la Guía de API del Registro de esquemas.