Definieren von XDM-Feldern in der Schema Registry-API

Alle Felder des Experience-Datenmodells (XDM) werden mit dem Standard JSON-Schema Einschränkungen, die für ihren Feldtyp gelten, mit zusätzlichen Einschränkungen für Feldnamen, die von Adobe Experience Platform erzwungen werden. Mit der Schema Registry-API können Sie benutzerdefinierte Felder in Ihren Schemas definieren, indem Sie Formate und optionale Einschränkungen verwenden. XDM-Feldtypen werden durch das Attribut auf Feldebene verfügbar gemacht, meta:xdmType.

HINWEIS

meta:xdmType ist ein vom System generierter Wert. Daher müssen Sie diese Eigenschaft nicht zum JSON für Ihr Feld hinzufügen, wenn Sie die API verwenden (es sei denn, Erstellen benutzerdefinierter Zuordnungstypen). Es empfiehlt sich, JSON-Schematypen zu verwenden (z. B. string und integer) mit den entsprechenden Mindest-/Höchstbeschränkungen, 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 bereitgestellt wird. Erstellen einer Feldergruppe oder Erstellen eines Datentyps.

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 der enum Array, während optionale kundenorientierte Beschriftungen für jeden Wert unter bereitgestellt werden können. meta:enum:
"sampleField": {
          "type": "string",
          "enum": [
              "value1",
              "value2",
              "value3"
          ],
          "meta:enum": {
              "value1": "Value 1",
              "value2": "Value 2",
              "value3": "Value 3"
          },
          "default": "value1"
}

Beachten Sie Folgendes: meta:enum Wert: not Deklarieren Sie eine Auflistung oder führen Sie eine Datenvalidierung allein durch. In den meisten Fällen werden unter meta:enum werden auch enum , um sicherzustellen, dass die Daten begrenzt sind. Es gibt jedoch einige Anwendungsfälle, in denen meta:enum ohne entsprechende enum Array. Siehe Tutorial zu Definieren empfohlener Werte für weitere Informationen.
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", "example": ["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 Die type -Attribut jedes Unterfelds, das unter properties 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:
"sampleField": { "type": "object", "$ref": "https://ns.adobe.com/xdm/common/phoneinteraction" }
Map Bei einem Feld vom Typ Zuordnung handelt es sich im Wesentlichen um ein Feld vom Typ Objekt mit einem nicht beschränkten Satz von Schlüsseln. Wie Objekte haben Karten eine type Wert von object, aber ihre meta:xdmType explizit auf map.

Karte darf nicht definieren beliebige Eigenschaften. Es must eine einzelne additionalProperties schema zur Beschreibung des Werttyps, der in der Zuordnung enthalten ist (jede Zuordnung kann nur einen einzigen Datentyp enthalten). Die type Wert muss entweder string oder integer.

Ein Zuordnungsfeld mit Werten vom Typ Zeichenfolge:
"sampleField": { "type": "object", "meta:xdmType": "map", "additionalProperties":{ "type": "string" } }
Weitere Informationen zum Erstellen benutzerdefinierter Zuordnungstypen in XDM finden Sie im folgenden Abschnitt .

Erstellen benutzerdefinierter Zuordnungstypen

Um "map-ähnliche"Daten in XDM effizient zu unterstützen, können Objekte mit einer meta:xdmType auf map , um deutlich zu machen, dass ein Objekt so verwaltet werden sollte, als wäre der Schlüsselsatz nicht eingeschränkt. Daten, die in Zuordnungsfelder aufgenommen werden, müssen Zeichenfolgenschlüssel und nur Zeichenfolgen- oder Ganzzahlwerte verwenden (wie durch additionalProperties.type).

XDM legt die folgenden Einschränkungen für die Verwendung dieses Speicherhinweises fest:

  • Zuordnungstypen MÜSSEN vom Typ sein object.
  • Für Zuordnungstypen dürfen KEINE Eigenschaften definiert sein (d. h. sie definieren "leere"Objekte).
  • Zuordnungstypen MÜSSEN Folgendes enthalten: additionalProperties.type -Feld, das die Werte beschreibt, die in der Zuordnung platziert werden können, entweder string oder integer.

Stellen Sie sicher, dass Sie nur Felder vom Typ Zuordnung verwenden, wenn dies unbedingt erforderlich ist, da sie die folgenden Leistungsbeeinträchtigungen aufweisen:

  • Die Antwortzeit von Adobe Experience Platform Query Service wird für 100 Millionen Datensätze von drei Sekunden auf zehn Sekunden reduziert.
  • Karten mit weniger als 16 Schlüsseln müssen vorhanden sein. Andernfalls besteht die Gefahr einer weiteren Verschlechterung.

Die Benutzeroberfläche von Platform weist außerdem Einschränkungen hinsichtlich der Art und Weise auf, wie die Schlüssel von Feldern vom Typ Zuordnung extrahiert werden können. Während Objekttypen erweitert werden können, werden Zuordnungen stattdessen als ein einzelnes Feld angezeigt.

Nächste Schritte

In diesem Handbuch wurde die Definition verschiedener Feldtypen in der API beschrieben. Weitere Informationen zur Formatierung von XDM-Feldtypen finden Sie im Handbuch unter XDM-Feldtypbegrenzungen.

Auf dieser Seite