Sintaxe de namespace
As seções a seguir demonstram como os namespaces são atribuídos na sintaxe XDM.
XDM padrão
A sintaxe XDM padrão fornece à insight como os namespaces são representados nos esquemas (incluindo como são traduzidos no Adobe Experience Platform).
O XDM padrão usa a sintaxe JSON-LD para atribuir namespaces a campos. Este namespace vem na forma de um URI (como https://ns.adobe.com/xdm
para o namespace xdm
) ou como um prefixo abreviado que é configurado no atributo @context
de um esquema.
Veja a seguir um exemplo de esquema para um produto na sintaxe XDM padrão. Com exceção de @id
(o identificador exclusivo conforme definido pela especificação JSON-LD), cada campo em properties
começa com um namespace e termina com o nome do campo. Se estiver usando um prefixo abreviado definido em @context
, o namespace e o nome do campo serão separados por dois-pontos (:
). Se não estiver usando um prefixo, o namespace e o nome do campo serão separados por uma barra (/
).
{
"$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"
}
}
}
Propriedade | Descrição |
---|---|
@context | Um objeto que define os prefixos abreviados que podem ser usados em vez de um URI de namespace completo em properties . |
@id | Um identificador exclusivo para o registro conforme definido pela especificação JSON-LD. |
xdm:sku | Um exemplo de um campo que usa um prefixo abreviado para denotar um namespace. Nesse caso, xdm é o namespace (https://ns.adobe.com/xdm ) e sku é o nome do campo. |
https://ns.adobe.com/xdm/channels/application | Um exemplo de um campo que usa o URI de namespace completo. Nesse caso, https://ns.adobe.com/xdm/channels é o namespace e application é o nome do campo. |
https://ns.adobe.com/vendorA/product/stockNumber | Os campos fornecidos pelos recursos do fornecedor usam seus próprios namespaces exclusivos. Neste exemplo, https://ns.adobe.com/vendorA/product é o namespace do fornecedor e stockNumber é o nome do campo. |
tenantId:internalSku | Os campos definidos pela organização usam a ID de locatário exclusiva como namespace. Neste exemplo, tenantId é o namespace do locatário (https://ns.adobe.com/tenantId ) e internalSku é o nome do campo. |
Modo de compatibilidade
No Adobe Experience Platform, os esquemas XDM são representados na sintaxe Modo de Compatibilidade, que não usa a sintaxe JSON-LD para representar namespaces. Em vez disso, o Experience Platform converte o namespace em um campo pai (começando com um sublinhado) e aninha os campos sob ele.
Por exemplo, o XDM padrão repo:createdDate
é convertido em _repo.createdDate
e aparece na seguinte estrutura no Modo de Compatibilidade:
"_repo": {
"type": "object",
"properties": {
"createdDate": {
"type": "string",
"format": "datetime"
}
}
}
Os campos que usam o namespace xdm
aparecem como campos raiz em properties
e removem o prefixo xdm:
que apareceria na sintaxe XDM padrão. Por exemplo, xdm:sku
está simplesmente listado como sku
.
O JSON a seguir representa como o exemplo de sintaxe XDM padrão mostrado acima é traduzido para o Modo de compatibilidade.
{
"$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"
}
}
}
}
}