Begrenzungen für XDM-Feldtypen
In Experience-Datenmodell (XDM)-Schemata schränkt der Typ eines Felds ein, welche Art von Daten das Feld enthalten kann. Dieses Dokument bietet einen Überblick über jeden Kernfeldtyp, 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 durchzusetzen.
Erste Schritte
Bevor Sie dieses Handbuch verwenden, lesen Sie die Grundlagen der Schemakomposition für eine Einführung in XDM-Schemata, Klassen und Schemafeldgruppen.
Wenn Sie Ihre eigenen Feldtypen in der API definieren möchten, wird dringend empfohlen, mit dem Entwicklerhandbuch zur Schemaregistrierung zu beginnen, um zu erfahren, wie Sie Feldergruppen und Datentypen erstellen, um Ihre benutzerdefinierten Felder in einzuschließen. Wenn Sie die Experience Platform-Benutzeroberfläche zum Erstellen Ihrer Schemata verwenden, erfahren Sie im Handbuch unter Definieren von Feldern in der Benutzeroberfläche , wie Sie Einschränkungen für Felder implementieren, die Sie in benutzerdefinierten Feldergruppen und Datentypen definieren.
Basisstruktur und Beispiele basic-types
XDM basiert auf dem JSON-Schema und daher übernehmen XDM-Felder beim Definieren ihres Typs eine ähnliche Syntax. Wenn Sie verstehen, wie verschiedene Feldtypen im JSON-Schema dargestellt werden, können Sie die grundlegenden Einschränkungen jedes Typs angeben. Bei benutzerdefinierten Feldnamen wird nicht zwischen Groß- und Kleinschreibung unterschieden und sie müssen unterschiedliche Namen auf derselben Ebene in Ihrem Schema haben.
In der folgenden Tabelle wird beschrieben, wie jeder XDM-Typ im JSON-Schema dargestellt wird, zusammen mit einem Beispielwert, der dem Typ entspricht:
{„type“: „string“}
"Platinum"{type}: „number“}
12925.49{
„type“: „integer“,
„maximum“: 9007199254740991,
„minimum“: -9007199254740991
}
1478108935{
„type“: „integer“,
„maximum“: 2147483648,
„minimum“: -2147483648
}
24906290{
„type“: „integer“,
„maximum“: 32768,
„minimum“: -32768
}
15781{
„type“: „integer“,
„Maximum“: 128,
„minimum“: -128
}
90{
„type“: „string“,
„format“: „date“
}
"2019-05-15"{
„type“: „string“,
„format“: „date-time“
}
"2019-05-15T20:20:39+00:00"{„type“: „boolean“}
true*Alle datumsformatierten Zeichenfolgen müssen dem ISO 8601-Standard entsprechen (RFC 3339, Abschnitt 5.6).
Zuordnen von XDM-Typen zu anderen Formaten
In den folgenden Abschnitten wird beschrieben, wie jeder XDM-Typ anderen gängigen Serialisierungsformaten zugeordnet wird:
Parquet, Spark SQL und Java parquet
BYTE_ARRAYAnmerkung:
UTF8StringTypejava.lang.StringDOUBLELongTypejava.lang.DoubleINT64LongTypejava.lang.LongINT32Anmerkung:
INT_32IntegerTypejava.lang.IntegerINT32Anmerkung:
INT_16ShortTypejava.lang.ShortINT32Anmerkung:
INT_8ByteTypejava.lang.ShortINT32Anmerkung:
DATEDateTypejava.util.DateINT64Anmerkung:
TIMESTAMP_MILLISTimestampTypejava.util.DateBOOLEANBooleanTypejava.lang.BooleanMAP Anmerkungen(
<key-type> muss STRING sein)MapType(
keyType muss StringType sein)java.util.MapScala, .NET und CosmosDB scala
StringSystem.StringStringDoubleSystem.DoubleNumberLongSystem.Int64NumberIntSystem.Int32NumberShortSystem.Int16NumberByteSystem.SByteNumberjava.util.DateSystem.DateTimeStringjava.util.DateSystem.DateTimeStringBooleanSystem.BooleanBooleanMapobjectMongoDB, Aerospike und Protobuf 2 mongo
stringStringstringdoubleDoubledoublelongIntegerint64intIntegerint32intIntegerint32intIntegerint32dateInteger(Unix Millisekunden)
int64(Unix Millisekunden)
timestampInteger(Unix Millisekunden)
int64(Unix Millisekunden)
boolInteger(0/1 binär)
boolobjectmapmap<key_type, value_type>Definieren von XDM-Feldtypen in der API define-fields
Mit der Schema Registry-API können Sie benutzerdefinierte Felder mithilfe von Formaten und optionalen Einschränkungen definieren. Weitere Informationen finden Sie Handbuch unter „Definieren benutzerdefinierter Felder in der Schema RegistryAPI“.