Restrições de tipo de campo XDM
Em esquemas do Experience Data Model (XDM), o tipo de um 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 aos quais eles podem ser mapeados e como definir seus próprios tipos de campo na API para aplicar restrições diferentes.
Introdução
Antes de usar este guia, revise as noções básicas da composição de esquema para obter uma introdução aos esquemas XDM, classes e grupos de campos de esquema.
Se você planeja definir seus próprios tipos de campo na API, é altamente recomendável começar com o guia do desenvolvedor do Registro de Esquema para saber como criar grupos de campos e tipos de dados para incluir seus campos personalizados no. Se você estiver usando a interface do Experience Platform para criar seus esquemas, consulte o manual em definindo campos na interface para saber como implementar restrições em campos definidos em grupos de campos personalizados e tipos de dados.
Estrutura básica e exemplos basic-types
O XDM é criado sobre o Esquema JSON e, portanto, os campos XDM herdam uma sintaxe semelhante ao definir seu tipo. Entender como os diferentes tipos de campo são representados no Esquema JSON pode ajudar a indicar as restrições básicas de cada tipo. Os nomes de campos personalizados não diferenciam maiúsculas de minúsculas e devem ter nomes diferentes no mesmo nível no esquema.
A tabela a seguir descreve como cada tipo de XDM é representado no Esquema JSON, juntamente com um valor de exemplo que está em conformidade com o tipo:
{"type": "string"}
"Platinum"
{"type": "number"}
12925.49
{
"type": "integer",
"maximum": 9007199254740991,
"mínimo": -9007199254740991
}
1478108935
{
"type": "integer",
"máximo": 2147483648,
"minimum": -2147483648
}
24906290
{
"type": "integer",
"maximum": 32768,
"minimum": -32768
}
15781
{
"type": "integer",
"maximum": 128,
"minimum": -128
}
90
{
"type": "string",
"format": "date"
}
"2019-05-15"
{
"type": "string",
"format": "date-time"
}
"2019-05-15T20:20:39+00:00"
{"type": "string"}
true
*Todas as cadeias de caracteres formatadas por data devem estar em conformidade com o padrão ISO 8601 (RFC 3339, seção 5.6).
Mapeamento tipos XDM para outros formatos
As seções abaixo descrevem como cada tipo de XDM é mapeado para outros formatos de serialização comuns:
Parquet, Spark SQL e Java parquet
BYTE_ARRAY
Anotação:
UTF8
StringType
java.lang.String
DOUBLE
LongType
java.lang.Double
INT64
LongType
java.lang.Long
INT32
Anotação:
INT_32
IntegerType
java.lang.Integer
INT32
Anotação:
INT_16
ShortType
java.lang.Short
INT32
Anotação:
INT_8
ByteType
java.lang.Short
INT32
Anotação:
DATE
DateType
java.util.Date
INT64
Anotação:
TIMESTAMP_MILLIS
TimestampType
java.util.Date
BOOLEAN
BooleanType
java.lang.Boolean
MAP
anotado(
<key-type>
deve ser STRING
)MapType
(
keyType
deve ser StringType
)java.util.Map
Scala, .NET e CosmosDB scala
String
System.String
String
Double
System.Double
Number
Long
System.Int64
Number
Int
System.Int32
Number
Short
System.Int16
Number
Byte
System.SByte
Number
java.util.Date
System.DateTime
String
java.util.Date
System.DateTime
String
Boolean
System.Boolean
Boolean
Map
object
MongoDB, Aerospike e Protobuf 2 mongo
string
String
string
double
Double
double
long
Integer
int64
int
Integer
int32
int
Integer
int32
int
Integer
int32
date
Integer
(Unix milissegundos)
int64
(Unix milissegundos)
timestamp
Integer
(Unix milissegundos)
int64
(Unix milissegundos)
bool
Integer
(0/1 binário)
bool
object
map
map<key_type, value_type>
Definição de tipos de campo XDM na API define-fields
A API do Registro de esquema permite definir campos personalizados por meio do uso de formatos e restrições opcionais. Consulte o manual sobre definição de campos personalizados na API do Registro de Esquema para obter mais informações.