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.
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 »: « 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 »,
  « maximum » : 128
  « minimum » : -128
}
            90{
  « type »: « string »,
  « format »: « date »
}
            "2019-05-15"{
  « type »: « string »,
  « format » : « date-heure »
}
            "2019-05-15T20:20:39+00:00"{« 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 :
Parquet, Spark SQL et Java parquet
BYTE_ARRAYAnnotation :
UTF8StringTypejava.lang.StringDOUBLELongTypejava.lang.DoubleINT64LongTypejava.lang.LongINT32Annotation :
INT_32IntegerTypejava.lang.IntegerINT32Annotation :
INT_16ShortTypejava.lang.ShortINT32Annotation :
INT_8ByteTypejava.lang.ShortINT32Annotation :
DATEDateTypejava.util.DateINT64Annotation :
TIMESTAMP_MILLISTimestampTypejava.util.DateBOOLEANBooleanTypejava.lang.BooleanMAP-annoté(
<key-type> doit être STRING)MapType(
keyType doit être StringType)java.util.MapScala, .NET et CosmosDB scala
StringSystem.StringStringDoubleSystem.DoubleNumberLongSystem.Int64NumberIntSystem.Int32NumberShortSystem.Int16NumberByteSystem.SByteNumberjava.util.DateSystem.DateTimeStringjava.util.DateSystem.DateTimeStringBooleanSystem.BooleanBooleanMapobjectMongoDB, Aerospike et Protobuf 2 mongo
stringStringstringdoubleDoubledoublelongIntegerint64intIntegerint32intIntegerint32intIntegerint32dateInteger(Unix millisecondes)
int64(Unix millisecondes)
timestampInteger(Unix millisecondes)
int64(Unix millisecondes)
boolInteger(0/1 binaire)
boolobjectmapmap<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.