Visual Web Developer でのマークアップ検証

更新 : 2007 年 11 月

Visual Studio Web デザイナのソース ビューでマークアップを編集する際、作成しているマークアップの有効性がエディタによって常にチェックされています。マークアップ検証は、ワードプロセッサ プログラムのスペル チェックのように動作します。エディタは、マークアップを検証し、無効な要素または属性に赤い波線を引きます。

エディタは、現在選択されている検証スキーマに基づいて何が有効かを判断します。たとえば、現在のブラウザとして Internet Explorer 6 が設定されている場合、エディタは、Internet Explorer 6 の有効な HTML を定義するスキーマに基づいてページ内のマークアップをチェックします。Internet Explorer 6 では、タグ属性を引用符で囲む必要がありません。したがって、エディタは、次のコード例のように text 属性をマークしません。

<asp:button runat="server" id="button1" text=Button1 />

一方、現在のブラウザ スキーマを XHTML 1.0 Transitional に変更すると、エディタはテキスト属性の値をマークします。これは、XHTML では、すべての属性が引用符で囲まれている必要があるためです。

検証エラーが存在する場合でも、ページは実行できます。ページ内のマークアップが現在のブラウザ スキーマに準拠していないというフィードバッグを返すだけです。

ブラウザ スキーマの選択

Visual Studio には、現在使用されているブラウザ (Netscape Navigator、Internet Explorer など) 用のスキーマと共通規格 (XHTML Transitional 1.0 など) 用のスキーマが含まれます。[HTML ソースの編集] ツール バーのドロップダウン リストからスキーマを選択できます。また、[オプション] ダイアログ ボックスでも検証スキーマを選択できます。詳細については、「方法 : Visual Web Developer で HTML 編集用検証スキームを選択する」を参照してください。

検証エラーの表示

エディタは、次の方法で検証エラーを表示します。

  • 下線付き要素   無効な要素または属性には、赤い波線が引かれます。

  • ツールヒント   下線付き要素にマウス ポインタを置くと、ツールヒントに、エラーの詳細が表示されます。

  • エラー一覧   [エラー一覧] ウィンドウに、すべての検証エラーの一覧が表示されます。[エラー一覧] ウィンドウ内のエラーをダブルクリックすると、エディタ内のエラー箇所にジャンプできます。

検証チェックの内容

マークアップ検証では、次のチェックが行われます。

  • 許可されているタグ   ブラウザによって、サポートするタグが異なります。たとえば、<blink> タグは、Netscape ブラウザでのみサポートされます。このため、このタグは他のスキーマでは無効です。

  • 許可されている属性   要素内の属性がその要素に対して許可されている属性であるかどうかがチェックされます。

  • 必須属性   必須属性が含まれているかどうかがチェックされます。たとえば、XHTML では、<script> タグには type 属性が含まれている必要があります。

  • 許可されている属性値   属性が特定の列挙値 (true または false など) しかサポートしていな場合、それ以外の値はマークされます。

  • 許可されている CSS 値   style 属性のカスケード スタイル シート (CSS: Cascading Style Sheet) 値が許可されているかどうかがチェックされます。

  • 許可されている子要素   子要素が指定された親要素に対して許可されているかどうかがチェックされます。

  • 属性値を囲む引用符の使用法   スキーマによっては、属性値が引用符で囲まれていることが必要な場合があります。引用符が必要なスキーマの場合、対になった引用符で値が囲まれているかどうかがチェックされます。引用符がオプションであるスキーマの場合、設定した検証オプションに従って、チェックが行われます。このトピックの「検証のカスタマイズ」を参照してください。

  • 大文字と小文字の規則   スキーマによっては、要素と属性名を小文字にすることが必要な場合があります。大文字でも小文字でもかまわないスキーマの場合、設定した検証オプションに従って、チェックが行われます。このトピックの「検証のカスタマイズ」を参照してください。

  • 一意の要素 ID   要素 ID はページ全体で一意である必要があります。

  • 整形式要素   現在のスキーマが要求する場合、すべての開始タグに対応する終了タグがあるかどうかがチェックされます。

  • 開始要素と終了要素の順番   <b><i>text</b></i> などのように開始要素と終了要素が反対になっていないかどうかがチェックされます。

  • 古いタグまたは属性   XHTML 1.0 Transitional などのスキーマでは、<font> などのタグは、推奨されていないタグとしてエラー対象になります。

  • 相対ハイパーリンクおよびグラフィックスの有効なターゲット   現在のサイトに相対的なターゲットの有効性がチェックされます。ただし、完全修飾された URL の有効性はチェックされません。

検証と生成

検証は、生成とは別個の操作になります。デザイナの操作中に、Visual Studio によってページにマークアップを追加 (生成) されます。デザイナによって作成されたマークアップは、現在のブラウザ スキーマによって判断されません。その代わり、Visual Studio の Web ページ デザイナは、常に XHTML 1.1 互換マークアップを生成します。詳細については、「Visual Web Developer での XHTML」を参照してください。

ページ出力の検証

検証機能により、デザイナ上のページのマークアップがチェックされます。これは、ページがブラウザで実行されたときに、ページの出力が特定のスキーマに対して有効であることを保証するものではありません。ページの処理中に、個々の ASP.NET サーバー コントロールとページがマークアップとスクリプトをそのページにレンダリングします。出力は、デザイナの検証機能ではチェックできません。

実行時に作成されるマークアップとスクリプトは、ほとんどのブラウザに対して有効です。ASP.NET ページとサーバー コントロールは、XHTML 1.1 互換のマークアップをレンダリングします。現在、ほとんどのブラウザが、ブラウザ固有のタグではなく、XHTML などの規格に準拠しています。XHTML 出力はほとんどのブラウザで互換性があるため、ページおよびコントロールによって実行時にレンダリングされるマークアップは有効になります。

詳細については、「ASP.NET と XHTML」を参照してください。

検証と IntelliSense

ターゲット ブラウザを指定すると、検証に影響するだけでなく、IntelliSense で使用できるタグと属性にも影響します。たとえば、Internet Explorer 3.02 スキーマのスタイル属性は IntelliSense では提供されません。これは、Internet Explorer 3.02 がスタイル属性をサポートしていないためです。同様に、XHTML 1.0 Transitional スキーマの <font> タグは IntelliSense では提供されません。これは <font> タグが XHTML で推奨されていないタグだからです。

検証のカスタマイズ

使用するブラウザ スキーマによっては、検証オプションを指定できる場合があります。たとえば、Internet Explorer 6 スキーマの場合、小文字でない要素と属性名をマークするよう指定できます。詳細については、「方法 : Visual Web Developer で HTML 編集用の検証オプションを設定する」を参照してください。

検証の無効化

検証機能を使用しない場合には、これを無効にできます。詳細については、「方法 : Visual Web Developer で HTML 編集用の検証オプションを設定する」を参照してください。

複数の名前空間の検証

Web ページには、名前空間で宣言されているマークアップのブロックを含めることができます。たとえば、ASP.NET Web ページには、その XML 要素が定義されている名前空間の宣言を含む埋め込み XML のブロックを含むことができます。この場合、検証は、現在のページ スキーマと埋め込みブロックの名前空間の結合に基づいて行われます。

参照

処理手順

方法 : Visual Web Developer で HTML 編集用検証スキームを選択する

概念

ASP.NET と XHTML