XHTML変換

概要

x-Servlet Version 2.8.0 から変換元コンテンツとして iモード対応XHTML で記述されたコンテンツからの変換に対応しました。

設定

xproxy.properties の supportsXhtmlInput で動作を設定します。

"true"とするとXHTMLファイルとして出力されます。(XHTMLに対応していない端末はそれぞれのマークアップ言語に変換されます)

"false"とすると旧バージョンと同様のキャリアごとの変換となります。

supportsXhtmlInputの値 docomo au SoftBank EMOBILE WILLCOM
true IXHTML XHTML Basic VHTML EXHTML CHTML
false CHTML XHTML Basic VHTML EXHTML CHTML

マークアップ言語名の表記については「ML名について」を参照ください。

Content-Typeの扱い

変換後に出力されるhtml内の<meta>で記述されるContent-Typeと、レスポンスヘッダの Content-Typeヘッダの内容はそれぞれ下記のように出力されます。

supportsXhtmlInput=true の動作

変換対象 x-Servletのバージョン contentの変換内容 変換結果例
<meta http-equiv="Content-Type" content="xxx"> 2.8.0 ~ 2.9.2 アクセスした端末が「iモードXHTML」端末の場合
  content="application/xhtml+xml; charset=(useragent.xmlの<Encoding>)"
それ以外は
  content="(useragent.xmlの<ContentType>)"
対象端末の場合
<meta http-equiv="Content-Type" content="application/xhtml+xml; charset=Shift_JIS">

それ以外の場合
<meta http-equiv="Content-Type" content="text/html;charset=Shift_JIS">
2.10.0 以降 アクセスした端末が「iモードXHTML(iモードブラウザ1.0)」端末の場合
  content="application/xhtml+xml; charset=(useragent.xmlの<Encoding>)"
それ以外は
  content="(useragent.xmlの<ContentType>)
HTTPレスポンスヘッダの Content-Type: 2.8.0 ~ 2.9.2 アクセスした端末が「iモードXHTML」端末の場合
  Content-Type: application/xhtml+xml; charset=(useragent.xmlの<Encoding>)
それ以外は
  Content-Type: (useragent.xmlの<ContentType>)
対象端末の場合
Content-Type: application/xhtml+xml; charset=Shift_JIS

それ以外の場合
Content-Type: text/html;charset=Shift_JIS
2.10.0 以降 アクセスした端末が「iモードXHTML(iモードブラウザ1.0)」端末の場合
  Content-Type: application/xhtml+xml; charset=(useragent.xmlの<Encoding>)
それ以外は
  Content-Type: (useragent.xmlの<ContentType>)

supportsXhtmlInput=false の動作

変換対象 x-Servletのバージョン contentの変換内容 変換結果例
<meta http-equiv="Content-Type" content="xxx"> 2.8.0 以降 元コンテンツの記述のまま。
ただし content 属性に charset が指定されている場合は、charset を削除
対象端末の場合
<meta http-equiv="Content-Type" content="text/html">
または
<meta http-equiv="Content-Type" content="application/xhtml+xml">
HTTPレスポンスヘッダの Content-Type: 2.8.0 以降 Content-Type: (useragent.xmlの<ContentType>) Content-Type: text/html;charset=Shift_JIS

変換対応表

iモード対応XHTMLからの変換表はXHTML CSS変換表をご覧ください。

注意点

  • Version2.9.2までは元コンテンツのContent-Type: が「text/html」であれば supportsXhtmlInput=true であっても htmlファイルとして変換を行っていました。
    Version2.10からはContent-Type: が「text/html」であってもsupportsXhtmlInput=trueならば一括してxhtmlファイルとして扱います。

iモードブラウザ1.0端末での制限

  • supportsXhtmlInput=true 設定では「Content-Typeの扱い」の通り、x-Servletからの出力は"application/xhtml+xml"になります。
    このときiモードブラウザ1.0端末上では強制的にxhtmlファイルと認識されますのでhtmlファイルに記述されている属性が無効になります。

    CHTMLコンテンツをiモードブラウザ2.0端末で表示した例

    実機表示 ソース
    <hr color="#6AA7DB" noshade="solid">
    <div align="center">
    <a name="new"></a>
    <font color="#FFFFFF">新商品</font>
    </div>
    <div align="left">
    <font color="#33FF00">■</font>クリスマスSALE<font color="#33FF00"></font><br>
        <font color="#0786F8">在庫一掃大処分</font><br>
    <font color="#FFFF00">■</font>プレゼントに最適<font color="#FFFF00"></font><br>
        <font color="#0786F8">ブリキのオモチャ</font><br>
    <font color="#FF33FF">■</font>今週のオススメ<font color="#FF33FF"></font><br>
        <font color="#0786F8">アンティークラジオ</font><br>
    </div>
    <hr color="#6AA7DB" noshade="solid">
    
    iモードブラウザ2.0端末ではHTMLコンテンツの装飾の属性が反映されています。

    CHTMLコンテンツをiモードブラウザ1.0端末で表示した例

    実機表示 ソース
    <hr color="#6AA7DB" noshade="solid">
    <div align="center">
    <a name="new"></a>
    <font color="#FFFFFF">新商品</font>
    </div>
    <div align="left">
    <font color="#33FF00">■</font>クリスマスSALE<font color="#33FF00"></font><br>
        <font color="#0786F8">在庫一掃大処分</font><br>
    <font color="#FFFF00">■</font>プレゼントに最適<font color="#FFFF00"></font><br>
        <font color="#0786F8">ブリキのオモチャ</font><br>
    <font color="#FF33FF">■</font>今週のオススメ<font color="#FF33FF"></font><br>
        <font color="#0786F8">アンティークラジオ</font><br>
    </div>
    <hr color="#6AA7DB" noshade="solid">
    
    iモードブラウザ1.0端末ではContent-Type:が"application/xhtml+xml"のCHTMLコンテンツで装飾の属性(ソース中赤字部分)が反映されません。

    この制限を回避するにはiモードブラウザ1.0端末の機種情報を"XHTML非対応端末"と定義することで、CHTMLをそのまま出力させます。

    設定方法
    • x-Servletユーザ専用ページから回避用の設定ファイル staticUA.xml をダウンロードします。
    • インストールしている x-Servlet の conf/staticUA.xml にダウンロードしたファイルの内容を追加します。
    • x-Servlet を再起動します。
    今後iモードブラウザ1.0端末が新たに発売された場合、再度ユーザ専用ページからstaticUA.xml をダウンロードし、更新する必要があります。
    対象機種の一覧はダウンロードしたファイルに同梱されている一覧をご参照ください。

    回避結果

    iモードブラウザ1.0端末ではCHTMLへの変換となり、Content-Type:も"text/html"となるので装飾の属性も反映されます。


    設定による注意事項
    XHTML非対応となることでXHTMLコンテンツはiモードブラウザ1.0端末ではCHTMLへ変換されます。
    その際、CSSプロパティが同一装飾となる HTML要素の各属性へ変換されますが、下記 CSSプロパティにおいては対応する属性が存在しないため削除されます。
    • div 要素の background-color プロパティ
    • div 要素の font-size プロパティ

    XHTML 元コンテンツ

    実機表示 ソース
    <div style="background-color:#6D6D6D;color:#6d6d6d;">
    <ul>
    <li>
    <a href="./not_yet_open.html"><img src="./SFP_ico_01_xpimg_png.gif"/>アクセス</a>
    </li>
    </ul>
    </div>
    <div style="font-size:xx-small;text-align:center;color:#6d6d6d;">
      SANO FUTSAL PARK は、x-Servlet のデモサイトです。<br/>
      Copyright  SANO FUTSAL PARK All rights reserved.
    </div>
    
    赤字部分は変換対象外のため削除されます。
    青字部分は属性に変換されるプロパティです。

    CHTML 変換結果

    実機表示 ソース
    <font color="#6d6d6d">
    <div>
    <ul>
    <li>
    <a href="./not_yet_open.html"><img src="./SFP_ico_01_xpimg_png.gif">アクセス</a>
    </li>
    </ul>
    </div>
    </font>
    <font color="#6d6d6d">
    <div align="center">
      SANO FUTSAL PARK は、x-Servlet のデモサイトです。<br>
      Copyright  SANO FUTSAL PARK All rights reserved.
    </div>
    </font>
    
    変換対象外のプロパティが削除されたため背景色が無くなり、文字サイズも標準になっています。
    対象となるプロパティは対応する属性に変換されます。
TOP