XDM-Feldtypeinschränkungen

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.

Erste Schritte

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.

Zuordnen von XDM-Typen zu anderen Formaten

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>

Definieren von XDM-Feldtypen in der API

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.

HINWEIS

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:
  • pattern
  • minLength
  • maxLength
        "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:
  • Standard
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:
  • Standard
        "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.

Auf dieser Seite