Contraintes des types de champs XDM

Dans les schémas de modèle de données d’expérience (XDM), le type d’un champ limite le type de données que le champ peut contenir. Ce document fournit un aperçu de chaque type de champ principal, y compris des autres formats de sérialisation auxquels ils peuvent être mappés et de la manière de définir vos propres types de champs dans l’API afin d’appliquer différentes contraintes.

Commencer

Avant d’utiliser ce guide, consultez les principes de base de la composition des schémas pour une présentation des schémas, classes et groupes de champs de schéma XDM.

Si vous prévoyez de définir vos propres types de champs dans l’API, il est vivement recommandé de commencer par le guide de développement du registre des schémas pour savoir comment créer des groupes de champs et des types de données afin d’inclure vos champs personnalisés dans . Si vous utilisez l’interface utilisateur d’Experience Platform pour créer vos schémas, consultez le guide sur la définition de champs dans l’interface utilisateur pour savoir comment implémenter des contraintes sur les champs que vous définissez dans des groupes de champs et des types de données personnalisés.

Structure de base et exemples basic-types

XDM repose sur le schéma JSON. Par conséquent, les champs XDM héritent d’une syntaxe similaire lors de la définition de leur type. Comprendre comment différents types de champs sont représentés dans le schéma JSON peut vous aider à indiquer les contraintes de base de chaque type. Les noms des champs personnalisés ne respectent pas la casse et doivent porter des noms différents au même niveau dans votre schéma.

NOTE
Pour plus d’informations sur le schéma JSON et les autres technologies sous-jacentes dans les API Experience Platform🔗 consultez le guide des principes de base des API .

Le tableau suivant décrit la manière dont chaque type XDM est représenté dans le schéma JSON, ainsi qu’un exemple de valeur conforme au type :

Type XDM
Schéma JSON
Exemple
String
{« 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 »,
  « maximum » : 128
  « minimum » : -128
}
90
Date*
{
  « type »: « string »,
  « format »: « date »
}
"2019-05-15"
DateTime*
{
  « type »: « string »,
  « format » : « date-heure »
}
"2019-05-15T20:20:39+00:00"
Boolean
{« type »: « boolean »}
true

*Toutes les chaînes formatées en date doivent être conformes à la norme ISO 8601 (RFC 3339, section 5.6).

Faire correspondre les types XDM à d’autres formats

Les sections ci-dessous décrivent comment chaque type XDM correspond à d’autres formats de sérialisation courants :

NOTE
Parmi les types XDM standard répertoriés dans les tableaux ci-dessous, le type Map est également inclus. Les mappages sont utilisés dans les schémas standard lorsque les données sont représentées sous la forme de clés qui correspondent à certaines valeurs, ou lorsque les clés ne peuvent raisonnablement pas être incluses dans un schéma statique et doivent être traitées comme des valeurs de données.
De nombreux composants XDM standard utilisent des types de mappage. Vous pouvez également définir des champs de mappage personnalisés si vous le souhaitez. L’inclusion du type de mappage dans les tableaux ci-dessous est destinée à vous aider à déterminer comment mapper vos données existantes à XDM si elles sont actuellement stockées dans l’un des formats répertoriés ci-dessous.

Parquet, Spark SQL et Java parquet

Type XDM
Parquet
Spark SQL
Java
Chaîne
Type : BYTE_ARRAY
Annotation : UTF8
StringType
java.lang.String
Nombre
Type : DOUBLE
LongType
java.lang.Double
Long
Type : INT64
LongType
java.lang.Long
Entier
Type : INT32
Annotation : INT_32
IntegerType
java.lang.Integer
Court
Type : INT32
Annotation : INT_16
ShortType
java.lang.Short
Octet
Type : INT32
Annotation : INT_8
ByteType
java.lang.Short
Date
Type : INT32
Annotation : DATE
DateType
java.util.Date
DateHeure
Type : INT64
Annotation : TIMESTAMP_MILLIS
TimestampType
java.util.Date
booléen
Type : BOOLEAN
BooleanType
java.lang.Boolean
Carte
Groupe MAP-annoté

(<key-type> doit être STRING)
MapType

(keyType doit être StringType)
java.util.Map

Scala, .NET et CosmosDB scala

Type XDM
Scala
.NET
CosmosDB
Chaîne
String
System.String
String
Nombre
Double
System.Double
Number
Long
Long
System.Int64
Number
Entier
Int
System.Int32
Number
Court
Short
System.Int16
Number
Octet
Byte
System.SByte
Number
Date
java.util.Date
System.DateTime
String
DateHeure
java.util.Date
System.DateTime
String
booléen
Boolean
System.Boolean
Boolean
Carte
Map
(S/O)
object

MongoDB, Aerospike et Protobuf 2 mongo

Type XDM
MongoDB
Aerospike
Protobuf 2
Chaîne
string
String
string
Nombre
double
Double
double
Long
long
Integer
int64
Entier
int
Integer
int32
Court
int
Integer
int32
Octet
int
Integer
int32
Date
date
Integer
(Unix millisecondes)
int64
(Unix millisecondes)
DateHeure
timestamp
Integer
(Unix millisecondes)
int64
(Unix millisecondes)
booléen
bool
Integer
(0/1 binaire)
bool
Carte
object
map
map<key_type, value_type>

Définir des types de champs XDM dans l’API define-fields

L’API Schema Registry vous permet de définir des champs personnalisés à l’aide de formats et de contraintes facultatives. Pour plus d’informations, consultez le guide sur la définition de champs personnalisés dans l’API Schema Registry.

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