Durian

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モード絵文字の指定方法(&#*****;/&#x*****;/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以前

  1. HTTPレスポンスヘッダContent-Typeにcharsetパラメータがあれば、charsetパラメータで指定されたキャラクタエンコーディングを使用します
  2. CHTMLの先頭にUTF-8のBOMがあれば、UTF-8をキャラクタエンコーディングとして使用します
  3. バイト列の並びからShift_JIS・EUC-JP・ISO-2022-JPを自動判別します

キャラクタエンコーディング判別を[手動設定]に設定している場合

  1. 管理ツールでキャラクタエンコーディング名に指定したキャラクタエンコーディングを使用します

コンテンツ変換

  • タグの属性内に含まれるホワイトスペース(半角スペース、タブ、改行文字)が削除されたり、半角スペースに変換されます。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>


Durian® is a registered trademark of Symmetric Co., Ltd.

© 2006- All Rights Reserved Symmetric Co., Ltd.