グループ化

www.altova.com すべてを展開/折りたたむ このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  SPS ファイル: 高度な機能 >

グループ化

グループ化関数は XSLT 2.0 と 3.0 SPS にて利用することができ、 HTML 出力に対して適用されます。

 

グループ化により、アイテム(大抵の場合ノード)をグループ単位で処理することができるようになります。車の在庫管理を例に考えてみましょう。各車の詳細情報は、car 要素以下に収められます。例えば、car 要素に brand 属性がある場合、ブランド名により車をグループ化することができます。この機能により、以下のような処理を行うことが可能になります:

 

 


あるブランドの車全てをまとめて出力に表示し、その上部にブランド名のヘッダーを表示する。


グループ内部で処理を行うことにより、その処理結果を各グループごとで個別に表示する。例えば、各ブランドで利用可能な車種がどれだけあるかを表示することができます。

 

更に、グループ内に配置されたサブグループ単位で処理を行うこともできます。例えば、各ブランド内にあるモデルや年式ごとにグループ化を行うことができます。

 

グループ化の条件

アイテムは、(i) 通常ノードの値をチェックするために使用されるグループ化キー、そして (ii) 相対的なアイテムの位置という2つの条件によりグループ化することができます。以下にあるグループ化の条件を使用することができます:

 

group-by : XPath により定義されたキーをベースにアイテムのグループ化を行います。例えば、car 要素を、brand 属性をベースにグループ化することができます。car 要素に対してグループ化を行い、XPath 条件式により brand 属性が選択されます。
group-adjacent : グループ化のキーと位置情報を組み合わせることでグループ化を行います。同じグループ化のキーを持った隣合わせのアイテムがグループ化の対象になります。あるアイテムにあるグループ化のキー値が、前にあるアイテムの値と違う場合、そのアイテムから新たなグループが作成されます。
group-startup-with : 定義された XPath にマッチするノードが見つかると、新たなグループを作成します。定義された XPath パターンにノードがマッチしない場合、そのノードが現在のグループに追加されます。
group-ending-with : 定義された XPath にマッチするノードが見つかると、そのノードがグループ最後のノードとなります。次に処理されるノードが新たなグループ最初のノードになり、その次に処理されるノードが定義された XPath パターンにマッチしない場合、そのノードがグループに追加されます。

 

グループの作成

グループは、コンテキストメニューを介してノード、または現在のグループテンプレートにて作成することができます。グループを作成するには、ノードまたは現在のグループテンプレートを右クリックして、コンテキストメニューからグループ化コマンドを選択します。出力グループを作成ダイアログが表示されます(以下のスクリーンショットを参照)。

 

DlgGroupingOview

 

ダイアログでは、グループ化を有効のチェックボックスにチェックを入れ、必要となるグループ化の種類をラジオボタンから選択します。XPath 条件式を入力することにより、グループ化キーを定義(group-by ならびに group-adjacent の場合)することができるほか、マッチを行うためのパターンを入力(group-starting-with ならびに group-ending-with の場合)することができます。「OK」 をクリックすると、グループセットをアルファベット順(昇順)で並べ替えるか選択するよう促されます。グループセットの並べ替えは後から変更することができるほか、並べ替えを削除することもできます。以下のスクリーンショットでは、ノードと現在のグループテンプレートからなるグループ化の様子が示されます。

 

DesViewGrouping

 

上のスクリーンショットでは、person ノードがグループ化され、作成されるグループはアルファベット順に並べ替えられます。例えば person 要素が department によりグループ化された場合、アルファベットの昇順により department 要素の並べ替えを行うことができます。

 

グループの並べ替え

グループの定義を完成させると、アルファベットの昇順によりグループの並べ替えを行うか尋ねられます。グループの並べ替えはいつでも行うことができるほか、ここで作成した並べ替えの設定を削除することもできます。

 

並べ替えの設定、修正、または削除を行うには、目的のグループ化テンプレートを右クリックして並べ替えを選択します。この操作により 出力の並べ替えの順序を定義ダイアログ が表示されます。このダイアログの使用方法については、 並べ替え のセクションを参照ください。グループ化キーによりグループの並べ替えを行うには、並べ替えキーに current-grouping-key() XPath 関数を使用しなければなりません。詳細については、このセクション以下にあるサブセクションを参照ください。

 

グループ化と並べ替え設定の確認と編集

テンプレートにおけるグループ化ならびに並べ替え設定を確認、または編集するには、テンプレートを右クリックして、グループ化または並べ替えをそれぞれ選択します。該当するダイアログが表示されるため、設定の確認や修正を行うことができます。

 

ユーザー定義テンプレート

ユーザー定義テンプレート により、指定した XPath 条件式により選択されるアイテムに対してテンプレートを適用することができます。ユーザー定義関数の XPath 条件式により選択されたノードをグループ化することもできます。この場合、グループ化はユーザー定義テンプレートに対して適用されます。

 

 

 


(C) 2019 Altova GmbH