デフォルト設定ファイルは下記のパスに設置します。
デフォルト設定ファイルは拡張子 .xml で保存してください。
<?xml version="1.0" encoding="UTF-8"?> <configuration> <global> <appInformations> <name>default Settings File Sample</name> </appInformations> <guiCategory> <hoge>group1</hoge> </guiCategory> <appSettings> <KYE> <interface> <caption>INPUTBOX1</caption> <type>inputbox</type> </interface> <syntax> <type>number</type> <min>10</min> <round /> </syntax> <value>120</value> </KYE> </appSettings> </global> <japanese> ・ ・ ・ </japanese> </configuration>
<?xml version="1.0" encoding="UTF-8"?>
まず始めに XML 宣言をおきます。
ファイル保存時の文字コードは UTF-8 にしてください。BOM なし UTF-8 が無難です。
<configuration> <global></global> <japanese></japanese> </configuration>
ルートノードです。
包含可能要素
<global> <appInformations></appInformations> <guiCategory></guiCategory> <appSettings></appSettings> </global>
<japanese> <appInformations></appInformations> <guiCategory></guiCategory> <appSettings></appSettings> </japanese>
language 要素は Sleipnir の言語設定に一致した場合に使われる設定の定義を格納する要素です。
global 要素は Sleipnir の言語設定に一致する language 要素が存在しないときに使われる設定の低後を格納する要素です。
包含可能要素
<appInformations> <Name>Sample</Name> <Version>1.0.0</Version> <OfficialSite href="http://localhost/sahk/lab/8th713/">8th_713 Lab(sahk)</OfficialSite> </appInformations>
appInformations 要素は InformationItem 要素のルートノードです。
直下の要素を Information Item 要素として扱います。
InformationItem 要素はスクリプトの情報を格納するための要素です。
設定用 GUI でタイトル下に表示したい情報を定義します。
上の例では下記のように表示されます。
Name : Sample Version : 1.0.0 OfficialSite : 8th_713 Lab(sahk) // href 属性があるためリンクになります
追加可能属性
InformationItem 要素は自由な要素名、自由な値を持つことができますが子要素を持つことはできません。また空要素も使えません。
<appInformations> <Version>1.2.3</Version> // これは OK <Builder> <foo>hogehoge</foo> // 子要素を持っているため NG </Builder> <ScriptName /> // 空要素なので NG </appInformations>
<guiCategory> <hoge>group1</hoge> <piyo>group2</piyo> </guiCategory>
guiCategory 要素は categoryItem 要素のルートノードです。
直下の要素を categoryItem 要素として扱います。
categoryItem 要素は設定のカテゴリを定義する要素です。
要素名をカテゴリを識別するフラグ、値を GUI に表示するカテゴリ名として使います。
<appSettings> <KYE2></KYE1> <KYE2></KYE2> </appSettings>
appSettings 要素は settingItem 要素のルートノードです。
直下の要素を settingItem 要素として扱います。
settingItem 要素は各設定のルートノードです。
settingItem 要素は自由な要素名をつけることができます。
設定であることを明示的にするためすべて大文字を使うなどの規則性を持たせておくことが推奨されます。
包含可能要素
<interface> <category></category> <caption></caption> <type></type> <rows></rows> </interface>
GUI 上でのインタフェースを定義するための要素です。
包含可能要素
<category>hoge</category>
categoryItem 要素の要素名と同一の値を設定することで設定をそのカテゴリに含めることができます。
<caption>User Name</caption>
設定用 GUI で label タグの innerText に代入される説明文です。
<type>textarea</type>
GUI 上でのインタフェースを定義するための要素です。
指定可能値
省略すると inputbox として扱います。
<rows>5</rows> <cols>50</cols> <size>72</size>
GUI 上でのインタフェースのサイズを決めるための要素です。
rows, cols は type が textarea のときのみ有効です。
size は type が inputbox のときのみ有効です。
<ime>auto</ime> <ime>active</ime> <ime>inactive</ime> <ime>disabled</ime>
フォーカス時の IME のモードを操作するための要素です。 CSS の ime-mode プロパティと同じです。
<syntax> <type>number</type> <noEmpty /> <min>10</min> <max>20</max> <round /> </syntax>
ユーザーが設定 GUI から設定変更を行うとき不正な値が入らないよう制限を設けることができます。
syntax 要素はその制限を定義するための要素です。
<type>number</type>
get メソッドで値を取得した際の値の型を指定します。
また GUI 上から入力できる値を指定型として評価できるものに限定します。
省略した場合 string を指定したものとして扱います。
指定可能値
value の値が true や false であっても type が指定されていない場合 "true","false" という文字列になります。
数値も同様に type が指定されていない場合 "100","0.23" などの文字列になります。
<noEmpty />
無指定を禁止します。
<min>10</min> <max>20</max> <round />
min, max はそれぞれ数値の最小値、最大値を定義します。
round は小数の指定を制限します。
min, max, round は type が number のときのみ評価されます。
<value>120</value>
親である setting 要素の実際の値となるノードです。SettingsLibrary の get メソッドの戻り値になります。
例外として interface/type が bitcheck のとき value の値は戻り値として扱いません。
子要素を持つことができません。テキストのみを含むことができます。
value 要素が空要素であった場合 syntax/type によって戻ってくる結果が変わります。
value 要素は同じ階層に複数設置可能です。
追加可能属性
configuration // documentElement /global // 日本語環境以外で使われる。 /appInformations // appInformations Root /* // Information Item /guiCategory // guiCategory Root /* // category Item /appSettings // appSettings Root /* // setting Item /interface // interface Root /category // カテゴリー /caption // 見出し /type // GUIのタイプ /rows // textarea の rows 属性 /cols // textarea の cols 属性 /size // input の size 属性 /syntax // 書式ルール /type // 型制限 /noEmpty // 未指定の不許可 /max // number の最大値 /min // number の最小値 /round // number の小数不許可 /value // 既定値(必須) /japanese // 日本語環境で使われる。