In Experience-Datenmodell (XDM)-Schemas beschränkt der Typ eines Felds, welche Daten das Feld enthalten kann. Dieses Dokument bietet einen Überblick über die einzelnen Kernfeldtypen, einschließlich der anderen Serialisierungsformate, denen sie zugeordnet werden können, und wie Sie Ihre eigenen Feldtypen in der API definieren, um verschiedene Einschränkungen zu erzwingen.
Bevor Sie dieses Handbuch verwenden, lesen Sie bitte die Grundlagen der Schemakomposition für eine Einführung in XDM-Schemas, Klassen und Schemafeldgruppen.
Wenn Sie Ihre eigenen Feldtypen in der API definieren möchten, wird dringend empfohlen, mit der Entwicklerhandbuch zur Schema Registry , um zu erfahren, wie Sie Feldergruppen und Datentypen erstellen, in die Ihre benutzerdefinierten Felder eingefügt werden. Wenn Sie zur Erstellung Ihrer Schemas die Experience Platform-Benutzeroberfläche verwenden, finden Sie im Handbuch unter Definieren von Feldern in der Benutzeroberfläche um zu erfahren, wie Sie Einschränkungen für Felder implementieren, die Sie in benutzerdefinierten Feldergruppen und Datentypen definieren.
XDM basiert auf dem JSON-Schema und daher erben XDM-Felder bei der Definition ihres Typs eine ähnliche Syntax. Wenn Sie wissen, wie verschiedene Feldtypen im JSON-Schema dargestellt werden, können Sie die grundlegenden Einschränkungen der einzelnen Typen anzeigen.
Siehe API-Grundlagenhandbuch Weitere Informationen zum JSON-Schema und anderen zugrunde liegenden Technologien in Platform-APIs.
In der folgenden Tabelle wird beschrieben, wie jeder XDM-Typ im JSON-Schema dargestellt wird, zusammen mit einem Beispielwert, der dem Typ entspricht:
XDM-Typ | JSON-Schema | Beispiel |
---|---|---|
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 |
Short |
{ "type": "integer", "maximum": 32768, "Minimum": -32768 } |
15781 |
Byte |
{ "type": "integer", "maximum": 128, "Minimum": -128 } |
90 |
Datum* |
{ "type": "string", "format": "date" } |
"2019-05-15" |
DateTime* |
{ "type": "string", "format": "date-time" } |
"2019-05-15T20:20:39+00:00" |
Boolean |
{"type": "string"} |
true |
*Alle datumsformatierten Zeichenfolgen müssen dem ISO 8601-Standard (RFC 3339, Abschnitt 5.6).
In den folgenden Abschnitten wird beschrieben, wie die einzelnen XDM-Typen anderen gängigen Serialisierungsformaten zugeordnet werden:
Unter den in den folgenden Tabellen aufgeführten Standard-XDM-Typen ist die Zuordnung Typ ist ebenfalls enthalten. Maps werden in Standardschemata verwendet, wenn Daten als Schlüssel dargestellt werden, die bestimmten Werten zugeordnet sind, oder wenn Schlüssel vernünftigerweise nicht in ein statisches Schema aufgenommen werden können und als Datenwerte behandelt werden müssen.
Viele standardmäßige XDM-Komponenten verwenden Zuordnungstypen. Sie können auch Definieren von benutzerdefinierten Zuordnungsfeldern falls gewünscht. Die Aufnahme des Zuordnungstyps in die folgenden Tabellen soll Ihnen dabei helfen festzustellen, wie Sie Ihre vorhandenen Daten XDM zuordnen können, wenn sie derzeit in einem der unten aufgeführten Formate gespeichert sind.
XDM-Typ | Parquet | Spark SQL | Java |
---|---|---|---|
String | Typ: BYTE_ARRAY Anmerkung: UTF8 |
StringType |
java.lang.String |
Double | Typ: DOUBLE |
LongType |
java.lang.Double |
Lang | Typ: INT64 |
LongType |
java.lang.Long |
Ganzzahl | Typ: INT32 Anmerkung: INT_32 |
IntegerType |
java.lang.Integer |
Kurz | Typ: INT32 Anmerkung: INT_16 |
ShortType |
java.lang.Short |
Byte | Typ: INT32 Anmerkung: INT_8 |
ByteType |
java.lang.Short |
Datum | Typ: INT32 Anmerkung: DATE |
DateType |
java.util.Date |
DateTime | Typ: INT64 Anmerkung: TIMESTAMP_MILLIS |
TimestampType |
java.util.Date |
Boolesch | Typ: BOOLEAN |
BooleanType |
java.lang.Boolean |
Landkarte | MAP -kommentierte Gruppe( <key-type> muss STRING ) |
MapType ( keyType muss StringType ) |
java.util.Map |
XDM-Typ | Scala | .NET | CosmosDB |
---|---|---|---|
String | String |
System.String |
String |
Double | Double |
System.Double |
Number |
Lang | Long |
System.Int64 |
Number |
Ganzzahl | Int |
System.Int32 |
Number |
Kurz | Short |
System.Int16 |
Number |
Byte | Byte |
System.SByte |
Number |
Datum | java.util.Date |
System.DateTime |
String |
DateTime | java.util.Date |
System.DateTime |
String |
Boolesch | Boolean |
System.Boolean |
Boolean |
Landkarte | Map |
(Nicht angegeben) | object |
XDM-Typ | MongoDB | Aerospike | Protobuf 2 |
---|---|---|---|
String | string |
String |
string |
Double | double |
Double |
double |
Lang | long |
Integer |
int64 |
Ganzzahl | int |
Integer |
int32 |
Kurz | int |
Integer |
int32 |
Byte | int |
Integer |
int32 |
Datum | date |
Integer (Unix-Millisekunden) |
int64 (Unix-Millisekunden) |
DateTime | timestamp |
Integer (Unix-Millisekunden) |
int64 (Unix-Millisekunden) |
Boolesch | bool |
Integer (0/1 binär) |
bool |
Landkarte | object |
map |
map<key_type, value_type> |
Mit der Schema Registry-API können Sie benutzerdefinierte Felder mithilfe von Formaten und optionalen Einschränkungen definieren. Siehe Handbuch unter Definieren benutzerdefinierter Felder in der Schema Registry-API für weitere Informationen.