Visual Web Developer 中的標記驗證
更新:2007 年 11 月
當您在 Visual Studio Web 設計工具的原始碼檢視中編輯標記時,編輯器會持續檢查正在建立的標記是否有效。標記驗證的工作方式與文字處理程式中的拼字檢查一樣。編輯器在檢查標記之後,會在無效的項目或屬性下加上紅色波浪底線。
編輯器會根據目前選取的驗證結構描述,藉以判斷有效的項目是什麼。例如,如果已將目前的瀏覽器設為 Internet Explorer 6,編輯器會比較網頁中的標記和 Internet Explorer 6 視為有效之 HTML 所定義的結構描述。Internet Explorer 6 不需要使用引號括住標記屬性。因此,在下列程式碼範例中,編輯器不會標記 text 屬性。
<asp:button id="button1" text=Button1 />
對照之下,如果您將目前的瀏覽器結構描述變更為 XHTML 1.0 Transitional,編輯器就會標記文字屬性的值,因為 XHTML 需要使用引號括住所有屬性。
驗證錯誤不會讓網頁停止執行,它只會簡單地提供您回應,指出網頁的標記不符合目前的瀏覽器結構描述。
選取瀏覽器結構描述
Visual Studio 包括常用之瀏覽器 (例如 Netscape Navigator 和 Internet Explorer) 和通用標準 (例如 XHTML Transitional 1.0) 的結構描述。您可以從 [HTML 原始檔編輯] 工具列的下拉式清單中選取結構描述。此外,也可以在 [選項] 對話方塊中選取驗證結構描述。如需詳細資訊,請參閱 HOW TO:在 Visual Web Developer 中為 HTML 編輯選取驗證結構描述。
檢視驗證錯誤
編輯器會以下列方式顯示驗證錯誤:
加上底線的項目:對無效的項目或屬性加上紅色波浪底線。
工具提示:如果在加上底線的項目上按住滑鼠指標,工具提示就會顯示錯誤的詳細資料。
錯誤清單:如果已開啟 [錯誤清單] 視窗,可以看到包含所有驗證錯誤的清單。按兩下 [錯誤清單] 視窗中的錯誤,就可以直接進入編輯器的錯誤所在。
驗證的檢查項目
標記驗證會檢查下列項目:
允許的標記:有些瀏覽器結構描述所支援的標記在其他瀏覽器中並不允許使用。例如,<blink> 標記 (Tag) 只在 Netscape 瀏覽器中支援,因此在其他結構描述中會將這個標記 (Tag) 標記 (Mark) 為無效。
允許的屬性:驗證會檢查項目是否允許使用該項目內的屬性。
必要的屬性:驗證會檢查是否包含所有必要的屬性。例如在 XHTML 中,<script> 標記必須具有 type 屬性。
允許的屬性值:如果屬性僅支援特定的列舉值 (例如 true 或 false),則驗證會標記出不符合所允許值的任何值。
允許的 CSS 值:驗證會檢查是否允許使用 style 屬性的階層式樣式表 (CSS)。
允許的子項目:驗證會檢查提供的父項目是否允許使用子項目。
是否正確使用引號括住屬性值:視結構描述而定,可能需要使用引號括住屬性值。若是不需要使用引號的結構描述,驗證會檢查值是否已由括號括住,以及這些引號是否對稱。對於可選擇性地使用引號的結構描述,驗證會根據您設定的驗證選項檢查這些引號。請參閱本主題稍後的「自訂驗證」。
大小寫規則:視結構描述而定,項目和屬性名稱可能需要為小寫字母。如果結構描述在名稱中允許使用大寫或小寫字母,驗證會根據您設定的驗證選項檢查它們。請參閱本主題稍後的「自訂驗證」。
唯一的項目 ID:驗證會確認在整個頁面中項目 ID 的唯一性。
語式正確項目 (Well-Formed):如果結構描述需要的話,驗證會確認所有開頭標記都有對應的結尾標記。
項目的開頭和結尾順序:驗證會檢查您沒有交叉的開頭和結尾項目,例如 <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 結構描述並不提供樣式屬性,因為 Internet Explorer 3.02 並不支援它們。同樣地,XHTML 1.0 Transitional 結構描述並不提供 <font> 標記,因為 <font> 標記已經在 XHTML 中被取代了。
自訂驗證
視目前使用的瀏覽器結構描述而定,您也許可以指定其他驗證選項。例如,如果正在使用 Internet Explorer 6 結構描述,可以選取驗證是否要標記其名稱不是小寫字母的項目和屬性。如需詳細資訊,請參閱 HOW TO:在 Visual Web Developer 為 HTML 編輯設定驗證選項。
停用驗證
如果您不要使用驗證,可以關閉這個功能。如需詳細資訊,請參閱 HOW TO:在 Visual Web Developer 為 HTML 編輯設定驗證選項。
驗證多個命名空間
在 Web 網頁中,可以加入使用自己的命名空間 (Namespace) 所宣告的標記區塊。例如,ASP.NET Web 網頁可能包含內嵌 XML 的區塊,這個區塊中則包含在其中定義 XML 項目的命名空間宣告。在上述情形中,驗證的執行會依據目前之頁面結構描述和內嵌區塊之命名空間的聯集而決定。
請參閱
工作
HOW TO:在 Visual Web Developer 中為 HTML 編輯選取驗證結構描述