Authentic にて編集可能な変数

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

ホーム >  SPS ファイル: 高度な機能 > パラメーターと変数 >

Authentic にて編集可能な変数

スコープ内にある変数を Authentic View にて編集することで、Authentic Viewにおける表示を変更させることができます。例えば、社内の各支店における従業員のデータを含んだ非常に巨大な XML ドキュメントを使用する場合を考えてみましょう。特定の支店を Authentic View にて選択することで、その支店データだけを Authentic View に表示することができるようになります。

 

動作方法

Authentic View にて編集可能な変数をセットアップするには、3つのステップを踏む必要があります:

 

1.変数を使用するテンプレート内部で目的の変数を作成します。このテンプレートにより編集のスコープが定義され、変数はスコープとなるテンプレート内部でのみ使用することができるようになります。
2.ユーザー定義されたテンプレートを変数の名前とともに作成します。ユーザー定義されたテンプレートの動的コンテンツには変数の値が含まれます。コンテンツプレースホルダや入力フィールドがユーザー定義テンプレートのコンテンツとしてデザイン内に挿入されると、Authentic View ユーザーは任意のコンテンツを変数の値として入力できるようになります。Authentic View が選択することのできるオプションは、コンボボックスのようなフォームコントロールを挿入することにより制限されます。
3.XPath 条件式にて変数を使用することで、Authentic View の表示を制御することができます。例えば、条件にて変数を使用することで、各分岐にある値により異なる内容を表示することができます。他にも、テンプレートマッチ条件式やテンプレートのフィルターにて変数を使用することができます。

 

メモ:        以下の点に注意してください:

 

グループ化や並び替えは Authentic View にてサポートされていないため、これらの機能を含む SPS を Authentic View で表示しても、編集可能な変数を使用することはできません。
編集可能な変数機能は Authentic View でのみ使用することができるため、 Authentic View のデザインは他の出力とは別に作成する必要があります。このようなデザインは 出力ベースの条件 機能により簡単に作成することができます。

 

サンプルファイル

(マイ) ドキュメントフォルダー以下の C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2019\StyleVisionExamples\Tutorial\Grouping\Scores\ にある AuthenticVariables.sps ファイルでは、Authentic View にて編集可能な変数の使用方法を確認することができます。XML ファイルにはトーナメント戦の試合結果が含まれています。トーナメントに参加したチームは、2つのグループに分けられています。編集可能な変数により、表示されるグループが Authentic View にて選択されるようになります。

 

以下のスクリーンショットでは、SPS デザイン全体が示されます。編集可能な変数が1つ作成され、そのための手順が以下のスクリーンショットでは示されます。スクリーンショット以下ではステップの詳細が示されます。

 

EditableVarsAuth

 

編集可能な変数をセットアップする際に重要となるステップを以下に示します:

 

(ルートテンプレートの)$XML テンプレートにて、SelectGroup という名前の編集可能な変数を xs:string にて定義します。テンプレート全体がこの変数のスコープとなります。
$XML では、Groups という名前で 編集不可能な変数 <auto> という型で定義されています。全ての results/group/@id 属性値から、一意の値を動的に取得するためにこの変数は使用されます。これら一意の値は、 コンボボックス のドロップダウンリストに表示され、Authentic View ユーザーが表示するグループを選択するのに使用されます。
ユーザー定義テンプレート $SelectGroup という名前(編集可能な変数の名前)で作成されます。ユーザー定義テンプレートの場所は、それが編集可能な変数のスコープ内である限り問題となりません。
ユーザー定義テンプレート内部にはコンボボックスが挿入されます。コンボボックスにある XPath 条件式の $Groups, 'All' によりドロップダウンリストのエントリー値が選択されます。この XPath 条件式により、$Groups 変数内に含まれているアイテムのシーケンスが返され、All というアイテムが、$Groups から返されたシーケンスに追加されます。コンボボックスの All エントリーアイテムは、全てのグループを表示するために使用されます。
ユーザー定義テンプレートは出力をベースにした条件テンプレート 内に収められており、条件となる出力には Authentic View がセットされています。これは編集可能な変数を Authentic View でのみ使用するためです。.
次のステップでは Authentic View ユーザーが選択する編集可能な変数の値を使用します。変数を使用することで、Authentic View ユーザーが選択したグループだけが表示されるようになります。表示は results/group テンプレートに対して フィルターの指定 により行われます。フィルターの XPath 条件式を以下に示します:

 

         if ($SelectGroup != 'All') then @id=$SelectGroup else @id

 

このフィルター条件式により、グループ要素の述語ステップがセットアップされます。$SelectGroup 変数に All 以外の値が含まれている場合、述語ステップは [@id=X] となります(X はコンボボックスにて Authentic View ユーザーが選択した $SelectGroup 変数の値)。このフィルターにより、ユーザーが選択した値を id 属性に含んでいるグループが選択されることになります。$SelectGroup 変数の値が All である場合、任意の id 属性を持ったグループ、つまり全てのグループが選択されます。

group テンプレートは 出力をベースにした条件 内に収められており、各分岐がそれぞれの出力に対応します。Authentic View の分岐でのみ、group テンプレートにフィルターが適用されます。

 

Authentic View の出力は以下のようになります:

 

EditableVarsAuthOutput

 

コンボボックス内のエントリーに注目してください。コンボボックスにて B グループが選択されると、Group B だけが表示されます。

 

 

 

 


(C) 2019 Altova GmbH