コンテンツフラグメントモデルの定義 defining-content-fragment-models
Adobe Experience Manager(AEM)as a Cloud Service のコンテンツフラグメントモデルでは、コンテンツフラグメントのコンテンツの構造を定義します。これらのフラグメントは、ページオーサリングまたはヘッドレスコンテンツの基盤として使用できます。
このページでは、専用のエディターを使用してコンテンツフラグメントモデルを定義する方法について説明します。 コンテンツフラグメントコンソールから使用できるアクション、 フォルダーにモデルを許可、 モデルの公開など、フラグメントの作成後に使用できるタスクやオプションについて詳しくは、 コンテンツフラグメントモデルの管理を参照してください。
コンテンツフラグメントモデルの定義 defining-your-content-fragment-model
コンテンツフラグメントモデルは、データタイプ の選択を使用して、結果として得られるコンテンツフラグメントの構造を効果的に定義します。モデルエディターを使用して、データタイプのインスタンスを追加し、それらを設定して必須フィールドを作成できます。
-
コンテンツフラグメントコンソールで、 コンテンツフラグメントモデルのパネルを選択し、コンテンツフラグメントモデルが含まれているフォルダーに移動します。
note note NOTE 作成した直後にモデルを開くこともできます。 -
必要なモデルを 編集 用に開きます。クイック操作を使用するか、モデルを選択してツールバーから操作を選択します。
モデルを開くと、モデルエディターに以下の情報が表示されます。
- 左:フィールドが既に定義されています
- 右:フィールドの作成に使用できる データタイプ(およびフィールドの作成後に使用する プロパティ)
note note NOTE あるフィールドを「必須」と指定した場合、左側のウィンドウに表示される ラベル にアスタリスク(*)が付きます。 -
フィールドを追加するには
-
必要なデータタイプをフィールドの必要な場所にドラッグします。
-
フィールドがモデルに追加されると、その特定のデータタイプに対して定義できる プロパティ が右側のパネルに表示されます。ここで、そのフィールドに必要な項目を定義することができます。
-
プロパティの多くは自明であり、詳しくは プロパティ(データタイプ)を参照してください。
-
「フィールドラベル」を入力すると、「プロパティ名」が空欄の場合は自動入力され、後で手動で更新できます。
note caution CAUTION データタイプのプロパティの「プロパティ名」を手動で更新する場合、名前には、A~Z、a~z、0~9 および特殊文字のアンダースコア「_」のみ を使用することができます。 以前のバージョンの AEM で作成されたモデルに不正な文字が含まれている場合は、それらの文字を削除または更新します。
例:
-
-
-
フィールドを削除するには
必須フィールドを選択し、ごみ箱アイコンを選択します。アクションの確認が求められます。
-
すべての必須フィールドを追加し、必要に応じて関連するプロパティを定義します。例:
-
「保存」を選択して、定義を保持します。
データタイプ data-types
モデルの定義には、次のデータタイプを選択できます。
-
1 行のテキスト
- 1 行のテキストのフィールドを追加(最大長は定義可能)
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
-
複数行テキスト
- リッチテキスト、プレーンテキストまたはマークダウンのテキストエリア
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
note note NOTE テキストエリアがリッチテキスト、プレーンテキストまたはマークダウンのどれであるかは、モデル内で、プロパティの デフォルトのタイプ によって定義されます。 この形式は、コンテンツフラグメントエディターから変更はできませんが、モデルからのみ変更できます。 -
数値
- 数値フィールドを追加
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
-
ブール型
- ブール型チェックボックスを追加
-
日時
- 日付/時間フィールドを追加
-
列挙
- チェックボックス、ラジオボタン、ドロップダウンフィールドのセットを追加
- フラグメント作成者が使用できるオプションを指定可能
- チェックボックス、ラジオボタン、ドロップダウンフィールドのセットを追加
-
タグ
- フラグメント作成者がタグの領域にアクセスして選択できるようにする
-
フラグメント参照
-
他のコンテンツフラグメントの参照をネストされたコンテンツの作成に使用可能
-
このデータタイプは、フラグメント作成者が次の操作を行えるように設定可能です。
- 参照先フラグメントの直接編集
- 適切なモデルに基づいた新しいコンテンツフラグメントの作成
- フィールドの新しいインスタンスの作成
-
参照は、参照先リソースへのパスを指定します。例:
/content/dam/path/to/resource
-
-
フラグメント参照(UUID)
-
他のコンテンツフラグメントの参照をネストされたコンテンツの作成に使用可能
-
このデータタイプは、フラグメント作成者が次の操作を行えるように設定可能です。
- 参照先フラグメントの直接編集
- 適切なモデルに基づいた新しいコンテンツフラグメントの作成
- フィールドの新しいインスタンスの作成
-
エディターでは、参照は参照先リソースへのパスを指定します。内部的には、参照はリソースを参照する Universally Unique ID(UUID)として保持されます
- UUID を知らなくても、フラグメントエディターで必要なフラグメントを参照できます
-
-
コンテンツ参照
- 任意のタイプの他のコンテンツの参照をネストされたコンテンツの作成に使用可能
- 画像が参照されている場合は、サムネールを表示するように選択可能
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
- 参照は、参照先リソースへのパスを指定します。例:
/content/dam/path/to/resource
-
コンテンツ参照(UUID)
- 任意のタイプの他のコンテンツの参照をネストされたコンテンツの作成に使用可能
- 画像が参照されている場合は、サムネールを表示するように選択可能
- フィールドは、フラグメント作成者がフィールドの新しいインスタンスを作成できるように設定可能
- エディターでは、参照は参照先リソースへのパスを指定します。内部的には、参照はリソースを参照する Universally Unique ID(UUID)として保持されます
- UUID を知らなくても、フラグメントエディターで必要なアセットリソースを参照できます
-
JSON オブジェクト
-
コンテンツフラグメントの作成者がフラグメントの対応する要素に JSON 構文を入力できます。
- 別のサービスからコピー&ペーストした JSON を AEM に直接保存できるようにします。
- JSON が渡され GraphQL で JSON として出力されます。
- コンテンツフラグメントエディターに JSON 構文のハイライト表示機能、オートコンプリートおよびエラーのハイライト表示機能が含まれています。
-
-
タブプレースホルダー
-
コンテンツフラグメントコンテンツの編集時に使用するタブを導入を許可します。
- モデルエディターで区切りとして表示され、コンテンツデータタイプのリストをセクションに分割します。各インスタンスは、新しいタブの開始を表します。
- フラグメントエディターでは、各インスタンスがタブとして表示されます。
note note NOTE このデータタイプは書式設定にのみ使用され、AEM GraphQL スキーマでは無視されます。
-
プロパティ(データタイプ) properties
多くのプロパティは自明です。プロパティによっては次に示す追加の詳細情報があります。
-
プロパティ名
データタイプのこのプロパティを手動で更新する場合、名前には、A~Z、a~z、0~9 および特殊文字としてアンダースコア「_」のみ を使用する 必要があります。
note caution CAUTION 以前のバージョンの AEM で作成されたモデルに不正な文字が含まれている場合は、それらの文字を削除または更新します。 -
レンダリング形式
フラグメント内のフィールドを実現/レンダリングするための様々なオプション。多くの場合、これにより、オーサーにフィールドの 1 つのインスタンスが表示されるか、オーサーが複数のインスタンスを作成できるかを定義できます。複数フィールド を使用する場合、項目の最小数と最大数を定義できます。詳しくは、検証を参照してください。
-
フィールドラベル
フィールドラベル を入力すると、プロパティ名 を自動生成し、必要に応じて手動で更新できます。 -
検証 基本検証は、
必須 プロパティなどのメカニズムで使用できます。一部のデータ型には、追加の検証フィールドがあります。詳しくは、「検証」を参照してください。 -
データタイプが 複数行テキスト の場合、「デフォルトの種類」を次のいずれかとして定義できます。
- リッチテキスト
- Markdown
- プレーンテキスト
指定しなかった場合は、デフォルト値の リッチテキスト がこのフィールドで使用されます。
コンテンツフラグメントモデルで デフォルトのタイプ を変更した場合、その影響が既存の関連コンテンツフラグメントに及ぶのは、そのフラグメントがエディターで開かれて保存された後です。
-
一意:
(特定のフィールドの)コンテンツは、現在のモデルから作成されたすべてのコンテンツフラグメントで一意である必要があります。これにより、同じモデルの別のフラグメントに既に追加されているコンテンツをコンテンツ作成者が繰り返し作成できないようになります。
例えば、コンテンツフラグメントモデルの 1 行のテキスト フィールド
Country
は、2 つの依存するコンテンツフラグメントで同じJapan
値を持つことはできません。2 つ目のインスタンスが試行された場合、警告が表示されます。note note NOTE 言語ルートごとに一意性が確保されます。 note note NOTE バリエーションは、同じフラグメントのバリエーションと同じ 一意の 値を持つことができますが、他のフラグメントのバリエーションで使用されている値とは異なります。 -
特定のデータタイプとそのプロパティについて詳しくは、コンテンツ参照 を参照してください。
-
特定のデータタイプとそのプロパティについて詳しくは、フラグメント参照(ネストされたフラグメント) を参照してください。
-
変換可能
コンテンツフラグメントモデルエディターのフィールドの「翻訳可能」チェックボックスをオンにした場合:
- フィールドのプロパティ名がまだ存在しない場合は、翻訳設定のコンテキスト
/content/dam/<sites-configuration>
に確実に追加されます。 - GraphQL の場合:「コンテンツフラグメント」フィールドの
<translatable>
プロパティをyes
に設定して、変換可能なコンテンツのみを含む JSON を出力するための GraphQL クエリフィルターを許可します。
- フィールドのプロパティ名がまだ存在しない場合は、翻訳設定のコンテキスト
検証 validation
様々なデータ型に、結果のフラグメントにコンテンツが入力される際の検証要件を定義できるようになりました。
-
1 行のテキスト
- 事前定義された正規表現と比較します。
-
数値
- 特定の値を確認します。
-
コンテンツ参照
- 特定のタイプのコンテンツをテストします。
- 指定したファイルサイズ以下のアセットのみを参照できます。
- 定義済みの幅または高さ(ピクセル単位)の範囲に収まる画像のみを参照できます。
-
フラグメント参照
- 特定のコンテンツフラグメントモデルをテストします。
-
最小項目数/最大項目数
複数フィールド として定義されているフィールド(レンダリング形式 で設定)には、次のオプションがあります。
- 最小項目数
- 最大項目数
これらは、コンテンツフラグメントエディターで検証されます。
参照の使用によるネストされたコンテンツの作成 using-references-to-form-nested-content
コンテンツフラグメントは、次のいずれかのデータタイプを使用して、ネストされたコンテンツを作成できます。
-
-
他のコンテンツへの単純な参照(任意のタイプ)を提供します。
-
データタイプによって提供されるものは次のとおりです。
- コンテンツ参照 - パスベース
- コンテンツ参照(UUID) - UUID ベース
-
(結果のフラグメント内で)1 つまたは複数の参照に対して設定できます。
-
-
フラグメント参照(ネストされたフラグメント)
-
指定した特定のモデルに応じて、他のフラグメントを参照します。
-
データタイプによって提供されるものは次のとおりです。
- フラグメント参照 - パスベース
- フラグメント参照(UUID) - UUID ベース
-
構造化データを包含/取得できます。
note note NOTE このメソッドは、GraphQL でコンテンツフラグメントを使用したヘッドレスコンテンツ配信を使用する場合、特に重要になります。 * (結果のフラグメント内で)1 つまたは複数の参照に対して設定できます。
-
-
コンテンツ参照
これにより、ユーザーは現在のフラグメントに参照を追加できなくなり、フラグメント参照ピッカーダイアログが空になる場合があります。 -
GraphQL のフラグメント参照
相互に参照される複数のコンテンツフラグメントを返すディープクエリを作成する場合、最初に null が返されます。
コンテンツ参照 content-reference
コンテンツ参照 および コンテンツ参照(UUID) データタイプを使用すると、別のソース(例:画像、ページまたはエクスペリエンスフラグメント)からコンテンツをレンダリングできます。
標準プロパティに加えて、以下を指定できます。
フラグメント参照(ネストされたフラグメント) fragment-reference-nested-fragments
フラグメント参照 および フラグメント参照(UUID) データタイプは、1 つ以上のコンテンツフラグメントを参照できます。 複数のレイヤーを持つ構造化データを取得できるようになるので、アプリで使用するコンテンツを取得する場合、この機能は特に重要になります。
例:
- 次が含まれる従業員の詳細を定義するモデルです。
- 事業主(会社)を定義するモデルへの参照
type EmployeeModel {
name: String
firstName: String
company: CompanyModel
}
type CompanyModel {
name: String
street: String
city: String
}
標準プロパティに加えて、次のものを定義できます。
-
レンダリング時の名前:
-
multifield - フラグメント作成者は個別の参照を複数作成できます。
-
fragmentreference - フラグメント作成者はフラグメントへの 1 つの参照を選択できます。
-
-
モデルタイプ:
複数のモデルを選択できます。コンテンツフラグメントに参照を追加する場合、これらのモデルを使用して参照先のフラグメントが既に作成されている必要があります。 -
ルートパス
任意の参照先フラグメントのルートパスを指定または表します。 -
フラグメントの作成を許可
これにより、フラグメント作成者は、適切なモデルに基づいてフラグメントを作成できるようになります。
- fragmentreferencecomposite - フラグメント作成者が複数のフラグメントを選択して複合フラグメントを作成できるようになります。