ユーザー定義 XPath 関数

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

ホーム >  SPS ファイル: 追加機能 >

ユーザー定義 XPath 関数

SPS ではカスタマイズされた XPath 2.0/3.0 関数を定義することができます。ユーザー定義された XPath 関数は、XPath 条件式を使用することができる任意のデザインコンポーネント(例えば自動計や条件、コンボボックスなど)にて再利用することができます。

 

ユーザー定義 XPath 関数の定義と編集

ユーザー定義 XPath 関数は、スキーマツリーサイドバーまたはデザインツリーサイドバーにて作成(そして編集)することができます(以下のスクリーンショットを参照)。SPS 内にある全てのユーザー定義 XPath 関数はスキーマツリーならびにデザインツリーサイドバーにある XPath 関数アイテム以下に表示され、両方のサイドバーからアクセスすることができます。

 

XPFxOviewDesTree

 

ユーザー定義 XPath 関数を作成するには、XPath 関数アイテムにある Plus アイコンをクリックします。XPath 関数ダイアログが表示されます(以下のスクリーンショットを参照)。既に作成された関数の編集を行うには、サイドバーの XPath 関数リストに表示されているエントリーをダブルクリックします。XPath 関数ダイアログが表示され、関数の定義を編集することができます(以下のスクリーンショットを参照)。

 

XPFxDlg01

 

ユーザー定義 XPath 関数が作成されると、その関数をデザインにおける任意の場所で使用することができるようになります。

 

ユーザー定義 XPath 関数の名前空間

ユーザー定義 XPath 関数は、http://www.altova.com/StyleVision/user-xpath-functions 名前空間にて作成されます。この名前空間には sps: というプレフィックスが与えられており、ユーザー定義 XPath 関数を呼び出すには、この名前空間プレフィックスを使用する必要があります(例: sps:MyFunction())。

 

ユーザー定義 XPath 関数の有効化と無効化

ユーザー定義 XPath 関数エントリーの左にあるチェックボックスにチェックを入れる / 外すことで、そのユーザー定義 XPath 関数を、それぞれ有効化 / 無効化することができます(以下のスクリーンショットを参照)。

 

UserDefXPFxEnabling

 

同じ名前の関数が2つ以上存在するような場合に、この機能を使用することができます。インポートされた SPS モジュール内部に同じ名前の関数が含まれているような時に、同名の関数が表示されることがあります。

 

ユーザー定義 XPath 関数を呼び出す

ユーザー定義 XPath 関数は、デザイン内にある XPath 条件式から呼び出すことができます。例えば、上記で定義された sps:MyFunction というユーザー定義 XPath 関数を、自動計算内部にある以下の様な XPath 条件式により呼び出すことができます:

 

 sps:MyFunction()/@name.

 

この XPath 条件式は、以下のように評価されます:

 

1.sps:MyFunction() が評価されます。関数が以下の様に定義されていると仮定しましょう: $XML/Trades/Stock[@name=$XML/Trades/Selection/Stock]。関数が評価されると、/Trades/Selection/Stock 要素のコンテンツにマッチした name 属性の値を持った /Trades/Stock 要素が返されます。
2.ステップ1の結果が関数呼び出し元の XPath 条件式へ戻されます。/Trades/Stock 要素にある name 属性の値が、自動計算の値として返されます。

 

 


 

関数の削除

関数を削除するには、スキーマツリーまたはデザインツリーサイドバーに表示されている XPath 関数を選択して、サイドバーのツールバーにあるアイテムの削除アイコンをクリックします。または、XPath 関数を右っクリックして、コンテキストメニューからアイテムの削除を選択することもできます。

 


(C) 2019 Altova GmbH