Vincoli del tipo di campo XDM
Negli schemi Experience Data Model (XDM), il tipo di un campo limita il tipo di dati che il campo può contenere. Questo documento fornisce una panoramica di ogni tipo di campo principale, inclusi gli altri formati di serializzazione a cui possono essere mappati e come definire tipi di campo personalizzati nell’API per applicare vincoli diversi.
Introduzione
Prima di utilizzare questa guida, controlla le nozioni di base sulla composizione dello schema per un'introduzione a schemi, classi e gruppi di campi dello schema XDM.
Se prevedi di definire tipi di campo personalizzati nell'API, ti consigliamo vivamente di iniziare con la Guida per gli sviluppatori del registro dello schema per scoprire come creare gruppi di campi e tipi di dati per includere i campi personalizzati in. Se utilizzi l'interfaccia utente di Experience Platform per creare gli schemi, consulta la guida su definizione dei campi nell'interfaccia utente per scoprire come implementare i vincoli sui campi definiti all'interno dei gruppi di campi personalizzati e dei tipi di dati.
Struttura di base ed esempi basic-types
XDM è basato su schema JSON e pertanto i campi XDM ereditano una sintassi simile durante la definizione del relativo tipo. Informazioni sulla modalità di rappresentazione dei diversi tipi di campo nello schema JSON possono essere utili per indicare i vincoli di base di ciascun tipo. I nomi dei campi personalizzati non fanno distinzione tra maiuscole e minuscole e devono avere nomi diversi allo stesso livello nello schema.
La tabella seguente illustra come ogni tipo XDM viene rappresentato nello schema JSON, insieme a un valore di esempio conforme al tipo:
{"type": "string"}
"Platinum"
{"type": "number"}
12925.49
{
"type": "integer",
"maximum": 9007199254740991,
"minimum": -9007199254740991
}
1478108935
{
"type": "integer",
"maximum": 2147483648,
"minimum": -2147483648
}
24906290
{
"type": "integer",
"maximum": 32768,
"minimum": -32768
}
15781
{
"type": "integer",
"max": 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
*Tutte le stringhe in formato data devono essere conformi allo standard ISO 8601 (RFC 3339, sezione 5.6).
Mappatura dei tipi XDM su altri formati
Le sezioni seguenti descrivono come ogni tipo XDM viene mappato su altri formati di serializzazione comuni:
Parquet, Spark SQL e Java parquet
BYTE_ARRAY
Annotazione:
UTF8
StringType
java.lang.String
DOUBLE
LongType
java.lang.Double
INT64
LongType
java.lang.Long
INT32
Annotazione:
INT_32
IntegerType
java.lang.Integer
INT32
Annotazione:
INT_16
ShortType
java.lang.Short
INT32
Annotazione:
INT_8
ByteType
java.lang.Short
INT32
Annotazione:
DATE
DateType
java.util.Date
INT64
Annotazione:
TIMESTAMP_MILLIS
TimestampType
java.util.Date
BOOLEAN
BooleanType
java.lang.Boolean
MAP
(
<key-type>
deve essere STRING
)MapType
(
keyType
deve essere 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
(millisecondi Unix)
int64
(millisecondi Unix)
timestamp
Integer
(millisecondi Unix)
int64
(millisecondi Unix)
bool
Integer
(binario 0/1)
bool
object
map
map<key_type, value_type>
Definizione dei tipi di campi XDM nell’API define-fields
L’API Schema Registry consente di definire campi personalizzati tramite l’utilizzo di formati e vincoli facoltativi. Per ulteriori informazioni, consulta la guida sulla definizione dei campi personalizzati nell'API del Registro di schema.