CHTML変換仕様
CHTMLの構文
CHTMLのバージョン
基準マークアップ言語として使用するCHTMLは、CHTML 4.0までが使用できます。
※Durian 4.2以前では、CHTML 3.0までの対応です。
制限されるタグ
タグ・属性 | 説明 |
---|---|
baseタグ | 使用できません |
cti属性 | 使用できません |
utn属性 | iモードのみ有効 |
telbook、kana、email属性 | 使用できません |
キャラクタエンコーディング
Shift_JIS・EUC-JP・UTF-8が使用可能です。
絵文字
絵文字を記述する場合は、通常のiモード絵文字の指定方法(*****;/*****;/Shift_JIS 2バイトコード)が使用できます。
DoCoMoの絵文字「晴れ」の記述例

絵文字一覧はNTTドコモの技術情報サイトを参照してください。
mailtoリンク
mailtoリンクでsubjectやbodyを指定する場合、CHTMLのキャラクタエンコーディングと同じエンコーディングを使用してURLエンコードする必要があります。
たとえば、以下は件名に「Durian」、本文に「テスト」を指定したmailtoリンクですが、Shift_JISを使用してURLエンコードを行っています。
<a href="mailto:foo@example.com?subject=%82c%82%95%82%92%82%89%82%81%82%8e&body=%83%65%83%58%83%67">メール</a>
変換仕様
- i-appliに対応していない端末でアクセスした時のダウンロード用のAタグのhref属性は削除されます。
- テーブルタグをサポートしていない端末はテーブルタグが削除されます
- Flashをサポートしていない端末ではObjectタグが削除されます
制限されるタグ
以下のタグは使用することができません。使用した場合、削除されます。
applet | b | basefont | bdo | |
button | col | colgroup | del | fieldset |
i | iframe | ins | isindex | legend |
noframes | noscripts | optgroup | s | |
script | small | strike | sub | sup |
tbody | tfoot | thead | tt | var |
iモードサイトの携帯全キャリア対応
既存のiモードサイトがある場合などは、Durianを使って全キャリア対応させることができます。
- ただし、いくつかのタグ、属性の使用が制限されます。
留意点と制限事項
キャラクタエンコーディングの判別
CHTMLのキャラクタエンコーディングは次のルールに従って判別されます。文字化けを防ぐためにも正しく設定を行ってください。
キャラクタエンコーディング判別を[自動判別]に設定している場合 もしくは Durian 4.4以前
- HTTPレスポンスヘッダContent-Typeにcharsetパラメータがあれば、charsetパラメータで指定されたキャラクタエンコーディングを使用します
- CHTMLの先頭にUTF-8のBOMがあれば、UTF-8をキャラクタエンコーディングとして使用します
- バイト列の並びからShift_JIS・EUC-JP・ISO-2022-JPを自動判別します
キャラクタエンコーディング判別を[手動設定]に設定している場合
- 管理ツールでキャラクタエンコーディング名に指定したキャラクタエンコーディングを使用します
コンテンツ変換
- タグの属性内に含まれるホワイトスペース(半角スペース、タブ、改行文字)が削除されたり、半角スペースに変換されます。inputタグのvalue属性にホワイトスペースを使用している場合などは注意が必要です
JSP
- Durianには、URLへのセッションID自動付加機能があるため、リンクやフォームの送信先URLをURLエンコードする必要はありません。リダイレクトする場合でもURLエンコードは不要です。
- JSPからインクルードアクション(<jsp:include ... />)やフォワードアクション(<jsp:forward ... />)を行うと、インクルード先やフォワード先のページがリソースセレクトされます。JSPディレクティブで指定したJSPエラーページもコンテンツ変換されます。
JSPの制限・注意事項
- リクエストおよびセッションの属性で、"durian." から始まる名前はDurianで予約されています(Filterのみ)
- JSPからhtmlのインクルードを行うと、文字化けが発生します(Filterのみ)
- JSPのエラーページはリソースセレクトされません(Filterのみ)
- ユーザ情報プロパティを使用している場合、HttpServletRequestクラスのgetInputStreamメソッドやgetContentLengthメソッドは使用できません(Filterのみ)
- インクルード先やフォワード先のページに対してリソースセレクトは行われません(Proxyのみ)
Servlet
- ServletからJSPへフォワードした場合は、そのフォワード先ページがコンテンツ変換されます。
Servletの制限・注意事項
- リクエストおよびセッションの属性で、"durian." から始まる名前はDurianで予約されています(Filterのみ)
- ServletからHTMLのインクルードが正しく行えません(Filterのみ)
- ユーザ情報プロパティを使用している場合、HttpServletRequestクラスのgetInputStreamメソッドやgetContentLengthメソッドは使用できません(Filterのみ)
初期入力モード(istyle属性)
「入力文字種を制限する」が「制限する」設定の場合(Durian4.3以降)
auでは端末側で入力文字種の切り替えができないようになるため、初期入力モードで指定した以外の文字入力ができません。
「au向け初期入力モード」が「EZwebでistyle属性を無効にする」設定の場合(Durian4.2以前)
auでは初期入力モードの指定が無効となり、すべて「ひらがな」となります。
コメント・ホワイトスペース・改行の削除
端末に送信されるデータを圧縮するため、コメントや連続するホワイトスペース(CR LF タブ スペース)を次のルールで統合及び削除します。
※Durian 4.3以降では、コメントを削除しない設定が可能です
- preやscript、style要素内のホワイトスペースは削除しない
- 1つ以上のホワイトスペースは、1つの半角スペースに変換する
- 日本語文字間に改行(CRおよびLFおよびCRLF)が1つある場合は、改行を削除する(この場合に限り、半角スペースを入れない)
- 日本語文字間に改行以外のホワイトスペースや2つ以上のホワイトスペースがある場合は、1つの半角スペースに変換する
変換前
<-- Javaのソースコード --> <pre> public class DurianFilter implements Filter { public DurianFilter() {} } </pre> <p> <a href="next.html" accesskey="1">次へ</a> </p>
変換後
<pre> public class DurianFilter implements Filter { public DurianFilter() {} } </pre><p><a href="next.html" accesskey="1">次へ</a></p>