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, consultare nozioni di base sulla composizione dello schema per un’introduzione a schemi, classi e gruppi di campi di schema XDM.

Se prevedi di definire tipi di campo personalizzati nell’API, si consiglia vivamente di iniziare con 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 vincoli sui campi definiti all’interno di gruppi di campi e tipi di dati personalizzati.

Struttura di base ed esempi

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.

NOTA

Consulta la Guida di base sulle API per ulteriori informazioni sullo schema JSON e su altre tecnologie sottostanti nelle API di Platform.

La tabella seguente illustra come ogni tipo XDM viene rappresentato nello schema JSON, insieme a un valore di esempio conforme al tipo:

Tipo XDM Schema JSON Esempio
Stringa
{"type": "string"}
"Platinum"
Doppio
{"type": "number"}
12925.49
Long
{ "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991 }
1478108935
Integer
{ "type": "integer", "maximum": 2147483648, "minimum": -2147483648 }
24906290
Short
{ "type": "integer", "maximum": 32768, "minimum": -32768 }
15781
Byte
{ "type": "integer", "maximum": 128, "minimum": -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 in formato data devono essere conformi allo standard ISO 8601 (RFC 3339, paragrafo 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:

NOTA

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 si associano 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 è utile per determinare come mappare i dati esistenti su XDM se sono attualmente memorizzati in uno dei formati elencati di seguito.

Parquet, Spark SQL e Java

Tipo XDM Parquet Spark SQL Java
Stringa Tipo: BYTE_ARRAY
Annotazione: UTF8
StringType java.lang.String
Doppio Tipo: DOUBLE LongType java.lang.Double
Lungo 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 con annotazioni

(<key-type> deve essere STRING)
MapType

(keyType deve essere StringType)
java.util.Map

Scala, .NET e CosmosDB

Tipo XDM Scala .NET CosmosDB
Stringa String System.String String
Doppio Double System.Double Number
Lungo 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

MongoDB, Aerospike e Protobuf 2

Tipo XDM MongoDB Aerospike Protobuf 2
Stringa string String string
Doppio double Double double
Lungo long Integer int64
Intero int Integer int32
Breve int Integer int32
Byte int Integer int32
Data date Integer
(Unix millisecondi)
int64
(Unix millisecondi)
DateTime timestamp Integer
(Unix millisecondi)
int64
(Unix millisecondi)
Booleano bool Integer
(0/1 binario)
bool
Mappa object map map<key_type, value_type>

Definizione dei tipi di campi XDM nell’API

L’API Schema Registry consente di definire campi personalizzati tramite l’utilizzo di formati e vincoli facoltativi. Consulta la guida su definizione dei campi personalizzati nell’API Schema Registry per ulteriori informazioni.

In questa pagina