> ## Documentation Index
> Fetch the complete documentation index at: https://docs.abbyy.com/llms.txt
> Use this file to discover all available pages before exploring further.

# グループ要素

> グループ要素はサブ要素を 1 つの単位にまとめ、テストを簡単にし、仮説の増大を抑え、FlexiLayout で検索制約を共有できるようにします。

**グループ** は、複数の要素 (サブ要素と呼ばれます) から成るコレクションです。サブ要素は、さらに **グループ** 要素にすることもできます。

**グループ** 要素は、FlexiLayout ツリー内で <img src="https://mintcdn.com/abbyy/fmgRWFNHKYN2MLSg/images/flexi-capture/fls/Group.gif?s=ce526e276d21a413d788306923ec879d" alt="グループ要素アイコン" style={{display:"inline-block",verticalAlign:"middle",margin:0}} width="18" height="12" data-path="images/flexi-capture/fls/Group.gif" /> で示されます。

<Note>
  **グループ** 要素には、[Header](/ja/flexi-capture/fls/template/elements-header-footer)、[Footer](/ja/flexi-capture/fls/template/elements-header-footer)、[First Found](/ja/flexi-capture/fls/template/first-found)、および [Repeating Group](/ja/flexi-capture/fls/template/repeatable-group) も含まれます。

  ドキュメントの先頭と末尾を検出するには、**Header** 要素と **Footer** 要素を使用します。それぞれ、ドキュメント内に 1 回しか出現できません。

  **Repeating Group** は繰り返し出現する **グループ** 要素です。[Labeled Field](/ja/flexi-capture/fls/template/labeled-field) 要素も複合要素として表すことができます。
</Note>

<div id="how-group-elements-are-detected">
  ## グループ要素の検出方法
</div>

必要に応じて、検出するサブ要素の最小数を指定できます。FlexiLayout の適用時に検出されたサブ要素の数がこれより少ない場合、その複合要素は未検出と見なされます。

単純要素と同様に、**グループ** 要素は必須、任意、または禁止に設定できます。任意の **グループ** 要素に必須要素が含まれている場合、その要素をオブジェクトにマッチングできないと、**グループ** 要素はヌル仮説となり、プログラムは引き続き FlexiLayout のマッチングを試みます。

空の複合要素 (つまり、サブ要素を 1 つも含まない複合要素) は残さないでください。FlexiLayout のコンパイル時にプログラムが空の複合要素を検出すると、警告メッセージが表示されます。

**Header** 要素と **Footer** 要素はデフォルトで追加されます。FlexiLayout でこれらを使用しない場合は、不要な要素を削除してください。

<div id="when-to-use-group-elements">
  ## グループ要素を使用する場合
</div>

**グループ**要素は、次のような場合に役立ちます。

* FlexiLayout の独立した部分をテストしやすくするため。

  たとえば、100 個の要素で構成される FlexiLayout でも、**グループ**要素はタイトル、本文、文書の下部を表す 3 つだけという場合があります。これら 3 つの **グループ**要素にはそれぞれ、文書のさらに小さな部分を記述する**グループ**要素が含まれます。

  この方法を使うと、検討すべき候補の数を抑えられるだけでなく、各グループを個別に編集してテストできるため、FlexiLayout のデバッグも容易になります。
* FlexiLayout ツリーでの移動を容易にするため。
* 可能な[要素仮説](/ja/flexi-capture/fls/hypotheses/hyp-general)の数を減らし、最終的な仮説の生成を高速化するため。

  要素をグループ化すると、プログラムは一連の要素を 1 つのまとまりとして扱えるようになります。このまとまりに対しては、1 つの仮説 (ただし、サブ要素の仮説で構成されます) が生成され、その品質を計算できます。

  サブ要素の仮説のさまざまな組み合わせはグループ内で検討され、ツリーを下って検索する際には、最良のグループ仮説のうち一定数だけが使用されます。**グループ**要素の最良仮説のデフォルト数は 1 です。

  <Warning>
    仮説の最大数を増やすことは推奨されません。ツリーが制御不能なほど肥大化し、画像に対して FlexiLayout をマッチングできなくなるおそれがあるためです。
  </Warning>
* すべてのサブ要素に共通する検索制約を指定するため。特定の要素の検索領域は、サブ要素で指定した検索領域とグループ全体の検索領域との交差領域として計算されます。

  <Tip>
    場合によっては、**グループ**要素の検索領域とそのサブ要素の 1 つの検索領域との交差領域が空になり、プログラムがそのサブ要素を見つけられないことがあります。**グループ**要素には、たとえば `Above: PageRect.Top + PageRect.Height/2;` (つまり「画像の上半分で要素を探す」) のような単純なリレーションだけを指定するか、あるいはリレーションをまったく指定しないようにしてください。
  </Tip>

<div id="related-topics">
  ## 関連トピック
</div>

* [要素を作成、コピー、削除する](/ja/flexi-capture/fls/template/elements-simple)
* [要素のプロパティの概要](/ja/flexi-capture/fls/template/elements-properties)
* [検索領域](/ja/flexi-capture/fls/template/search-constraints)
* [追加の検索条件](/ja/flexi-capture/fls/template/advanced-constraints)
