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": "boolean"}
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_ARRAYAnotação:
UTF8StringTypejava.lang.StringDOUBLELongTypejava.lang.DoubleINT64LongTypejava.lang.LongINT32Anotação:
INT_32IntegerTypejava.lang.IntegerINT32Anotação:
INT_16ShortTypejava.lang.ShortINT32Anotação:
INT_8ByteTypejava.lang.ShortINT32Anotação:
DATEDateTypejava.util.DateINT64Anotação:
TIMESTAMP_MILLISTimestampTypejava.util.DateBOOLEANBooleanTypejava.lang.BooleanMAP anotado(
<key-type> deve ser STRING)MapType(
keyType deve ser StringType)java.util.MapScala, .NET e CosmosDB scala
StringSystem.StringStringDoubleSystem.DoubleNumberLongSystem.Int64NumberIntSystem.Int32NumberShortSystem.Int16NumberByteSystem.SByteNumberjava.util.DateSystem.DateTimeStringjava.util.DateSystem.DateTimeStringBooleanSystem.BooleanBooleanMapobjectMongoDB, Aerospike e Protobuf 2 mongo
stringStringstringdoubleDoubledoublelongIntegerint64intIntegerint32intIntegerint32intIntegerint32dateInteger(Unix milissegundos)
int64(Unix milissegundos)
timestampInteger(Unix milissegundos)
int64(Unix milissegundos)
boolInteger(0/1 binário)
boolobjectmapmap<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.