Durian

XHTMLBasic変換仕様

XHTMLBasicの構文

XHTMLBasic のページは、W3C により勧告された XHTMLBasic 1.0 仕様に準拠した構文とします。

以下に最も簡単な XHTMLBasic のページを示します。

<?xml version="1.0" encoding="Shift_JIS"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML Basic 1.0//EN" "http://www.w3.org/TR/xhtml-basic/xhtml-basic10.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
	<head><title>Hello!</title></head>
	<body>
		<h1>Hello!</h1>
	</body>
</html>

XML宣言

XHTMLBasic ページの1行目にXML宣言が必要です。

※XML仕様ではXML宣言が必須ではありませんが、DurianではXML宣言が必要です。

キャラクタエンコーディング

Shift_JIS・EUC-JP・UTF-8が使用可能です。

制限されるタグ

タグ・属性 説明
baseタグ 使用できません
paramタグ 無視されます

絵文字

XHTMLBasicの仕様では規定されていない絵文字および入力モードについては、Durianにより拡張された構文を使用します。構文の詳細については、開発リファレンスを参照してください。

機能 表記方法
絵文字 &i-mode_63647; や &YahooKeitai-C1-21; のようなエンティティ参照
入力モード inputまたはtextarea要素のtext:type属性で、text:type="hiragana"のように指定

mailtoリンク

mailtoリンクでsubjectやbodyを指定する場合、XMLのキャラクタエンコーディングと同じエンコーディングを使用してURLエンコードする必要があります。

たとえば、以下は件名に「Durian」、本文に「テスト」を指定したmailtoリンクですが、Shift_JISを使用してURLエンコードを行っています。

<?xml version="1.0" encoding="Shift_JIS"?>
	...
<a href="mailto:foo@example.com?subject=%82c%82%95%82%92%82%89%82%81%82%8e&amp;amp;body=%83%65%83%58%83%67">メール</a>

留意点と制限事項

書式

  • 必ず整形式のXHTMLBasicで記載してください(W3C定義のXML構文に準拠していない場合はパースエラーとなります)

キャラクタエンコーディングの判別

XHTMLBasicのキャラクタエンコーディングは次のルールに従って判別されます。文字化けを防ぐためにも正しく設定を行ってください。

キャラクタエンコーディング判別を[自動判別]に設定している場合 もしくは Durian 4.4以前

  1. XML宣言のencoding属性をとしてキャラクタエンコーディングとして使用します

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

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

JSP

  • JSPでXHTMLBasicを記述する場合は、2行目以降にpageディレクティブを指定し、XMLのエンコーディングと同じcharsetを指定します。
<?xml version="1.0" encoding="Windows-31J"?>
<%@ page contentType="text/html; charset=Windows-31J"%>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja">
	...
</html>
  • Durianには、URLへのセッションID自動付加機能があるため、リンクやフォームの送信先URLをURLエンコードする必要はありません。リダイレクトする場合でもURLエンコードは不要です。
  • JSPからインクルードアクション()やフォワードアクション()を行うと、インクルード先やフォワード先のページがリソースセレクトされます。JSPディレクティブで指定したJSPエラーページもコンテンツ変換されます。

JSPの制限・注意事項

  • リクエストおよびセッションの属性で、"durian." から始まる名前はDurianで予約されています(Filterのみ)
  • JSPからhtmlのインクルードを行うと、文字化けが発生します(Filterのみ)
  • JSPのエラーページはリソースセレクトされません(Filterのみ)
  • ユーザ情報プロパティを使用している場合、HttpServletRequestクラスのgetInputStreamメソッドやgetContentLengthメソッドは使用できません(Filterのみ)
  • インクルード先やフォワード先のページに対してリソースセレクトは行われません(Proxyのみ)

Servlet

  • ServletからXHTMLBasicを出力する場合も同様にXML宣言から出力します。
  • ServletからJSPへフォワードした場合は、そのフォワード先ページがコンテンツ変換されます。

Servletの制限・注意事項

  • リクエストおよびセッションの属性で、"durian." から始まる名前はDurianで予約されています(Filterのみ)
  • ServletからHTMLのインクルードが正しく行えません(Filterのみ)
  • ユーザ情報プロパティを使用している場合、HttpServletRequestクラスのgetInputStreamメソッドやgetContentLengthメソッドは使用できません(Filterのみ)

絵文字

書式 *****で指定可能な記述 説明
&i-mode_*****; 63647から63919 DoCoMo基本絵文字のShift_JISコード
&i-mode-ex_*****; 63921から63996 DoCoMo拡張絵文字のShift_JISコード
&i-mode_U*****; Unicode DoCoMo用絵文字のUnicode
&YahooKeitai-C_*****; [ページ番号1文字]-[ページ内のコード2文字] SoftBankC型端末用絵文字
&YahooKeitai-P_*****; [ページ番号1文字]-[ページ内のコード2文字] SoftBankP型端末用絵文字
&YahooKeitai_U*****; Unicode SoftBank用絵文字のUnicode
&ezweb-1_*****; アイコン番号またはアイコン名 au cdmaOne300シリーズ、Tu-Ka0Xシリーズ、白黒端末用絵文字
&ezweb-2_*****; アイコン番号またはアイコン名 au cdmaOne400シリーズ、Tu-Ka1Xシリーズ用絵文字
&ezweb-3_*****; アイコン番号またはアイコン名 au cdmaOne1000/3000シリーズ、Tu-Ka2Xシリーズ、Tu-Ka3Xシリーズ用絵文字
&ezweb-4_*****; アイコン番号またはアイコン名 au cdmaOne5000シリーズ、WINシリーズ、Tu-Ka4Xシリーズ、Tu-Ka5Xシリーズ用絵文字
&ezweb_U*****; Unicode au用絵文字のUnicode

DoCoMoの絵文字「晴れ」の記述例

&i-mode_63647;

SoftBank(C型)の絵文字「スマイル顔」の記述例

&YahooKeitai-C_1-76;

auの絵文字「ビックリマーク」の記述例

&ezweb-1_1;
&ezweb-1_exclamation;

XHTMLBasicで記述された絵文字エンティティ参照は、携帯では絵文字または代替文字に、PC・PDAではimgタグに変換します。

また、auのタイプD絵文字には対応していません。

絵文字一覧は、各キャリアのサイトを参照してください。

  • DoCoMo絵文字
  • SoftBank絵文字
  • au絵文字

入力モード

XHTMLBasicで初期入力モード(DoCoMoではistyle属性に相当します)を指定するには、以下のように記述します。

<input type="xxxx" name="yyyy" text:type="numeric" />

また、タグの属性にプレフィックスtextの名前空間URI xmlns:text="http://www.symmetric.co.jp/durian/" を設定する必要があります。

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:text="http://www.symmetric.co.jp/durian/">

text:type属性には、以下の値が指定できます。

text:type属性 説明
hiragana ひらがな
katakana カタカナ
alphabet アルファベット
capitalLetter 英数大文字
smallLetter 英数小文字
numeric 数字

以下にサンプルを示します。

<?xml version="1.0" encoding="Shift_JIS"?> 
<html xmlns="http://www.w3.org/1999/xhtml" 
 xmlns:text="http://www.symmetric.co.jp/durian/">
	...
	 ユーザ名<br />
	 <input type="text" name="id" text:type="alphabet" /><br />
	 パスワード<br />
	 <input type="password" name="pass" text:type="numeric" /><br />
	...
</html>


コメント・ホワイトスペース・改行の削除

端末に送信されるデータを圧縮するため、コメントや連続するホワイトスペース(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.