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": "boolean"}
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_ARRAYAnnotazione:
UTF8StringTypejava.lang.StringDOUBLELongTypejava.lang.DoubleINT64LongTypejava.lang.LongINT32Annotazione:
INT_32IntegerTypejava.lang.IntegerINT32Annotazione:
INT_16ShortTypejava.lang.ShortINT32Annotazione:
INT_8ByteTypejava.lang.ShortINT32Annotazione:
DATEDateTypejava.util.DateINT64Annotazione:
TIMESTAMP_MILLISTimestampTypejava.util.DateBOOLEANBooleanTypejava.lang.BooleanMAP(
<key-type> deve essere STRING)MapType(
keyType deve essere 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(millisecondi Unix)
int64(millisecondi Unix)
timestampInteger(millisecondi Unix)
int64(millisecondi Unix)
boolInteger(binario 0/1)
boolobjectmapmap<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.