Visual Studio でのマークアップ検証
Visual Studio Web デザイナーで (Web フォーム ページの場合はソース ビューで) マークアップを編集する際、作成しているマークアップの有効性がエディターによって常にチェックされています。 マークアップ検証は、ワードプロセッサ プログラムのスペル チェックのように動作します。 エディターは、マークアップを検証し、無効な要素または属性に赤い波線を引きます。
エディターは、現在選択されている検証スキーマに基づいて何が有効かを判断します。 たとえば、スキーマとして HTML5 が設定されている場合、エディターは、有効な HTML5 ページを定義するスキーマに基づいてページ内のマークアップをチェックします。 スキーマを XHTML5 に変更した場合、エディターは XHTML5 スキーマを基準としてページのマークアップをチェックします。
検証エラーが存在する場合でも、ページは実行できます。 ページ内のマークアップが選択したマークアップ言語に準拠していないというフィードバッグを返すだけです。
スキーマの選択
Visual Studio には HTML5、XHTML5、HTML 4.01、XHTML 1.1 などの標準スキーマが含まれています。 ページ内の DOCTYPE 値に基づいて Visual Studio でスキーマを決定することができます。 または、[HTML ソースの編集] ツール バーのドロップダウン リストからスキーマを選択できます。 また、[オプション] ダイアログ ボックスで既定の検証スキーマを選択することもできます。
検証エラーの表示
エディターは、次の方法で検証エラーを表示します。
下線付き要素 無効な要素または属性には、波線が引かれます。
ツールヒント 波線の下線が引かれた要素にマウス ポインターを置くと、ツールヒントに、エラーの詳細が表示されます。
エラー一覧 [エラー一覧] ウィンドウに、すべての検証エラーの一覧が (警告として) 表示されます。 [エラー一覧] ウィンドウを開くには、[表示] の [エラー一覧] をクリックします。 キーボードから一覧を開くには、Ctrl キーと \ キーを押し、「E」を入力します。 [エラー一覧] ウィンドウ内のエラーをダブルクリックすると、エディター内のエラー箇所にジャンプできます。
検証チェックの内容
マークアップ検証では、次のチェックが行われます。
許可されているタグ ブラウザーによって、サポートするタグが異なります。 たとえば、<blink> タグは、Netscape ブラウザーでのみサポートされます。このため、このタグは他のスキーマでは無効です。
許可されている属性 要素内の属性がその要素に対して許可されている属性であるかどうかがチェックされます。
必須属性 必須属性が含まれているかどうかがチェックされます。 たとえば、XHTML 1.1 では、<script> タグには type 属性が含まれている必要があります。
許可されている属性値 属性が特定の列挙値 (true または false など) しかサポートしていな場合、それ以外の値はマークされます。
許可されている CSS 値 style 属性のカスケード スタイル シート (CSS: Cascading Style Sheet) 値が許可されているかどうかがチェックされます。
許可されている子要素 子要素が指定された親要素に対して許可されているかどうかがチェックされます。
属性値を囲む引用符の使用法 スキーマによっては、属性値が引用符で囲まれていることが必要な場合があります。 引用符が必要なスキーマの場合に引用符が指定されているときは、引用符が対になっているかどうかがチェックされます。 属性値を囲む引用符がスキーマによって要求されていない場合、Visual Studio で引用符をチェックするかどうかを構成できます。 このトピックの「検証のカスタマイズ」を参照してください。
大文字と小文字の規則 スキーマによっては、要素と属性名を小文字にすることが必要な場合があります。 大文字でも小文字でもかまわないスキーマの場合、設定した検証オプションに従って、チェックが行われます。 このトピックの「検証のカスタマイズ」を参照してください。
一意の要素 ID 要素 ID はページ全体で一意である必要があります。
整形式要素 現在のスキーマが要求する場合、すべての開始タグに対応する終了タグがあるかどうかがチェックされます。
開始要素と終了要素の順番 <b><i>text</b></i> などのように開始要素と終了要素が反対になっていないかどうかがチェックされます。
古いタグまたは属性 XHTML5 などのスキーマでは、<font> などのタグは、サポートされていないタグとしてエラー対象になります。
相対ハイパーリンクおよびグラフィックスの有効なターゲット 現在のサイトに相対的なターゲットの有効性がチェックされます。ただし、完全修飾された URL の有効性はチェックされません。
ページ出力の検証
検証機能により、デザイナー上のページのマークアップがチェックされます。 これは、ページがブラウザーで実行されたときに、ページの出力が特定のスキーマに対して有効であることを保証するものではありません。 Web フォーム ページの場合、ページの処理中に、個々の ASP.NET サーバー コントロールとページがマークアップとスクリプトをそのページにレンダリングします。 出力は、デザイナーの検証機能ではチェックできません。 実行時に作成されるマークアップとスクリプトは、ほとんどのブラウザーに対して有効です。 ASP.NET ページとサーバー コントロールは、XHTML5 互換のマークアップをレンダリングします。 詳細については、「Visual Studio と ASP.NET の XHTML 標準」を参照してください。
検証と IntelliSense
スキーマを指定すると、検証に影響するだけでなく、IntelliSense で使用できるタグと属性にも影響します。 たとえば、XHTML5 スキーマの <font> タグは IntelliSense では提供されません。これは <font> タグがそのスキーマで推奨されていないタグであるためです。
検証のカスタマイズ
使用するスキーマによっては、検証オプションを指定できる場合があります。 たとえば、HTML5 を使用する場合は、次の条件をエラーとして参照するかどうかを選択できます。
クライアント タグが小文字でない場合
タグが整形式でない場合
属性値が引用符で囲まれていない場合
属性または要素が非推奨の場合
複数の名前空間の検証
Web ページには、名前空間で宣言されているマークアップのブロックを含めることができます。 たとえば、ページの埋め込み XML ブロックには独自の要素の名前空間宣言が含まれる場合があります。 この場合、検証は、現在のページ スキーマと埋め込みブロックのスキーマの両方に基づいて行われます。