自動計算によりノードを更新する

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

ホーム >  SPS ファイル: 高度な機能 > 自動計算 >

自動計算によりノードを更新する

メイン XML ドキュメント(Authentic Viewにて編集されるドキュメント)内にあるノードへの自動計算の値(または結果)は、以下の方法によりコピーすることができます。

 

1.自動計算の編集と移動に記されている方法により、自動計算を作成します。
2.自動計算を選択し、プロパティサイドバーの Authentic グループにある Authentic の XML ノードを更新にて編集ボタンをクリックします(以下のスクリーンショットを参照)。

 

WinPropsAutoCalcUpdateNode

 

3.XPath セレクターダイアログが表示されるので、更新するノードを選択して、「OK」 をクリックします(以下のスクリーンショットを参照)。XPath 条件式に(ドキュメントルートから始まる)絶対値を使用する場合、絶対 XPath のチェックボックスにチェックを入れてください。

 

DlgSchemaSelector

 

他にも、ユーザー定義 XPath ラジオボタンを選択することで、任意の XPath 条件式により更新するノードを選択することができます。

 

XPath 条件式により選択されるノードは1つでなければなりません。複数のノードが XPath 条件式により選択される場合、ノードの更新は行われません。

 

重要な情報!

メインスキーマソースの XML ファイル内にあるノードだけが更新されます。その他スキーマの XML ファイル内にあるノードが更新されることはありません。 メイン XML ドキュメント内部にあるノードを更新するには、以下の2つの条件を満たす必要があります:

 

1.自動計算の XPath 条件式内に、XML ノードに関連した値(つまり Price * 1.2 といった動的な値)を少なくとも1つ含める必要があります。この条件式には Price 要素が含まれており、動的となります。XPath 条件式に静的な値(例えば string("Nanonull, Inc."))が含まれている場合、XML ノードの更新機能は動作しません。
2.XPath 条件式にて使用される全てのノードは Authentic View にて修正されなければなりません。従って、XPath 条件式が Price*1.2 となっており、自動計算により VATPrice ノードが更新される場合、VATPrice ノードを更新するには Price 要素の更新をAuthentic View にて行う必要があります。

 

更新の設定とその解除を行う

更新するノードを変更するには、自動計算の Authentic グループにある Authentic の XML ノードを更新の編集ボタンをクリックして、表示される XPath セレクターダイアログにて目的のノードを選択します。プロパティの値を削除するには、プロパティウィンドウのツールバーにある削除ボタンをクリックしてください。

 

自動計算を使った表示と更新されたノードコンテンツによる表示?

条件テンプレートが使用されていない場合、自動計算と更新されたノードのコンテンツの、両方の方法で表示を行うことができます。ノードの更新は自動計算の評価が行われた直後になされるため、他の要素が含まれること無く更新が行われる場合、どちらの方法でも同じ結果を得ることができます。しかし、コンテンツの表示を行うにあたり、複数の方法が存在することに留意するようにしてください。

 

自動計算を隠す

自動計算を使用した計算を行い、自動計算内に含まれる値によりノードの更新を行う必要がある場合もあります。この場合、以下のようなシナリオが考えられます:

 

結果の表示を1度だけ行う: 自動計算の評価を行うため、それを隠すことができないような状況です。条件テンプレートが加えられない場合では、自動計算を表示して、更新されたノードのコンテンツを表示しないという方法が有効になります。
結果の表示を行うこと無く、ノードの更新だけに使用する: このような状況では、自動計算にテキストフォーマットを適用することで、出力メディアでその値が表示されないようにすることができます(例えば、背景色が白色の場所にてテキストの色を白色に指定するなど)。

 

 

 


(C) 2019 Altova GmbH