Restricciones de tipo de campo XDM

En esquemas XDM (Experience Data Model), el tipo de campo restringe el tipo de datos que puede contener el campo. Este documento proporciona información general de cada tipo de campo principal, incluidos los demás formatos de serialización a los que se pueden asignar y cómo definir sus propios tipos de campo en la API para aplicar diferentes restricciones.

Introducción

Antes de utilizar esta guía, consulte la conceptos básicos de composición de esquemas para obtener una introducción a los esquemas XDM, las clases y los grupos de campos de esquema.

Si planea definir sus propios tipos de campo en la API, se recomienda comenzar con Guía para desarrolladores de Schema Registry para aprender a crear grupos de campos y tipos de datos para incluir los campos personalizados en. Si utiliza la interfaz de usuario del Experience Platform para crear los esquemas, consulte la guía de definición de campos en la IU para obtener información sobre cómo implementar restricciones en campos definidos dentro de grupos de campos personalizados y tipos de datos.

Estructura base y ejemplos basic-types

XDM se basa en el esquema JSON y, por lo tanto, los campos XDM heredan una sintaxis similar al definir su tipo. Comprender cómo se representan los distintos tipos de campo en el esquema JSON puede ayudar a indicar las restricciones base de cada tipo.

NOTE
Consulte la Guía de aspectos básicos de API para obtener más información sobre el esquema JSON y otras tecnologías subyacentes en las API de Platform.

En la siguiente tabla se describe cómo se representa cada tipo XDM en el esquema JSON, junto con un valor de ejemplo que se ajusta al tipo:

Tipo de XDM
Esquema JSON
Ejemplo
String
{"type": "string"}
"Platinum"
Número
{"type": "number"}
12925.49
Long
{ "type": "integer", "maximum": 9007199254740991, "minimum": -9007199254740991 }
1478108935
Entero
{ "type": "integer", "maximum": 2147483648, "minimum": -2147483648 }
24906290
Corto
{ "type": "integer", "maximum": 32768, "minimum": -32768 }
15781
Byte
{ "type": "integer", "maximum": 128, "minimum": -128 }
90
Fecha*
{ "type": "string", "format": "date" }
"2019-05-15"
DateTime*
{ "type": "string", "format": "date-time" }
"2019-05-15T20:20:39+00:00"
Booleano
{"type": "string"}
true

*Todas las cadenas con formato de fecha deben cumplir con la norma ISO 8601 (RFC 3339, sección 5.6).

Asignación de tipos XDM a otros formatos

Las secciones siguientes describen cómo cada tipo XDM se asigna a otros formatos de serialización comunes:

NOTE
Entre los tipos XDM estándar enumerados en las tablas siguientes, el Mapa también se incluye el tipo. Los mapas se utilizan en esquemas estándar cuando los datos se representan como claves que se asignan a determinados valores o cuando las claves no se pueden incluir razonablemente en un esquema estático y deben tratarse como valores de datos.
Muchos componentes XDM estándar utilizan tipos de asignación y también puede definir campos de asignación personalizados si lo desea. La inclusión del tipo de mapa en las tablas siguientes pretende ayudarle a determinar cómo asignar los datos existentes a XDM si actualmente están almacenados en cualquiera de los formatos enumerados a continuación.

Parquet, Spark SQL y Java parquet

Tipo de XDM
Parquet
Spark SQL
Java
Cadena
Tipo: BYTE_ARRAY
Anotación: UTF8
StringType
java.lang.String
Número
Tipo: DOUBLE
LongType
java.lang.Double
Largo
Tipo: INT64
LongType
java.lang.Long
Número entero
Tipo: INT32
Anotación: INT_32
IntegerType
java.lang.Integer
corto
Tipo: INT32
Anotación: INT_16
ShortType
java.lang.Short
Byte
Tipo: INT32
Anotación: INT_8
ByteType
java.lang.Short
Fecha
Tipo: INT32
Anotación: DATE
DateType
java.util.Date
DateTime
Tipo: INT64
Anotación: TIMESTAMP_MILLIS
TimestampType
java.util.Date
Booleana
Tipo: BOOLEAN
BooleanType
java.lang.Boolean
Mapa
MAPGrupo con anotaciones

(<key-type> debe ser STRING)
MapType

(keyType debe ser StringType)
java.util.Map

Scala, .NET y CosmosDB scala

Tipo de XDM
Scala
.NET
CosmosDB
Cadena
String
System.String
String
Número
Double
System.Double
Number
Largo
Long
System.Int64
Number
Número entero
Int
System.Int32
Number
corto
Short
System.Int16
Number
Byte
Byte
System.SByte
Number
Fecha
java.util.Date
System.DateTime
String
DateTime
java.util.Date
System.DateTime
String
Booleana
Boolean
System.Boolean
Boolean
Mapa
Map
(N/A)
object

MongoDB, Aerospike y Protobuf 2 mongo

Tipo de XDM
MongoDB
Aerospike
Protobuf 2
Cadena
string
String
string
Número
double
Double
double
Largo
long
Integer
int64
Número entero
int
Integer
int32
corto
int
Integer
int32
Byte
int
Integer
int32
Fecha
date
Integer
(milisegundos de Unix)
int64
(milisegundos de Unix)
DateTime
timestamp
Integer
(milisegundos de Unix)
int64
(milisegundos de Unix)
Booleana
bool
Integer
(binario 0/1)
bool
Mapa
object
map
map<key_type, value_type>

Definición de tipos de campo XDM en la API define-fields

La API de Registro de esquemas permite definir campos personalizados mediante el uso de formatos y restricciones opcionales. Consulte la guía de definición de campos personalizados en la API de Registro de esquemas para obtener más información.

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