Java Desktop System Configuration Manager Release 1.1 開発者ガイド

動的データ要素 : set

<!ELEMENT set (page)>
<!ATTLIST set
    apt:name ID #REQUIRED
    apt:scope (user | host | global) #IMPLIED
    apt:label NMTOKEN #IMPLIED
    apt:labelPopup NMTOKEN #IMPLIED
    apt:dataPath CDATA #REQUIRED
    apt:elementNamePath CDATA #IMPLIED
> 

これまでに紹介した要素はすべて、バックエンドの静的コンテンツを処理しました。set 要素は、動的コンテンツを処理するために使用します。これは section 要素のようにページのサブ要素で、プロパティのセットをテーブルに表示します。

これには、 category 要素で認識される 3 つの属性 namescopelabel が含まれています。label 属性の値はテーブルのタイトルとして表示されます。

apt:dataPath 属性は、要素のセットを含んだ データのバックエンドノードを指すパスを定義します。dataPath 属性の値は、 org.openoffice.Office.Commands/Execute/Disabled 形式の絶対パスです (付録 A 「設定パスのマッピング」を参照)。 set 要素の dataPath 属性は、バックエンドのノードを指す必要があります。バックエンドのプロパティを指すと、エラーが発生します。

セットの子孫の dataPath 属性には動的な部分が含まれている必要があります。 この動的な部分は、セットのメンバーであるバックエンドのノードの場所を指定します。バックエンドのセットのメンバーにアクセスするためには、名前が異なる必要があります。これを実現するには、変数が使用されます。

変数にはドル記号の接頭辞 $variable_name が付きます。有効な変数名は queriedIdsilentId です。$queriedId 変数を指定した場合は、ユーザーに一意の ID を問い合わせる追加の編集フィールドが表示されます。 $silentId 変数を指定した場合は、ユーザーに ID を問い合わせずに、Configuration Manager で自動的に一意な ID が生成されます。

たとえば、property 要素の dataPath 属性の値が org.openoffice.Office.Commands/Execute/Disabled/$queriedId/Command であるとします。ユーザーが新しいセット要素を作成した場合は、セットメンバーの名前も要求されます。GUI に表示される実際の質問の文字列は apt:labelPopup 属性で指定します。この属性を省略した場合は、「新しい項目の名前を入力してください」 というプロンプトが表示されます。

パスの文字列の長さを最小限にするには、セットまたはプロパティの dataPath 属性の値として相対パスを指定することも可能です。相対パスの例は ./$queriedId/Command です。絶対パスは、テンプレート要素ツリーを上に移動し、相対パスにその祖先の dataPaths の接頭辞を付けて構成します。たとえば、プロパティの親がセットであるとします。このセットは dataPath の値 org.openoffice.Office.Commands/Execute/Disabled を指定します。Configuration Manager は、このパスに相対パス ./$queriedId/Command を結合して絶対パス org.openoffice.Office.Commands/Execute/Disabled/$queriedId/Command を生成します。

dataPath 属性 (set 要素と property 要素) をサポートしているセットのすべての子孫がその dataPath 属性の値として絶対パスを指定している場合は、セットの dataPath 属性を指定する必要はありません。

再帰的なセットの構造 (セットのセット) も処理できます。これは、セット要素に page 要素を含め、それにまた set 要素を含めることで実現します。サブセットの dataPath 属性では、スーパーセットに相対するパスを指定できます。

セットのメンバーがバックエンドプロパティの場合、バックエンドプロパティの oor: name 属性は、GUI でラベルとして表示されます。バックエンドプロパティの値は GUI 要素のラベルとして表示されます。

セットのメンバーがバックエンドのノードの場合は、バックエンドノードの oor:name 属性は、リンクの名前として表示されます。apt:elementNamePath 属性を使用すると、この命名スキームを上書きできます。elementNamePath は、バックエンドのノードに相対するパスを指定します。 このパスは、バックエンドのプロパティを指している必要があり、その値はリンクの名前として表示されます。このようなリンクをユーザーがクリックすると、「コンテンツ区画 」が更新されて、セットの page サブ要素で指定されたページが表示されます。