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 restreint le type de données que le champ peut contenir. Ce document fournit un aperçu de chaque type de champ principal, y compris les autres formats de sérialisation auxquels ils peuvent être mappés et comment définir vos propres types de champ dans l’API afin d’appliquer différentes contraintes.

Prise en main

Avant d’utiliser ce guide, veuillez consulter la section principes de base de la composition des schémas pour une introduction aux schémas XDM, aux classes et aux groupes de champs de schéma.

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

Structure de base et exemples

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 champ sont représentés dans le schéma JSON peut aider à indiquer les contraintes de base de chaque type.

REMARQUE

Voir Guide de base des API pour plus d’informations sur le schéma JSON et d’autres technologies sous-jacentes dans les API Platform.

Le tableau suivant décrit la représentation de chaque type XDM dans le schéma JSON, ainsi qu’un exemple de valeur conforme au type :

Type XDM Schéma JSON Exemple
String
{"type": "string"}
"Platinum"
Double
{"type": "number"}
12925.49
Long
{ "type": "integer", "maximum": 9007199254740991, "minimum" : -9007199254740991 }
1478108935
Integer
{ "type": "integer", "maximum": 2147483648, "minimum" : -2147483648 }
24906290
Court
{ "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"
Booléen
{"type": "string"}
true

*Toutes les chaînes au format 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 est mappé à d’autres formats de sérialisation courants :

IMPORTANT

Parmi les types XDM standard répertoriés dans les tableaux ci-dessous, la variable Carte est également inclus. Les cartes sont utilisées dans les schémas standard lorsque les données sont représentées sous la forme de clés qui mappent à certaines valeurs ou lorsque les clés ne peuvent pas raisonnablement être incluses dans un schéma statique et doivent être traitées comme des valeurs de données.

Les champs de type map sont réservés à l’utilisation des schémas du secteur et des fournisseurs et ne peuvent donc pas être utilisés dans les ressources personnalisées que vous définissez. L’inclusion du type de mappage dans les tableaux ci-dessous est uniquement 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

Type XDM Parquet Spark SQL Java
Chaîne Type : BYTE_ARRAY
Annotation : UTF8
StringType java.lang.String
Double Type : DOUBLE LongType java.lang.Double
Long Type : INT64 LongType java.lang.Long
Nombre 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
DateTime Type : INT64
Annotation : TIMESTAMP_MILLIS
TimestampType java.util.Date
Booléen Type : BOOLEAN BooleanType java.lang.Boolean
Carte MAP-groupe annoté

(<key-type> must STRING)
MapType

(keyType must StringType)
java.util.Map

Scala, .NET et CosmosDB

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

MongoDB, Aerospike et Protobuf 2

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

Définition des types de champ XDM dans l’API

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

Sur cette page