TOP > Expression > FAQ > DOCTYPE宣言の前に文字入力すると、現在のスキーマの判別ができなくなる問題について

DOCTYPE宣言の前に文字入力すると、現在のスキーマの判別ができなくなる問題について

最終更新日:2007/11/05 23:56:23
改訂バージョン:1.5

概要

コードビューにおいて、DOCTYPE宣言の前に文字入力すると、現在のスキーマを読み取ることができなくなる問題について説明します。

詳細

W3Cの仕様書によれば、XHTML文書の場合、全ての文書においてDOCTYPE宣言の前にXML宣言を入れることが強く求められています。特にUTF-8以外の文書(シフトJISなど)においてはXML宣言を入れることが必修とされています(参照:http://www.w3.org/TR/xhtml1/)。
そこで、例えばXHTML 1.0 Transitional のスキーマ(このWebページ)にXML宣言をコードビューの1行目、すなわち、DOCTYPE宣言の前に挿入すると、以下のようになります。

現在のスキーマでは、この要素の自動終了はできません。終了スラッシュを削除してください。
このように、たとえ正しいXHTML文法で書かれてあったとしても、空要素のタグ(<meta>タグや<img>タグ等)で 自己終了するために /> で閉じてしまうと、「現在のスキーマでは、この要素の自己終了はできません。終了スラッシュを削除してください。」というメッセージが表示されます。

Expression Webでは、DOCTYPE宣言の前に文字を入力すると、現在のスキーマを読み取ることができなくなります。結果として、IE6互換モードとして認識されてしまいます。ちなみに、DOCTYPE宣言の前に1文字でも入力しても、以下の図のように同じ結果となります。
IE6互換モードとして認識

▲Page TOP

状況

この問題は、マイクロソフト社がExpression Webの問題として認識しています。
(実は、マイクロソフト社がW3CのXHTMLに関する仕様書を誤訳した、らしいです・・・)
現在のところ、残念ながら回避策はありません・・・。

回避策としては、セカンダリスキーマを、現在のスキーマにセットします。

Expression Webの初期設定では、互換IE6モードとして設定されていますので、その設定を変更します。

  1. [ツール]→[ページ編集オプション]をクリックします。
  2. [ページ編集オプション]ダイアログボックスの[作成]タブを開きます。
  3. [セカンダリスキーマ]のプルダウンより、現在のスキーマに設定します。「XHTML 1.0 Transitional」の場合は、下の図のようにセカンダリスキーマを「XHTML 1.0 Transitional」に変更して、[OK]ボタンをクリックします。
    ページ編集オプション

▲Page TOP

▲このページのトップへ

Contents Menu

Site Search by Google


Web サイト内
Expression Web Books
Buy at amazon.co.jp Now

Microsoft MVP

Microsoft Most Valuable Professional
Microsoft MVP - Expression Web
(July 2009 - March 2010)
/ Expression
(April 2008 - June 2009)
/ FrontPage
(April 2005 - March 2008)
MVP Profile

Ads