Develop and Download Open Source Software

Browse CVS Repository

Diff of /modchxj/mod_chxj/doc/modchxj.sdoc

Parent Directory Parent Directory | Revision Log Revision Log | View Revision Graph Revision Graph | View Patch Patch

revision 1.30 by konn, Wed Feb 6 06:51:25 2008 UTC revision 1.31 by konn, Wed Feb 13 09:37:28 2008 UTC
# Line 6  Line 6 
6    <subtitle></subtitle>    <subtitle></subtitle>
7    <author>Atsushi Konno</author>    <author>Atsushi Konno</author>
8    <date>29 Mar 2005</date>    <date>29 Mar 2005</date>
9    <date>Last modified: Tue,  5 Feb 2008 13:20:28 +0900</date>    <date>Last modified: Wed, 13 Feb 2008 18:35:16 +0900</date>
10  </head>  </head>
11  <body>  <body>
12  <section title="Overview">  <section title="Overview">
# Line 121  ChxjConvertRule "^/chxj.+$" "EngineOn" " Line 121  ChxjConvertRule "^/chxj.+$" "EngineOn" "
121    
122  <program title="httpd.conf">  <program title="httpd.conf">
123  #====================================================================================  #====================================================================================
124  # モジュールをApache2.0にロード  # モジュールをApache2.xにロード
125  #====================================================================================  #====================================================================================
126  LoadModule chxj_module /usr/lib/apache2/modules/mod_chxj.so  LoadModule chxj_module /usr/lib/apache2/modules/mod_chxj.so
127    
# Line 157  ChxjConvertRule "^/chxj.+$" "EngineOn" " Line 157  ChxjConvertRule "^/chxj.+$" "EngineOn" "
157    
158  <program title="httpd.conf">  <program title="httpd.conf">
159  #====================================================================================  #====================================================================================
160  # モジュールをApache2.0にロード  # モジュールをApache2.xにロード
161  #====================================================================================  #====================================================================================
162  LoadModule chxj_module /usr/lib/apache2/modules/mod_chxj.so  LoadModule chxj_module /usr/lib/apache2/modules/mod_chxj.so
163    
# Line 318  ChxjImageCacheLimit 10485760 Line 318  ChxjImageCacheLimit 10485760
318  </ol>  </ol>
319  </subsection>  </subsection>
320    
321  <subsection title="文字コードを変換したい場合(EXPERIMENTAL)">  <subsection title="文字コードを変換したい場合">
322  <ol>  <ol>
323  <li>httpd.confに以下を追加します。  <li>httpd.confに以下を追加します。
324  下記は、URIが/chxjで始まる全てのコンテンツに対して動作するようmod_chxjに指示しています。  下記は、URIが/chxjで始まる全てのコンテンツに対して動作するようmod_chxjに指示しています。
# Line 762  ChxjConvRule "^/chxj.+$" "EngineOn" "EUC Line 762  ChxjConvRule "^/chxj.+$" "EngineOn" "EUC
762  </ol>  </ol>
763  </section>  </section>
764    
765    
766    
767    
768    <section title="文字コードについて">
769    サーバサイドコンテンツについてはShift_JIS(CP932)、EUCJP-WIN(Win外字対応のEUCJP)、UTF-8のどれかで記述することが可能です。
770    Shift_JISで記述した場合は絵文字についてもShift_JISで、EUCJP-WINで記述した場合は絵文字についてもEUCJP-WINで、UTF-8で記述した場合は絵文字についてもUTF-8で
771    記述します。<note>詳細は「絵文字について」の項を参照のこと</note>
772    クライアントサイド(端末側)に送信する文字コードはShift_JISまたはUTF-8を指定することが可能です。<note>指定方法については「デバイス定義」の項を参照のこと。</note>
773    mod_chxjによりサーバサイドコンテンツの文字コードから端末に送信する文字コードへと絵文字も含めて変換します。
774    POST/GET中のデータについても端末側文字コードからサーバサイドコンテンツの文字コードへと絵文字も含めて変換します。
775    
776    
777    <ol>
778      <li>注意: Shift_JISでサーバサイドコンテンツを記述した場合はPOST/GETデータもShift_JISでサーバサイドコンテンツに渡されます。</li>
779      <li>注意: EUCJP-WINでサーバサイドコンテンツを記述した場合はPOST/GETデータもEUCJP-WINでサーバサイドコンテンツに渡されます。</li>
780      <li>注意: UTF-8でサーバサイドコンテンツを記述した場合はPOST/GETデータもEUCJP-WINでサーバサイドコンテンツに渡されます。</li>
781    </ol>
782    
783    サーバサイドコンテンツの文字コードはChxjConvRuleディレクティブで指定した文字コードになります。
784    ChxjConvRuleにて矛盾が生じない限り、文字コードの混在も可能です。
785    
786    </section>
787    
788    
789    
790    
791    <!-- ================================================================================ -->
792    <!--                                                                                  -->
793    <!-- 絵文字について                                                                   -->
794    <!--                                                                                  -->
795    <!-- ================================================================================ -->
796  <section title="絵文字について">  <section title="絵文字について">
797    i-Mode用の絵文字を書いておけば、アクセスしたキャリアによって、mod_chxjが対応の絵文字に自動変換します。    i-Mode用の絵文字を書いておけば、アクセスしたキャリアによって、mod_chxjが対応の絵文字に自動変換します。
798    ソースに2byteのバイナリコードを直接書いても、10進参照文字列<note>16進参照文字列には対応していません</note>(&amp;#XXX;の形)で書いても、どちらでも変換対象になります。    ソースに2byteのバイナリコードを直接書いても、10進参照文字列(&amp;#XXX;の形)、16進参照文字列(&amp;#xXXX;の形)で書いても、変換対象になります。
799    10進参照文字列で書いた場合は、mod_chxjにより、自動で2バイトコードに変換します。    10進参照文字列、16進参照文字列はmod_chxjにより自動で2バイトコードに変換されます。
800      <note>コンテンツをSJISで記述する場合には絵文字もSJISで、コンテンツをEUCJP-WINで記述する場合には絵文字もEUCJP-WINで、UTF-8で記述する場合には絵文字もUTF-8で記述する必要があります</note>
801    
802  <subsection title="絵文字変換定義">  <subsection title="絵文字変換定義">
803  絵文字の変換に関する動作を変えたい場合(例えば「ハートがあったら、AUの場合はスペードに」とか、「変換定義がおかしい」といった場合)は、  絵文字の変換に関する動作を変えたい場合(例えば「ハートがあったら、AUの場合はスペードに」とか、「変換定義がおかしい」といった場合)は、
804  emoji.xmlファイルを直接編集することによって定義を変更することが可能です。emoji.xmlはXMLファイルとなっていますので、vi等で簡単に定義を  emoji.xmlファイルを直接編集することによって定義を変更することが可能です。emoji.xmlはXMLファイルとなっていますので、人によってはvi等で簡単に定義を
805  変更することができます<note>厳密にはXMLになっていないので、日本語の記述はSJISでお願いします。</note>。  変更することができるかもしれません。
806    
807    emoji.xmlは3つのパートに分かれています。1つ目はDoCoMo→DoCoMo/au/SoftBankの変換定義部。
808    2つ目はau→DoCoMoの変換定義部。3つ目はSoftBank→DoCoMoの変換定義部。
809    1つ目はサーバサイドコンテンから各キャリアの絵文字に変換する際に使用されます。
810    2つ目と3つ目はPOST/GETデータの変換に使用されます。
811    
812    
813  <br />  <br />
814  以下に、emoji.xmlファイルの一部を記します。  <!-- ================================================================================ -->
815    <!-- DoCoMo->DoCoMo/au/SoftBank変換定義                                               -->
816    <!-- ================================================================================ -->
817    <subsection title="DoCoMo→DoCoMo/au/SoftBank変換定義">
818    以下に、emoji.xmlファイルの1つ目のパート、DoCoMo→DoCoMo/au/SoftBankの変換定義部を記します。
819  <program title="emoji.xml">  <program title="emoji.xml">
 &lt;?xml encoding="Shift_JIS" &gt;  
   
820  &lt;emoji&gt;  &lt;emoji&gt;
821    &lt;set&gt;    &lt;set&gt;
822      &lt;no&gt;1&lt;/no&gt;      &lt;no&gt;1&lt;/no&gt;
823      &lt;imode&gt;      &lt;imode&gt;
824        &lt;hex1&gt;f8&lt;/hex1&gt;        &lt;sjis-hex&gt;f89f&lt;/sjis-hex&gt;
825        &lt;hex2&gt;9f&lt;/hex2&gt;        &lt;sjis-dec&gt;63647&lt;/sjis-dec&gt;
826        &lt;string&gt;&amp;#63647;&lt;/string&gt;        &lt;eucjp-hex&gt;8ffca1&lt;/eucjp-hex&gt;
827        &lt;description&gt;&lt;/description&gt;        &lt;eucjp-dec&gt;9436321&lt;/eucjp-dec&gt;
828          &lt;unicode-hex&gt;e63e&lt;/unicode-hex&gt;
829          &lt;unicode-dec&gt;58942&lt;/unicode-dec&gt;
830          &lt;utf8-hex&gt;ee98be&lt;/utf8-hex&gt;
831          &lt;utf8-dec&gt;15636670&lt;/utf-dec&gt;
832          &lt;description&gt;晴れ&lt;/description&gt;
833      &lt;/imode&gt;      &lt;/imode&gt;
834      &lt;ezweb&gt;      &lt;ezweb&gt;
835        &lt;A&gt;44&lt;/A&gt;        &lt;A&gt;
836        &lt;B&gt;44&lt;/B&gt;          &lt;no&gt;44&lt;/no&gt;
837        &lt;C&gt;44&lt;/C&gt;          &lt;sjis-hex&gt;f660&lt;/sjis-hex&gt;
838        &lt;D&gt;44&lt;/D&gt;          &lt;sjis-dec&gt;63072&lt;/sjis-dec&gt;
839            &lt;unicode-hex&gt;e488&lt;/unicode-hex&gt;
840            &lt;unicode-dec&gt;58504&lt;/unicode-dec&gt;
841            &lt;utf8-hex&gt;eebda0&lt;/utf8-hex&gt;
842            &lt;utf8-dec&gt;15646112&lt;/utf-dec&gt;
843          &lt;/A&gt;
844          &lt;B&gt;
845            &lt;no&gt;44&lt;/no&gt;
846            &lt;sjis-hex&gt;f660&lt;/sjis-hex&gt;
847            &lt;sjis-dec&gt;63072&lt;/sjis-dec&gt;
848            &lt;unicode-hex&gt;e488&lt;/unicode-hex&gt;
849            &lt;unicode-dec&gt;58504&lt;/unicode-dec&gt;
850            &lt;utf8-hex&gt;eebda0&lt;/utf8-hex&gt;
851            &lt;utf8-dec&gt;15646112&lt;/utf-dec&gt;
852          &lt;/B&gt;
853          &lt;C&gt;
854            &lt;no&gt;44&lt;/no&gt;
855            &lt;sjis-hex&gt;f660&lt;/sjis-hex&gt;
856            &lt;sjis-dec&gt;63072&lt;/sjis-dec&gt;
857            &lt;unicode-hex&gt;e488&lt;/unicode-hex&gt;
858            &lt;unicode-dec&gt;58504&lt;/unicode-dec&gt;
859            &lt;utf8-hex&gt;eebda0&lt;/utf8-hex&gt;
860            &lt;utf8-dec&gt;15646112&lt;/utf-dec&gt;
861          &lt;/C&gt;
862          &lt;D&gt;
863            &lt;no&gt;44&lt;/no&gt;
864            &lt;sjis-hex&gt;f660&lt;/sjis-hex&gt;
865            &lt;sjis-dec&gt;63072&lt;/sjis-dec&gt;
866            &lt;unicode-hex&gt;e488&lt;/unicode-hex&gt;
867            &lt;unicode-dec&gt;58504&lt;/unicode-dec&gt;
868            &lt;utf8-hex&gt;eebda0&lt;/utf8-hex&gt;
869            &lt;utf8-dec&gt;15646112&lt;/utf-dec&gt;
870          &lt;/D&gt;
871      &lt;/ezweb&gt;      &lt;/ezweb&gt;
872      &lt;jphone&gt;      &lt;softbank&gt;
873        &lt;string&gt;$Gj&lt;/string&gt;        &lt;no&gt;74&lt;/no&gt;
874      &lt;/jphone&gt;        &lt;sjis-hex&gt;476a&lt;/sjis-hex&gt;
875          &lt;sjis-dec&gt;116572776975&lt;/sjis-dec&gt;
876          &lt;unicode-hex&gt;e04a&lt;/unicode-hex&gt;
877          &lt;unicode-dec&gt;57418&lt;/unicode-dec&gt;
878          &lt;utf8-hex&gt;ee818a&lt;/utf8-hex&gt;
879          &lt;utf8-dec&gt;15630730&lt;/utf-dec&gt;
880        &lt;/softbank&gt;
881    &lt;/set&gt;    &lt;/set&gt;
882         ・
883         ・
884         ・
885         ・
886    &lt;/emoji&gt;
887  </program>  </program>
888    
889  絵文字の定義は、&lt;emoji&gt;タグから&lt;/emoji&gt;タグまでの間にあります。その中の要素を説明します。  絵文字の定義は、&lt;emoji&gt;タグから&lt;/emoji&gt;タグまでの間にあります。その中の要素を説明します。
890  1つの絵文字につき、1つのセット(&lt;set&gt;タグから&lt;/set&gt;タグまで)とし、キャリア毎の絵文字を定義しています。  1つの絵文字につき、1つのセット(&lt;set&gt;タグから&lt;/set&gt;タグまで)とし、キャリア毎の絵文字を定義しています。
891    合計176セットあります。
892    
893  <ol>  <ol>
894    <li>&lt;imode&gt;要素<br />    <li>&lt;imode&gt;要素<br />
895  まず、元となるi-Mode用の絵文字は、&lt;imode&gt;タグにはさまれた間に定義されています。  まず、元となるi-Mode用の絵文字は、&lt;imode&gt;タグにはさまれた間に定義されています。
896  &lt;imode&gt;要素は、2バイトコード要素(&lt;hex1&gt;&lt;hex2&gt;)と、  &lt;imode&gt;要素は子にsjis、eucjp、utf8、unicodeのそれぞれ16進と10進表記データを保持します。
897  10進参照文字列要素(&lt;string&gt;)を保持していて、この2つの要素を変換元の値として使用します。  sjis-hexはShift_JISコードの16進表記、sjis-decはShift_JISコードの10進表記、eucjp-hexはEUCJP-WINの16進表記、eucjp-decはEUCJP-WINの10進表記、utf8-hexはUTF-8の16進表記、utf8-decはUTF-8の10進表記、unicode-hexはUNICODEの16進表記、unicode-decはUNICODEの10進表記となります。
898  アクセスしてきた端末が、i-Mode機であった場合で、かつCHTML中に10進参照文字列が絵文字として書かれている場合には、  サーバサイドコンテンツがSJISで記述されている場合はimode要素のsjis-hex、sjis-decを参照します。
899  &lt;hex1&gt;&lt;hex2&gt;要素に定義されている値に置換します。  同様にがEUCJP-WINで記述されている場合はimode要素のeucjp-hex、eucjp-decを参照します。
900    UTF-8で記述されている場合はimode要素のutf8-hex、utf8-decを参照します。<br />
901    サーバサイドコンテンツのマッチするコードがimode要素の中に存在すれば、変換は同一set内のデータを使用して行われます。
902    </li>    </li>
903  <br />  <br />
904  <br />  <br />
905    <li>&lt;ezweb&gt;要素<br />    <li>&lt;ezweb&gt;要素<br />
906  アクセスしてきた端末が、AU機であった場合、&lt;ezweb&gt;要素に定義されている値に変換します。  アクセスしてきた端末が、AU機であった場合、&lt;ezweb&gt;要素に定義されている値に変換します。
907  &lt;ezweb&gt;要素は、&lt;A&gt;〜&lt;D&gt;要素を持っていて、それぞれAUの絵文字タイプA〜Dに対応していますので、  &lt;ezweb&gt;要素は、&lt;A&gt;〜&lt;D&gt;要素を持っていて、それぞれAUの絵文字タイプA〜Dに対応していますので、
908  もし、Dタイプの絵文字端末であったなら、&lt;D&gt;要素に定義されている値に変換します。ここで定義されている値は、  もし、Dタイプの絵文字端末であったなら、&lt;D&gt;要素の&lt;no&gt;に定義されている値に変換します。ここで定義されている値は、
909  HDML機の場合は、<b>&lt;IMG ICON="XX"&gt;</b>の"XX"の部分に当てはめられて、置換されます。  HDML機の場合は、<b>&lt;IMG ICON="XX"&gt;</b>の"XX"の部分に当てはめられて、置換されます。
910  XHTML機の場合は、<b>&lt;IMG LOCALSRC="XX"&gt;</b>の"XX"の部分に当てはめられて、置換されます。  XHTML機の場合は、<b>&lt;IMG LOCALSRC="XX"&gt;</b>の"XX"の部分に当てはめられて、置換されます。
911    同要素にはsjis-hex、sjis-dec、unicode-hex、unicode-dec、utf8-hex、utf8-decが有りますが、今のところ使用していません。
912    </li>    </li>
913  <br />  <br />
914  <br />  <br />
915    <li>&lt;jphone&gt;要素<br />    <li>&lt;softbank&gt;要素<br />
916  アクセスしてきた端末が、SoftBank/Vodafone/J-Phone端末であった場合、&lt;jphone&gt;要素に定義されている値に変換します。  アクセスしてきた端末が、SoftBank/Vodafone/J-Phone端末であった場合、&lt;softbank&gt;要素に定義されている値に変換します。
917  &lt;jphone&gt;要素は、&lt;string&gt;要素を保持していて、ここで定義されている値を直接使用します。  &lt;softbank&gt;要素は、上記要素と同様にsjis-hex、sjis-dec、unicode-hex、unicode-dec、utf8-hex、utf8-decを保持しています。
918    アクセスしてきた端末にはsjisを返す場合はsjis-hex、sjis-decの値を使用します。utf8を返す場合にはutf8-hex、utf8-decでは無くunicode-hex、unicode-decを返します。
919    SoftBank端末の場合は3G端末は基本的にUTF8を返すようにデバイス定義にて定義されています。UTF8で定義された場合でSoftBankの場合はUNICODEの参照文字列を返すように
920    なっています。(問題回避のため)
921    </li>    </li>
922  </ol><br />  </ol><br />
923  emoji.xmlに定義されていない絵文字で、変換したい絵文字がある場合には、このファイルに新たな定義を足せば、  emoji.xmlに定義されていない絵文字で、変換したい絵文字がある場合には、このファイルに新たな定義を足せば、
924  変換するようになります。  変換するようになります。<note>同一コード領域に割り当てる必要があるかもしれません</note>
925    </subsection>
926    
927    
928    <!-- ================================================================================ -->
929    <!-- au->DoCoMo変換定義                                                               -->
930    <!-- ================================================================================ -->
931    <subsection title="au→DoCoMo変換定義">
932    au->DoCoMo変換の定義は主にau端末からサーバサイドへのPOST/GETデータの変換に使用されます。
933    定義はemoji.xmlファイルの&lt;ezweb2imode&gt;タグではさまれたところに定義してあります。
934    &lt;set&gt;から&lt;/set&gt;までの間が1絵文字を表現する部分になります。
935    <br />
936    以下に、emoji.xmlファイルの2つ目のパート、au→DoCoMo変換定義を以下に記します。
937    <program title="emoji.xml">
938    &lt;ezweb2imode&gt;
939      &lt;set&gt;
940        &lt;no&gt;1&lt;/no&gt;
941        &lt;ezweb&gt;
942          &lt;sjis-hex&gt;F659&lt;/sjis-hex&gt;
943          &lt;utf8-hex&gt;eebd99&lt;/utf8-hex&gt;
944        &lt;/ezweb&gt;
945        &lt;imode&gt;
946          &lt;no&gt;220&lt;/no&gt;
947        &lt;/imode&gt;
948      &lt;/set&gt;
949       ・
950       ・
951       ・
952    &lt;/ezweb2imode&gt;
953    </program>
954    <br />
955    <ol>
956      <li>&lt;no&gt;要素<br />
957    auで定義されている絵文字番号を保持します。
958      </li>
959    <br />
960    <br />
961      <li>&lt;ezweb&gt;要素<br />
962    &lt;no&gt;で定義された絵文字番号の実際にPOST/GETされてくる値を保持します。sjis-hexは端末がShift_JISの場合のPOST/GETデータ、utf8-hexは端末がUTF-8の場合のPOST/GETデータになっています。
963    POST/GETされたデータはこの要素に記述されたコードとマッチングされ、マッチした場合絵文字を特定します。
964      </li>
965    <br />
966    <br />
967      <li>&lt;imode&gt;要素<br />
968    &lt;ezweb&gt;要素でマッチした場合に参照されるEzWeb絵文字に対応するDoCoMo絵文字番号を保持します。mod_chxjによりDoCoMo絵文字に変換する場合に使用されます。
969      </li>
970    <br />
971    <br />
972    </ol>
973    </subsection>
974    
975    
976    <!-- ================================================================================ -->
977    <!-- SoftBank->DoCoMo変換定義                                                         -->
978    <!-- ================================================================================ -->
979    <subsection title="SoftBank→DoCoMo変換定義">
980    SoftBank-&gt;DoCoMo変換の定義は主にSoftBank端末からサーバサイドへのPOST/GETデータの変換に使用されます。
981    定義はemoji.xmlファイルの&lt;softbank2imode&gt;タグではさまれたところに定義してあります。
982    &lt;set&gt;から&lt;/set&gt;までの間が1絵文字を表現する部分になります。
983    <br />
984    以下に、emoji.xmlファイルの3つ目のパート、SoftBank→DoCoMo変換定義を以下に記します。
985    <program title="emoji.xml">
986    &lt;softbank2imode&gt;
987      &lt;set&gt;
988        &lt;no&gt;
989          1
990        &lt;/no&gt;
991        &lt;softbank&gt;
992          &lt;webcode&gt;
993            4721
994          &lt;/webcode&gt;
995          &lt;sjis-hex&gt;
996            f941
997          &lt;/sjis-hex&gt;
998          &lt;utf8-hex&gt;
999            ee8081
1000          &lt;/utf8-hex&gt;
1001        &lt;/softbank&gt;
1002        &lt;imode&gt;
1003          &lt;no&gt;
1004            140
1005          &lt;/no&gt;
1006        &lt;/imode&gt;
1007      &lt;/set&gt;
1008       ・
1009       ・
1010       ・
1011       ・
1012    &lt;/softbank2imode&gt;
1013    </program>
1014    <br />
1015    <ol>
1016      <li>&lt;no&gt;要素<br />
1017    SoftBankで定義されている絵文字番号を保持します。
1018      </li>
1019    <br />
1020    <br />
1021      <li>&lt;softbank&gt;要素<br />
1022    &lt;no&gt;で定義された絵文字番号の実際にPOST/GETされてくる値を保持します。webcodeは端末がShift_JISの場合でウェブコードを送信してくる場合のPOST/GETデータ、sjis-hexは端末がShift_JISの場合のPOST/GETデータ、utf8-hexは端末がUTF-8の場合のPOST/GETデータになっています。
1023    POST/GETされたデータはこの要素に記述されたコードとマッチングされ、マッチした場合絵文字を特定します。
1024      </li>
1025    <br />
1026    <br />
1027      <li>&lt;imode&gt;要素<br />
1028    &lt;ezweb&gt;要素でマッチした場合に参照されるSoftBank絵文字に対応するDoCoMo絵文字番号を保持します。mod_chxjによりDoCoMo絵文字に変換する場合に使用されます。
1029      </li>
1030    <br />
1031    <br />
1032    </ol>
1033    </subsection>
1034    
1035    
1036  </subsection>  </subsection>
1037  </section>  </section>
1038    
1039    <br />
1040    <br />
1041    
1042    
1043    
1044    
1045    
1046    
1047    <!-- ================================================================================ -->
1048    <!--                                                                                  -->
1049    <!-- デバイス定義                                                                     -->
1050    <!--                                                                                  -->
1051    <!-- ================================================================================ -->
1052  <section title="デバイス定義 device_data.xml">  <section title="デバイス定義 device_data.xml">
1053  mod_chxjの動作を決定付ける重要な定義です。変換対象の端末は全て、device_data.xmlファイルに定義される必要があります。  mod_chxjの動作を決定付ける重要な定義です。変換対象の端末は全て、device_data.xmlファイルに定義される必要があります。
1054  定義されていない端末は、mod_chxjとしては、認識することができません。認識できない場合には、変換せずにそのまま出力します。ただし、Perl互換の正規表現によって定義できるため、正規表現の書き方によっては全ての機種に対応させることも可能です。  定義されていない端末は、mod_chxjとしては、認識することができません。認識できない場合には、変換せずにそのまま出力します。ただし、Perl互換の正規表現によって定義できるため、正規表現の書き方によっては全ての機種に対応させることも可能です。
1055    
1056    <br />
1057    <subsection title="デバイス定義の要素">
1058    まず以下にデバイス定義を記します。
1059    <program title="device_data.xml">
1060    &lt;devices&gt;
1061      &lt;user_agent pattern="^KDDI-([^     ]+) UP.Browser/[^   ]+ .+"&gt;
1062        &lt;device&gt;
1063          &lt;device_id&gt;HI21&lt;/device_id&gt;
1064          &lt;device_name&gt;C3001H&lt;/device_name&gt;
1065          &lt;html_spec_type&gt;XHTML_MOBILE_1_0&lt;/html_spec_type&gt;
1066          &lt;width&gt;120&lt;/width&gt;
1067          &lt;heigh&gt;130&lt;/heigh&gt;
1068          &lt;gif&gt;true&lt;/gif&gt;
1069          &lt;jpeg&gt;true&lt;/jpeg&gt;
1070          &lt;png&gt;true&lt;/png&gt;
1071          &lt;bmp2&gt;false&lt;/bmp2&gt;
1072          &lt;bmp4&gt;false&lt;/bmp4&gt;
1073          &lt;color&gt;4096&lt;/color&gt;
1074          &lt;emoji_type&gt;C&lt;/emoji_type&gt;
1075          &lt;wp_width&gt;120&lt;/wp_width&gt;
1076          &lt;wp_heigh&gt;116&lt;/wp_heigh&gt;
1077          &lt;cache&gt;9740&lt;/cache&gt;
1078          &lt;dpi_width&gt;72&lt;/dpi_width&gt;
1079          &lt;dpi_heigh&gt;72&lt;/dpi_heigh&gt;
1080          &lt;charset&gt;SJIS&lt;/charset&gt;
1081        &lt;/device&gt;
1082        ・
1083        ・
1084        ・
1085      &lt;/user_agent&gt;
1086      &lt;user_agent&gt;
1087        ・
1088        ・
1089        ・
1090      &lt;/user_agent&gt;
1091        ・
1092        ・
1093        ・
1094    &lt;/devices&gt;
1095    </program>
1096    デバイス定義は&lt;devices&gt;タグに囲まれた中に記述します。
1097    devicesタグはuser_agentタグを子に持ちます。user_agentはpattern属性を保持し、端末のUser-Agentヘッダとマッチングされます。user_agentタグのpattern属性とマッチした場合には、そのuser_agentタグの子ノードであるdevice要素を1つづつ見に行きます。user_agentタグのpattern属性は正規表現となっていて、$1がデバイス識別IDになるように定義されていますので、$1とdevice_idタグの要素をマッチングします。マッチしたdeviceを該当端末とし、mod_chxjは該当端末用の変換処理を行います。
1098    
1099    <br />
1100    以下に各タグについての説明を記します。
1101    <ol>
1102      <li><b>devicesタグ</b><br />
1103         全ての要素は一組のdevicesタグに囲まれます。この中に存在する要素がデバイス定義になります。
1104        <br />
1105        <br />
1106      </li>
1107      <li><b>user_agentタグ</b><br />
1108        User-Agentのパターンとそのパターンにマッチするdeviceを子ノードに持ちます。<br />
1109        pattern属性にはUser-AgentとマッチさせるPerl互換の正規表現を指定します<br />
1110        仮に"KDDI-CA31 UP.Browser/・・・"というUser-Agentを保持する端末からのアクセスがあった場合は、
1111        &lt;user_agent pattern="^KDDI-([^     ]+) UP.Browser/[^   ]+ .+"&gt;にマッチしますが、&lt;user_agent pattern="^UP.Browser/[^\-]+-([^     ]+) .+" &gt;
1112        にはマッチしません。
1113        よってmod_chxjは&lt;user_agent pattern="^KDDI-([^     ]+) UP.Browser/[^   ]+ .+"&gt;の子ノードを処理対象と判断します。<br />
1114        pattern属性の要素である正規表現には必ず$1で後方参照できるようグルーピングが必要です。$1で後方参照する値は以下に記すdevice_idタグの値と比較されます。
1115        device_idとの比較の結果、等しい値であればそのdevice_idを保持するdeviceタグが該当端末として選択されます。<br />
1116        user_agentタグレベルではマッチしているもののdevice_idが期待する値を持っていない場合は、user_agentタグ中の最後のdeviceが選択されます。
1117        <br />
1118        <br />
1119      </li>
1120      <li><b>deviceタグ</b><br />
1121        一台の端末を表現します。<br />
1122        子ノードとして以下を保持します。<br />
1123        <ol>
1124          <li>device_id</li>
1125          <li>device_name</li>
1126          <li>html_spec_type</li>
1127          <li>width</li>
1128          <li>height</li>
1129          <li>gif</li>
1130          <li>jpeg</li>
1131          <li>png</li>
1132          <li>bmp2</li>
1133          <li>bmp4</li>
1134          <li>color</li>
1135          <li>emoji_type</li>
1136          <li>wp_width</li>
1137          <li>wp_height</li>
1138          <li>cache</li>
1139          <li>dpi_width</li>
1140          <li>dpi_height</li>
1141          <li>charset</li>
1142        </ol>
1143        <br /><br />
1144      </li>
1145      <li><b>device_idタグ</b><br />
1146        user_agentタグのpattern属性により生成された$1により後方参照される値と比較される値を保持します。通常DoCoMoであればUser-Agentの「機種名」部、
1147        auであればUser-Agentの「デバイスID」部、 SoftBankであれば、User-Agentの「機種名」部を記述します。
1148        <program title="例">
1149          &lt;!-- DoCoMo F905iの場合 --&gt;
1150          &lt;device_id&gt;F905i&lt;/device_id&gt;
1151    
1152          &lt;!-- au W54Tの場合 --&gt;
1153          &lt;device_id&gt;TS3E&lt;/device_id&gt;
1154    
1155          &lt;!-- SoftBank 822SHの場合 --&gt;
1156          &lt;device_id&gt;822SH&lt;/device_id&gt;
1157        </program>
1158      </li>
1159      <li><b>device_nameタグ</b><br />
1160        mod_chxjでは本値をデバッグログ出力時にのみ使用します、人が見てわかりやすい名前を入力しておきます。
1161        device_idと混同しないように注意します。
1162        <program title="au W21CAの例">
1163          &lt;device_name&gt;W21CA&lt;/device_name&gt;
1164        </program>
1165      </li>
1166      <li><b>html_spec_typeタグ</b><br />
1167        端末のサポートするHTMLタイプを指定します。本タグの値によりHTML変換結果が変わります。
1168        指定できる値は以下のとおりです。大文字、小文字は区別しません。
1169        <table title="対応HTMLタイプ一覧">
1170          <thead>
1171            <tr>
1172              <td>値</td>
1173              <td>意味</td>
1174            </tr>
1175          </thead>
1176          <tbody>
1177            <tr>
1178              <td>CHTML_1_0</td>
1179              <td>CHTML1.0対応機種の場合記述します。HTML変換結果はCHTML1.0になります。</td>
1180            </tr>
1181            <tr>
1182              <td>CHTML_2_0</td>
1183              <td>CHTML2.0対応機種の場合記述します。HTML変換結果はCHTML2.0になります。</td>
1184            </tr>
1185            <tr>
1186              <td>CHTML_3_0</td>
1187              <td>CHTML3.0対応機種の場合記述します。HTML変換結果はCHTML3.0になります。</td>
1188            </tr>
1189            <tr>
1190              <td>CHTML_4_0</td>
1191              <td>CHTML4.0対応機種の場合記述します。HTML変換結果はCHTML4.0になります。(0.9.0時点ではCHTML3.0と同じ)</td>
1192            </tr>
1193            <tr>
1194              <td>CHTML_5_0</td>
1195              <td>CHTML5.0対応機種の場合記述します。HTML変換結果はCHTML5.0になります。(0.9.0時点ではCHTML3.0と同じ)</td>
1196            </tr>
1197            <tr>
1198              <td>CHTML_6_0</td>
1199              <td>CHTML6.0対応機種の場合記述します。HTML変換結果はCHTML6.0になります。(0.9.0時点ではCHTML3.0と同じ)</td>
1200            </tr>
1201            <tr>
1202              <td>CHTML_7_0</td>
1203              <td>CHTML7.0対応機種の場合記述します。HTML変換結果はCHTML7.0になります。(0.9.0時点ではCHTML3.0と同じ)</td>
1204            </tr>
1205            <tr>
1206              <td>XHTML_MOBILE_1_0</td>
1207              <td>auのXHTML対応機種の場合に記述します。HTML変換結果はXHTMLになります。</td>
1208            </tr>
1209            <tr>
1210              <td>HDML</td>
1211              <td>auのHDML対応機種の場合に記述します。HTML変換結果はHDMLになります。</td>
1212            </tr>
1213            <tr>
1214              <td>JHTML</td>
1215              <td>SoftBankの端末の場合に記述します。HTML変換結果はSoftBank用HTMLになります。</td>
1216            </tr>
1217          </tbody>
1218        </table>
1219      </li>
1220      <li><b>widthタグ</b><br />
1221        端末の横幅を指定します。
1222      </li>
1223      <li><b>heightタグ</b><br />
1224        端末の縦幅を指定します。
1225      </li>
1226      <li><b>gifタグ</b><br />
1227        端末がgif画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note>
1228      </li>
1229      <li><b>jpegタグ</b><br />
1230        端末がjpeg画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note>
1231      </li>
1232      <li><b>pngタグ</b><br />
1233        端末がpng画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note>
1234      </li>
1235      <li><b>bmp2タグ</b><br />
1236        端末がbmp2画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note>
1237        通常はfalse。
1238      </li>
1239      <li><b>bmp4タグ</b><br />
1240        端末がbmp4画像を表示することができる場合(サポートしている場合)はtrueを指定します。表示できない(サポートしていない)場合はfalseを指定します。<note>大文字、小文字の区別なし</note>
1241        通常はfalse。
1242      </li>
1243      <li><b>colorタグ</b><br />
1244        端末の表示可能色数。
1245      </li>
1246      <li><b>emoji_typeタグ</b><br />
1247        auの場合に指定します。au以外の場合は指定しても意味はありません。<br />
1248        設定できる値は以下のとおり。
1249        <table title="emoji_typeに設定できる値">
1250          <thead>
1251            <tr>
1252              <td>値</td>
1253              <td>意味</td>
1254            </tr>
1255          </thead>
1256          <tbody>
1257            <tr>
1258              <td>A</td>
1259              <td>図柄タイプAをサポートしている場合に指定します。</td>
1260            </tr>
1261            <tr>
1262              <td>B</td>
1263              <td>図柄タイプBをサポートしている場合に指定します。</td>
1264            </tr>
1265            <tr>
1266              <td>C</td>
1267              <td>図柄タイプCをサポートしている場合に指定します。</td>
1268            </tr>
1269            <tr>
1270              <td>D</td>
1271              <td>図柄タイプDをサポートしている場合に指定します。</td>
1272            </tr>
1273          </tbody>
1274        </table>
1275        <note>大文字、小文字の区別なし</note>
1276      </li>
1277      <li><b>wp_widthタグ</b><br />
1278        壁紙の横幅を指定します。Mode=WPで画像生成する場合、この値が使用されます。
1279      </li>
1280      <li><b>wp_heightタグ</b><br />
1281        壁紙の縦幅を指定します。Mode=WPで画像生成する場合、この値が使用されます。
1282      </li>
1283      <li><b>cacheタグ</b><br />
1284        ブラウザのキャッシュサイズを指定します。
1285      </li>
1286      <li><b>dpi_widthタグ</b><br />
1287        端末の解像度。
1288      </li>
1289      <li><b>dpi_heightタグ</b><br />
1290        端末の解像度。
1291      </li>
1292      <li><b>charsetタグ(0.9.0にて追加)</b><br />
1293        端末に送信する文字コードを指定します。指定できる値はSJISかUTF-8のみ。
1294      </li>
1295    </ol>
1296    <br />
1297    </subsection>
1298    <br />
1299  </section>  </section>
1300    
1301    
# Line 996  DoCoMo端末などのRefererに対応していない?/span> Line 1459  DoCoMo端末などのRefererに対応していない?/span>
1459  本機能は、Cookieシミュレート機能を有効にすると、自動で有効になります(将来的には変更予定)。  本機能は、Cookieシミュレート機能を有効にすると、自動で有効になります(将来的には変更予定)。
1460  </subsection>  </subsection>
1461  </section>  </section>
1462    
1463    
1464    
1465  </body>  </body>
1466  </doc>  </doc>

Legend:
Removed from v.1.30  
changed lines
  Added in v.1.31

Back to OSDN">Back to OSDN
ViewVC Help
Powered by ViewVC 1.1.26