Die XDM-Feldtypen, die Sie für Ihre Schema auswählen, beschränken, welche Datentypen diese Felder enthalten können. 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 Schema-Komposition , um eine Einführung in XDM-Schemas, -Klassen und -Mixins zu erhalten.
Wenn Sie Ihre eigenen Feldtypen definieren möchten, sollten Sie unbedingt mit dem Entwicklerhandbuch für die Schema-Registrierung Beginn haben, um zu erfahren, wie Mixins und Datentypen erstellt werden, die Ihre benutzerdefinierten Felder einschließen.
The table below describes the mapping between each XDM type (meta:xdmType
) and other serialization formats.
XDM-Typ (meta:xdmType) |
JSON (JSON-Schema) |
Parquet (type/annotation) |
Spark SQL | Java | Scala | .NET | CosmosDB | MongoDB | Aerospike | Protobuf 2 |
---|---|---|---|---|---|---|---|---|---|---|
string | Typ: Zeichenfolge | BYTE_ARRAY/UTF8 | StringType | java.lang.String | Zeichenfolge | System.String | Zeichenfolge | string | Zeichenfolge | string |
number | Typ: Zahl | DOUBLE | DoubleType | java.lang.Double | Double | System.Double | Zahl | double | Double | double |
long | Typ: Ganzzahl Maximum:253+1<br>Minimum:-253+1 |
INT64 | LongType | java.lang.Long | Long | System.Int64 | Nummer | long | Ganzzahl | int64 |
int | Typ: Ganzzahl Maximum:231<br>Minimum:-231 |
INT32/INT_32 | IntegerType | java.lang.Integer | Int | System.Int32 | Nummer | int | Ganzzahl | int32 |
short | Typ: Ganzzahl Maximum:215<br>Minimum:-215 |
INT32/INT_16 | ShortType | java.lang.Short | Short | System.Int16 | Nummer | int | Ganzzahl | int32 |
Byte | Typ: Ganzzahl Maximum:27<br>Minimum:-27 |
INT32/INT_8 | ByteType | java.lang.Short | Byte | System.SByte | Zahl | int | Ganzzahl | int32 |
boolean | Typ: Boolescher Wert | BOOLEAN | BooleanType | java.lang.Boolean | Boolesch | System.Boolean | Boolesch | bool | Ganzzahl | Ganzzahl |
date | Typ: Zeichenfolge Format: Datum (RFC 3339, Abschnitt 5.6) |
INT32/DATE | DateType | java.util.Date | java.util.Date | System.DateTime | Zeichenfolge | date | Ganzzahl (unix millis) |
int64 (unix millis) |
date-time | Typ: Zeichenfolge Format: Datum/Uhrzeit (RFC 3339, Abschnitt 5.6) |
INT64/TIMESTAMP_MILLIS | TimestampType | java.util.Date | java.util.Date | System.DateTime | Zeichenfolge | timestamp | Ganzzahl (unix millis) |
int64 (unix millis) |
map | object | ZUORDNEN kommentierter Gruppe <key_type> MUSS ZEICHENFOLGE sein <value_type> Typ der Zuordnungwerte |
MapType "keyType" MUSS StringType sein "valueType" ist Typ der Zuordnungwerte. |
java.util.Map | Map | — | object | object | map | map<key_type, value_type> |
XDM schemas are defined using JSON Schema standards and basic field types, with additional constraints for field names which are enforced by Experience Platform. The Schema Registry API allows you to define additional field types through the use of formats and optional constraints. XDM field types are exposed by the field-level attribute, meta:xdmType
.
meta:xdmType
: Beim Meta-XDM-Typ handelt sich um einen systemgenerierten Wert. Daher müssen Sie diese Eigenschaft nicht zum JSON für Ihr Feld hinzufügen. Es empfiehlt sich, JSON-Schema-Typen (z. B. Zeichenfolge und Ganzzahl) mit den entsprechenden Min.-/Max.-Einschränkungen zu verwenden, wie in der nachstehenden Tabelle definiert.
In der folgenden Tabelle sind die entsprechenden Formatierungen zur Definition von skalaren Feldtypen und spezifischeren Feldtypen mit optionalen Eigenschaften aufgeführt. Weitere Informationen zu optionalen Eigenschaften und typspezifischen Suchbegriffen finden Sie in der Dokumentation zum JSON-Schema.
Suchen Sie zunächst den gewünschten Feldtyp und verwenden Sie den Beispielcode, der zum Erstellen Ihrer API-Anforderung zum Erstellen einer Mischung oder zum Erstellen eines Datentypsbereitgestellt wird.
Gewünschter Typ (meta:xdmType) |
JSON (JSON-Schema) |
Code-Beispiel |
---|---|---|
string | Typ: Zeichenfolge Optionale Eigenschaften:
|
"sampleField": { "type": "string", "pattern": "^[A-Z]{2}$", "maxLength": 2 } |
uri (xdmType:string) |
Typ: Zeichenfolge Format: URI |
"sampleField": { "type": "string", "format": "uri" } |
enum (xdmType: string) |
Typ: Zeichenfolge Optionale Eigenschaft:
|
Geben Sie mit „meta:enum“ Beschriftungen für kundenorientierte Optionen an:
"sampleField": { "type": "string", "enum": [ "value1", "value2", "value3" ], "meta:enum": { "value1": "Value 1", "value2": "Value 2", "value3": "Value 3" }, "default": "value1" } |
number | Typ: Zahl Minimum: ±2,23×10^308 Maximum: ±1,80×10^308 |
"sampleField": { "type": "number" } |
long | Typ: Ganzzahl Maximum:2^53+1 Minimum:-2^53+1 |
"sampleField": { "type": "integer", "minimum": -9007199254740992, "maximum": 9007199254740992 } |
int | Typ: Ganzzahl Maximum:2^31 Minimum:-2^31 |
"sampleField": { "type": "integer", "minimum": -2147483648, "maximum": 2147483648 } |
short | Typ: Ganzzahl Maximum:2^15 Minimum:-2^15 |
"sampleField": { "type": "integer", "minimum": -32768, "maximum": 32768 } |
byte | Typ: Ganzzahl Maximum:2^7 Minimum:-2^7 |
"sampleField": { "type": "integer", "minimum": -128, "maximum": 128 } |
boolean | Typ: Boolescher Wert {true, false} Optionale Eigenschaft:
|
"sampleField": { "type": "boolean", "default": false } |
date | Typ: Zeichenfolge Format: Datum |
"sampleField": { "type": "string", "format": "date", "examples": ["2004-10-23"] }date definiert durch RFC 3339, Abschnitt 5.6, wobei "full-date" = date-fullyear "-" date-month "-" date-mday (YYYY-MM-DD) |
date-time | Typ: Zeichenfolge Format: Datum/Uhrzeit |
"sampleField": { "type": "string", "format": "date-time", "examples": ["2004-10-23T12:00:00-06:00"] }date-time definiert durch RFC 3339, Abschnitt 5.6, wobei "date-time" = full-date "T" full-time: (YYYY-MM-DD'T'HH:MM:SS.SSSSX) |
array | Typ: Array | items.type kann mit einem beliebigen Skalartyp definiert werden:
"sampleField": { "type": "array", "items": { "type": "string" } }Array von Objekten, die durch ein anderes Schema definiert werden: "sampleField": { "type": "array", "items": { "$ref": "id" } }Dabei ist „id“ die {id} des Referenzschemas. |
object | Typ: Objekt | properties.{field}.type kann mit einem beliebigen Skalartyp definiert werden:
"sampleField": { "type": "object", "properties": { "field1": { "type": "string" }, "field2": { "type": "number" } } }Feld des Typs „Objekt“, das durch ein Referenz-Schema definiert wird: "sampleField": { "type": "object", "$ref": "id" }Dabei ist „id“ die {id} des Referenzschemas. |
map | Typ: Objekt Hinweis: Die Verwendung des Datentyps „map“ ist für die Verwendung durch Branchen- und Händlerschemas reserviert und steht nicht zur Verwendung in Mandantenfeldern zur Verfügung. Sie wird in Standardschemas verwendet, wenn Daten als Schlüssel dargestellt werden, die einem bestimmten Wert zugeordnet sind oder bei denen Schlüssel vernünftigerweise nicht in ein statisches Schema einbezogen werden können und als Datenwerte behandelt werden müssen. |
Eine „map“ DARF KEINE Eigenschaften definieren. Es MUSS ein einzelnes "additionalProperties"-Schema definieren, um die in der 'map' enthaltenen Werte zu beschreiben. Eine „map“ in XDM kann nur einen einzigen Datentyp enthalten. Werte können eine beliebige gültige XDM-Schema-Definition sein, einschließlich eines Arrays oder eines Objekts, oder als Verweis auf ein anderes Schema (über $ref). Zuordnungsfeld mit Werten vom Typ „Zeichenfolge“: "sampleField": { "type": "object", "additionalProperties":{ "type": "string" } }Zuordnungsfeld mit Werten als Array von Zeichenfolgen: "sampleField": { "type": "object", "additionalProperties":{ "type": "array", "items": { "type": "string" } } }Zuordnungsfeld, das auf ein anderes Schema verweist: "sampleField": { "type": "object", "additionalProperties":{ "$ref": "id" } }Dabei ist „id“ die {id} des Referenzschemas. |