皆さまお世話になります。超ド級の初心者質問なのですが、<!DOCTYPE html PUBLIC "-//w3c//DTD XHTML1.0 Transitional//EN" "http://www.w3c.org/1999/xhtml">と言うタグにhttp://www.w3c.org/1999/xhtmllが、DOCTYPE宣言の中に含まれているのはどうしてなのですか?単独で書かれてあるのは見たことがあるのですが・・・教えて下さい。
また、<?xml version ="1.0" encoding = "UTF-8" standalone="yes"?>と言うタグが
<!DOCTYPE・・・・・>DOCTYPE宣言の前に書かれてあるのには、どういう意味があるのでしょうか?DOCTYPE宣言が最初に来ると思っていましたので、教えて下さい。どうぞ宜しくお願い致します。
No.2ベストアンサー
- 回答日時:
まず、<!DOCTYPE ...> はタグではありません。
マーク宣言の一種です(DOCTYPE「宣言」と書いているのに)。XML 宣言もタグではなく「XML 宣言」です。そうとしか言い様がありません。
そして、ちゃぶ台をひっくり返すようで恐縮ですが、
> <!DOCTYPE html
> PUBLIC "-//w3c//DTD XHTML1.0 Transitional//EN"
> "http://www.w3c.org/1999/xhtml">
こんな書式は(今のところ)ないです。書き写し間違いか、間違った書式を参考にしているか、どちらかだと思います。
そもそも、DOCTYPE 宣言は過去の遺物です。XHTML 1.0 でこれを書くのは後方互換性のためにすぎません。長ったらしい書式を書いて間違うくらいなら、いっそ HTML5 の <!DOCTYPE html>だけにした方が(いろんな意味で)無難です。
タグと宣言も分かっていない者です。申し訳ないです。ちゃぶ台をひっくり返されて当たり前です。仰るとおり、書き写し間違いでした。指摘して頂いて本当にありがとうございました。
No.3
- 回答日時:
一応、念のため。
> PUBLIC "-//w3c//DTD XHTML1.0 Transitional//EN"
おそらく PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" だと思われます。所有者を示す "W3C" は大文字、"XHTML" と "1.0" の間に空白が必要です。その後に続くのは、何でも良いのですが、たいていは "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitio … です。
これは要するに、この文書の設計図(DTD)の在処を示すものです。設計図は、文書のミスをチェックするのに必要です。
PUBLIC で示されるものは「W3C が作った XHTML 1.0 Transitional という設計図」の意味で、設計図が手元にあればそれを使うも良し、なければ探しに行くも良し、とにかく同じ設計図なら何でも良い、ということです。その後ろに続く URL は、そこに行けば間違いなく設計図があるぞ、という意味です。名前空間ではありません。
ネットにつながっているなら指定の URL まで設計図を取りに行っても良いし、ネットにつながっていなければ手元にある設計図を使っても良い。柔軟にやってくれ、ということです。
---
さて。XML は「設計図」なしで、いきなり文書を書いても良い。たいていの場合、設計図を後から用意しても十分に間に合うからです。設計図の在処を示す DOCTYPE 宣言が不要になった、というのが XML の大きなウリです。
ではなぜ、みんな XHTML 1.0 文書で律儀に DOCTYPE 宣言を書いているのか。それは、XHTML 1.0 が HTML 4.0 からの移行措置だったからです。HTML 4.0 までは DOCTYPE 宣言が必須だったので、いきなりなくすと困る人がいるかもしれない。もし XHTML への移行が完全に終わっていたなら、今ごろ DOCTYPE 宣言なぞ必要なかったのです。
しかし、現実はそううまくいかず、ブラウザ開発者もページ制作者も、なぜか DOCTYPE 宣言を残す方を「歓迎」しました。面倒くさがりの私としては残念ですね。
---
で、XML 宣言について。XML/XHTML 文書と、XML でない HTML 文書は見分けがつかない場合がありますので、冒頭に「これは XML だぞ」という宣言を書いておきます。
<?xml version="1.0" encoding="UTF-8"?>
これは、カタチとしては処理命令になっており SGML 宣言など面倒くさいものを省略する云々、XML は意識的に Unicode を取り込んだ規格で文書の保存性を高めるために文字コード宣言が云々。
小難しいことはともかく、XML/XHTML 文書を書くなら XML 宣言を書いて下さい。たかだかブラウザの都合で XML 宣言を書いたり書かなかったりなんて情けないことを言わず、どーんと構えていれば良いのです。
---
とはいえ、ブラウザの都合に左右されるのも人情です。どうしても気になる方々は HTML5 を使えば良いでしょう。
HTML5 というと、巷では「新機能!」と喝采を浴びていますが、そんなのはどうでもよろしい。大事なのは、「このように書けば、ブラウザがこう解釈するから、よろしく」と、HTML の書き方とブラウザの振る舞いを結び付けたことです。
HTML5 の DOCTYPE 宣言は <!DOCTYPE html>、ただこれだけです。これはどういう意味か? 何の意味もありません。
何の意味もないものを、なぜ書くのか。歴史的な理由で、DOCTYPE 宣言の有無でブラウザが「描画モード」を切り替えるという、面倒くさい話があるからです(DOCTYPE スイッチと呼ばれます)。本来なくなるべき DOCTYPE 宣言が、ブラウザの振る舞い上、なくせないものになってしまいました。
HTML5 はそういう事情を考慮し、DOCTYPE 宣言を残すにしても、せめて簡単な形にしようとしました。それが <!DOCTYPE html> です。これがあれば、DOCTYPE スイッチの元祖である IE6 でも「標準モード」になります。
本来の意味をなくしたものが、形骸化して残る。HTML の「進化」とはよく言ったものです。
---
長々と書きましたが、結論としては、DOCTYPE 宣言の意味がよく分からなければ <!DOCTYPE html> だけ書けば良い、ということです。それ以上のことは、必要になってから覚えれば十分です。
とても丁寧に教えて頂きまして、感謝致します。他の方も言われていましたが、<!DOCTYPE html>で進めます。誠にありがとうございました。
No.1
- 回答日時:
>DOCTYPE宣言の中に含まれているのはどうしてなのですか?
どうしてというのではなく、決まりです。
URL が含まれている場合は標準モードとなり、URL がない場合は互換モードとなります。
モードについては「DTD モード」で検索してください。
<?xml で始まるのは、「XML宣言」です。
XHTMLで文字コードが UTF 以外の場合は1行目に記述する必要があります。
UTF-8 , UTF-16 の場合は省略可。
決まりなのですか。独立しているのを見かけましたが、それでも構わないということでしょうか?XML宣言、宣言なのですね。まだ何も分からない状態ですので、また質問をするとおもいますが、その時は宜しくお願い致します。ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ASP・SaaS FC2 BLOG <AUDIO TAGを入れプレビューはOk テーンプレートを更新すると ✖ 1 2023/08/14 11:40
- JavaScript html5に変えるとスライドショーが消えてしまった。 3 2022/03/26 19:53
- HTML・CSS 私の能力からして間違っていないような気がします。 4 2022/09/30 13:24
- CGI CGIで出力するhtmlの<!DOCTYPE html>等のタグは要りますか? 2 2023/02/05 21:26
- HTML・CSS <!doctype html>について コマンドではにですよね? 3 2022/12/11 04:13
- JavaScript セレクトボックスを2つ設けて選択して初めてメッセを表示 1 2022/07/27 12:15
- HTML・CSS (Javascript)印刷するファイルに応じて印刷プレビュー画面で用紙を自動的に切り替えたい!! 2 2022/04/11 12:04
- JavaScript switch文のswitch(n)の部分を複数の値にするか、if文に変えてほしいです。 1 2022/07/27 17:18
- PHP PHPプログラムの間違い 1 2022/10/06 14:33
- PHP PHPでCookieを使った訪問回数について 1 2023/05/28 14:10
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
javaでhtmlファイルを開く方法
-
lang 英語と日本語など混ざる時は
-
ラミチエ
-
複数のファイルをdiffで比較す...
-
安楽死についてのレポート
-
JSPでincludeファイルの日本語...
-
ドライアイスの持続時間
-
ゆうぱっく、午前中指定で埼玉→...
-
RedHat7.3 apache-2 ユーザーの...
-
Excelで、社外秘(閲覧のみ)と...
-
HTMLからフォルダを開きたい
-
ホームページでファイルをダウ...
-
htmlファイルの表示が真っ白
-
フレーム内のPHPへPOSTで情報を...
-
htmlの中にexcelが埋め込むには...
-
Dreamweaverでページ全体が文字...
-
googleドライブで、PDFファイル...
-
Webサイトから、txtファイルを...
-
HTMLで別PCのフォルダを開く
-
iPadの標準ブラウザでローカルH...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
noindexタグを試作ページの段階...
-
lang 英語と日本語など混ざる時は
-
Excel VBA :URLの中で変数を使...
-
javaでhtmlファイルを開く方法
-
インラインフレームの横スクロ...
-
iframeの中のページのリンクを...
-
相対パスでリンクできない
-
ベーシック認証時、キャンセル...
-
html4.01とxhtmlではレスポンシ...
-
複数のファイルをdiffで比較す...
-
寿司ネタの名前
-
メール本文に変な文字が
-
You Are The Sunshine Of My Li...
-
薬事法とGMPって一緒なんで...
-
htaccessのリダイレクトで、特...
-
中埜酢店 のよみかた
-
甲府市にあった穂積という料亭...
-
鉄腕アトム:トビオの母親
-
2ちゃんねるの過去ログってど...
-
相対パスから絶対パスの取得
おすすめ情報