contentsRule.xml設定

概要

このファイルで元コンテンツの取得方法および変換方法を指定します。
contentsRule.xmlで値を指定すると、contentsRuleDefault.xmlで指定された値を上書きして適用されます。
コンテンツルールの記述方法はコンテンツルールコンテンツルールのモードをご覧ください。

コンテンツルールを使う機能として下記の機能などがありますので、そちらもご参照ください。

場所

x-Servletインストールディレクトリ

conf

└ contentsRule.xml

xproxy.propertiesのrule.positionでcontentsRule.xmlの場所を指定できます。デフォルトは "conf/contentsRule.xml" となっています。

形式

<ContentsRuleList>
    <!-- 1つ目のルール -->
    <ContentsRule>
        <ConditionHost></ConditionHost>
        <ConditionPort></ConditionPort>
        <ConditionDir></ConditionDir>
        <ConditionUAGroup></ConditionUAGroup>
        <Scheme></Scheme>
        <Host></Host>
        <Port></Port>
        <PreDir></PreDir>
        <UseUAHeader></UseUAHeader>
        <DefaultEncoding></DefaultEncoding>

        <!-- 任意個の<Attribute>タグを以下で定義可能 -->
        <Attribute name="fakeHost"></Attribute>
        <Attribute name="fakePort"></Attribute>
        <Attribute name="属性名">属性値</Attribute>
    </ContentsRule>
 
    <!-- 2つ目のルール(必要なら記述する) -->
    <ContentsRule>
        <!-- 省略 -->
    </ContentsRule>

    <!-- リダイレクトモードの場合-->
    <RedirectRule>
        <ConditionHost></ConditionHost>
        <Host></Host>
        <Port></Port>
        <PreDir></PreDir>
        <File></File>
        <DefaultEncoding></DefaultEncoding>
    </RedirectRule>

    <!-- 以降<ContentsRule>もしくは<RedirectRule>の繰り返し-->

</ContentsRuleList>

説明

※用語について
"Default"とは、x-Servletをインストールした時点でcontentsRule.xml又はcontentsRuleDefault.xmlで有効となっている値です。
"省略時"とは、contentsRule.xml、contentsRuleDefault.xmlに記述がない又は、コメント化されている状態で使用される値です。

要素

  • ContentsRuleList
    ルート要素です。
  • ContentsRule
    コンテンツルールに関する要素をネストします。
  • RedirectRule
    リダイレクトルールに関する要素をネストします。
  • ConditionHost
    ルール選択の時の条件として用いられます。有効なホストを指定します。大文字小文字は区別されません。
    例) <ConditionHost>x-servlet.co.jp</ConditionHost>
  • ConditionPort
    ルール選択の時の条件として用いられます。ポート番号を指定します。
    例) <ConditionPort>80</ConditionPort>
  • ConditionDir
    ルール選択の時の条件として用いられます。"/"で始まり"/"以外の文字で終わる文字列を指定します。大文字小文字は区別されます。
    例) <ConditionDir>/dir1/dir2/dir3</ConditionDir>
  • ConditionFile
    ルール選択の時の条件として用いられます。ファイル名を指定します。大文字小文字は区別されます。詳細はコンテンツルール内を参照ください。
    例) <ConditionFile>login.html</ConditionFile>
  • ConditionUAGroup
    ルール選択のときの条件として用いられます。端末グループ定義で定義した端末グループの名前を指定します。詳細はコンテンツルール内を参照ください。
    大文字小文字の区別は端末グループ定義の "caseSensitive"属性の指定に従います。
    例) <ConditionUAGroup>CHTML,!PC</ConditionUAGroup>
  • Scheme
    このルールが適用された場合のコンテンツ取得時のSchemeを指定します。"http"と"https"が指定可能です。省略された場合は"http"と解釈します。
    例) <Scheme>https</Scheme>
  • Host
    このルールが適用された場合のコンテンツ取得先ホストを指定します。
    例) <Host>x-servlet.com</Host>
    記述できる <ContentsRule> タグの数に制限はありませんが、<Host>に設定できる接続先ホストは制限されています。接続先ホストを増やしたい場合は別途「Additional Domain」を購入していただく必要があります。 詳細は「接続先ホストを増やしたい」を参照ください。
  • Port
    このルールが適用された場合のコンテンツ取得先ポート番号を指定します。
    例) <Port>8080</Port>
  • PreDir
    このルールが適用された場合のコンテンツ取得先ディレクトリを指定します。"/"で始まり"/"以外の文字で終わる文字列を指定します。
    例) <PreDir>/dir</PreDir>
  • File
    このルールが適用された場合のコンテンツ取得先ファイルを指定します。
    例) <File>index.html</File>
  • UseUAHeader
    このルールが適用された場合のコンテンツ取得時に用いる "User-Agent" ヘッダを指定します。省略された場合は "User-Agent" ヘッダの書き換えを行わずに、端末から送られてきた "User-Agent" へッダの内容をそのまま用いてコンテンツを取得します。
    この設定で User-Agent ヘッダを変更すると x-Servlet がリクエストを受け取った時の User-Agent ヘッダの内容とコンテンツ取得時に送信する User-Agent ヘッダの内容が異なるため「リクエスト中に端末が変わった」と見なされます。 このため x-Servlet のセッションが切れます。
    これを回避するには xproxy.properties のdetectSessionWithTE を "false" とする必要があります。
  • DefaultEncoding
    "Content-Type"HTTPヘッダや<meta>タグによってコンテンツのエンコーディングが指定されなかった場合に適用されるエンコーディングを指定します。"Shift_JIS"や"UTF-8"等のように文字列で指定します。
    例) <DefaultEncoding>UTF-8</DefaultEncoding>

※コンテンツルールの動作モードごとに使用できる要素については要素一覧を参照ください。

拡張属性

以下はルールごとに適応される拡張属性です。
<Attribute name="属性名">で指定します。
指定可能なname属性名を以下に示します。

  • fakeScheme
    端末とx-Servlet間でSSL通信を行う際に指定する必要があります。
    ※詳細は「リンク変換」及び「SSL通信を行ないたい」を参照ください。
  • fakeHost
    x-ServletがNATの背後にある等の理由により直接インターネットからアクセスできないような環境の場合に設定する必要があります。 その場合にはインターネットから直接アクセスできるホストを設定します。この値を設定すると、 端末に絶対URIを出力する場合にはそのホスト部をこの値で置き換えた絶対URIを出力します。
    ※詳細はリンク変換を参照ください。
  • fakePort
    x-ServletがNATの背後にある等の理由により直接インターネットからアクセスできないような環境の場合に設定する必要があります。 その場合にはインターネットから直接アクセスできるホストで開いているポート番号を指定します。 この値を設定すると、端末に絶対URIを出力する場合にはそのポート部をこの値で置き換えた絶対URIを出力します。
    ※詳細はリンク変換を参照ください。
  • nextLinkMessage
    ページ分割時に表示される次のページへのリンク文字列を指定します。
  • prevLinkMessage
    ページ分割時に表示される前のページへのリンク文字列を指定します。
  • selectNextLinkMessage
    <select>タグでページ分割発生時に表示される次のページへのリンク文字列を指定します。
    xproxy.propertiesのtagExpressionTypeの値が2の場合のみ有効です。
  • selectSubmitMessage
    <select>タグでページ分割発生時に表示される選択決定リンク文字列を指定します。
    xproxy.propertiesのtagExpressionTypeの値が2の場合のみ有効です。
  • notSelectedMessage
    <select>タグで初期選択肢未選択時(selected属性が指定された<option>タグを含まない場合)に生成する選択肢の表示文字列を指定します。 空文字(長さ0の文字列)を指定すると初期選択肢未選択時の選択肢自体を表示しないようになります。
  • HDMLCardBackMessage ※現在はHDML端末のサービスは終了しているため変更の必要はありません。
    HDML端末で別カードから戻る場合に表示する文字列を指定します。
  • HDMLChoiceMessage ※現在はHDML端末のサービスは終了しているため変更の必要はありません。
    HDML端末で複数選択SELECTの場合に、リンクに表示される文字列を指定します。
    xproxy.propertiesのtagExpressionTypeの値が2の場合のみ有効です。
  • HDMLPasswordMessage ※現在はHDML端末のサービスは終了しているため変更の必要はありません。
    HDML端末でパスワード入力項目を表示する際の文字列を指定します。この値を指定した場合、 入力項目に値が入力されていてもいなくてもここで指定した文字列が表示されるようになります。 空文字(長さ0の文字列)の場合はVersion2.1以前と同様、入力された文字がそのまま表示されます。
  • appendImgLink
    画像ファイルにリンクを設定するかどうかを指定します。
    true   画像ファイルにリンクが設定される
    false(省略時)   画像ファイルにリンクが設定されない
  • accesskeyExpression
    アクセスキーに対する出力補正形式を指定します。
    0   補正無し
    1   数値絵文字全削除
  • cookieControl
    Cookieの制御を行う(Cookie代行を行う)かどうかを指定します。
    true   "Set-Cookie"、"Cookie"ヘッダを制御する。
    false   "Set-Cookie"、"Cookie"ヘッダを制御しない。これらのヘッダはx-Servletをスルーしていく(Version2.0互換)
    optimize(省略時)   useragent.xml の<Cookie>の値によりヘッダ制御の ON/OFF を切り替える。(Version2.10.0以上)
    Cookie対応端末の場合はCookie代行を行いません。
    Cookie非対応端末の場合はCookie代行を行います。
    スルーモードの場合、強制的にcookieControl="true"となります。

    Cookie代行の詳細はCookie代行を参照ください。

  • serverSendFormEncodeDependUA
    端末で入力されたFORMの値を元コンテンツサーバに送信する際に用いるエンコードを指定します。
    true   端末のエンコード(一般にはShift_JIS)でパラメータを送信する
    false(省略時)   元コンテンツ(FORMがあるページ)のエンコードでパラメータを送信する
  • innerRedirect
    元コンテンツサーバからのリダイレクトレスポンスをx-Servlet内部で処理するかどうかを指定します。
    ("true"にするとリダイレクトを行った後のページをブックマークした場合にブラウザに記憶するURLが意図しているものとは異なってくる等、 "false"時とは異なる動作をする部分もありますので特別な場合を除いて"false"で動作させることを推奨します)
    true   リダイレクトレスポンスをx-Servlet内部で処理し、端末にはリダイレクトレスポンスを出力しない
    false(省略時)   リダイレクトレスポンスをx-Servletで処理せずに端末に出力する
  • badGatewayMessage
    元コンテンツサーバがダウンしているなどの理由により元コンテンツが取得できなかった場合に表示するメッセージを指定します。 ここで指定した文字列はコンテンツ変換対象外であり、ここで指定した文字列がそのまま端末に出力されます。
  • historyOverMessage
    xproxy.propertiesのtracker.historySizeを超えて ブラウザバックを行ないそのページのリンクをクリックした場合(Sessionが切れた場合)に表示する文字列を指定します。 ここで指定した文字列はコンテンツ変換対象外であり、ここで指定した文字列がそのまま端末に出力されます。
  • separationWithImageSize
    ページ分割を行なう際に画像のサイズ(byte数)を考慮するかどうかを指定します。
    true   画像サイズを考慮してページ分割を行ないます
    false(省略時)   画像サイズを考慮せずにページ分割を行ないます(Version2.1互換)
    • このオプションはより適切なページ分割位置を提供するためのオプションであり、ページ内の画像が必ず表示されることを保証するオプションではありません。 このオプションをtrueにしても画像のbyte数が大きすぎるために画像が表示されないことは十分にありえます。 特に端末の許容byte数を超える画像は無条件に表示できません。あらかじめご了承ください。
    • このオプションに関わらず、x-Servlet からの画像先読みリクエストは行なわれます。
    • カウンター画像のようにURLが同じなのにも関わらず異なる画像を返すような画像が存在する場合ページ分割を正常に行なえない可能性があります。
    • <x:raw>タグ内に記述した<img>タグ画像に関しては画像のbyte数は考慮されません。
  • imageConvertType
    画像変換の種別を指定します。詳細は画像変換を参照ください。
    ImageConvert   画像変換を行う
    NoImageConvert(省略時)   画像変換を行わない
  • imageConvertConcrete
    画像変換モジュールを指定します。
    Internal   x-Servlet標準の画像変換モジュールを使用する場合
  • imageConvertConcreteParameters
    画像変換モジュールに受け渡すパラメータを指定します。

    指定できるパラメータは以下の通りです。

    1. reduceColorsMethod
      減色方法をquantizeかditherのいずれかに指定します。
      quantize(省略時)   量子化減色(高品質:動的パレット生成による減色)
      dither   ディザ減色(Version2.1.x互換:固定パレットによる減色)
    2. quantizeMaxColor
      PNGまたはGIFから減色変換する際に出力される画像ファイルの最低色数を2~256の範囲で指定します。(Default:256)
      注意) reduceColorsMethod=quantizeを指定した場合のみ有効。
    3. jpegQuality
      JPEG画像圧縮時の圧縮比率を0から100の間で指定します。(Default:90)
      注意) reduceColorsMethod=quantizeを指定した場合のみ有効。
    4. resizeMethod [Version2.10.0以上]
      画像が縮小される場合の縮小方法を指定します。(Default:average)
      bilinear(省略時)   線形補間法を用いて縮小を行います。(従来の縮小方式)
      average   平均画素法を用いて縮小を行います。
    5. quantizationAlgorithm [Version2.10.0以上]
      量子化のアルゴリズムを指定します。(Default:neuquant)
      注意) reduceColorsMethod=quantizeを指定した場合のみ有効。
      mediancut(省略時)   中央値分割法を用いて量子化減色を行います。(従来の減色方式)
      neuquant   NeuQuant法を用いて量子化減色を行います。
    6. enableSharpen [Version2.10.0以上]
      画像が縮小される場合において、縮小後に鮮鋭化処理を行うかどうかを指定します。(Default:true)
      true   画像を縮小後、鮮鋭化処理を行います。
      false(省略時)   画像を縮小後、鮮鋭化処理を行いません。
    7. pngColorType [Version2.10.0以上]
      画像をPNG形式で出力する場合、対応している端末に対しては24ビットフルカラーで出力するかどうかを選択します。(Default:full_24)
      index(省略時)   常に8ビットインデックスカラーで出力します。
      full_24   端末が対応している場合には、24ビットフルカラーで出力します。
      force_full_24   常に24ビットフルカラーで出力します。

    各パラメータは「;」で区切って指定します。

    (例) <Attribute name="imageConvertConcreteParameters"> reduceColorsMethod=quantize;quantizeMaxColor=256;jpegQuality=90;resizeMethod=average;quantizationAlgorithm=neuquant;enableSharpen=true;pngColorType=full_24 </Attribute>

  • imageFormatSelectionLevel
    端末で用いる画像フォーマットの選択方法を指定します。
    1(省略時)   端末は単一の画像フォーマットにのみ対応しているものとして、フォーマットを決定します。(Version2.1互換)
    2   端末は複数の画像フォーマットに対応しているものとして、その中から適切なフォーマットを決定します。
  • followImageConvertFormat
    <img>タグを出力する際に用いる、画像拡張子の決定方法を指定します。
    true 画像変換の結果を取得してから出力する拡張子を決定します
    false(省略時) 画像変換の結果を取得せずに拡張子を決定します(Version2.1互換)
    ※詳細は画像拡張子変更を参照ください。
  • appendReqHeader_n
    元コンテンツサーバにリクエストを出す際に追加するHTTPリクエストヘッダを指定します。
    ※詳細は特殊HTTPヘッダを参照ください。
  • removeReqHeader_n
    元コンテンツサーバにリクエストを出す際に削除するHTTPリクエストヘッダを指定します。
    ※詳細は特殊HTTPヘッダを参照ください。
  • className
    コンテンツルールの処理に用いるクラスを指定します。通常は"jp.co.flexfirm.xproxy.control.rule.ContentsRule_Directory"を指定します。 スルーモードにしたい場合は"jp.co.flexfirm.xproxy.control.rule.ContentsRule_Through"を指定します。
  • linkConvert
    スルーモードのときにリンク変換を行うか指定します。
    true(省略時)   リンク変換を行う
    false   リンク変換を行わない
  • pictogramConvert
    スルーモードのときに絵文字変換を行うか指定します。
    true   絵文字変換を行う
    false(省略時)   絵文字変換を行わない
  • separationWithFlashSize
    ページ分割時にFlashのサイズを考慮するかどうかを設定します。
    true(省略時)   ページ中のFlashサイズを考慮してページ分割を行う
    false   ページ中のFlashサイズを考慮せずにページ分割を行う
  • separationWithScriptSize [Version2.10.0以上]
    ページ分割時に外部JavaScriptのサイズを考慮するかどうかを設定します。
    true   ページ中で呼び出される外部JavaScriptファイルサイズを考慮してページ分割を行う
    false(省略時)   ページ中で呼び出される外部JavaScriptファイルサイズを考慮せずにページ分割を行う
  • separationWithCssSize [Version2.10.0以上]
    ページ分割時に外部CSSファイルサイズを考慮するかどうかを設定します。
    true   ページ中で呼び出される外部CSSファイルサイズを考慮してページ分割を行う
    false(省略時)   ページ中で呼び出される外部CSSファイルサイズを考慮せずにページ分割を行う
  • XHTMLObjectStandbyMessage
    元コンテンツの<object>タグにstandby属性の記載がされていない場合にXHTML Basic対応端末(au)へのML変換処理に使用されます。
    具体的にはML変換された<object>タグのstandby属性にここで設定したパラメータが設定されます。
  • noSeparate [Version2.8.0以上]
    ページ分割をせずに出力するかどうかを設定します。
    true   ページ分割を行なわない
    false(省略時)   ページ分割を行う
    注意)この設定を有効(true)にすると端末のキャッシュサイズを無視してページ分割処理を行いません。
    出力された結果によってはサイズオーバーで端末に表示されない場合があります。
  • directImageConvert [Version2.8.0(20090520)以上]
    x-Servletがセッションを管理していない画像に対してリクエストが送信された場合の動作を指定します。
    true   Version2.7.2以前と同様、<img>タグを含んだhtmlファイルをレスポンスする
    false(省略時)   元画像をそのままレスポンスする
  • baseLayoutWidth [Version2.10.0以上]
    元コンテンツで想定している横幅の解像度を指定します。(単位:px)
    480   指定されたサイズと画像ファイルの横幅の比率で画像を縮小します。
    false(省略時)   レイアウト最適化機能を使用しません。Ver2.9.2以前の動作と同じになります。
  • layoutImageMinWidthOutput [Version2.10.0以上]
    レイアウトを維持した変換により画像が小さくなりすぎないように下限を指定します。(単位:px) (省略時:false)
  • layoutImageMinWidthInput [Version2.10.0以上]
    レイアウトを維持した変換で対象とする画像の下限を指定します。(単位:px) (省略時:false)
    スペーサー画像を除外したい場合などに指定します。
  • insertHeader_iPhone [Version2.8.2以上]
    iPhoneに対し<head>タグ内に挿入する設定ファイル名を指定します。
    (例) <Attribute name="insertHeader_iPhone">conf/insertHeaders/iphone.xml</Attribute> [Version2.8.2 ~ 2.10.1((20120702)]
       <Attribute name="insertHeader_iPhone"></Attribute> [Version2.10.1(20121120)以上]
  • insertHeader_Android [Version2.9.0以上]
    Android端末に対し<head>タグ内に挿入する設定ファイル名を指定します。
    (例) <Attribute name="insertHeader_Android">conf/insertHeaders/android.xml</Attribute> [Version2.9.0 ~ 2.10.1((20120702)]
       <Attribute name="insertHeader_Android"></Attribute> [Version2.10.1(20121120)以上]
  • insertHeader_WindowsPhone [Version2.10.0以上]
    WindowsPhone端末に対し<head>タグ内に挿入する設定ファイル名を指定します。
    (例) <Attribute name="insertHeader_WindowsPhone">conf/insertHeaders/windowsphone.xml</Attribute> [Version2.10.0 ~ 2.10.1((20120702)]
       <Attribute name="insertHeader_WindowsPhone">conf/insertHeaders/wp_template_base.xml</Attribute> [Version2.10.1(20121120)以上]
  • insertHeader_BlackBerry [Version2.10.0以上]
    BlackBerry端末に対し<head>タグ内に挿入する設定ファイル名を指定します。
    (例) <Attribute name="insertHeader_BlackBerry">conf/insertHeaders/blackberry.xml</Attribute> [Version2.10.0 ~ 2.10.1((20120702)]
       <Attribute name="insertHeader_BlackBerry"></Attribute> [Version2.10.1(20121120)以上]
  • insertHeader_FirefoxOS [Version2.10.3以上]
    FirefoxOS端末に対し<head>タグ内に挿入する設定ファイル名を指定します。
    (例) <Attribute name="insertHeader_FirefoxOS">conf/insertHeaders/firefoxos.xml</Attribute> [Version2.10.3以上]
  • insertHeader_GpsSp [Version2.9.0以上]
    スマートフォン(iPhone、Android、WindwosPhone、BlackBerry)端末に対し<head>タグ内に挿入する設定ファイル名を指定します。
    (例) <Attribute name="insertHeader_GpsSp">conf/insertHeaders/gps_js4sp.xml</Attribute>
  • insertHeader_SP1 [Version2.10.1(20121120)以上]
    スマートフォン(iPhone、Android、WindwosPhone、BlackBerry)端末に対し<head>タグ内に挿入する設定ファイル名を指定します。
    (例) <Attribute name="insertHeader_SP1">conf/insertHeaders/sp_template_base.xml</Attribute>
  • insertHeader_BlackBerryOLD [Version2.10.1以上(20121120)]
    BlackBerry端末(OSバージョン6未満)に対し<head>タグ内に挿入する設定ファイル名を指定します。
    (例) <Attribute name="insertHeader_BlackBerryOLD">conf/insertHeaders/blackberry.xml</Attribute>
  • sessionIDOnetimeType [Version2.9.0以上]
    レスポンスごとにセッションワンタイム化を行うか指定します。
    all(省略時)   レスポンス毎にワンタイムセッションを使用する。
    none   レスポンス毎にセッションIDは変化しない。(旧バージョンと同様の動作)
    cookie   cookie が利用できない場合のみワンタイムセッションを使用する。

    ※contentsRuleDefault.xml の初期設定値は all です。

※コンテンツルールの動作モードごとに使用できる要素については属性一覧を参照ください。

注意点

  • タグの記述順序は変更しないでください。エラーとなる場合があります。
  • 設定値に「<」「&」を直接記述することはできません。これらの文字を使用したい場合は「&lt;」「&amp;」と記述してください。
TOP