リファレンス ガイド - 接続ファイル

接続ファイル記述の構造

<?xml version="1.0" encoding="utf-8" standalone="no"?>
<connects>
	<connect>
		<label>...</label>
		<request>...</request>
		<tpl>...</tpl>
		<cookieId>...</cookieId>
		<variables>
			<variable>...</variable>
		</variables>
		<logFileName>...</logFileName>
	</connect>
</connects>

connects

接続ファイル記述ドキュメントのルートエレメントです。

以下のように、子の<connect>を持ちます。
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<connects>
	<connect>
		...
	</connect>
	
	<connect>
		...
	</connect>
	
	<connect>
		...
	</connect>
</connects>

connect

接続の設定を指定します。
接続は一つの<connect>ごとに独立していて、 指定された<tpl>(リクエストファイル)の全リクエストを終えると接続が完了し、 次の接続へと移ります。

パラメーター

enable [オプション]
この接続を有効/無効にする設定をおこなえます。
"false"や"true"以外の値を設定すると、接続ファイルを読み込んだ際に自動で無効状態となります。
省略した場合のデフォルト値は"true"です。

label

接続名です。

デフォルト値は"接続名"です。

例:
<label>接続A</label>

tpl

[非推奨]
この項目は廃止予定です。
この代わりに <request> を 使用してください。

request [必須]

リクエストファイルへのパスを指定します。

リクエストファイルへのパスは、
お使いのオペレーションシステムで設定されているファイルへのフルパスか、
接続ファイルからの相対パスを指定してください。

例えば、Windowsのマイドキュメントにある request.xml へのパスは次のようになります。
// フルパス
<request>C:\Documents and Settings\USER\My Documents\request.xml</request>

// 相対パス
// 接続ファイルと同じフォルダ内にある場合
<request>request.xml</request>

// 接続ファイルと同じフォルダにある"folder"というフォルダの中にある場合
<request>folder/request.xml</request>

// 接続ファイルを格納しているディレクトリと同じ階層にある場合
<request>../request.xml</request>


または、次のように直接リクエストを設定することも出来ます。
// リクエスト直接設定
<connect>
  <label>接続</label>
  <request>
    <label>リクエスト</label>
    <url>http://example.tld/</url>
  </request>
</connect>

更に、次のように複数のリクエスト設定を読み込む事もできます。
// リクエストの複数読み込み
<connect>
  <label>接続</label>
  <request>request.xml</request>
  <request>request.xml</request> // 同じファイルでもOK
  <request>request2.xml</request>
  
  // リクエストファイルと直接設定を混合させることも出来ます。
  <request>
    <label>リクエスト1</label>
    <url>http://example.tld/</url>
  </request>
</connect>
複数のリクエストを設定した場合、
リクエストが実行される順番は設定された順番となります。

cookieId

Cookieを保存,使用する為のID(識別子)名を設定します。

設定できる値は40字以内の"connect-id-"以外から始まる文字列です。

この項目を設定をした場合、
Cookieのデータはその有効期限が過ぎるまでローカルストレージに保存され、
リクエストを送信する際に自動で使用されます。
また、複数の<connect>で、接続ファイルを跨いで、
同じcookieIdのCookieデータを使用する事が出来ます。

この項目が省略された接続のCookieは、
"connect-id-"の後にランダムな値が続くIDが自動で割り振られます。
このIDは接続ファイルに対して固有のIDとなっており、
接続ファイル内の,この項目が省略されたすべての<connect>に適用されます。
それにより、
Cookieデータは、接続ファイルに対して1つのCookieデータを持つことになります。
このCookieデータは独立しており、他の接続ファイルからアクセスする事は出来ません。
また、データの永続性は無く、アプリケーションの終了と共にこのデータは破棄されます。

次の例では、複数の接続ファイルで同じCookieを使用しています。
// 接続ファイル 1 (最初に接続)
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<connects>
    <connect>
        <label>ログイン1</label>
        <tpl>loggedin.tpl.xml</tpl>
        <cookieId>account-A</cookieId> // CookieID指定
    </connect>
    
    <connect>
        <label>ログイン2</label>
        <tpl>loggedin.tpl.xml</tpl>
    </connect>
<connects>

// 接続ファイル 2
<?xml version="1.0" encoding="utf-8" standalone="no"?>
<connects>
    <connect>
        <label>マイページ1</label>
        <tpl>mypage.tpl.xml</tpl>
        <cookieId>account-A</cookieId> // ログイン1のCookieデータを使用
    </connect>
    
    <connect>
        <label>マイページ2</label>
        <tpl>mypage.tpl.xml</tpl>
    </connect>
<connects>

// マイページ1 はログイン1の結果を引き継いでいます
// マイページ2 は非ログイン状態でアクセスします

variables

リクエストファイル内で使用できる変数を追加します。

より詳しい設定方法は<variable>をご覧ください。

例:
<variables>
	<variable>...</variable>
	<variable>...</variable>
	<variable>...</variable>
</variables>

variable

リクエストファイル内で使用できる変数を指定します。

設定された変数は {%NAME%} として使用できます。

変数の有効範囲はその変数が設定された <connect> 内となり、
他の <connect> からはアクセスできません。
変数の寿命は、接続ファイルを閉じるか再度読み込むまで続きます。

また、初期変数で以下の変数を使用できます。
{%__COOKIE_ID__%} 現在接続中の <cookieId> を取得できます。
※これら変数名は設定しないようにしてください。
※"__"から始まる変数名は、ログに出力されません。

パラメーター

name [必須]
設定する変数名です。
同一名の変数が指定された場合、変数は常に上書きされます。
例:
<variable name="mail">hoge@example.tld</variable>

{%mail%} 	// "hoge@example.tld" が代入されます。

実際に使用するとこのようになります。
// 接続ファイル
<connect>
  <tpl>request.tpl.xml</tpl>
  <variables>
	<variable name="URL">http://domain.tld/</variable>
	<variable name="ID">usrname123</variable>
	<variable name="PW">password123</variable>
	<variable name="Interval">2-10</variable>
  </variables>
</connect>


// リクエストファイル request.tpl.xml
<request>
  <url>{%URL%}</url>
  <params>
	<variable name="user">{%ID%}</variable>
	<variable name="password">{%PW%}</variable>
  </params>
  <intervals>{%Interval%}</intervals>
</request>

logFileName

[廃止予定]
この項目は廃止予定です。
この代わりに <log> を 使用してください。

出力されるログファイルの名前を指定します。

ログ内容は、上書きではなく末尾に追加されていきます。
毎回新しく作成したい場合は、毎回削除してご利用ください。

エラーが発生した場合、エラーログは必ず自動で出力されます。
ログが出力されるエラーは、リクエスト時の内部エラーや、
I/O Error や Security Error が発生したエラーなどです。
HttpStatusのエラー(例えば404エラー)はエラーログとして出力されないので注意してください。

ログファイル名は日付の後に指定された名前で作成されます。
指定が無い場合、日付のみの名前のファイルが作成されます。
エラーの際に出力されるエラーファイルも同様ですが、
日付の後に"Error"の文字列が付与されます。

※ログファイルはユーザーディレクトリに保管されます。

例:
<logFileName>接続A</logFileName>

// 結果は、 "2013-01-01___接続A.log" というファイル名で作成されます。