UAGroupSetting.xml設定

概要

UAGroupSetting.xmlはアクセス元の端末について複数の要素を条件にして端末グループとして定義する設定ファイルです。
ここで設定された端末グループは以下で使用されます。

  • contentsRule.xml内におけるConditionUAGroup指定で使用するコンテンツルールを決定
  • <x:devcon>タグで使用する端末識別の名称を定義。

定義する機種情報はuseragent.xmlをご参照ください。

場所

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

conf

└ UAGroupSetting.xml

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

形式

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE UAGroupSetting SYSTEM "UAGroupSetting.dtd">

<UAGroupSetting>

 <!-- Classによる設定 -->
 <UAGroup name="BP">
  <StringCondition name="Class">BP</StringCondition>
 </UAGroup>
 ...

 <!-- MLによる設定 -->
 <UAGroup name="CHTML">
  <StringCondition name="MarkupLanguageName">CHTML</StringCondition>
 </UAGroup>
 ...

 <!-- CHTML version3以上 -->
 <UAGroup name="CHTML_3">
  <And>
   <StringCondition name="MarkupLanguageName">CHTML</StringCondition>
   <NumberCondition name="MarkupLanguageVersion" type="ge">3</NumberCondition>
  </And>
 </UAGroup>
 ...

</UAGroupSetting>

説明

  • UAGroupSetting
    <!ELEMENT UAGroupSetting (UAGroup*)>

    一番外側に置く要素です。
    UAGroupSetting要素は内部に複数のUAGroup要素を記述することができます。

  • UAGroup
    <!ELEMENT UAGroup (StringCondition | And | Or | NumberCondition)>
    <!ATTLIST UAgroup name CDATA #REQUIRED>

    端末グループとその名前を定義する要素です。

    • 'name'属性(必須)
      端末グループの名前を定義します。ここで指定した名前をcontentsRule.xmlのConditionUAgroupに指定したり、<x:devcon>のname属性に指定します。

    UAGroup要素は内部にOr,And,StringCondition,NumberConditionのいずれかの要素を記述することができます。

  • Or
    <!ELEMENT Or (StringCondition | And | Or | NumberCondition)+>
    <!ATTLIST Or negative CDATA #IMPLIED>

    条件の論理和を記述するための要素です。

    • 'negative'属性
      条件を否定する(notにする)場合に"true"を指定します。指定しない場合は"false"と解釈されます。

    Or要素は内部に一つ以上のOr,And,StringCondition,NumberCondition要素を記述することができます。

  • And
    <!ELEMENT And (StringCondition | And | Or | NumberCondition)+>
    <!ATTLIST And negative CDATA #IMPLIED>

    条件の論理積を記述するための要素です。

    • 'negative'属性
      条件を否定する(notにする)場合に"true"を指定します。指定しない場合は"false"と解釈されます。

    And要素は内部に一つ以上のOr,And,StringCondition,NumberCondition要素を記述することができます。

  • StringCondition
    <!ELEMENT StringCondition (#PCDATA)>
    <!ATTLIST StringCondition name CDATA #REQUIRED>
    <!ATTLIST StringCondition negative CDATA #IMPLIED>
    <!ATTLIST StringCondition partial CDATA #IMPLIED>
    <!ATTLIST StringCondition caseSensitive CDATA #IMPLIED>

    文字列比較に基づく条件を記述する要素です。

    • 内容(「<StringCondition>foo</StringCondition>」のfooの部分)
      下記の'name'属性で指定された値と比較する文字列を記述します。
    • 'name'属性(必須)
      端末のどの情報と文字列比較を行うかを指定します。
      比較に用いられる文字列は機種情報データベースから引用します。指定できる値は以下のいずれかです。
      Class 端末の属するクラスが格納されています。"PC","BP"(BrowserPhone),"SP"(スマートフォン)の値を設定します。
      TerminalName 端末名を設定します。(例:"D501i","C304SA","C3001H","J-SH03")
      SoftBankの場合には端末の末尾に"J-SH03_a"のようにリビジョンを現す文字列がついている場合もあるので、後で説明する"partial"属性を付加する事で確実に端末を指定することが可能です。
      TerminalID ユーザーエージェントの検索文字列を設定します。
      ServiceName 端末が使用できる i-MODE、EZ、J-SKY、EMnet、AIR-EDGE-PHONE、PC、Crawler などのサービス名を設定します。(Softbank端末は過去の互換性維持のために旧名称のJ-SKYと設定されています)
      BrowserName 端末に搭載されているブラウザ名を設定します。
      BrowserVersion 端末のブラウザバージョンを設定します。
      MarkupLanguageName 端末のマークアップ言語名が格納されています。"CHTML","VHTML","XHTMLBasic","EXHTML","HTML"のいずれかの値を設定します。
      ※マークアップ言語名の表記については「ML名について」を参照ください。
      ContentType 端末の対応するContent-Typeを設定します。原則として "text/html;charset=Shift_JIS" が設定されています。
      CharactersEncoding 端末の対応できるエンコード方式を設定します。
      ImageFormat x-Servletで用いる画像ファイルフォーマットが格納されています。複数の画像フォーマットに対応している端末は複数行で格納されています。"GIF","PNG","JPG","BMP","WBMP"のいずれかの値を設定します。
      ImageColorMode 端末のカラーモードが格納されています。"Color","Gray","BlackAndWhite"のいずれかの値を設定します。
      ImageAnimation アニメーションGIFに対応しているか設定します。"true","false"のいずれかの値を設定します。
      GPS 位置情報取得方式が格納されています。未対応の場合は"false"(携帯端末)または"Disabled"(スマートフォン)が設定されています。
      PictogramType スマートフォンで対応している絵文字形式が格納されています。未対応の場合は"false"が設定されています。
      Cookie Version2.10.0以降で端末がCookie対応端末に対応しているか設定します。"true","false"のいずれかの値を設定します。
    • 'negative'属性
      条件を否定する(notにする)場合に"true"を指定します。指定しない場合は"false"と解釈されます。
    • 'partial'属性
      文字列の部分比較を行う場合に"true"を指定します。指定が無い場合は"false"(完全一致)と解釈されます。
    • 'caseSensitive'属性
      文字列を比較する際に大文字小文字を区別する場合に"true"を指定します。指定しない場合は"false"(大文字小文字を区別しない)と解釈されます。
  • NumberCondition
    <!ELEMENT NumberCondition (#PCDATA)>
    <!ATTLIST NumberCondition name CDATA #REQUIRED>
    <!ATTLIST NumberCondition negative CDATA #IMPLIED>
    <!ATTLIST NumberCondition type (eq|le|lt|ge|gt) "eq">

    数値比較に基づく条件を記述する要素です。

    • 内容(「<NumberCondition>foo</NumberCondition>」のfooの部分)
      下記の'name'属性で指定された値と比較する数値を記述します。数値は小数も可能です。
    • 'name'属性(必須)
      端末のどの情報と数値比較を行うかを指定します。
      比較に用いられる数値は機種情報データベースから引用します。仮にこれらの情報が端末から送られてきている場合でも機種情報データベースの値を用います。指定できる値は以下のいずれかです。
      MarkupLanguageVersion 端末がサポートしているマークアップ言語のバージョンが入っています。
      一般には<And>要素の子要素としてより厳密に規定する用途で用いられます。
      • CHTMLの場合"1.0","2.0","3.0","4.0","5.0","6.0","7.0","7.1","7.2"のいずれかの値
      • VHTMLの場合"1.0","2.0"のいずれかの値
      • XHTML Basicの場合"1.0"
      • EXHTMLの場合"1.0","1.1"のいずれかの値
      ※マークアップ言語名の表記についてはML名についてを参照ください。
      ExpandVersion Version2.10.0以降で端末がiモードブラウザ 2.0拡張タグ・属性に対応しているか設定します。
      ImagePixcelsX ブラウザ画面に表示可能な画像の横幅サイズを設定します。
      ImagePixcelsY ブラウザ画面に表示可能な画像の縦幅サイズを設定します。
      BrowserVersion 端末のブラウザバージョンを設定します。
      ContentMaxBytes Version2.8.3 までのページ分割目安となる端末キャッシュサイズを設定します。
      ※ページの総容量がこのサイズを超えると表示できません。
      ※画像のサイズは非圧縮時のサイズです。
      ContentMaxBytesUpdate Version2.9.0 以降のページ分割目安となる端末キャッシュサイズを設定します。
      ※ページの総容量がこのサイズを超えると表示できません。
      ※画像のサイズは含まれません
      CharactersRows ブラウザ画面の横表示可能文字数を設定します。
      CharactersCols ブラウザ画面の縦表示可能文字数を設定します。
      ImageColors ブラウザの画面階調を設定します。
      Flash 端末の対応しているFlashのバージョンを設定します。
      XHTMLVersion 対応しているXHTMLのバージョンを設定します。対応していない場合は"0.0"が設定されています。
    • 'negative'属性
      条件を否定する(notにする)場合に"true"を指定します。指定しない場合は"false"と解釈されます。
    • 'type'属性
      比較は
      ${'name'属性で指定された値} ${'type'属性で指定した大小関係} ${内容で指定した数値}

      が成り立つかどうかをチェックすることで行われます。
      以下のいずれかの大小関係を指定できます。

      ・"eq" =
      ・"le" <=
      ・"lt" <
      ・"ge" >=
      ・"gt" >

  1. PCブラウザとiモードを一まとめにする場合

    PCブラウザに関してはClassとServiceNameを参照。iモードの判別には MarkupLanguageName を用いる。

    結果:

    <UAGroup name="PC_OR_iMode">
     <Or>
      <And>
       <StringCondition name="Class">PC</String>
       <StringCondition name="ServiceName">PC</String>
      </And>
      <StringCondition name="MarkupLanguageName">CHTML</StringCondition>
     </Or>
    </UAGroup>
  2. fontタグが使用可能な端末グループを一まとめにする場合

    PCブラウザ、docomo の CHTML2.0以上、SoftBank の VHTML、au の XHTML Basicがこれに該当する。

    結果:

    <UAGroup name="Font_Enabled">
     <Or>
      <And>
       <StringCondition name="Class">PC</String>
       <StringCondition name="ServiceName">PC</String>
      </And>
      <And>
       <StringCondition name="MarkupLanguageName">CHTML</StringCondition>
       <NumberCondition name="MarkupLanguageVersion" type="ge">2</NumberCondition>
      </And>
      <StringCondition name="MarkupLanguageName">VHTML</StringCondition>
      <StringCondition name="MarkupLanguageName">XHTMLBasic</StringCondition>
     </Or>
    </UAGroup>
  3. ブラウザのキャッシュサイズで区分する場合

    キャッシュサイズ20K未満はCache_LOWと定義、キャッシュサイズ20K以上はCache_HIGHと定義。
    ContentMaxBytesを用いる。

    結果:

    <UAGroup name="Cache_LOW">
    <NumberCondition name="ContentMaxBytes" type="lt">20000</NumberCondition>
    </UAGroup>
    <UAGroup name="Cache_HIGH">
      <NumberCondition name="ContentMaxBytes" type="ge">20000</NumberCondition>
    </UAGroup>
  4. 端末で区分する場合

    N902iとN902iSでN902シリーズとして定義。
    TerminalNameを用いる。

    結果:

    <UAGroup name="N902 series">
     <Or>
      <StringCondition name="TerminalName">N902i</StringCondition>
      <StringCondition name="TerminalName">N902iS</StringCondition>
     </Or>
    </UAGroup>

デフォルトで設定されている端末グループ

下記の端末グループはデフォルトで設定が記述されています。

サービスによる設定

No グループネーム 説明 参照している機種情報
1 DOCOMO docomo端末 ServiceName
2 AU au端末 ServiceName
3 SOFTBANK SoftBank端末 ServiceName
4 WILLCOM WILLCOM端末 ServiceName
5 EMOBILE EMOBILE端末 ServiceName

Classによる設定

No グループネーム 説明 参照している機種情報
1 BP BrowserPhone(携帯電話) Class
2 PC パソコン端末 ClassServiceName
3 SP スマートフォン端末 ClassServiceName

MLによる設定

No グループネーム 説明 参照している機種情報
1 CHTML docomo,WILLCOM
(iモード対応CHTML)
MarkupLanguageName
2 IXHTML Docomo iモード対応XHTML MarkupLanguageNameXHTMLVersion
3 XHTMLBasic auのXHTML Basic端末、WAP2.0端末
(XHTML Basic+auの独自拡張タグ)
MarkupLanguageName
4 VHTML SoftBank3GC端末
(SoftBank携帯電話向けXHTML)
MarkupLanguageName
5 EXHTML EMOBILE の XHTML Basic端末
(XHTML Basic+EMOBILEの独自拡張タグ)
MarkupLanguageName
6 HTML 上記以外のブラウザ MarkupLanguageName

CHTML version毎の設定

No グループネーム 説明 参照している機種情報
1 CHTML_3 Version3以上のCHTML MarkupLanguageNameMarkupLanguageVersion
2 CHTML_4 Version4以上のCHTML MarkupLanguageNameMarkupLanguageVersion
3 CHTML_5 Version5以上のCHTML MarkupLanguageNameMarkupLanguageVersion
4 CHTML_5_ONLY Version5のみのCHTML MarkupLanguageNameMarkupLanguageVersion

Flash version毎の設定

No グループネーム 説明 参照している機種情報
1 FLASH_1 Flash Ver1.0以上対応端末 Flash
2 FLASH_2 Flash Ver2.0以上対応端末 Flash
3 FLASH_3 Flash Ver3.0以上対応端末 Flash
4 FLASH_4 Flash Ver4.0以上対応端末 Flash

その他の設定

No グループネーム 説明 参照している機種情報
1 LargeDisplay 大きな画面を持つ(幅が240pixel以上)端末定義 ImagePixcelsX
2 COOKIE Cookie対応端末 Cookie
2 GPS GPS対応端末 GPS
4 Non_SSL SSL非対応機種 ClassMarkupLanguageNameMarkupLanguageVersion
TerminalNameBrowserNameBrowserVersion
5 CRAWLER クローラー ServiceName
6 iPhone iPhone端末 TerminalName
7 Android Android端末 BrowserName
8 WindowsPhone WindowsPhone端末 BrowserName
9 BlackBerry BlackBerry端末 BrowserName
10 FirefoxOS FirefoxOS端末 BrowserName
11 GpsSp GPS対応スマートフォン端末 ClassGPS
12 UsableExternalCss 外部CSS対応端末 ClassBrowserNameMarkupLanguageName
MarkupLanguageExpandVersion
13 ExternalCss 外部CSSから外部CSSへの変換を行う端末 ClassBrowserNameBrowserVersion
MarkupLanguageNameMarkupLanguageExpandVersion
14 SP1 スマートフォン向けテンプレートの対象となる端末(1) ClassServiceName
BrowserNameBrowserVersion
15 SP2 スマートフォン向けテンプレートの対象となる端末(2) ClassServiceName
BrowserNameBrowserVersion
16 SP3 スマートフォン向けテンプレートの対象となる端末(3) ClassServiceName
BrowserNameBrowserVersion
17 BlackBerryOLD BlackBerry端末(OSバージョン6未満) BrowserNameBrowserVersion

注意点

  • アクセスして来た携帯端末が複数の端末グループに所属し、ConditionUAGroup が異なる複数のルールに合致する場合、最初(上方)の ConditionUAGroup に合致したルールが適用されます。
TOP