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.

NOTE
Per ulteriori informazioni sullo schema JSON e su altre tecnologie sottostanti nelle API di Platform, consulta la guida sui concetti fondamentali delle API.

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"
Number
{"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",
  "max": 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, 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:

NOTE
Tra i tipi XDM standard elencati nelle tabelle seguenti, è incluso anche il tipo Map. 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 se necessario, puoi anche definire campi di mappa personalizzati. 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 parquet

Tipo XDM
Parquet
Spark SQL
Java
Stringa
Tipo: BYTE_ARRAY
Annotazione: UTF8
StringType
java.lang.String
Numero
Tipo: DOUBLE
LongType
java.lang.Double
Lungo
Tipo: INT64
LongType
java.lang.Long
Numero 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
DataOra
Tipo: INT64
Annotazione: TIMESTAMP_MILLIS
TimestampType
java.util.Date
Booleano
Tipo: BOOLEAN
BooleanType
java.lang.Boolean
Mappa
Gruppo con annotazioni MAP

(<key-type> deve essere STRING)
MapType

(keyType deve essere StringType)
java.util.Map

Scala, .NET e CosmosDB scala

Tipo XDM
Scala
.NET
CosmosDB
Stringa
String
System.String
String
Numero
Double
System.Double
Number
Lungo
Long
System.Int64
Number
Numero intero
Int
System.Int32
Number
Breve
Short
System.Int16
Number
Byte
Byte
System.SByte
Number
Data
java.util.Date
System.DateTime
String
DataOra
java.util.Date
System.DateTime
String
Booleano
Boolean
System.Boolean
Boolean
Mappa
Map
(N/D)
object

MongoDB, Aerospike e Protobuf 2 mongo

Tipo XDM
MongoDB
Aerospike
Protobuf 2
Stringa
string
String
string
Numero
double
Double
double
Lungo
long
Integer
int64
Numero intero
int
Integer
int32
Breve
int
Integer
int32
Byte
int
Integer
int32
Data
date
Integer
(millisecondi Unix)
int64
(millisecondi Unix)
DataOra
timestamp
Integer
(millisecondi Unix)
int64
(millisecondi Unix)
Booleano
bool
Integer
(binario 0/1)
bool
Mappa
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.

recommendation-more-help
62e9ffd9-1c74-4cef-8f47-0d00af32fc07