[html5-developers-jp:878] xml構文とhtml構文でのdoctypeは同じですか?

198 views
Skip to first unread message

Maruyama Akira

unread,
Apr 23, 2010, 10:21:29 PM4/23/10
to html5-dev...@googlegroups.com
初めまして、丸山と申します。
2000人突破おめでとうございます。

ずっとプログラマーよりな話題が多かったのですが、最近デザイン的な話題が
多くなって嬉しい限りです。

HTML5は勉強中なので、まだまだな自分ですが、Dreamweaverでhtml5タグを
コードヒントを出せる機能拡張などを作ったりしています。

先日リリースされたCS5ですがHTML5には対応していないので、CS6までは
それなりにDreamweaverの作業環境に貢献出来るかなと思っています。

さて質問なのですが、HTML5にはxml構文、html構文が存在します。
その際のdoctypeなのですが、html5.jpとかW3Cのサイトとか見ていても
<!DOCTYPE html>
で両者で違いがないという認識をもっております。

ただ海外のサイトとか見ていると
<!DOCTYPE xhtml>
とか極たまに見かけたりしました。

これはアリなのでしょうか?
Dreamweaverの仕様上、同じdoctypeだと新規ファイルで構文の選択が出来ないので
これがありなら提供している機能拡張でxml構文、html構文が共存出来るようになるので
非常にありがたかったりします。

あとxml構文、html構文での違いとして

xml構文では
・UTF-8以外だと先頭にxml宣言が必須
・<html xmlns="http://www.w3.org/1999/xhtml"> とする。
・空要素タグは最後を " />"とする。

その他共通として
doctypeは
<!DOCTYPE html>

charsetは
<meta charset="UTF-8" />
ですが、これまでの
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
でも可。

と思っているのですが、認識として正しいでしょうか?
以上お恥ずかしい質問ですが、教えていただけばと思います。


あと5月のCSS Nite in OSAKAにも参加します。
http://osaka.cssnite.jp/vol20/

白石さん、羽田野さんにお会いできるのを楽しみにしております。


 □□
 □□ Akira Maruyama(丸山 章)
 □□
 □□ mailto:akira...@gmail.com
 □□ blog: http://dwlog.net/
 □□ twitter: http://twitter.com/akira_maru
 □□ mixi: http://mixi.jp/show_friend.pl?id=7200
 □□

--
このメールは Google グループのグループ「html5-developers-jp」の登録者に送られています。
このグループに投稿するには、html5-dev...@googlegroups.com にメールを送信してください。
このグループから退会するには、html5-developer...@googlegroups.com にメールを送信してください。
詳細については、http://groups.google.com/group/html5-developers-jp?hl=ja からこのグループにアクセスしてください。

Shumpei Shiraishi

unread,
May 2, 2010, 10:09:09 PM5/2/10
to html5-dev...@googlegroups.com
白石です。

遅レスですいません。。
解決済みかも知れませんが、とても良い質問だと思うので、一応ご返答をば。

> ただ海外のサイトとか見ていると
> <!DOCTYPE xhtml>
> とか極たまに見かけたりしました。
> これはアリなのでしょうか?

うお、このDOCTYPEはナシですね。あぶないあぶない。
DOCTYPE宣言の後に続くのはルート要素の名前なので、上の記述だと「<xhtml>」って要素があるような書き方になってます。

参考:
http://www.techscore.com/tech/XML/Basic/3_2.html

> xml構文では
> ・UTF-8以外だと先頭にxml宣言が必須
> ・<html xmlns="http://www.w3.org/1999/xhtml"> とする。
> ・空要素タグは最後を " />"とする。
> その他共通として
> doctypeは
> <!DOCTYPE html>
> charsetは
> <meta charset="UTF-8" />
> ですが、これまでの
> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
> でも可。

バッチリです!わかりやすいまとめになっていて、素晴らしいです。
他には、
・<meta charset="UTF-8">の記述は先頭から512バイト以内で完了させる(<head>の先頭に書くのが無難)
・<meta charset="">と<meta http-equiv="Content-Type">は混在させてはいけない(どちらかのみ)
・XML構文では、charsetの指定はXML宣言で行うので<meta charset="">は不要
と言ったところでしょうか。

XHTML5とHTML5の違いは、他にも仕様書で簡潔にまとめられている箇所がありますので、ご参照頂ければ。
http://www.whatwg.org/specs/web-apps/current-work/multipage/introduction.html#html-vs-xhtml

あと、XHTML5とHTML5の見分け方ですが、DOCTYPEが同一だとしてもいろいろ方法はあるかもしれませんね。
ぱっと思いつくのは、
・先頭にxml宣言があるならXHTML5
・<!DOCTYPE html>が先頭にないならXHTML5(HTML5では必須)
・<html>に名前空間指定があるならXHTML5
・他には、ファイル拡張子とか
xml宣言も省略可能だし、XHTML5にDOCTYPEを付けるのも、HTML5で名前空間指定を行うのも(無視される)許容されているので、なかなか決め手にはなりにくいですが、上記の条件を合わせ技で判定すれば、相当な精度で見分けがつくんじゃないでしょうか。

> あと5月のCSS Nite in OSAKAにも参加します。
> http://osaka.cssnite.jp/vol20/
> 白石さん、羽田野さんにお会いできるのを楽しみにしております。

おお、こちらこそ。よろしくお願いいたします!





2010/4/24 Maruyama Akira <akira...@gmail.com>:

Maruyama Akira

unread,
May 3, 2010, 3:34:40 AM5/3/10
to html5-dev...@googlegroups.com
こんにちわ、丸山です。

白石さん、レスありがとうございます。
DMで回答を頂きましたので、一部異なる部分を確認も含めシェアします。

>> ・UTF-8以外だと先頭にxml宣言が必須

こちら、エンコーディングがHTTPヘッダーなどで指定されていれば、UTF-8に限らずXML宣言を省いてもいいのでは?
とありました。どうなんでしょうか?

>> ・空要素タグは最後を " />"とする。

自分の中ではスラッシュの前の半角は必要だと思っていたのですが、そうでないということでした。
http://www.w3.org/TR/xml/#NT-EmptyElemTag

まああったほうが読みやすいということでしょうか。w

> ・XML構文では、charsetの指定はXML宣言で行うので<meta charset="">は不要
> と言ったところでしょうか。

これですが、xml宣言が無い場合は何で判断するのでしょうか?

IWAI, Masaharu

unread,
May 3, 2010, 3:43:39 AM5/3/10
to html5-dev...@googlegroups.com
岩井です。

2010年4月24日11:21 Maruyama Akira <akira...@gmail.com>:
> あとxml構文、html構文での違いとして
>
> xml構文では
> ・UTF-8以外だと先頭にxml宣言が必須

概ねそういう理解でいいかも知れませんが、例えばHTTPレスポンスヘッダで指定しておけば
XML 1.0的には大丈夫です。
逆に、xml宣言にもHTTPレスポンスヘッダのようなハイレベルプロトコルにもない場合は
致命的なエラーとされます。
http://www.w3.org/TR/REC-xml/#charencoding
( XHTML 1.0にもそのあたりの言及あったけど、HTML5 は未調査 )

あと、一応UTF-16もXML 1.0的には省略可能。


> ・空要素タグは最後を " />"とする。

まあ、そういう理解で実務上は問題ないとは思います。たぶん。
HTML5 Japanese Interest Group MLの次の話題を読むと理解が深まるかと思います。

空要素タグの文法
http://lists.w3.org/Archives/Public/public-html-ig-jp/2009Nov/0005.html


--
いわい

IWAI, Masaharu

unread,
May 3, 2010, 3:53:08 AM5/3/10
to html5-dev...@googlegroups.com
岩井です。

2010年5月3日16:34 Maruyama Akira <akira...@gmail.com>:
> DMで回答を頂きましたので、一部異なる部分を確認も含めシェアします。

なんでDMなんだろう。まあいいけど。
実名やそれに準ずるものが嫌なら専用メールアドレスで参加してほしいな。


>>> ・UTF-8以外だと先頭にxml宣言が必須
>
> こちら、エンコーディングがHTTPヘッダーなどで指定されていれば、UTF-8に限らずXML宣言を省いてもいいのでは?
> とありました。どうなんでしょうか?

私の知っていることは別メールに書いた通りなので省略。


>>> ・空要素タグは最後を " />"とする。
>
> 自分の中ではスラッシュの前の半角は必要だと思っていたのですが、そうでないということでした。
> http://www.w3.org/TR/xml/#NT-EmptyElemTag
>
> まああったほうが読みやすいということでしょうか。w

そこはXML 1.0の仕様ですね。
| EmptyElemTag ::= '<' Name (S Attribute)* S? '/>
とあるように、「S」はあってもなくてもいいのです。

HTMLにまつわる話では、そもそもは、過去のXMLに対応していないウェブブラウザのために
空白類が入ることが推奨されていました。
しかしながら、HTML5を策定中の現在、そのようなウェブブラウザは考慮しなくてよくなったという
判断だと思います。
あとは別メールで紹介した話題をみていただければより深く理解できると思います。


>> ・XML構文では、charsetの指定はXML宣言で行うので<meta charset="">は不要
>> と言ったところでしょうか。
>
> これですが、xml宣言が無い場合は何で判断するのでしょうか?

XML宣言にもなく、ハイレベルプロトコルにもなければUTF-8かUTF-16と理解されると思います。
そのどちらでもなければ、ウェブブラウザなどのエラーを許容した方がいいUAは頑張って処理する
んじゃないかなー。
(HTML5でどう規定されているのか、そもそも規定されているのかも未確認。ごめんなさい)

--
いわい

Futomi Hatano

unread,
May 3, 2010, 4:24:07 AM5/3/10
to html5-dev...@googlegroups.com
丸山さん

羽田野@HTML5.JPです。

On Mon, 3 May 2010 16:34:40 +0900
Maruyama Akira <akira...@gmail.com> wrote:
> > ・XML構文では、charsetの指定はXML宣言で行うので<meta charset="">は不要
> > と言ったところでしょうか。
>
> これですが、xml宣言が無い場合は何で判断するのでしょうか?

HTML5仕様から、xml宣言がない場合のエンコーディング判定アルゴリズムを見つけることはできませんでしたが、
HTML5仕様では、もし心配なら宣言を入れるべきと言ってます。
http://www.w3.org/TR/html5/semantics.html#charset
結局のところ、もしUTF-8でないエンコーディングにもかかわらず、xml宣言が入っていない場合、UAががんばってくれることを祈ることになるのでしょうね。

ちなみに、余談ですが、XHTML5では、<meta charset="">を入れても構いませんが、入れたとしても、意味がないものとなります。
しかも、仮に入れた場合、charsetの値は "UTF-8" に限定されます。
http://www.w3.org/TR/html5/semantics.html#meta

早い話、HTML5では Shift_JISやEUC-JPは非推奨ってことですね。

--
Futomi Hatano
http://www.html5.jp/
http://www.futomi.com/
http://twitter.com/futomi

Shumpei Shiraishi

unread,
May 3, 2010, 4:53:08 AM5/3/10
to html5-dev...@googlegroups.com
丸山さん

丸山さん的にほとんど解決済みの内容を、わざわざご返答頂いてありがとうございますm(_ _)m
メーリングリストって敷居が高いと言う意見も良く聞きますので、DMは全然アリじゃないかなあと思います、管理人的には。
なのにわざわざ、情報共有にご協力頂き、ありがとうございました。

岩井さん、羽田野さん

補足ありがとうございます!
お二人とも、さすがです。



2010/5/3 Futomi Hatano <futomi...@gmail.com>:
Reply all
Reply to author
Forward
0 new messages