このサイトをビューするために JavaScript を有効化してください。

Altova StyleVision 2020 Enterprise Edition

チャート構成ダイアログ にあるチャートデータセレクターペインでは、シンプルオプションにより選択されたデータをテーブル形式で確認することができます。この例では、以下にある XML ドキュメントを説明のために使用します。

 

 

 

 

SPS デザインにて Data ノード内部にチャートを挿入します。チャートデータセレクターペインでは、以下のスクリーンショットにあるようなデータの選択を行います。チャートは Data ノード内部に挿入されるため、For-Each 条件式のコンテキストノードは Data ノードとなります。

 

ChartDataSelSimple01

 

以下のテーブルに示されるようにチャートデータは取得されます。各 Region[1]/Year 要素に対して行が作成され、各 Region[1]/Year 要素のコンテキスト内部で X-軸と Y-軸の XPath 条件式が評価されます。

 

For-Each XPath

X-軸

系列に使われる Y-軸

Americas

Europe

Asia

Region[1]/Year[1]

@id

text()

XPath-1

XPath-2

Region[1]/Year[2]

@id

text()

XPath-1

XPath-2

Region[1]/Year[3]

@id

text()

XPath-1

XPath-2

Region[1]/Year[4]

@id

text()

XPath-1

XPath-2

Region[1]/Year[5]

@id

text()

XPath-1

XPath-2

Region[1]/Year[6]

@id

text()

XPath-1

XPath-2

 

For-Each 条件式の Region[1]/Year により6個のノードが返され、テーブルの行となります。For-Each 条件式により返されたシーケンス内にあるアイテムの数により、X-軸における目盛りの数が決定されます。

X-軸に対する XPath 条件式により、各 Region[1]/Year 要素に対して @id 属性の値が返されます。これらの値が X-軸目盛りのラベルに使用されます。目盛りよりも多くのラベルが存在する場合、新たに目盛りが作成され、全てのラベルに対する目盛りがプロットされます。目盛りよりもラベルの数が少ない場合、ラベル無しの目盛りが表示されます。自動列挙オプションが選択されている場合、1 から始まる整数が X-軸にある個々の目盛りに割り振られます。

Americas 系列に対する XPath 条件式 (text()) により、各 Region[1]/Year 要素のコンテンツが返されます。同様の条件式は Europe と Asia の系列(下記参照)でも使用されており、必要な値が返されることになります。

Europe 系列に対する XPath 条件式は for $i in @id return //Region[2]/Year[@id] となります。この条件式は、(i) 現在の Region[1]/Year/@id 属性の値を読み取り、(ii) 現在の Region[1]/Year 要素にある @id の値と等しい @id の値を持っている Region[2]/Year 要素のコンテンツを返します。

Asia 系列の XPath 条件式も、Europe 系列の XPath 条件式と同様に使用されます。

 

このデータにより生成された棒グラフは以下のようになります:

 

ChartBar2DSeries

 

折れ線グラフを使用した場合、以下のようなグラフが表示されます:

 

ChartDataSelSimple01Chart

 

上記のデータ選択の結果は、サンプル SPS ファイルの YearlySales.sps 内に含まれています。SPS デザインは YearlySales.xsd XML スキーマをベースにしており、(このセクション上部にあるスクリーンショットで示された)YearlySales.xml を作業用 XML ファイルとして使用しています。これら3つのファイルは、全て (マイ) ドキュメントフォルダーC:\Documents and Settings\<username>\My Documents\Altova\StyleVision2020\StyleVisionExamples/Tutorial/Charts に収められています。

 

For-Each 条件式によりノード以外のアイテムが返された場合

X-軸の目盛りの数は For-Each XPath 条件式により得られたアイテムの数により主に決定されるため、以下のスクリーンショットに示されている XPath 条件式の distinct-values(//Year/@id) により6個のユニークな年の値が返され、X-軸に6個の目盛りが生成されます。しかしシーケンスにより返されたアイテムはノードではなく原子型の値であるため、コンテンツアイテムとして使用することはできるものの、XML ツリー内にあるノードを識別するためのコンテキストノードとして使用することはできません。それでもこの例で示されているように、それらの値にマッチするノードを識別するのには使用することはできます。

 

ChartDataSelSimple02

 

上のスクリーンショットで示されているデータ選択で、以下の点に注目してください:

 

X-軸ならびに Y-軸のデータ選択には For-Each 条件式により返された原子型の値が使用されます。原子型の値は直接使用され、For-Each 条件式によりフィルタリングが行われます。

XPath 条件式内のロケーションは、ドキュメントノード($XML//Region..$XML)から開始されます。原子型の値にはロケーションを表すコンテキストが含まれていないため、このような記述が必要になります。

 

チャートデータテーブルには以下のような内容が与えられます:

 

For-Each XPath

X-軸

系列に使われる Y-軸

Americas

Europe

Asia

2005

2005

XPath-1

XPath-2

XPath-3

2006

2006

XPath-1

XPath-2

XPath-3

2007

2007

XPath-1

XPath-2

XPath-3

2008

2008

XPath-1

XPath-2

XPath-3

2009

2009

XPath-1

XPath-2

XPath-3

2010

2010

XPath-1

XPath-2

XPath-3

 

 

 

(C) 2019 Altova GmbH