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

基本データ要素 : property、value、constraints

<!ELEMENT property (constraints?, value*, visual)>
<!ATTLIST property
    apt:name ID #REQUIRED
    apt:scope (user | host | global) #IMPLIED
    apt:label NMTOKEN #IMPLIED
    apt:inlineHelp NMTOKEN #IMPLIED
    apt:dataPath CDATA #REQUIRED
    oor:type (xs:boolean | xs:short | xs:int | xs:long | xs:double | 
              xs:string | xs:hexBinary |
              oor:any | oor:boolean-list | oor:short-list | oor:int-list | 
              oor:long-list | oor:double-list | oor:string-list | oor:hexBinary-list)
              #IMPLIED
    apt:storeDefault (true | false) #IMPLIED
    apt:xmlHandler IDREF #IMPLIED
    apt:extendsProperty CDATA #IMPLIED
>
<!ELEMENT visual (checkBox | chooser)?>
<!ATTLIST visual
 apt:type (textField | password | textArea | radioButtons | comboBox | stringList | 
           colorSelector | hidden) #IMPLIED
>

<!ELEMENT checkBox EMPTY>
<!ATTLIST checkBox
 apt:labelPost NMTOKEN #IMPLIED
>

<!ELEMENT chooser EMPTY>
<!ATTLIST chooser
 apt:labelPopup NMTOKEN #IMPLIED
 apt:listDataPath CDATA #IMPLIED
 apt:extendsChooser CDATA #IMPLIED
>
<!ELEMENT constraints (enumeration*, length?, minLength?, maxLength?, minInclusive?, 
                       maxInclusive?, minExclusive?, maxExclusive?)>
<!ELEMENT enumeration EMPTY>
<!ATTLIST enumeration 
    oor:value CDATA #REQUIRED
    apt:label NMTOKEN #IMPLIED
>
<!ELEMENT value (#PCDATA)>
<!ATTLIST value
    xsi:nil (true | false) #IMPLIED
    oor:separator CDATA #IMPLIED
>

property 要素は、チェックボックス、ラジオボタン、編集フィールドなどの GUI 要素を通して設定オプションを視覚化します。これには、category 要素で認識される 4 つの属性 namescope labelinlineHelp が含まれています。インラインヘルプは、「値」列の入力フィールドの下に (または値文字列の下に編集不可の形で) 表示されます。label 属性の値は GUI 要素のラベルとして表示されます。カテゴリ名、ページ名、セクション名、プロパティ名は、設定ポリシーツリーでページの一意な場所と名前を定義します。

属性 apt:dataPath は、プロパティの値を保存するデータのバックエンドの場所を指すパスを定義します。dataPath 属性の値は、コンポーネントの絶対パス (たとえば org.openoffice.Office.Common/ExternalMailer/Program) です。付録 A 「設定パスのマッピング」を参照してください。property 要素の dataPath 属性は、データのバックエンドプロパティを指す必要があります。データのバックエンドノードを指すと、実行時エラーが発生します。

apt:type は、リポジトリの設定データの種類を指定するために使用します。次のタイプが定義されます。

xs:boolean 

ブール値 (true/false) 

xs:short 

16 ビットの整数 

xs:int 

32 ビットの整数 

xs:long 

64 ビットの整数 

xs:double 

浮動小数点数 (IEEE 64 ビット double の値範囲) 

xs:string 

プレーンテキスト (印刷可能な Unicode 文字のシーケンス) 

xs:hexBinary 

未解釈オクテットのシーケンス、16 進数エンコード 

oor:any 

上記すべてのタイプを含む 

oor:*-list 

上記いずれかのタイプのリスト 

以上のタイプは StarSuite/OpenOffice.org Registry (OOR) 形式で定義されているタイプに似ています。再利用できるように、APOC テンプレートでは可能な限り OOR 形式の構文を使用しています。タイプの詳細は、 http://util.openoffice.org/common/configuration/oor-document-format.html で OpenOffice.org Registry Format (OOR) に関する文書を参照してください。

属性 apt:storeDefault は、デフォルトデータをデータのバックエンドに保存するようConfiguration Manager に指示します。デフォルトデータは value 要素によって定義され (以下を参照)、ユーザーにデフォルトを表示するために使用します。ユーザーが値を変更しない場合や、 「コンテンツ区画」で「デフォルトの適用」アクションを実行してデフォルトデータの保存を明示的に要求した場合は、デフォルトデータがリポジトリに保存されません。storeDefault 属性の値を true に設定すると、ユーザーが値を変更しない場合や「デフォルトの適用」を実行した場合でも、デフォルトデータが保存されます。

property 要素には 3 つのサブ要素 constraints valuevisual があります。

visual 要素は、GUI のプロパティの表示タイプを定義します。表示タイプには、checkBoxradioButtonscomboBoxstringListtextField、password、textAreachoosercolorSelectorhidden があります。GUI の各要素には、編集と編集不可の 2 種類の表示形態があります。編集不可の表示形態は、Configuration Manager を使用している管理者がそのプロパティに書き込み権限を持たない場合に描画されます。表示タイプの形態については、次の表を参照してください。

表示タイプ 

編集可能の表示形態 

編集不可の表示形態 

textField

textField の編集可能 textField の編集不可

password

password の編集可能 password の編集不可

textArea

textArea の編集可能 textAreaの編集不可

checkBox

編集可能な checkBox 編集不可の checkBox

radioButtons

radioButtons の編集可能 radioButtons の編集不可

comboBox

comboBox の編集可能 comboBox の編集不可

chooser

chooser の編集可能 chooser の編集不可

stringList

stringList の編集可能 stringList の編集不可

colorSelector

colorSelector の編集可能 colorSelector の編集不可

hidden プロパティは、視覚的な GUI 要素を描画しませんが、プロパティに関連付けられた値をブラウザの非表示フィールドに渡します。この機能は、たとえばフロントエンドで入力された 1 つの値をバックエンドの複数の場所で保存しなければならない場合に便利です。

表示タイプは apt:visual 要素のtype 属性によって定義されます。ただし、checkBoxchooser は例外です。これら 2 つの GUI 要素を正しく表示するには追加情報が必要なので、これらの要素にはその情報を含める独自のサブ要素があります。

checkbox プロパティはチェックボックスの前後に文字列を表示します。これは checkBox 要素で表します。checkBox GUI 要素を編集不可の形態 (上の表を参照) で表示するには、さらに 2 つ文字列が必要になります。したがって、checkBox GUI 要素には 4 つ文字列が必要で、次のように表示されます。

  1. チェックボックスの前。 この文字列 はproperty 要素の label 属性で定義される

  2. チェックボックスの後。 この文字列は checkBox サブ要素の apt:labelPost 属性で定義される。この属性を定義しなければ、label 属性で定義された文字列に「.post」が付加される。この文字列はリソースファイルでキーとして検索される

  3. チェック付きのチェックボックスではなく、チェックボックスが編集不可の表示形態の場合。文字列は constraints 要素の最初の enumeration サブ要素の label 属性で定義される。制約を指定しなければ、 property 要素 label 属性で定義された文字列に接尾辞「.checked」が付加される。この文字列はリソースファイルでキーとして検索される

  4. チェックなしのチェックボックスではなく、チェックボックスが編集不可の表示形態の場合。文字列は constraints 要素の最初の enumeration サブ要素の label 属性で定義される。制約を指定しない場合は、 property 要素 label 属性で定義された文字列に接尾辞「.unchecked」が付加される。この文字列はリソースファイルでキーとして検索される

chooser プロパティを使用すると、エントリのリストの値が確定されます。これは chooser 要素で表します。コンボボックスと違って、エントリのリストは編集可能です。このリストは apt:chooser 要素のdataPath 属性で指定したバックエンドの場所に保存されます。

「編集」ボタンをクリックすると、ポップアップウィンドウが開き、リストを編集するための GUI が提供されます。ポップアップウィンドウの内容のタイトルは、apt: chooser 要素の labelPopup 属性で定義します。constraints 要素の enumeration サブ要素を使用すると、リストのデフォルト値を指定できます (下の制約に関する説明を参照)。

chooser 要素の apt:extendsChooser プロパティは、別の chooser 要素を参照するために使用します。このプロパティを使用すると、以前に定義した chooser 要素を簡単に再利用できます。その参照先 chooser で定義されている要素と属性のすべてが、参照元 chooser で定義されているかのように解釈されます。参照元 chooser で定義されているサブ要素と属性が、参照先 chooser の要素や属性を上書きします。プロパティのパスは、参照先 chooser の検索に使用されます。プロパティのパスは、ルートカテゴリからプロパティまでのパスの全要素の apt:name の値をスラッシュ ("/") で区切って連ねたものです。たとえば、次のように入力します。/StarSuite/Internet/Proxy/Settings/MyChooser

表示タイプが指定されていない場合は、type 属性から GUI 要素が引き出されます。タイプが xs:booleanの場合は、チェックボックスが使用されます。タイプがリストの種類 (たとえば oor:short-list) 、 xs:hexBinary、または oor:any の場合は、テキスト領域が表示されます。その他のタイプの場合は、編集フィールドが使用されます。表示タイプもデータ型も指定されていない場合は、編集フィールドが表示され、バックエンドのデータ型が xs:string であると想定されます。

constraints 要素は入力フィールドに制約を加えます。たとえば、ユーザーが保存できる値を 1 から 5 までの整数に限定する場合は、oor:type 属性を「xs:int」と一緒に提供するだけでは不十分です。minInclusive 制約 1 と maxInclusive 制約 5 を指定して、必要な制約を与えます。

checkbox プロパティと一緒に使用する場合は、列挙制約にもう 1 つの用途があります。最初の enumeration constraints サブ要素は、チェックボックスがオンになっている場合にバックエンドに保存する値を定義し、2 番目の enumeration constraints サブ要素は、チェックボックスがオフになっている場合にバックエンドに保存する値を定義します。制約を指定しなければ、保存されるデフォルト値は true と false です。編集不可の表示形態で GUI に表示されるデフォルトの文字列は、「使用する」と「使用しない」です。

列挙制約は、radiobutton プロパティと combobox プロパティの場合は必須である以外は、意味が checkbox プロパティと同じです。 これらの要素の内容は開発者が自由に決めることができます。GUI に表示される名前は、constraint 要素の label 属性で定義します。列挙制約では label 属性の省略が可能です。その場合は、property 要素の label 属性で定義した文字列に接尾辞を付加して追加のリソースを指定します。

たとえば、プロパティのラベルが 「securityList」で、列挙制約に「1」、「2」、「3」の値が含まれていても列挙制約のラベルが定義されていないドリップダウンボックスがあるとします。ユーザーに表示される文字列は、リソースキーの「securityList.1」、「securityList.2」、「securityList.3」のそれぞれを検索して決定されます。

chooser プロパティのリストエントリはローカライズされません。その結果、列挙制約の apt:label 属性はこれらのプロパティには影響しません。

その他の制約については、OpenOffice.org Registry Format (OOR) の文書の Property Constraints を参照してください。

value 要素には、プロパティのデフォルト値が含まれています。このデフォルト値は、デフォルト階層に含まれている値と同じにするか、ここで新たに指定することができます。これは、データのバックエンドにデータが見つからない場合に、Configuration Manager が表示する値を定義します。

value 要素の定義は、OOR 形式で与えられる定義と似ています。 value 要素にはサブ要素がなく、nilseparatorlang という 3 つの属性があります。xsi:nil 属性を true に設定すると、プロパティの値が「値なし」として定義されます。oor:separator 属性は、value 要素にリスト型の値が含まれている場合に、リストトークンの区切り文字として使う文字列を指定するために使用します。


ヒント –

stringList プロパティのリストエントリは、oor:string-list 型の値として保存されます。デフォルトの区切り文字はセミコロン (;) です。


apt:xmlHandler 属性については、「対話要素 : xmlHandler、event、action、choose、command」を参照してください。