XDM-Feldtypbegrenzungen

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.

Erste Schritte

Bevor Sie dieses Handbuch verwenden, lesen Sie die Grundlagen der Schemakomposition , um eine Einführung in XDM-Schemas, Klassen und Schemafeldgruppen zu erhalten.

Wenn Sie planen, Ihre eigenen Feldtypen in der API zu definieren, wird dringend empfohlen, mit dem Entwicklerhandbuch zur Schema Registry zu beginnen, um zu erfahren, wie Sie Feldergruppen und Datentypen erstellen, in die Ihre benutzerdefinierten Felder eingeschlossen werden. Wenn Sie zur Erstellung Ihrer Schemas die Experience Platform-Benutzeroberfläche verwenden, finden Sie im Handbuch zum Definieren von in der Benutzeroberfläche🔗 Informationen dazu, wie Sie Einschränkungen für Felder implementieren, die Sie in benutzerdefinierten Feldergruppen und Datentypen definieren.

Basisstruktur und Beispiele

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.

HINWEIS

Weitere Informationen zum JSON-Schema und anderen zugrunde liegenden Technologien in Platform-APIs finden Sie im API-Grundlagenhandbuch .

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) entsprechen.

Zuordnen von XDM-Typen zu anderen Formaten

In den folgenden Abschnitten wird beschrieben, wie die einzelnen XDM-Typen anderen gängigen Serialisierungsformaten zugeordnet werden:

WICHTIG

Unter den in den folgenden Tabellen aufgeführten Standard-XDM-Typen ist auch der Typ Map 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.

Felder vom Typ Zuordnung sind für die Verwendung des Branchen- und Händlerschemas reserviert und können daher nicht in von Ihnen definierten benutzerdefinierten Ressourcen verwendet werden. Die Einbindung des Zuordnungstyps in die folgenden Tabellen soll Ihnen nur bei der Bestimmung der Zuordnung Ihrer vorhandenen Daten zu XDM helfen, wenn diese derzeit in einem der unten aufgeführten Formate gespeichert sind.

Parquet, Spark SQL und Java

XDM-Typ Parquet Spark SQL Java
Zeichenfolge 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 STRINGsein)
MapType

(keyType muss StringType)
java.util.Map

Scala, .NET und CosmosDB

XDM-Typ Scala .NET CosmosDB
Zeichenfolge 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

MongoDB, Aerospike und Protobuf 2

XDM-Typ MongoDB Aerospike Protobuf 2
Zeichenfolge 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>

Definieren von XDM-Feldtypen in der API

Alle XDM-Felder werden mit den standardmäßigen JSON-Schema-Einschränkungen definiert, die für ihren Feldtyp gelten, mit zusätzlichen Einschränkungen für Feldnamen, die von Experience Platform erzwungen werden. Mit der Schema Registry-API können Sie zusätzliche Feldtypen mithilfe von Formaten und optionalen Einschränkungen definieren. XDM-Feldtypen werden durch das Attribut auf Feldebene verfügbar gemacht, meta:xdmType.

HINWEIS

meta:xdmType ist ein systemgenerierter Wert. Daher müssen Sie diese Eigenschaft bei Verwendung der API nicht zum JSON für Ihr Feld hinzufügen. Es empfiehlt sich, JSON-Schematypen (wie string und integer) mit den entsprechenden Min-/Max-Einschränkungen zu verwenden, wie in der folgenden Tabelle definiert.

In der folgenden Tabelle wird die entsprechende Formatierung zum Definieren verschiedener Feldtypen einschließlich derjenigen mit optionalen Eigenschaften beschrieben. 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-Anfrage für Erstellen einer Feldergruppe oder Erstellen eines Datentyps bereitgestellt wird.

XDM-Typ Optionale Eigenschaften Beispiel
String
  • pattern
  • minLength
  • maxLength
"sampleField": {
            "type": "string",
            "pattern": "^[A-Z]{2}$",
            "maxLength": 2
}
URI
"sampleField": {
          "type": "string",
          "format": "uri"
}
Enum
  • default
  • meta:enum
Begrenzte Enum-Werte werden unter dem Array enum bereitgestellt, während optionale kundenorientierte Beschriftungen für jeden Wert unter meta:enum bereitgestellt werden können:
"sampleField": {
          "type": "string",
          "enum": [
              "value1",
              "value2",
              "value3"
          ],
          "meta:enum": {
              "value1": "Value 1",
              "value2": "Value 2",
              "value3": "Value 3"
          },
          "default": "value1"
}
Number
"sampleField": {
          "type": "number"
}
Long
"sampleField": {
          "type": "integer",
          "minimum": -9007199254740992,
          "maximum": 9007199254740992
}
Integer
"sampleField": {
          "type": "integer",
          "minimum": -2147483648,
          "maximum": 2147483648
}
Short
"sampleField": {
          "type": "integer",
          "minimum": -32768,
          "maximum": 32768
}
Byte
"sampleField": {
          "type": "integer",
          "minimum": -128,
          "maximum": 128
  }
Boolean
  • default
"sampleField": {
          "type": "boolean",
          "default": false
}
Datum
"sampleField": {
          "type": "string",
          "format": "date",
          "examples": ["2004-10-23"]
}
DateTime
"sampleField": {
          "type": "string",
          "format": "date-time",
          "examples": ["2004-10-23T12:00:00-06:00"]
}
Array Ein Array grundlegender Skalartypen (z. B. Zeichenfolgen):
"sampleField": {
          "type": "array",
          "items": {
            "type": "string"
  }
}
Ein Array von Objekten, die durch ein anderes Schema definiert werden:
"sampleField": {
  "type": "array",
  "items": {
    "$ref": "https://ns.adobe.com/xdm/data/paymentitem"
  }
}
Objekt Das Attribut type jedes unter properties definierten Unterfelds kann mit einem beliebigen Skalartyp definiert werden:
"sampleField": {
          "type": "object",
          "properties": {
            "field1": {
              "type": "string"
            },
            "field2": {
              "type": "number"
    }
  }
}
Objekttypfelder können definiert werden, indem auf die $id eines Datentyps verwiesen wird:
"sampleField": {
  "type": "object",
  "$ref": "https://ns.adobe.com/xdm/common/phoneinteraction"
}
Map Eine Zuordnung darf keine Eigenschaften definieren. muss ein einzelnes additionalProperties-Schema definieren, um den Typ der in der Zuordnung enthaltenen Werte zu beschreiben (jede Zuordnung kann nur einen einzigen Datentyp enthalten). Werte können ein beliebiges gültiges XDM type-Attribut oder ein Verweis auf ein anderes Schema mit einem $ref-Attribut sein.

Ein Zuordnungsfeld mit Werten vom Typ Zeichenfolge:
"sampleField": {
          "type": "object",
          "additionalProperties":{
            "type": "string"
  }
}
Ein Zuordnungsfeld mit Zeichenfolgen-Arrays für Werte:
"sampleField": {
          "type": "object",
          "additionalProperties":{
            "type": "array",
            "items": {
              "type": "string"
    }
  }
}
Ein map -Feld, das auf einen anderen Datentyp verweist:
"sampleField": {
  "type": "object",
  "additionalProperties":{
    "$ref": "https://ns.adobe.com/xdm/data/paymentitem"
  }
}

Auf dieser Seite