2010-06-22 109 views
6

有很多解釋Doctype的選擇的線程,但我找不到解釋實際語法的任何東西。舉個例子:Doctype語法的說明

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" 
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd "> 

特別是:

  • 可以PUBLIC與其他值替換,這是什麼意思?
  • 爲什麼網址需要用引號包圍?
  • 什麼是「 - 」?
  • 爲什麼第一個字符串被兩個斜線而不是1分隔?
  • EN代表英語嗎?如果是這樣,爲什麼網站也使用lang=en

回答

1

爲什麼第一個字符串被兩個斜線而不是1分隔?

SGML syntax"Owner//Keyword Description//Language"

但實際上,這並不重要,因爲瀏覽器實際上並沒有將SGML解析器用於HTML。 DOCTYPE只是一個開關,用於決定怪癖模式和標準模式。

0

文檔類型不限於HTML頁面。文檔類型用於引用文檔類型定義(DTD),它定義了對XML文檔結構的約束。

有不同類型的可能,OP的實例如下 「公共外部DTD」 格式:

<!DOCTYPE root_element PUBLIC "DTD_name" "DTD_location"> 

其中:

  • root_element:是XML
  • DTD_name的根:一個DTD的標識符,以便處理器可以使用它的本地版本而不必下載它
  • DTD_location:DTD的位置,以防本地不可用。

DTD_name還具有定義的格式:

"prefix//owner_of_the_DTD//description_of_the_DTD//ISO 639_language_identifier" 

其中prefix是下列之一:

  • ISO:DTD是ISO標準。所有ISO標準都獲得批准。
  • +:DTD是經過批准的非ISO標準。
  • -:DTD是未經批准的非ISO標準。

來源:http://xmlwriter.net/xml_guide/doctype_declaration.shtml