• 締切済み

XHTML1.1でのXML宣言とDTD宣言の書き方

XML宣言によるレイアウトの崩れ等の質問はありましたが今回の質問と同じ内容は私には見当たらなかったため質問させて頂きます。 XHTMLでのXML宣言を <?xml version="1.0" encoding="utf-8"?> と記述しています。 上記の記述と <?xml version="1.0" encoding="UTF-8"?> とで、文字コードの大文字か小文字かの違いだけなのですがどちらの方が良いのでしょうか。 同じくDTD宣言を <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd"> と記述しています。 XMLでは大文字と小文字を区別して扱うため必ず半角で書かなければならないとされていますが、XHTMLでマークアップされているサイトのソースを見るとどこもXML宣言での文字コードとDTD宣言では大文字が使用されています。 細か過ぎるというのは分かっているのですが厳密にはどのような記載が正しいのでしょうか。 ※今回投稿カテゴリーの小カテゴリーにて”XML”を選択致しましたがXHTMLについての質問の場合”XML”と”HTML”どちらにするべきでしょうか。 合わせてご返答、又はご意見を頂戴できれば幸いです。

  • XML
  • 回答数2
  • ありがとう数6

みんなの回答

回答No.2

http://www.w3.org/TR/REC-xml/#NT-EncName XML processors SHOULD match character encoding names in a case-insensitive way and SHOULD either interpret an IANA-registered name as the encoding registered at IANA for that name or treat it as unknown (processors are, of course, not required to support all IANA-registered encodings). http://www.iana.org/assignments/character-sets The character set names may be up to 40 characters taken from the printable characters of US-ASCII. However, no distinction is made between use of upper and lower case letters. http://www.ietf.org/rfc/rfc2119.txt 3. SHOULD This word, or the adjective "RECOMMENDED", mean that there may exist valid reasons in particular circumstances to ignore a particular item, but the full implications must be understood and carefully weighed before choosing a different course.

ts-inc
質問者

補足

ご回答ありがとうございます。 大変お手数なのですが要点を日本語にてご教示頂けると幸いです。 またANo.1の補足にて質問をさせて頂いております、 > XML宣言内での文字コードを指定する部分ですが、”UTF-8”と”utf-8”は厳密にはどちらが良いのでしょうか。 > 沢山のサイトのソースを見ましたがどこも大文字を使用しています。 > 他の例では、シフトJISの場合”shift_jis”ではなく”Shift_JIS”と記述されています。 につきましてご教示願います。 宜しくお願い致します。

  • yyr446
  • ベストアンサー率65% (870/1330)
回答No.1

>XMLでは大文字と小文字を区別して扱うため必ず半角で書かなければ..  性格には、要素タイプ名、属性名は必ず小文字で書くです。 ""内の属性値や要素そのものは、当然大文字でも全角でもかまわない。 従って、<?xml version="1.0" encoding="utf-8"?>は正しい。 また<!で始まるのはコメント扱いだからDTD宣言は、 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN" "​http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">​ で正しい。 >XHTMLについての質問の場合”XML”と”HTML”どちらにするべきでしょうか。  両方に当てはまりそうです。書き方や、整形式についてなら、HTMLのカテゴリーでよいと思います。

参考URL:
http://www.kanzaki.com/docs/html/xhtml1.html#basic
ts-inc
質問者

補足

ご回答ありがとうございます。 ""内は確かに大文字でも全角でも構わないはずですよね。 日本語を記述する際には全角になりますものね。 恥ずかしながら当然のことに気付いておりませんでした。 XML宣言内での文字コードを指定する部分ですが、”UTF-8”と”utf-8”は厳密にはどちらが良いのでしょうか。 沢山のサイトのソースを見ましたがどこも大文字を使用しています。 他の例では、シフトJISの場合”shift_jis”ではなく”Shift_JIS”と記述されています。 宜しくお願い致します。

関連するQ&A

  • 携帯サイト用 XHTML doctype宣言

    今、携帯サイトでXHTMLを使用したサイトを作成すること考えています。 3つのキャリアを別々に作るのは趣味範囲では難しいため、3つのキャリアに対応しているサイトの作成を考えています。 そこでdoctype宣言についてご質問なのですが、3つのキャリアは別々の宣言があり、 Docomoなら <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//i-mode group (ja)//DTD XHTML i-XHTML(Locale/Ver.=ja/*.*) 1.0//EN" "i-xhtml_4ja_10.dtd"> SoftBankなら <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//J-PHONE//DTD XHTML Basic 1.0 Plus//EN" "xhtml-basic10-plus.dtd"> auなら <?xml version="1.0" encoding="Shift_JIS"?> <!DOCTYPE html PUBLIC "-//OPENWAVE//DTD XHTML 1.0//EN" "http://www.openwave.com/DTD/xhtml-basic.dtd"> とあります。 これらの宣言を記述するとキャリアごとにサイトを作成しないといけないため、3キャリア共通の宣言をご教授いただけないでしょうか? また、ないのであればこれらをXMLファイルに書き込みhtmlファイル内の記述でXMLファイルを読み込むことは可能でしょうか? 可能なのであればその際の記述方法をご教授いただけないでしょうか? 宜しくお願い致します。

  • Perl での XML 処理での DTD 宣言につ

    Perl の XML::LibXML モジュールを使用して XML を処理しています。 例えば、 <?xml version="1.0" encoding="UTF-16" standalone="no"?> <!DOCTYPE aaa PUBLIC "-//bbb//CCCC//EN" "ddd.dtd" []> <doc> ....... </doc> のようなXMLに対してPerlで処理をして、 最後に documentElement を toString して書き出しています。 しかし、この場合、DTD宣言部分を書き出すことができません。 XML::LibXMLでこの部分を取得して書き出すことはできますでしょうか。 どうぞ、よろしくお願いします。

    • ベストアンサー
    • Perl
  • xhtmlにxml宣言を行うと表示が崩れます。。。

    現在xhtmlでページを作成しているのですが、xhtmlにはxml宣言が必要ということで、<?xml version="1.0" encoding="UTF-8"?>を挿入しました。 しかし、この宣言を入れると表示が崩れてしまいます。左右autoのセンター表示が左に寄ったり、boxのサイズが変わったりと・・・。 何が原因かもわからずに困っています。 何方かアドバイスいただけたら幸いです。 宜しくお願いいたします。

    • ベストアンサー
    • HTML
  • XHTMLのスペース

    XHTMLは誤作動を防ぐために <meta http-equiv="expires" content="0" /> このように最後はスペースを置くと聞いたのですが、DOCTYPE,XML宣言も<?xml version="1.0" encoding="Shift_JIS"? > <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd" > このようにスペースを置くべきなのでしょうか? ご回答おねがいします。

  • xhtmlについて

    xhtmlについて2点質問があります。 1.xmlの先頭1行のような記述は必要ですか? xmlは<?xml version="1.0" encoding="UTF-8" ?>のような宣言を1行目に必ず記述する必要がありますが、xhtmlもそうなのでしょうか?W3CのValidatorを使ってみましたが、あってもなくても違いが無かったようです。厳密には在った方が良いのですかね? 2.エンコードはUTF-8にするべき? xmlは基本的にencoding="UTF-8"ですが、UTF-8だと日本語表示が出来ません。しかしshift-jisはあまり推奨されないという話も聞いたことがあります。質問1の記述が必要になった場合、encoding="UTF-8"にするべきなのでしょうか?UTF-8がどれだけ普及しているのかも気になります。

    • ベストアンサー
    • HTML
  • 教えてください。ホームページを作っているのですが、宣言文を入れると、中

    教えてください。ホームページを作っているのですが、宣言文を入れると、中央に配置できなくなります。 これはどうすればよいのでしょうか?? <?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>

  • 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宣言をすることが強く求められています。 と指摘されましたがどうしたらいいかわかりません

  • 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
  • XHTMLのXML宣言

    XHTMLで、XML宣言は必ず記述しなければならないのでしょうか? 「XML宣言なし」の場合、互換モードになると書いてあったので互換モードにする場合は逆にXML宣言を記述してはいけないということでしょうか? 回答よろしくお願いします。

    • ベストアンサー
    • HTML
  • GoogleChromeでxml宣言が消える?

    GoogleChromeでソース表示を行うと1行目に表示されるはずのxml宣言が表示されません。 例えばIE7で神奈川県のサイト(http://www.pref.kanagawa.jp/)をソース表示すると <?xml version="1.0" encoding="Shift_JIS"?> <!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"> となりますが、同じサイトをGoogleChromeでソース表示すると <!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"> と1行目にあるはずのxml宣言が消えて2行目の空行から始まっています。 だからなんだと言われると困るのですが・・・IE6対策でphpの条件分岐でIE6以外の場合のみ表示としているはずが、あれ?と言う状況です。 ソースや表示そのものがおかしくなるわけではないと思いますが、最初は条件分岐が間違っているのかと悩みました。 これはきちんと表示させる方法があるのか、もしくはそういう仕様なのか、実は他のソースもちゃっかり修正されちゃってたりしないのか、どんなもんでしょう。

    • ベストアンサー
    • HTML

専門家に質問してみよう