---
title: "データ定義とテンプレートの概要"
slug: "data-definition-and-template-overview"
abstract: "テンプレートの概要とSitecoreでの使用方法。"
---
# データ定義とテンプレートの概要

ウェブサイトを立ち上げる際、最初のステップはデータ構造の作成です。Sitecoreでは、データ構造を作成するとは、データテンプレートの作成、標準値の定義、挿入オプションの割り当て、コンテンツ項目の作成を指します。これを実現するには、Sitecoreの基本的な概念の一つ、すなわちテンプレートが中心です。テンプレートはコンテンツの *提示* とは関係ありません。代わりに、内容の *構成* を決定します。テンプレートとは、他のアイテムの構造と挙動の両方を定義する項目です。Sitecoreにはさまざまな種類のテンプレートがあります:

-   [データテンプレート](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/data-templates/data-templates-733367.html "Data templates") - データの入力方法を制御するためのフィールドを定義します。彼らは各項目を構成する正確なフィールドセクション、フィールドタイプ、フィールド名を決定します。言い換えれば、データテンプレートは項目を構築する枠組みを形成します。
    
    Sitecoreはコンテンツツリー内のすべての項目にデータテンプレートを関連付けます。編集コントロールをユーザーに表示するのは [フィールドタイプ](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/data-templates/data-template-fields/the-data-template-field-types.html "The data template field types") であり、それらはデータベースに保存される生の値です。
    
-   [ブランチテンプレート](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/data-templates/branch-templates.html "Branch templates") - 単一のアイテムではなく、複数のアイテムを一つにまとめて作成できるようにします。ブランチテンプレートは、ブランチテンプレートの定義アイテムで構成され、単一のアイテム、階層状のアイテム、または複数の階層を含むことができます。ブランチテンプレートでは、Sitecoreはブランチテンプレート定義項目の下にある項目(フィールド値を含む)を複製し、その後アイテム名やフィールド値のトークンを解決します。
    
-   [コマンドテンプレート](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/data-templates/command-templates.html "Command templates") - あらかじめ定義された構造ではなく、ロジックを使ってアイテムを挿入できるようにします。
    

## テンプレート継承

Sitecoreでもう一つ重要な概念はテンプレート継承です。テンプレートは1つ以上の [ベーステンプレート](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/data-templates/data-template-sections/base-templates.html "Base templates")から継承します。例えば、データテンプレートは基本テンプレートからセクションやフィールドを継承します。データテンプレートが他のテンプレートから継承する場合、すべてのフィールドが統合されます。テンプレートの階層構造の例は [テンプレート継承の例](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/data-templates/data-templates-733367/example--configure-a-template-hierarchy.html "Example: Configure a template hierarchy")にあります。

すべてのデータテンプレートは [標準テンプレート](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/data-templates/the-standard-template.html "The Standard template")から継承されます。標準テンプレートにはフィールドは含まれていませんが、他のテンプレートから継承されています。標準テンプレートに継承されたすべてのフィールドは、\_\_Ribbonや \_\_Trackingなどの下引線で始まります。

> !重要すべてのテンプレートはコアデータベースではなくマスターデータベースで作成する必要があります。

## 推奨される実践

テンプレートを使う際は、以下のベストプラクティスを念頭に置いてください。

-   データテンプレートをサイトごとに整理しましょう。コンテンツツリー(*sitecore/Templates*)で、各サイトごとにフォルダを作成し、テンプレートを追加します。
-   わかりやすいデータテンプレート名を使い、コンテンツ作成者が新しい項目を挿入し、その名前を見たときにテンプレートの目的を理解できるようにします。同様に、類似したフィールドをまとめたセクションにも意味のある名前を付けましょう。
-   フィールドやフィールドセクションには *固有の* 名前を付けてください。これらは継承されたベーステンプレートからマージされているからです。
-   コンテンツ作成者が見えるデータテンプレートにアイコンを割り当て、アイテムがどの種類のデータテンプレートから作成されたかを簡単に特定できるようにします。同様に、フィールドセクションにアイコンを割り当てます。
-   テンプレート継承を使って重複を減らす。複数のデータテンプレート間で共有されているフィールドは、ベーステンプレートにまとめて継承することができます。例えば、すべてのページにはページタイトル(ブラウザのタイトルバーに表示される)とメタディスクリプションが設定されます。これらのフィールドはページメタデータとしてまとめることができます。同様に、ほとんどのページには要約情報や主要な内容があります。
-   冗長なフィールド(例えば、データテンプレートで継承されているが一度も使われないフィールド)は避けましょう。
-   特定のフィールド名(例えば単に*Heading*ではなく*Page Summary Heading*)を定義してください。フィールドコンテンツをレンダリングするすべてのヘルパーやコントロールは最終的に、FieldRendererパイプラインを通過し、フィールド名をIDではなく入力する必要があります。
-   フィールド名は場所ではなくコンテンツタイプに基づいて定義してください。なぜなら、コンテンツはしばしば再利用され、必ずしも一つの場所だけに現れるわけではないからです。
-   フィールドを翻訳し、各バージョンを追跡する必要がある場合は、そのフィールドをバージョン付きフィールドにしましょう。フィールドを翻訳する必要があるが、各バージョンを追跡する必要がない場合は、フィールドを無バージョンフィールドにしてください。
-   複数のフィールドが似た内容を使う場合は、フィールド [トークン](https://doc.sitecore.com/sai/ja/developers/sitecoreai/content-modeling-and-presentation/data-templates/branch-templates.html "Branch templates") ( $name、 $id、 $time)を使いましょう。トークンはデータテンプレートの標準値に基づいて定義されており、対象フィールドがバージョン指定または非バージョン指定の場合、すべての言語で実行しなければなりません。トークンはアイテムが作成された瞬間に交換されます。
-   フィールドのデフォルトを標準値に設定してください。標準値を使えば、デフォルトデータが新しく作成されたアイテムに自動的に挿入されることを確認できます。標準値は、既存のアイテムのnullフィールドを埋めたり、新たに作成されたアイテムにデータを埋めたりするデフォルトの値です。