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 usar esta guía, revise los conceptos básicos de la 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 la Guía para desarrolladores de Schema Registry para aprender a crear grupos de campos y tipos de datos para incluir sus campos personalizados en. Si está usando la interfaz de usuario de Experience Platform para crear los esquemas, consulte la guía sobre definición de campos en la interfaz de usuario para obtener información sobre cómo implementar restricciones en campos que defina 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. Los nombres de los campos personalizados no distinguen entre mayúsculas y minúsculas y deben tener nombres diferentes en el mismo nivel del esquema.
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:
{"type": "string"}
"Platinum"{"type": "number"}
12925.49{
"tipo": "entero",
"maximum": 9007199254740991,
"mínimo": -9007199254740991
}
1478108935{
"tipo": "entero",
"maximum": 2147483648,
"mínimo": -2147483648
}
24906290{
"tipo": "entero",
"maximum": 32768,
"mínimo": -32768
}
15781{
"tipo": "entero",
"máximo": 128,
mínimo: -128
}
90{
"type": "string",
"format": "date"
}
"2019-05-15"{
"type": "string",
"format": "date-time"
}
"2019-05-15T20:20:39+00:00"{"type": "boolean"}
true*Todas las cadenas con formato de fecha deben cumplir con el estándar 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:
Parquet, Spark SQL y Java parquet
BYTE_ARRAYAnotación:
UTF8StringTypejava.lang.StringDOUBLELongTypejava.lang.DoubleINT64LongTypejava.lang.LongINT32Anotación:
INT_32IntegerTypejava.lang.IntegerINT32Anotación:
INT_16ShortTypejava.lang.ShortINT32Anotación:
INT_8ByteTypejava.lang.ShortINT32Anotación:
DATEDateTypejava.util.DateINT64Anotación:
TIMESTAMP_MILLISTimestampTypejava.util.DateBOOLEANBooleanTypejava.lang.BooleanMAP: el grupoanotado (
<key-type> debe ser STRING)MapType(
keyType debe ser StringType)java.util.MapScala, .NET y CosmosDB scala
StringSystem.StringStringDoubleSystem.DoubleNumberLongSystem.Int64NumberIntSystem.Int32NumberShortSystem.Int16NumberByteSystem.SByteNumberjava.util.DateSystem.DateTimeStringjava.util.DateSystem.DateTimeStringBooleanSystem.BooleanBooleanMapobjectMongoDB, Aerospike y Protobuf 2 mongo
stringStringstringdoubleDoubledoublelongIntegerint64intIntegerint32intIntegerint32intIntegerint32dateInteger(milisegundos de Unix)
int64(milisegundos de Unix)
timestampInteger(milisegundos de Unix)
int64(milisegundos de Unix)
boolInteger(binario 0/1)
boolobjectmapmap<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 definición de campos personalizados en la API del Registro de esquemas para obtener más información.