Negli schemi Experience Data Model (XDM), il tipo di campo limita il tipo di dati che può contenere il campo. Questo documento fornisce una panoramica di ogni tipo di campo di base, inclusi gli altri formati di serializzazione a cui possono essere mappati e come definire i propri tipi di campo nell’API per applicare vincoli diversi.
Prima di utilizzare questa guida, consulta la sezione nozioni di base sulla composizione dello schema introduzione a schemi, classi e gruppi di campi schema XDM.
Se prevedi di definire tipi di campi personalizzati nell’API, ti consigliamo vivamente di iniziare con Guida per gli sviluppatori del Registro di sistema dello schema per scoprire come creare gruppi di campi e tipi di dati in cui includere i campi personalizzati. Se utilizzi l’interfaccia utente di Experience Platform per creare gli schemi, consulta la guida in definizione dei campi nell’interfaccia utente per scoprire come implementare i vincoli nei campi definiti all’interno dei gruppi di campi personalizzati e dei tipi di dati.
XDM è basato su uno schema JSON e pertanto i campi XDM ereditano una sintassi simile quando ne definiscono il tipo. Per comprendere in che modo diversi tipi di campi sono rappresentati nello schema JSON, è utile indicare i vincoli di base di ciascun tipo.
Consulta la sezione Guida di base sulle API per ulteriori informazioni sullo schema JSON e altre tecnologie sottostanti nelle API di Platform.
La tabella seguente illustra il modo in cui ogni tipo XDM viene rappresentato nello schema JSON, insieme a un valore di esempio conforme al tipo:
Tipo XDM | Schema JSON | Esempio |
---|---|---|
String |
{"type": "string"} |
"Platinum" |
Doppio |
{"type": "number"} |
12925.49 |
Long |
{ "type": "integer", "maximum": 9007199254740991, "minimo": -9007199254740991 } |
1478108935 |
Integer |
{ "type": "integer", "maximum": 2147483648, "minimo": -2147483648 } |
24906290 |
Short |
{ "type": "integer", "maximum": 32768, "minimo": -32768 } |
15781 |
Byte |
{ "type": "integer", "maximum": 128, "minimo": -128 } |
90 |
Date* |
{ "type": "string", "format": "date" } |
"2019-05-15" |
DateTime* |
{ "type": "string", "format": "date-time" } |
"2019-05-15T20:20:39+00:00" |
Boolean |
{"type": "string"} |
true |
*Tutte le stringhe formattate con data devono essere conformi allo standard ISO 8601 (RFC 3339, sezione 5.6).
Le sezioni seguenti descrivono come ogni tipo XDM viene mappato su altri formati di serializzazione comuni:
Tra i tipi XDM standard elencati nelle tabelle seguenti, il Mappa è incluso anche il tipo . Le mappe vengono utilizzate negli schemi standard quando i dati sono rappresentati come chiavi che corrispondono a determinati valori, o quando le chiavi non possono essere ragionevolmente incluse in uno schema statico e devono essere trattate come valori di dati.
Molti componenti XDM standard utilizzano tipi di mappa e puoi anche definire campi mappa personalizzati se desiderato. L’inclusione del tipo di mappa nelle tabelle seguenti ha lo scopo di aiutarti a determinare come mappare i dati esistenti su XDM se sono attualmente memorizzati in uno dei formati elencati di seguito.
Tipo XDM | Parquet | SQL Spark | Java |
---|---|---|---|
Stringa | Tipo: BYTE_ARRAY Annotazione: UTF8 |
StringType |
java.lang.String |
Doppio | Tipo: DOUBLE |
LongType |
java.lang.Double |
Lunga | Tipo: INT64 |
LongType |
java.lang.Long |
Intero | Tipo: INT32 Annotazione: INT_32 |
IntegerType |
java.lang.Integer |
Breve | Tipo: INT32 Annotazione: INT_16 |
ShortType |
java.lang.Short |
Byte | Tipo: INT32 Annotazione: INT_8 |
ByteType |
java.lang.Short |
Data | Tipo: INT32 Annotazione: DATE |
DateType |
java.util.Date |
DateTime | Tipo: INT64 Annotazione: TIMESTAMP_MILLIS |
TimestampType |
java.util.Date |
Booleano | Tipo: BOOLEAN |
BooleanType |
java.lang.Boolean |
Mappa | MAP -gruppo annotato( <key-type> devono STRING ) |
MapType ( keyType devono StringType ) |
java.util.Map |
Tipo XDM | Scala | .NET | CosmosDB |
---|---|---|---|
Stringa | String |
System.String |
String |
Doppio | Double |
System.Double |
Number |
Lunga | Long |
System.Int64 |
Number |
Intero | Int |
System.Int32 |
Number |
Breve | 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 |
Mappa | Map |
(N/D) | object |
Tipo XDM | MongoDB | Aerospik | Protobuf 2 |
---|---|---|---|
Stringa | string |
String |
string |
Doppio | double |
Double |
double |
Lunga | long |
Integer |
int64 |
Intero | int |
Integer |
int32 |
Breve | int |
Integer |
int32 |
Byte | int |
Integer |
int32 |
Data | date |
Integer (millisecondi Unix) |
int64 (millisecondi Unix) |
DateTime | timestamp |
Integer (millisecondi Unix) |
int64 (millisecondi Unix) |
Booleano | bool |
Integer (0/1 binario) |
bool |
Mappa | object |
map |
map<key_type, value_type> |
L’API del Registro di sistema dello schema consente di definire campi personalizzati tramite l’utilizzo di formati e vincoli facoltativi. Consulta la guida su definizione dei campi personalizzati nell’API del Registro di sistema dello schema per ulteriori informazioni.