---
title: "xConnectコレクションモデル"
slug: "the-xconnect-collection-model"
abstract: "xConnectコレクションモデルの概要と例。"
---
# xConnectコレクションモデル

コレクションモデルは、経験データの構造を構成するCLRタイプ、ファセット、イベントを定義します。Sitecoreは、PersonalInformationなどのファセットやGoal 、Outcomeなどのイベントタイプを定義するデフォルトのコレクションモデルを搭載しています。独自のファセットやイベントで、任意の数の追加モデルを定義できます。

すべてのモデルは完全にコードで定義されています。以下のモデルは、1つの接触面と1つのイベントを定義しています:

using System;
using Sitecore.XConnect.Operations;
using Sitecore.XConnect.Schema;

namespace Sitecore.XConnect.Sample.Model
{
 public static class CollectionModel
 {
 public static XdbModel Model { get; } = BuildModel();

 static XdbModel BuildModel()
 {
 var builder = new XdbModelBuilder("Sitecore.XConnect.Sample.Model", new XdbModelVersion(1, 0));

 //Contact facets
 builder.DefineFacet<Contact, CustomFacet>(FacetKeys.CustomFacetKey);

 // Events
 builder.DefineEventType<CustomEvent>(false);

 return builder.BuildModel();
 }
 }

 public static class FacetKeys
 {
 public const string CustomFacetKey = nameof(CollectionModel.Avatar);
 }
}

コンソールアプリケーションの文脈では、xConnect Client APIはカスタムモデルで初期化できます:

var cfg = new XConnectClientConfiguration(
 new XdbRuntimeModel(CollectionModel.Model), collectionClient, searchClient, configurationClient);

または、カスタムモデルを[Sitecoreの設定に追加](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/create-a-custom-model.html "Create a custom model")することも可能です。アプリケーションが起動すると、構成に記載されているすべてのモデルからランタイムモデルが組み立てられ、xConnectクライアントをリクエストした際に利用可能です。

using (Sitecore.XConnect.Client.XConnectClient client = Sitecore.XConnect.Client.Configuration.SitecoreXConnectClientConfiguration.GetClient())
{
 // Core collection model and custom model both available from configuration
}

xConnectサービスは、クライアントアプリケーションが使用したいモデルのJSON表現を備えなければなりません。

![simple-schema11.png](https://doc.sitecore.com/api/markdown-image/xp/ja/developers/93/sitecore-experience-platform/images/simple-schema11.png)

[モデルをJSONにシリアライズ](https://doc.sitecore.com/xp/ja/developers/93/sitecore-experience-platform/serialize-xconnect-entities-using-json-net.html "Serialize xConnect entities using JSON.NET")するためのツールは存在します。モデルのJSONとC#のバージョンが一致しなければ、xConnect Client APIが初期化に失敗します。xConnectはモデルのJSON表現だけで十分で、DLLをデプロイする必要はありません。