名前空間の指定がDOCTYPEに含まれているのは?
- DOCTYPE宣言に名前空間が含まれる理由を教えてください。
- <?xml version="1.0" encoding="UTF-8" standalone="yes"?>タグがDOCTYPE宣言の前に書かれている意味を教えてください。
- 名前空間の指定とDOCTYPEについてご教示ください。
- ベストアンサー
名前空間の指定がDOCTYPEに含まれているのは?
皆さまお世話になります。超ド級の初心者質問なのですが、<!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宣言が最初に来ると思っていましたので、教えて下さい。どうぞ宜しくお願い致します。
- urimyu
- お礼率87% (416/473)
- HTML
- 回答数3
- ありがとう数4
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
まず、<!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>だけにした方が(いろんな意味で)無難です。
その他の回答 (2)
- Chaire
- ベストアンサー率60% (79/130)
一応、念のため。 > 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-transitional.dtd" です。 これは要するに、この文書の設計図(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>で進めます。誠にありがとうございました。
- outbrave
- ベストアンサー率60% (231/380)
>DOCTYPE宣言の中に含まれているのはどうしてなのですか? どうしてというのではなく、決まりです。 URL が含まれている場合は標準モードとなり、URL がない場合は互換モードとなります。 モードについては「DTD モード」で検索してください。 <?xml で始まるのは、「XML宣言」です。 XHTMLで文字コードが UTF 以外の場合は1行目に記述する必要があります。 UTF-8 , UTF-16 の場合は省略可。
お礼
決まりなのですか。独立しているのを見かけましたが、それでも構わないということでしょうか?XML宣言、宣言なのですね。まだ何も分からない状態ですので、また質問をするとおもいますが、その時は宜しくお願い致します。ありがとうございました。
関連するQ&A
- DOCTYPE宣言とdocument.body.clientHeight
お世話になります。 ブラウザのサイズを取得するにはどうすればよいのでしょうか? document.body.clientHeightで取得出来るのは分かりましたが DTDにより動作したり、しなくなるのも分かりました。 ×動作しない <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> ○動作する <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 後者のものですとIEでは動作しますが、firefoxでは動作しません。 何か対処法は、御座いませんでしょうか? 一番望む形は <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> の宣言で、ブラウザサイズが取れるようになるのがベストです。 CSSを使用しているので<?xml version="1.0" encoding="UTF-8"?>を入れると 表示モードが互換になるので・・・。 対応したいブラウザはIE6.0、firefox,Safariです。 一応ソース <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <script> function init(){ var bodyHeight = document.body.clientHeight; alert(bodyHeight); } </script> </head> <body onload="init();"> <div> ほげ </div> </body> </html>
- ベストアンサー
- JavaScript
- DOCTYPE宣言は厳密に気にするべきか??
現在WEBを独学で学んでおります。 そこでDOCTYPE宣言についていくつか疑問に思いました。 ひとつでもわかる方はご回答頂ければ幸いです。 1.<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> と、ソースの頭に記述しておいて <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> の内容で記述(XHTML 1.0 Transitionalで記述)することは可能ですか?? つまり、HTML 4.01 Transitionalを宣言して終了タグなど、XHTML 1.0 Transitionalの方式で書いても正確に表示されるかを知りたく思って おります。 2.DOCTYPE宣言を書いてないサイトが多く見受けられますが、 この場合はどのようにDOCTYPE宣言と捉えられるのでしょうか? また、この場合のデメリットとかはありますでしょうか?? 以上、わかる方いましたらよろしくお願いいたします。
- ベストアンサー
- HTML
- DTDと名前空間
DTDと名前空間の関係について質問します。 XMLの本を読みDTDと名前空間の大まかなイメージを下記のようにつかみました。 DTD: XML文書の妥当性を規定し、DTD宣言で指定。 名前空間: ひとつのXML内で要素名の衝突を避けるために、xmlnsで指定。 XHTMLのDTD宣言 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> XHTMLの名前空間(http://www.w3.org/1999/xhtml) <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> XHTML文書の場合、DTDと名前空間がそれぞれひとつです。 しかし、ひとつのXMLドキュメントで複数の名前空間を利用する場合は、それぞれの名前空間に対して、DTDを宣言するのでしょうか。つまり複数のDTD宣言があるXMLドキュメントになるのでしょうか。 DTDと名前空間の関係が良く分かりません。 XML自体を勉強し始めたばかりで、まとまりのない質問で申し訳ありませんが、よろしくお願いします。
- ベストアンサー
- XML
- ie6で画像のpaddingを表示させたい
seesaaブログユーザーです。 seesaaはxhtmlで記述しているようでソースの先頭は 1:<?xml version="1.0" encoding="Shift_JIS"?> 2:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> (1:は一行目, 2:は二行目であることを表しています) のようになっています。 これを 1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> もしくは 1:<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 2:<?xml version="1.0" encoding="Shift_JIS"?> としても問題ないのでしょうか? と、質問させていただいた理由は 画像に枠をつけたいと思って、cssでimgにpaddingを指定したのですが ie6では表示されないのでこれを何とかしたいからです。 http://www.koikikukan.com/archives/2006/03/11-015552.php の記事を参照してわかったのですが、 この状態ですと画像のpaddingがie6では適用できないのですね。 そこで、記事にあるようにdoctype宣言を先頭に持っていくと ie6でも表示されるようになりました。 ということで、 「<?xml version="1.0" encoding="Shift_JIS"?>」 の扱いについて質問させていただきます。
- ベストアンサー
- XML
- 教えてください。ホームページを作っているのですが、宣言文を入れると、中
教えてください。ホームページを作っているのですが、宣言文を入れると、中央に配置できなくなります。 これはどうすればよいのでしょうか?? <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head>
- ベストアンサー
- その他(インターネット・Webサービス)
- IEでXMLとDOCTYPEの関係
PukiWikiのスキンをカスタマイズしていて、困っております。。 PukiWikiでは、HTMLの先頭に、以下のような3行が入るのですが・・・ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja"> IEでは、DOCTYPEが1行目にないと有効にならないようなのです。。 先頭の「<?xml・・・」は、必ずないといけないのでしょうか?「<?xml・・・」と「<!DOCTYPE・・・>」を入れ替えたりしては、不都合があるのでしょうか?
- ベストアンサー
- HTML
- DOCTYPE宣言をするとstyleが適用できない
webサイト作りの初心者です。 初め、ドキュメントタイプ(DOCTYPE)の宣言を書かずに<html>タグからコードを書いていたのですが、 全体がある程度形になってから、1番上に <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> を追加し、<html>を <html xmlns="http://www.w3.org/1999/xhtml"> に変えると、デザインが変わってしまいました。 具体的には、 <div style="height:960;">~</div> と書いて作っていたブロックの高さが、 DOCTYPE宣言を書く前はちゃんと960になっていたのですが、 書いた後は、中に入っているコンテンツ(テキスト)の高さまで縮み、style部分の数字をいくらいじっても変わってくれません。 他にも、style属性のmargin-leftなどが適用されなくなっていました。 なぜ、DOCTYPEの宣言をするとstyleが適用されなくなったのでしょうか? また、どうすれば適用されるようになるのでしょうか? よろしくお願いします。
- ベストアンサー
- HTML
- <!DOCTYPE ・・・・
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "○ttp://○ww.w3.org/TR/xhtml1/DTD・・・・・ いまホームーページを作成してみようといろいろ調べています。そこで、こんな感じのタグ?を一番上によく見かけますがどういう意味があるのでしょうか?昔は<html>から始まっていませんでしたか?また後半のURLは何でしょうか?(リンクにならないように○に変換してあります。) よろしくお願いします。
- ベストアンサー
- HTML
- XHTML宣言についてですが自分のものでどこがおかしいのか解りません。
XHTML宣言についてですが、 私はライブドアブログでブログを作っています。 ブログのチェッカーで引っかかりました。 現在の宣言内容です。 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> XHTML1.0 では XML宣言をすることが強く求められています。 と指摘されましたがどうしたらいいかわかりません
- 締切済み
- HTML
- html 「DOCTYPE記述」について
こんにちは。 タイトルの件ですが html4.01 Transitionalで宣言する場合、 <1> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> のように記述しますね。 上記に「http://www.w3.org/TR/html4/loose.dtd」を付け加えて <2> <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">とも書きますね。 <1>と<2>差異は何でしょうか? <1>はスタンダードモード、<2>は互換モードであるとは理解していますが、そうだとすれば、<2>はStrictで宣言した場合と同じ結果になるのでしょうか? 詳しい方、教えていただけますか。 どうぞ宜しくお願いします。
- ベストアンサー
- HTML
お礼
タグと宣言も分かっていない者です。申し訳ないです。ちゃぶ台をひっくり返されて当たり前です。仰るとおり、書き写し間違いでした。指摘して頂いて本当にありがとうございました。