Nos esquemas do Experience Data Model (XDM), o tipo de campo restringe o tipo de dados que o campo pode conter. Este documento fornece uma visão geral de cada tipo de campo principal, incluindo os outros formatos de serialização para os quais podem ser mapeados e como definir seus próprios tipos de campo na API para impor restrições diferentes.
Antes de usar este guia, reveja o noções básicas da composição do schema para obter uma introdução a esquemas, classes e grupos de campos do esquema XDM.
Se você planeja definir seus próprios tipos de campo na API, é altamente recomendável começar com a variável Guia do desenvolvedor do Registro de Schema para saber como criar grupos de campos e tipos de dados para incluir campos personalizados no. Se você estiver usando a interface do usuário do Experience Platform para criar seus esquemas, consulte o guia em definição de campos na interface do usuário para saber como implementar restrições em campos definidos em grupos de campos e tipos de dados personalizados.
O XDM é criado sobre o Esquema JSON e, portanto, os campos XDM herdam uma sintaxe semelhante ao definir seu tipo. Entender como diferentes tipos de campo são representados no Esquema JSON pode ajudar a indicar as restrições básicas de cada tipo.
Consulte a Guia de fundamentos da API para obter mais informações sobre o Esquema JSON e outras tecnologias subjacentes nas APIs da plataforma.
A tabela a seguir descreve como cada tipo de XDM é representado no Esquema JSON, juntamente com um exemplo de valor que está em conformidade com o tipo :
Tipo XDM | Esquema JSON | Exemplo |
---|---|---|
String |
{"type": "string"} |
"Platinum" |
Duplo |
{"type": "número"} |
12925.49 |
Longo |
{ "type": "integer", "maximum": 9007199254740991, "mínimo": -9007199254740991 } |
1478108935 |
Número inteiro |
{ "type": "integer", "maximum": 2147483648, "mínimo": -2147483648 } |
24906290 |
Curto |
{ "type": "integer", "maximum": 32768, "mínimo": -32768 } |
15781 |
Byte |
{ "type": "integer", "maximum": 128, "mínimo": -128 } |
90 |
Data* |
{ "type": "string", "format": "date" } |
"2019-05-15" |
DateTime* |
{ "type": "string", "format": "date-time" } |
"2019-05-15T20:20:39+00:00" |
Boolean |
{"type": "string"} |
true |
*Todas as strings formatadas na data devem estar em conformidade com o padrão ISO 8601 (RFC 3339, seção 5.6).
As seções abaixo descrevem como cada tipo XDM mapeia para outros formatos de serialização comuns:
Entre os tipos XDM padrão listados nas tabelas abaixo, a variável Mapa também está incluído. Os mapas são usados em esquemas padrão quando os dados são representados como chaves que mapeiam para determinados valores ou quando as chaves não podem razoavelmente ser incluídas em um schema estático e devem ser tratadas como valores de dados.
Muitos componentes padrão do XDM usam tipos de mapa e você também pode definir campos de mapa personalizados se desejar. A inclusão do tipo de mapa nas tabelas abaixo tem como objetivo ajudar você a determinar como mapear os dados existentes para XDM se eles estiverem armazenados atualmente em qualquer um dos formatos listados abaixo.
Tipo XDM | Parquet | SQL Spark | Java |
---|---|---|---|
String | Tipo: BYTE_ARRAY Anotação: UTF8 |
StringType |
java.lang.String |
Duplo | Tipo: DOUBLE |
LongType |
java.lang.Double |
Longo | Tipo: INT64 |
LongType |
java.lang.Long |
Número inteiro | Tipo: INT32 Anotação: INT_32 |
IntegerType |
java.lang.Integer |
Curto | Tipo: INT32 Anotação: INT_16 |
ShortType |
java.lang.Short |
Byte | Tipo: INT32 Anotação: INT_8 |
ByteType |
java.lang.Short |
Data | Tipo: INT32 Anotação: DATE |
DateType |
java.util.Date |
DateTime | Tipo: INT64 Anotação: TIMESTAMP_MILLIS |
TimestampType |
java.util.Date |
Booleano | Tipo: BOOLEAN |
BooleanType |
java.lang.Boolean |
Mapa | MAP -grupo anotado( <key-type> deve ser STRING ) |
MapType ( keyType deve ser StringType ) |
java.util.Map |
Tipo XDM | Scala | .NET | CosmosDB |
---|---|---|---|
String | String |
System.String |
String |
Duplo | Double |
System.Double |
Number |
Longo | Long |
System.Int64 |
Number |
Número inteiro | Int |
System.Int32 |
Number |
Curto | Short |
System.Int16 |
Number |
Byte | Byte |
System.SByte |
Number |
Data | java.util.Date |
System.DateTime |
String |
DateTime | java.util.Date |
System.DateTime |
String |
Booleano | Boolean |
System.Boolean |
Boolean |
Mapa | Map |
(N/D) | object |
Tipo XDM | MongoDB | Aerospike | Protobuf 2 |
---|---|---|---|
String | string |
String |
string |
Duplo | double |
Double |
double |
Longo | long |
Integer |
int64 |
Número inteiro | int |
Integer |
int32 |
Curto | int |
Integer |
int32 |
Byte | int |
Integer |
int32 |
Data | date |
Integer (Milissegundos do Unix) |
int64 (Milissegundos do Unix) |
DateTime | timestamp |
Integer (Milissegundos do Unix) |
int64 (Milissegundos do Unix) |
Booleano | bool |
Integer (0/1 binário) |
bool |
Mapa | object |
map |
map<key_type, value_type> |
A API de Registro de Esquema permite definir campos personalizados usando formatos e restrições opcionais. Consulte o guia sobre definição de campos personalizados na API do Registro de esquema para obter mais informações.