ソース XPath

www.altova.com このトピックを印刷 前のページ 1つ上のレベル 次のページ

ホーム >  ユーザーマニュアル > XML > チャート >

ソース XPath

ソース XPath は列の選択ダイアログにて指定することができます。ソース XPath により、ドキュメント内のどのノードが、X-軸、Y-軸のデータとして使用できるかが決定されます。列検索階層コンボボックスでは、X-軸、Y-軸のデータとして使用されるノードの検索の深さが指定されます。

ChartSelectColumnsDlg

ソース XPath または列検索階層を選択した後、「列の更新」 ボタンにより、(ダイアログ内で)X-軸と Y-軸に使用可能な選択肢を更新します。かっこが XPath 条件式に含まれている場合(例: /data/Region[1] では [1] というかっこ表現により最初の Region 要素が選択されます)、自動生成されたインデックスを含めるチェックボックスを有効にする必要があります。ソース XPath 条件式を修正した場合、「列の更新」 ボタンをクリックするようにしてください。

 

カーソル位置からのソース XPath

列の選択ダイアログが開かれたときに選択されるソース XPath について説明するために、以下に示されるドキュメントを使用します。このファイルは YearlySales.xml というファイル名で C:\Documents and Settings\<ユーザー名>\マイ ドキュメント\Altova\XMLSpy2019\Examples\Tutorial に収められています。

 

<?xml version="1.0" encoding="UTF-8"?>

<Data xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 

      xsi:noNamespaceSchemaLocation="YearlySales.xsd">

 <Region id="Americas">

         <Year id="2005">30000</Year>

         <Year id="2006">90000</Year>

         <Year id="2007">120000</Year>

         <Year id="2008">180000</Year>

         <Year id="2009">140000</Year>

         <Year id="2010">100000</Year>

 </Region>

 <Region id="Europe">

         <Year id="2005">50000</Year>

         <Year id="2006">60000</Year>

         <Year id="2007">80000</Year>

         <Year id="2008">100000</Year>

         <Year id="2009">95000</Year>

         <Year id="2010">80000</Year>

 </Region>

 <Region id="Asia">

         <Year id="2005">10000</Year>

         <Year id="2006">25000</Year>

         <Year id="2007">70000</Year>

         <Year id="2008">110000</Year>

         <Year id="2009">125000</Year>

         <Year id="2010">150000</Year>

 </Region>

</Data>

 

以下のケースが考えられます:

 

カーソルが Data 要素の開始タグ(属性やその値を含む)や終了タグ内にある場合、または Data 要素内部(但し、Data の子要素内部ではない)にカーソルがある場合:ソース XPath は /Data となります。
カーソルが Region 要素の開始タグ(属性やその値を含む)や終了タグ内にある場合、または Region 要素内部(但し、Region の子要素内部ではない)にカーソルがある場合:ソース XPath は /Data/Region となります。
カーソルが Year 要素の開始タグ(属性やその値を含む)や終了タブ内にある場合、または Year 要素内部にカーソルがある場合:ソース XPath は /Data/Region[N]/Year となります。かっこによるフィルター [N] により、選択された Year 要素を含んでいる Region 要素が指定され、X-軸、Y-軸のデータ選択は、この Region 要素内にある Year 要素に限定されます。
個別の Region 要素(例: /Data/Region[1])を選択したい場合、以下のスクリーンショットにあるように、最初の Region 要素をハイライトします。

ChartXMLSelection

同様に、 2 つの Region 要素をハイライトすることで、これら2つの Region 要素だけを選択する XPath 条件式が生成されます。

 

ソース XPath 条件式は、後からでも列の選択ダイアログにて編集することができます。

 

グリッドビューでは、ノードをクリックし範囲をマークすることで、選択を行うことができます。グリッドビューの選択から生成されるソース XPath は、上のテキストビューのものと同様のものになります。

 

XPath のインデックスを追加

インデックスを追加するチェックボックスにより、XPath 条件式内にあるかっこを使ったフィルタリングが行われるか、列の選択ダイアログ呼び出された際に、これらかっこフィルタリングを自動的に入力するか、または手動で入力するかが決定されます。例えば、カーソルが Region 要素の最初の子孫要素内にあり、インデックスを追加するチェックボックスが有効になっている場合、自動的に入力される XPath 条件式は、例えば /Data/Region[1]/Year となります。インデックスを追加するチェックボックスが有効になっていない場合、条件式は /Data/Region/Year のようになります。

 

インデックスを追加するチェックボックスでは、手動で入力されたかっこを保持するかどうかも決定されます。ソース XPath 条件式のかっこを使用したい場合、インデックスを追加するチェックボックスを有効にする必要があります。

 

ソース XPath 選択の意味

ソース XPath 選択に関して以下の点に注意してください。

 

ソース XPath により得られたシーケンスのアイテム数により、X-軸の要素の数が決定されます。ソース XPath を修正する以外に、X-軸の要素数を変更する方法は1つしかありません。要素の数よりも大きな系列の番号を選択するというものです。この方法の詳細に関しては X-軸選択を参照ください。
ソース XPath ノードは、X-軸、Y-軸のデータ選択で利用可能な全てのノード、ならびに XPath 条件式の祖先ノードとなります。
上の2つの結果、ソース XPath 条件式に対する変更は、X-軸の要素数だけではなく、チャートに関連した XPath 条件式のコンテキストにも影響を与えてしまうことに注意してください。

 

以下に、上の例で示された XML ドキュメントに対して適用できる XPath 条件式とその意味を記します:

 

/Data/Region3つの Region 要素を返し、X-軸には3つの要素が与えられます。各 Region 要素が XPath 条件式のコンテキストノードになります。
/Data/Region/Year :18の Year 要素を返し、X-軸の要素数は18になります。各 Year 要素が XPath 条件式のコンテキストノードになります。
/Data/Region[1]/Year最初の Region 要素の子要素である6つの Year 要素が返され、X-軸の要素数は6になります。最初の Region 要素の子要素である各 Year 要素が XPath 条件式のコンテキストノードとなります。
distinct-values(//Year/@id) 6つのアイテムが返されます(Year/@id 属性の distinct 値:2005、2006、2007、2008、2009、2010)。しかしこの XPath 条件式はノードアイテムを返さないため、XPath 条件式のコンテキストノードとなることはできません。(例えば current() 関数を使用するなどして)このシーケンス内のアイテムが XML ドキュメント内のターゲットノードに使用されるのであれば、この XPath 条件式をドキュメントのルートからスタートするように書きなおして、コンテキストノードを確立する必要があります(例: /Data/Region[1]/Year[@id eq .])。

 


(C) 2019 Altova GmbH