記述子エンドポイント

スキーマは、データエンティティの構造を定義しますが、スキーマから作成されたデータセット同士がどのように関連付けられるかは指定しません。 Adobe Experience Platformでは、記述子を使用して、これらの関係を記述し、解釈メタデータをスキーマに追加できます。

記述子は、Adobe Experience Platformのスキーマに適用されるテナントレベルのメタデータオブジェクトです。 構造的な関係、キー、行動フィールド(タイムスタンプやバージョン管理など)を定義し、データの検証、結合、下流での解釈に影響を与えます。

スキーマには、1つ以上の記述子を含めることができます。 各記述子は、@typeとそれが適用されるsourceSchemaを定義します。 ディスクリプタは、そのスキーマから作成されたすべてのデータセットに自動的に適用されます。

Adobe Experience Platformでは、記述子とは、動作ルールや構造的な意味をスキーマに追加するメタデータです。
記述子には、次のようないくつかの種類があります。

Schema Registry APIの/descriptors エンドポイントを使用すると、エクスペリエンスアプリケーション内の記述子をプログラムで管理できます。

はじめに

このガイドで使用されているエンドポイントは、Schema Registry APIの一部です。 先に進む前に、はじめる前にを参照し、関連ドキュメントへのリンク、このドキュメントのサンプル API 呼び出しを読み取るためのガイドおよび任意の Experience Platform API を正常に呼び出すために必要なヘッダーに関する重要な情報を確認してください。

標準の記述子に加えて、Schema Registryは、プライマリキーバージョンタイムスタンプ​などのリレーショナルスキーマの記述子タイプをサポートしています。 これにより、スキーマレベルで一意性が強制され、バージョン管理が制御され、時系列フィールドが定義されます。 リレーショナルスキーマに詳しくない場合は、続行する前に、Data Mirrorの概要および​ リレーショナルスキーマのテクニカルリファレンス ​を確認してください。

IMPORTANT
すべての記述子タイプについて詳しくは、付録を参照してください。

記述子のリストの取得 list

/tenant/descriptorsにGET リクエストを行うことで、組織で定義されているすべての記述子を一覧表示できます。

API 形式

GET /tenant/descriptors

リクエスト

curl -X GET \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -H 'Accept: application/vnd.adobe.xdm-link+json'

応答の形式は、リクエストで送信されたAccept ヘッダーによって異なります。 /descriptors エンドポイントは、Schema Registry API内の他のすべてのエンドポイントとは異なるAccept ヘッダーを使用しています。

IMPORTANT
記述子には、xedxdmに置き換える一意のAccept ヘッダーが必要です。また、記述子に固有のlink オプションも提供されます。 以下の呼び出しの例では、適切なAccept ヘッダーが含まれていますが、ディスクリプタを操作する際に正しいヘッダーが使用されていることを確認するには、特に注意してください。
Accept ヘッダー
説明
application/vnd.adobe.xdm-id+json
記述子 ID の配列を返します。
application/vnd.adobe.xdm-link+json
記述子 API パスの配列を返します。
application/vnd.adobe.xdm+json
拡張された記述子オブジェクトの配列を返します。
application/vnd.adobe.xdm-v2+json
このAccept ヘッダーは、ページング機能を使用するために使用する必要があります。

応答

応答には、定義された記述子を持つ各記述子タイプの配列が含まれます。 つまり、ある種の @type 記述子が定義されていない場合、その記述子型の空の配列は返されません。

link Accept ヘッダーを使用する場合、各記述子は配列項目として/{CONTAINER}/descriptors/{DESCRIPTOR_ID}形式で表示されます

{
  "xdm:alternateDisplayInfo": [
    "/tenant/descriptors/85dc1bc8b91516ac41163365318e38a9f1e4f351",
    "/tenant/descriptors/49bd5abb5a1310ee80ebc1848eb508d383a462cf",
    "/tenant/descriptors/b3b3e548f1c653326bcf5459ceac4140fc0b9e08"
  ],
  "xdm:descriptorIdentity": [
    "/tenant/descriptors/f7a4bc25429496c4740f8f9a7a49ba96862c5379"
  ],
  "xdm:descriptorOneToOne": [
    "/tenant/descriptors/cb509fd6f8ab6304e346905441a34b58a0cd481a"
  ]
}

記述子の検索 lookup

特定の記述子の詳細を表示するには、その@idを使用してGET リクエストを送信します。

API 形式

GET /tenant/descriptors/{DESCRIPTOR_ID}
パラメーター
説明
{DESCRIPTOR_ID}
検索する記述子の@idです。

リクエスト

次のリクエストは、@id値で記述子を取得します。 記述子はバージョン管理されていないため、参照リクエストにAccept ヘッダーは必要ありません。

curl -X GET \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors/f3a1dfa38a4871cf4442a33074c1f9406a593407 \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

正常な応答は、記述子の詳細(@type および sourceSchema を含む)と、記述子の種類に応じて変化する追加情報を返します。 返される @id は、リクエストで指定された記述子 @id と一致する必要があります。

{
  "@type": "xdm:descriptorIdentity",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
  "xdm:sourceVersion": 1,
  "xdm:sourceProperty": "/personalEmail/address",
  "xdm:namespace": "Email",
  "xdm:property": "xdm:code",
  "xdm:isPrimary": false,
  "createdUser": "{CREATED_USER}",
  "imsOrg": "{ORG_ID}",
  "createdClient": "{CREATED_CLIENT}",
  "updatedUser": "{UPDATED_USER}",
  "created": 1548899346989,
  "updated": 1548899346989,
  "meta:containerId": "tenant",
  "@id": "f3a1dfa38a4871cf4442a33074c1f9406a593407"
}

記述子の作成 create

/tenant/descriptors エンドポイントにPOST リクエストを行うことで、新しい記述子を作成できます。

IMPORTANT
Schema Registryを使用すると、複数の異なる記述子タイプを定義できます。 それぞれの記述子タイプでは、リクエスト本文に独自の特定のフィールドを送信する必要があります。 記述子の完全なリストと、それらを定義するために必要なフィールドについては、付録を参照してください。

API 形式

POST /tenant/descriptors

リクエスト

次のリクエストでは、スキーマ例の「email address」フィールドに ID 記述子を定義します。 これは、Experience Platformに電子メールアドレスを識別子として使用して、個人に関する情報を結合するように指示します。

curl -X POST \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -d '
      {
        "@type": "xdm:descriptorIdentity",
        "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
        "xdm:sourceVersion": 1,
        "xdm:sourceProperty": "/personalEmail/address",
        "xdm:namespace": "Email",
        "xdm:property": "xdm:code",
        "xdm:isPrimary": false
      }'

応答

正常な応答は、新しく作成された記述子の詳細(@id を含む)と共に HTTP ステータス 201(作成済み)を返します。 @idは、Schema Registryによって割り当てられた読み取り専用フィールドで、APIで記述子を参照するために使用されます。

{
  "@type": "xdm:descriptorIdentity",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
  "xdm:sourceVersion": 1,
  "xdm:sourceProperty": "/personalEmail/address",
  "xdm:namespace": "Email",
  "xdm:property": "xdm:code",
  "xdm:isPrimary": false,
  "meta:containerId": "tenant",
  "@id": "f3a1dfa38a4871cf4442a33074c1f9406a593407"
}

記述子の更新 put

PUT リクエストのパスに@idを含めることで、記述子を更新できます。

API 形式

PUT /tenant/descriptors/{DESCRIPTOR_ID}
パラメーター
説明
{DESCRIPTOR_ID}
更新する記述子の @id

リクエスト

このリクエストは基本的に記述子を書き換えるので、リクエスト本文には、そのタイプの記述子を定義するために必要なすべてのフィールドを含める必要があります。 つまり、記述子を更新する要求ペイロード(PUT)は、同じタイプの記述子🔗を作成(POST)するペイロードと同じです。

IMPORTANT
POST リクエストを使用して記述子を作成する場合と同様に、各記述子タイプには、PUT リクエストペイロードで送信する独自の特定のフィールドが必要です。 記述子の完全なリストと、それらを定義するために必要なフィールドについては、付録を参照してください。

次の例では、ID記述子を更新して、別のxdm:sourcePropertymobile phone)を参照し、xdm:namespacePhoneに変更します。

curl -X PUT \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors/f3a1dfa38a4871cf4442a33074c1f9406a593407 \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'Content-Type: application/json' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}' \
  -d '{
        "@type": "xdm:descriptorIdentity",
        "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
        "xdm:sourceVersion": 1,
        "xdm:sourceProperty": "/mobilePhone/number",
        "xdm:namespace": "Phone",
        "xdm:property": "xdm:code",
        "xdm:isPrimary": false
      }'

応答

正常な応答は、更新された記述子の @id(リクエストで送信された @id と一致する必要がある)と共に、HTTP ステータス 201(作成済み)を返します。

{
    "@id": "f3a1dfa38a4871cf4442a33074c1f9406a593407"
}

ディスクリプタを表示するために​ ルックアップ(GET)リクエスト ​を実行すると、PUT リクエストで送信された変更を反映するようにフィールドが更新されたことが示されます。

記述子の削除 delete

場合によっては、Schema Registryから定義した記述子を削除する必要があります。 これは、削除するディスクリプタの@idを参照してDELETE リクエストを行うことで実行されます。

API 形式

DELETE /tenant/descriptors/{DESCRIPTOR_ID}
パラメーター
説明
{DESCRIPTOR_ID}
削除する記述子の @id

リクエスト

curl -X DELETE \
  https://platform.adobe.io/data/foundation/schemaregistry/tenant/descriptors/ca921946fb5281cbdb8ba5e07087486ce531a1f2  \
  -H 'Authorization: Bearer {ACCESS_TOKEN}' \
  -H 'x-api-key: {API_KEY}' \
  -H 'x-gw-ims-org-id: {ORG_ID}' \
  -H 'x-sandbox-name: {SANDBOX_NAME}'

応答

正常な応答の場合は、空白の本文とともに HTTP ステータス 204 (コンテンツなし)が返されます。

記述子が削除されたことを確認するには、記述子@idに対して参照リクエスト ​を実行します。 ディスクリプタがSchema Registryから削除されたため、応答はHTTP ステータス 404 (Not Found)を返します。

付録 appendix

次の節では、Schema Registry APIでの記述子の操作に関する追加情報を示します。

記述子の定義 defining-descriptors

NOTE
組織のサンドボックスに適用できる記述子の最大数は4000です。

以下の節では、使用可能な記述子の型の概要を示します。各型の記述子を定義するための必須フィールドも含まれます。

IMPORTANT
テナント名前空間オブジェクトにラベルを付けることはできません。システムはそのラベルをそのサンドボックス内のすべてのカスタムフィールドに適用するからです。 代わりに、ラベルを付ける必要があるオブジェクトの下にリーフノードを指定する必要があります。

ID 記述子 identity-descriptor

ID記述子は、「sourceSchema」の「sourceProperty」がIdentity フィールドであることを、Experience Platform Identity Serviceで説明されているように示します。

{
  "@type": "xdm:descriptorIdentity",
  "xdm:sourceSchema":
    "https://ns.adobe.com/{TENANT_ID}/schemas/fbc52b243d04b5d4f41eaa72a8ba58be",
  "xdm:sourceVersion": 1,
  "xdm:sourceProperty": "/personalEmail/address",
  "xdm:namespace": "Email",
  "xdm:property": "xdm:code",
  "xdm:isPrimary": false
}
プロパティ
説明
@type
定義する記述子のタイプ。 ID記述子の場合、この値をxdm:descriptorIdentityに設定する必要があります。
xdm:sourceSchema
記述子を定義するスキーマの $id URI。
xdm:sourceVersion
ソーススキーマのメジャーバージョン。
xdm:sourceProperty
ID となる特定のプロパティへのパス。 パスは、「/」で始まる必要がありますが、「/」で終わらない必要があります。 パスに「プロパティ」を含めないでください(例えば、「/properties/personalEmail/properties/address」ではなく「/personalEmail/address」を使用します)
xdm:namespace
ID 名前空間の id または code。 名前空間のリストは、Identity Service APIを使用して見つけることができます。
xdm:property
xdm:id または xdm:code(使用されている xdm:namespace に応じる)。
xdm:isPrimary
オプションのブール値。 true の場合、フィールドがプライマリ ID であることを示します。 スキーマには、1 つのプライマリ ID のみを含めることができます。

わかりやすい名前記述子 friendly-name

わかりやすい名前の記述子を使用すると、ユーザーはコアライブラリスキーマフィールドのtitledescription、およびmeta:enumの値を変更できます。 特に、「eVar」および組織に固有の情報を含むとしてラベル付けする他の「汎用」フィールドを扱う場合に役立ちます。 UI は、これらを使用して、わかりやすい名前を表示したり、わかりやすい名前を持つフィールドのみを表示したりできます。

{
  "@type": "xdm:alternateDisplayInfo",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/274f17bc5807ff307a046bab1489fb18",
  "xdm:sourceVersion": 1,
  "xdm:sourceProperty": "/xdm:eventType",
  "xdm:title": {
    "en_us": "Event Type"
  },
  "xdm:description": {
    "en_us": "The type of experience event detected by the system."
  },
  "meta:enum": {
    "click": "Mouse Click",
    "addCart": "Add to Cart",
    "checkout": "Cart Checkout"
  },
  "xdm:excludeMetaEnum": {
    "web.formFilledOut": "Web Form Filled Out",
    "media.ping": "Media ping"
  }
}
プロパティ
説明
@type
定義する記述子のタイプ。 わかりやすい名前の記述子の場合、この値はxdm:alternateDisplayInfoに設定する必要があります。
xdm:sourceSchema
記述子を定義するスキーマの $id URI。
xdm:sourceVersion
ソーススキーマのメジャーバージョン。
xdm:sourceProperty
詳細を変更する特定のプロパティへのパス。 パスはスラッシュ (/)で始まり、スラッシュで終わるものではありません。 パスにpropertiesを含めないでください(例えば、/properties/personalEmail/properties/addressではなく/personalEmail/addressを使用します)。
xdm:title
このフィールドに表示する新しいタイトル(タイトルケースに記述)。
xdm:description
オプションで、タイトルに説明を追加できます。
meta:enum
xdm:sourcePropertyが示すフィールドが文字列フィールドの場合、meta:enumを使用して、セグメント UIでそのフィールドの推奨値を追加できます。 meta:enumは、列挙を宣言したり、XDM フィールドのデータ検証を提供したりしていないことに注意することが重要です。

これは、Adobeで定義されたコア XDM フィールドにのみ使用してください。 ソースプロパティが組織で定義されたカスタムフィールドである場合は、代わりに、フィールドのmeta:enum プロパティをPATCH リクエストを通じてフィールドの親リソースに直接編集する必要があります。
meta:excludeMetaEnum
xdm:sourcePropertyで示されるフィールドが、meta:enum フィールドの下に既存の推奨値が指定されている文字列フィールドである場合、このオブジェクトをわかりやすい名前の記述子に含めて、これらの値の一部またはすべてをセグメント化から除外できます。 各エントリのキーと値は、エントリを除外するために、フィールドの元のmeta:enumに含まれているものと一致する必要があります。

関係記述子 relationship-descriptor

関係記述子は、xdm:sourcePropertyxdm:destinationProperty で説明されているプロパティに基づいて、2 つの異なるスキーマ間の関係を記述します。 詳しくは、2 つのスキーマ間の関係の定義に関するチュートリアルを参照してください。

これらのプロパティを使用して、ソースフィールド(外部キー)が宛先フィールド(​ プライマリキーまたは候補キー)にどのように関連しているかを宣言します。

TIP
外部キー​は、別のスキーマのキーフィールドを参照するソーススキーマのフィールド(xdm:sourcePropertyで定義)です。 候補キー​は、レコードを一意に識別し、プライマリキーの代わりに使用できる、宛先スキーマ内の任意のフィールド(または一連のフィールド)です。

このAPIは、次の2つのパターンをサポートしています。

  • xdm:descriptorOneToOne:標準1:1関係。
  • xdm:descriptorRelationship:新しい作業およびリレーショナルスキーマの一般的なパターン(基数、命名、およびプライマリ以外のキーターゲットをサポート)。
1対1の関係(標準スキーマ)

既にxdm:descriptorOneToOneに依存している既存の標準スキーマ統合を維持する場合に使用します。

{
  "@type": "xdm:descriptorOneToOne",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{SOURCE_SCHEMA_ID}",
  "xdm:sourceVersion": 1,
  "xdm:sourceProperty": "/parentField/subField",
  "xdm:destinationSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{DEST_SCHEMA_ID}",
  "xdm:destinationVersion": 1,
  "xdm:destinationProperty": "/parentField/subField"
}

次の表に、One to Oneの関係記述子を定義するために必要なフィールドを示します。

プロパティ
説明
@type
定義する記述子のタイプ。 リレーションシップ記述子の場合、Real-Time CDP B2B editionへのアクセス権がない限り、この値をxdm:descriptorOneToOneに設定する必要があります。 B2B editionでは、xdm:descriptorOneToOneまたはxdm:descriptorRelationshipを使用できます。
xdm:sourceSchema
記述子を定義するスキーマの $id URI。
xdm:sourceVersion
ソーススキーマのメジャーバージョン。
xdm:sourceProperty
関係を定義するソーススキーマ内のフィールドのパス。 「/」で始まり、「/」で終わるものではありません。 パスに「プロパティ」を含めてはいけません(例:「/properties/personalEmail/properties/address」の代わりに「/personalEmail/address」を使用)。。
xdm:destinationSchema
この記述子が関係を定義している参照スキーマの$id URI。
xdm:destinationVersion
参照スキーマのメジャーバージョン。
xdm:destinationProperty
(オプション)参照スキーマ内のターゲットフィールドへのパス。 このプロパティを省略すると、ターゲットフィールドは、対応する参照 ID 記述子(以下を参照)を含むフィールドによって推論されます。
一般的な関係(関係スキーマおよび新しいプロジェクトに推奨)

この記述子は、すべての新しい実装とリレーショナルスキーマに使用します。 これにより、リレーションシップの基数(1対1または多対1など)を定義し、リレーションシップ名を指定し、プライマリキー(非プライマリキー)ではない宛先フィールドにリンクできます。

次の例は、一般的な関係記述子を定義する方法を示しています。

最小限の例:

この最小限の例では、2つのスキーマ間の多対一の関係を定義するための必須フィールドのみを含みます。

{
  "@type": "xdm:descriptorRelationship",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{SOURCE_SCHEMA_ID}",
  "xdm:sourceProperty": "/customer_ref",
  "xdm:sourceVersion": 1,
  "xdm:destinationSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{DEST_SCHEMA_ID}",
  "xdm:cardinality": "M:1"
}

すべてのオプション フィールドを含む例:

この例では、リレーションシップ名、表示タイトル、プライマリキー以外の明示的な宛先フィールドなど、すべてのオプションのフィールドを含みます。

{
  "@type": "xdm:descriptorRelationship",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{SOURCE_SCHEMA_ID}",
  "xdm:sourceVersion": 1,
  "xdm:sourceProperty": "/customer_ref",
  "xdm:destinationSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{DEST_SCHEMA_ID}",
  "xdm:destinationProperty": "/customer_id",
  "xdm:sourceToDestinationName": "CampaignToCustomer",
  "xdm:destinationToSourceName": "CustomerToCampaign",
  "xdm:sourceToDestinationTitle": "Customer campaigns",
  "xdm:destinationToSourceTitle": "Campaign customers",
  "xdm:cardinality": "M:1"
}
関係記述子の選択

次のガイドラインを使用して、適用する関係記述子を決定します。

状況
使用する記述子
新しい作業または関係スキーマ
xdm:descriptorRelationship
標準スキーマの既存の1:1 マッピング
xdm:descriptorRelationshipのみがサポートする機能が必要でない限り、xdm:descriptorOneToOneを引き続き使用します。
多対一またはオプションの基数(1:11:0M:1M:0)が必要です
xdm:descriptorRelationship
UI/ダウンストリームの読みやすさに関係の名前またはタイトルが必要
xdm:descriptorRelationship
IDではない宛先ターゲットが必要です
xdm:descriptorRelationship
NOTE
標準スキーマ内の既存のxdm:descriptorOneToOne記述子については、プライマリ ID以外の宛先ターゲット、カスタム命名、拡張カーディナリティオプションなどの機能が必要でない限り、引き続き使用してください。
機能の比較

次の表は、2つの記述子タイプの機能を比較したものです。

機能
xdm:descriptorOneToOne
xdm:descriptorRelationship
基数
1:1
1:1、1:0、M:1、M:0 (情報提供)
配信先ターゲット
ID/明示的フィールド
既定のプライマリキー、またはxdm:destinationPropertyを介した非プライマリキー
フィールドの命名
サポートなし
xdm:sourceToDestinationNamexdm:destinationToSourceNameおよびタイトル
関係適合性
制限付き
関係スキーマのプライマリパターン
制約と検証

一般的な関係記述子を定義する場合は、次の要件と推奨事項に従ってください。

  • リレーショナルスキーマの場合は、ソースフィールド(外部キー)をルートレベルに配置します。 これは、取り込みの現在の技術的な制限であり、ベストプラクティスの推奨事項ではありません。
  • ソースフィールドと宛先フィールドのデータタイプが互換性があることを確認します(数値、日付、ブール値、文字列)。
  • 基数は情報であり、ストレージは適用しません。 基数を<source>:<destination>形式で指定します。 使用できる値は1:11:0M:1またはM:0です。

プライマリキー記述子 primary-key-descriptor

プライマリキー記述子(xdm:descriptorPrimaryKey)は、スキーマ内の1つ以上のフィールドに一意性とnull以外の制約を適用します。

{
  "@type": "xdm:descriptorPrimaryKey",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{SCHEMA_ID}",
  "xdm:sourceProperty": ["/orderId", "/orderLineId"]
}
プロパティ
説明
@type
xdm:descriptorPrimaryKey である必要があります。
xdm:sourceSchema
スキーマの$id URI。
xdm:sourceProperty
プライマリキーフィールドへのJSON ポインター。 複合キーに配列を使用します。 時系列スキーマの場合、イベントレコード全体で一意性を確保するために、複合キーにタイムスタンプフィールドを含める必要があります。

バージョン記述子 version-descriptor

NOTE
UI スキーマエディターでは、バージョン記述子は「​ バージョン識別子」として表示されます。

バージョン記述子(xdm:descriptorVersion)は、不規則な変更イベントの競合を検出および防止するためのフィールドを指定します。

{
  "@type": "xdm:descriptorVersion",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{SCHEMA_ID}",
  "xdm:sourceProperty": "/versionNumber"
}
プロパティ
説明
@type
xdm:descriptorVersion である必要があります。
xdm:sourceSchema
スキーマの$id URI。
xdm:sourceProperty
バージョン フィールドへのJSON ポインター。 requiredとマークする必要があります。

タイムスタンプ記述子 timestamp-descriptor

NOTE
UI スキーマエディターでは、タイムスタンプ記述子が「​ タイムスタンプ識別子」として表示されます。

タイムスタンプ記述子(xdm:descriptorTimestamp)は、"meta:behaviorType": "time-series"を持つスキーマのタイムスタンプとして日時フィールドを指定します。

{
  "@type": "xdm:descriptorTimestamp",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/{SCHEMA_ID}",
  "xdm:sourceProperty": "/eventTime"
}
プロパティ
説明
@type
xdm:descriptorTimestamp である必要があります。
xdm:sourceSchema
スキーマの$id URI。
xdm:sourceProperty
タイムスタンプフィールドへのJSON ポインター。 requiredとマークされ、タイプ date-timeである必要があります。
B2B関係記述子 B2B-relationship-descriptor

Real-Time CDP B2B editionでは、スキーマ間の関係を定義する別の方法が導入され、多対一の関係を実現できます。 この新しい関係には@type: xdm:descriptorRelationship タイプが必要であり、ペイロードには@type: xdm:descriptorOneToOne関係よりも多くのフィールドを含める必要があります。 詳しくは、B2B editionのスキーマ関係の定義に関するチュートリアルを参照してください。

{
   "@type": "xdm:descriptorRelationship",
   "xdm:sourceSchema" : "https://ns.adobe.com/{TENANT_ID}/schemas/9f2b2f225ac642570a110d8fd70800ac0c0573d52974fa9a",
   "xdm:sourceVersion" : 1,
   "xdm:sourceProperty" : "/person-ref",
   "xdm:destinationSchema" : "https://ns.adobe.com/{TENANT_ID/schemas/628427680e6b09f1f5a8f63ba302ee5ce12afba8de31acd7",
   "xdm:destinationVersion" : 1,
   "xdm:destinationProperty": "/personId",
   "xdm:destinationNamespace" : "People",
   "xdm:destinationToSourceTitle" : "Opportunity Roles",
   "xdm:sourceToDestinationTitle" : "People",
   "xdm:cardinality": "M:1"
}
プロパティ
説明
@type
定義する記述子のタイプ。 次のフィールドを使用する場合は、値をxdm:descriptorRelationshipに設定する必要があります。 その他のタイプについて詳しくは、「関係記述子」の節を参照してください。
xdm:sourceSchema
記述子を定義するスキーマの $id URI。
xdm:sourceVersion
ソーススキーマのメジャーバージョン。
xdm:sourceProperty
関係を定義するソーススキーマ内のフィールドのパス。 「/」で始まり、「/」で終わるものではありません。 パスに「プロパティ」を含めてはいけません(例:「/properties/personalEmail/properties/address」の代わりに「/personalEmail/address」を使用)。。
xdm:destinationSchema
この記述子が関係を定義している参照スキーマの$id URI。
xdm:destinationVersion
参照スキーマのメジャーバージョン。
xdm:destinationProperty
(オプション)参照スキーマ内のターゲットフィールドへのパス。 これは、スキーマのプライマリ ID、または互換性のあるデータ型がxdm:sourcePropertyの別のフィールドに解決する必要があります。 省略すると、関係が期待どおりに機能しない場合があります。
xdm:destinationNamespace
参照スキーマからのプライマリ IDの名前空間。
xdm:destinationToSourceTitle
参照スキーマからソーススキーマへの関係の表示名。
xdm:sourceToDestinationTitle
ソーススキーマから参照スキーマへの関係の表示名。
xdm:cardinality
スキーマ間の結合関係。 多対一の関係を参照して、この値をM:1に設定する必要があります。

参照 ID 記述子

参照ID記述子は、スキーマフィールドのプライマリ IDへの参照コンテキストを提供し、他のスキーマのフィールドで参照できるようにします。 参照スキーマには、この記述子を通じて他のスキーマで参照する前に、プライマリ ID フィールドが既に定義されている必要があります。

{
  "@type": "xdm:descriptorReferenceIdentity",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/78bab6346b9c5102b60591e15e75d254",
  "xdm:sourceVersion": 1,
  "xdm:sourceProperty": "/parentField/subField",
  "xdm:identityNamespace": "Email"
}
プロパティ
説明
@type
定義する記述子のタイプ。 参照ID記述子の場合、この値をxdm:descriptorReferenceIdentityに設定する必要があります。
xdm:sourceSchema
記述子を定義するスキーマの $id URI。
xdm:sourceVersion
ソーススキーマのメジャーバージョン。
xdm:sourceProperty
参照スキーマを参照するために使用されるソーススキーマ内のフィールドへのパス。 「/」で始まる必要がありますが、「/」で終わらない必要があります。 パスに「プロパティ」を含めないでください(例:/properties/personalEmail/properties/addressではなく/personalEmail/address)。
xdm:identityNamespace
ソースプロパティの ID 名前空間コード。

非推奨のフィールド記述子

対象のフィールドにdeprecatedmeta:status属性セットを追加することで、カスタム XDM リソース 🔗内のフィールドを非推奨(廃止予定)にできます。 ただし、スキーマの標準XDM リソースで提供されるフィールドを非推奨(廃止予定)にする場合は、非推奨(廃止予定)のフィールドディスクリプタをスキーマに割り当てて、同じ効果を得ることができます。 正しいAccept ヘッダーを使用すると、APIでスキーマを検索する際に、どの標準フィールドがスキーマで非推奨になるかを表示できます。

{
  "@type": "xdm:descriptorDeprecated",
  "xdm:sourceSchema": "https://ns.adobe.com/{TENANT_ID}/schemas/c65ddf08cf2d4a2fe94bd06113bf4bc4c855e12a936410d5",
  "xdm:sourceVersion": 1,
  "xdm:sourceProperty": "/faxPhone"
}
プロパティ
説明
@type
記述子のタイプ。 フィールド非推奨化記述子の場合は、この値を xdm:descriptorDeprecated に設定する必要があります。
xdm:sourceSchema
記述子の適用先となるスキーマの URI $id
xdm:sourceVersion
記述子の適用先となるスキーマのバージョン。 1 に設定してください。
xdm:sourceProperty
記述子の適用先となるスキーマ内のプロパティへのパス。 記述子を複数のプロパティに適用する場合は、パスのリストを配列の形式(例:["/firstName", "/lastName"])で指定します。
recommendation-more-help
experience-platform-help-xdm