XDM フィールドタイプ制約
エクスペリエンスデータモデル(XDM)スキーマでは、フィールドのタイプによって、フィールドに含めることができるデータの種類が制限されます。 このドキュメントでは、マッピング可能なその他のシリアル化形式や、様々な制約を適用するために API で独自のフィールドタイプを定義する方法など、各コアフィールドタイプの概要を説明します。
はじめに
このガイドを使用する前に、 スキーマ構成の基本 を参照して、XDM スキーマ、クラス、スキーマフィールドグループの概要を確認してください。
API で独自のフィールドタイプを定義する予定がある場合は、 スキーマレジストリ開発者ガイド を参照して、フィールドグループとデータタイプを作成し、カスタムフィールドを含める方法を確認することを強くお勧めします。 Experience Platform UI を使用してスキーマを作成する場合は、UI でのフィールドの定義 に関するガイドを参照して、カスタムフィールドグループおよびデータタイプ内で定義するフィールドに対する制約の実装方法を確認してください。
基本構造と例 basic-types
XDM は JSON スキーマを基に構築されているので、XDM フィールドはタイプを定義する際に同様の構文を継承します。 JSON スキーマで様々なフィールドタイプがどのように表現されるかを理解することは、各タイプのベース制約を示すのに役立ちます。 カスタムフィールド名では、大文字と小文字が区別されず、スキーマの同じレベルで異なる名前を持つ必要があります。
次の表に、各 XDM タイプが JSON スキーマでどのように表現されるかを、タイプに準拠する値の例とともに示します。
{"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*すべての日付形式の文字列は、ISO 8601 規格(RFC 3339、セクション 5.6)に準拠している必要があります。
他の形式への XDM タイプのマッピング
以下の節では、各 XDM タイプがその他の一般的なシリアル化形式にどのようにマッピングされるかを説明します。
Parquet、Spark SQL および Java parquet
BYTE_ARRAY注釈:
UTF8StringTypejava.lang.StringDOUBLELongTypejava.lang.DoubleINT64LongTypejava.lang.LongINT32注釈:
INT_32IntegerTypejava.lang.IntegerINT32注釈:
INT_16ShortTypejava.lang.ShortINT32注釈:
INT_8ByteTypejava.lang.ShortINT32注釈:
DATEDateTypejava.util.DateINT64注釈:
TIMESTAMP_MILLISTimestampTypejava.util.DateBOOLEANBooleanTypejava.lang.BooleanMAP 注釈グループ(
<key-type> は STRING にする必要があります)MapType(
keyType は StringType でなければなりません)java.util.MapScala、.NET、CosmosDB scala
StringSystem.StringStringDoubleSystem.DoubleNumberLongSystem.Int64NumberIntSystem.Int32NumberShortSystem.Int16NumberByteSystem.SByteNumberjava.util.DateSystem.DateTimeStringjava.util.DateSystem.DateTimeStringBooleanSystem.BooleanBooleanMapobjectMongoDB、Aerospike、Protobuf 2 mongo
stringStringstringdoubleDoubledoublelongIntegerint64intIntegerint32intIntegerint32intIntegerint32dateInteger(Unix ミリ秒)
int64(Unix ミリ秒)
timestampInteger(Unix ミリ秒)
int64(Unix ミリ秒)
boolInteger(0/1 バイナリ)
boolobjectmapmap<key_type, value_type>API での XDM フィールドタイプの定義 define-fields
Schema Registry API では、形式とオプションの制約を使用して、カスタムフィールドを定義できます。 詳しくは、 スキーマレジストリ API でのカスタムフィールドの定義 に関するガイドを参照してください。