サンプル: group-by(Scores.sps)

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

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

サンプル: group-by(Scores.sps)

Scores.sps サンプルは Scores.xsd スキーマをベースに作成されており、Scores.xml を作業用 XML ファイルとして使用します。ファイルは (マイ) ドキュメントフォルダー 以下にある C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2019\StyleVisionExamples\Tutorial\Grouping\Scores\に格納されています。ドキュメント要素の results 要素には、任意の数の group 要素と match 要素を含めることができます。各 group 要素には任意の数の team 要素が含まれており、match 要素は以下に示されるような構造を持ちます:

 

<match group="A" date="2007-10-12">

 <team name="Brazil" for="2" points="3"/>

 <team name="Germany" for="1" points="0"/>

</match>

 

デザインは3つのパーツから構成されます(以下のスクリーンショットを参照)。(i) //match/@date によりグループ化された日付ごとの試合結果、(ii) //match/@group によりグループ化されたリーググループごとの試合結果、そして (iii) group 要素から値が動的に生成され、自動計算により必要なデータが自動的に計算されるテーブルにより、リーググループの要約が表示されます。

 

GroupingEx2a

 

グループの作成手順

試合結果が表示される2つのセクションでは、日付とトーナメントグループにより試合の結果をグループ化します。データの配置を行うため、日付とトーナメントグループにより作成される各グループのメンバーに対して、境界線が表示されないテーブルを作成します。試合の結果は日付とトーナメントグループごとに異なるテーブルで表示するようにします。Group Tables のセクションでは、group 要素が動的なテーブルとして作成され、自動計算により必要とされるデータの値が計算されます。

 

SPS の作成

以下の操作によりデザインを作成します:

 

1.スキーマツリーから /results/match 要素をドラッグし、コンテンツとして作成します。
2.match 要素のタグを右クリックして、コンテキストメニューからグループ化を選択します。
3.出力グループを定義ダイアログにて、group-by を選択し、マッチテキストボックスにて @date という XPath 条件式を入力し、「OK」 をクリックします。
4.グループの並べ替えを行うかを尋ねるダイアログが表示されます。この例ではデフォルトのアルファベット順による並べ替えを行うので、はいをクリックします(並べ替え条件はいつでも追加または削除することができます)。
5.各グループ(この例では date)を独立したテーブル内に作成するため、カレントグループをテーブルとして作成します。以下のスクリーンショットに示されるように、current-group() タグを右クリックして、「変更 | テーブル」を選択し、子孫ノードの team/@nameteam/@for をテーブルのカラムとして選択します。

 

GroupingEx2b

 

6.それがカレントグループにおける最後の試合でない場合に出力される、ハイフン (-) を各セルに挿入します。条件テンプレートを作成し、条件には position() != last() を使用します。これにより Brazil - Germany2 - 1 といった出力が行われます。
7.ヘッダーに自動計算を追加して、カレントグループのキーを表示するようにします(XPath 条件式には current-grouping-key() を使用します)。
8.必要に応じてテーブルのフォーマットを行います。
9.トーナメントグループにより試合結果のグループ化を行うには、上記の操作を matchgroup 属性に対して行います。
10.各チームの順位が表示されるデザインの最後にあるグループテーブルでは、/results/group 要素を動的テーブルとして作成します。「テーブル | カラムの追加」や「テーブル | カラムの挿入」コマンドを使うことで、必要に応じてカラムを追加することができます。出力に必要な計算を行う自動計算を各カラムに作成します(白星により 3 ポイント、引き分けで 1 ポイント、黒星で 0 ポイント)。得られた合計得点数により降順でテーブルの並べ替えを行います。これらの結果を得るために使用された XPath 条件式を確認するには、自動計算または並べ替えられたテンプレートを右クリックして、それぞれ XPath の編集または並べ替えコマンドを選択します。

 

 

 


(C) 2019 Altova GmbH