Definir campos XDM na API do Registro de Esquema

Todos os campos do Experience Data Model (XDM) são definidos usando o padrão Esquema JSON restrições que se aplicam ao tipo de campo, com restrições adicionais para nomes de campo que são aplicadas pelo Adobe Experience Platform. A API de Registro de Esquema permite definir campos personalizados em seus esquemas usando formatos e restrições opcionais. Os tipos de campo XDM são expostos pelo atributo de nível de campo, meta:xdmType.

OBSERVAÇÃO

meta:xdmType é um valor gerado pelo sistema e, portanto, você não é obrigado a adicionar essa propriedade ao JSON do seu campo ao usar a API (exceto quando criação de tipos de mapa personalizado). A prática recomendada é usar tipos de Esquema JSON (como string e integer) com as restrições mínimas/máximas apropriadas, conforme definido na tabela abaixo.

A tabela a seguir descreve a formatação apropriada para definir tipos de campos diferentes, incluindo aqueles com propriedades opcionais. Mais informações sobre propriedades opcionais e palavras-chave específicas do tipo estão disponíveis no Documentação do Esquema JSON.

Para começar, encontre o tipo de campo desejado e use o código de amostra fornecido para criar sua solicitação de API para criação de um grupo de campos ou criação de um tipo de dados.

Tipo XDM Propriedades opcionais Exemplo
String
  • pattern
  • minLength
  • maxLength
"sampleField": { "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 }
URI
"sampleField": { "type": "string", "format": "uri" }
Enum
  • default
  • meta:enum
Os valores de enum restritos são fornecidos sob a variável enum , enquanto etiquetas opcionais voltadas para o cliente para cada valor podem ser fornecidas em meta:enum:
"sampleField": { "type": "string", "enum": [ "value1", "value2", "value3" ], "meta:enum": { "value1": "Valor 1", "valor 2": "Value 2", "value3": "Value 3" }, "default": "value1" }

Observe que a variável meta:enum valor faz not declare uma enumeração ou direcione qualquer validação de dados sozinha. Na maioria dos casos, as cadeias de caracteres fornecidas em meta:enum são igualmente fornecidas nos termos do enum para garantir que os dados sejam restritos. No entanto, existem alguns casos de uso em que meta:enum é fornecido sem um enum matriz. Veja o tutorial em definição de valores sugeridos para obter mais informações.
Número
"sampleField": { "type": "number" }
Longo
"sampleField": { "type": "integer", "Minimum": -9007199254740992, "máximo": 9007199254740992 }
Número inteiro
"sampleField": { "type": "integer", "Minimum": -2147483648, "máximo": 2147483648 }
Curto
"sampleField": { "type": "integer", "Minimum": -32768, "máximo": 32768 }
Byte
"sampleField": { "type": "integer", "Minimum": -128, "máximo": 128 }
Boolean
  • default
"sampleField": { "type": "booleano", "padrão": false }
Data
"sampleField": { "type": "string", "format": "date", "example": ["2004-10-23"] }
DateTime
"sampleField": { "type": "string", "format": "date-time", "example": ["2004-10-23T12:00:00-06:00"] }
Array Uma matriz de tipos escalares básicos (por exemplo, strings):
"sampleField": { "type": "array", "items": { "type": "string" }
Uma matriz de objetos definidos por outro schema:
"sampleField": { "type": "array", "items": { "$ref": "https://ns.adobe.com/xdm/data/paymentitem" }
Objeto O type atributo de cada subcampo definido em properties pode ser definido usando qualquer tipo escalar:
"sampleField": { "type": "object", "properties": { "field1": { "type": "string" }, "field2": { "type": "number" }
Os campos do tipo objeto podem ser definidos fazendo referência à variável $id de um tipo de dados:
"sampleField": { "type": "object", "$ref": "https://ns.adobe.com/xdm/common/phoneinteraction" }
Map Um campo do tipo mapa é essencialmente um campo do tipo objeto com um conjunto não restrito de chaves. Como objetos, mapas têm uma type valor de object, mas seus meta:xdmType está explicitamente definido como map.

Um mapa não deve defina quaisquer propriedades. It must defina uma additionalProperties para descrever o tipo de valores contidos no mapa (cada mapa só pode conter um único tipo de dados). O type deve ser string ou integer.

Um campo de mapa com valores do tipo string:
"sampleField": { "type": "object", "meta:xdmType": "map", "additionalProperties":{ "type": "string" }
Consulte a seção abaixo para obter mais informações sobre a criação de tipos de mapa personalizado no XDM.

Criação de tipos de mapa personalizado

Para oferecer suporte a dados "semelhantes ao mapa" com eficiência no XDM, os objetos podem receber anotações com um meta:xdmType defina como map para deixar claro que um objeto deve ser gerenciado como se o conjunto de chaves não estivesse restrito. Os dados assimilados em campos de mapa devem usar chaves de string e somente valores de string ou inteiros (como determinado por additionalProperties.type).

O XDM coloca as seguintes restrições sobre o uso dessa dica de armazenamento:

  • Os tipos de mapa DEVEM ser do tipo object.
  • Os tipos de mapa NÃO DEVEM ter propriedades definidas (em outras palavras, eles definem objetos "vazios").
  • Os tipos de mapa DEVEM incluir uma additionalProperties.type que descreve os valores que podem ser colocados no mapa, string ou integer.

Certifique-se de que você esteja usando apenas campos do tipo mapa quando for absolutamente necessário, pois eles apresentam as seguintes desvantagens de desempenho:

  • O tempo de resposta do Serviço de query da Adobe Experience Platform diminui de três segundos para dez segundos para 100 milhões de registros.
  • Os mapas devem ter menos de 16 chaves ou, caso contrário, arriscam mais degradação.

A interface do usuário da Platform também tem limitações em como extrair as chaves dos campos do tipo mapa. Embora os campos do tipo de objeto possam ser expandidos, os mapas são exibidos como um único campo.

Próximas etapas

Este guia cobriu como definir diferentes tipos de campo na API. Para obter mais informações sobre como os tipos de campos XDM são formatados, consulte o guia em Restrições do tipo de campo XDM.

Nesta página