2010-11-16 19 views

回答

4

由於標準草案在3.2.3.3 The lang and xml:lang attributes中解釋,它是標準lang屬性的XML變體,用於指定文檔的自然語言。它可以取任何由BCP47定義的值。但請注意,如果您擁有XML文檔或者還要定義lang屬性,則只能使用xml:lang屬性,而在後一種情況下,它們必須具有相同的值。這是因爲xml:lang僅允許簡化舊XHTML文檔的轉換:

作者不得在HTML文檔的HTML元素的XML名稱空間中使用lang屬性。爲了簡化XHTML之間的遷移,作者可以在沒有名稱空間的情況下指定一個沒有前綴的屬性,並在HTML文檔中的HTML元素上使用文本本地名「xml:lang」,但只有在沒有名稱空間中的lang屬性時才能指定這些屬性也是指定的,並且這兩個屬性在用ASCII不區分大小寫的方式進行比較時必須具有相同的值。

+0

我認爲這對於隨便的讀者來說是值得澄清的:你的答案和引用塊的最後一句特別適用於「HTML文檔」。但請注意,符合HTML5的文檔可能不是HTML文檔!閱讀下面的所有答案以獲取更多詳細信息。 – 2014-04-10 19:49:58

0

HTML 5 uses XML規範中的定義。相關部分是2.12。它可以取值爲BCP 47""

1

要了解xml:lang屬性,你需要熟悉的兩個不同的語法HTML5,the HTML syntax and the XHTML syntax

有各種具體的語法 可用於傳輸使用此抽象語言的資源 ,其中兩個 在此 規範中定義。

第一個這樣的具體語法是 HTML語法。這是大多數作者建議的格式 。它是 與大多數傳統Web兼容的瀏覽器。如果文檔通過HTML MIME type(例如 text/html)被傳送 ,那麼它將通過Web瀏覽器作爲HTML文檔處理 。 本規範定義了最新的 HTML語法,簡稱爲「HTML」。

第二個具體語法是 XHTML語法,它是XML的應用程序 。當文檔被與XML MIME type發送 ,如 application/xhtml+xml,那麼它是 作爲XML文檔被Web瀏覽器 處理,以由XML 處理器進行解析。提醒作者 XML和HTML 的處理有所不同;特別是即使是較小的 語法錯誤也會阻止標記爲XML的文檔 完全呈現爲 ,而在HTML語法中它們將被忽略 。本規範 定義了最新的XHTML語法,簡稱爲「XHTML」,簡稱爲 。

DOM,HTML語法和XML 不能全部表示相同的內容。 例如,使用HTML語法表示名稱空間不能爲 ,但在DOM和 XML中支持它們。同樣,使用HTML語法可以將使用 noscript功能的文檔表示爲 ,但不能使用DOM或XML表示 。 包含字符串「-->」 的註釋只能在DOM中表示, 不在HTML和XML語法中。

HTML語法是您可能使用的語法;它更容忍錯誤,XHTML語法本身不受IE的支持。

In the HTML syntaxxml:lang屬性是沒有意義的。它什麼都不做。如果要設置語言,請使用lang屬性,該屬性也適用於XHTML語法。使用lang屬性將指定該元素及其子元素的默認語言,可用於選擇要使用哪種字體(您可以使用:lang() CSS選擇器自行控制它)。在HTML語法中,只有同時提供lang屬性並且具有相同的值時才允許包含xml:lang屬性;這可以確保不會因它們的不同而產生混淆,並且lang屬性是瀏覽器實際關注的屬性。

在XHTML語法中,xml:lang屬性的語義爲defined by the XML specification。當確定一段文本的語言時,在XHTML中,xml:lang屬性先例,但如果它不存在,則lang屬性用於確定語言(用於字體選擇和:lang() CSS選擇器)。

最好只使用lang屬性。這將在您可能使用的HTML語法中工作,如果您使用該語法,則使用XHTML語法。如果您必須使用完全不瞭解HTML的任何XML工具處理代碼,並且需要定義語言,則可以使用lang屬性和xml:lang屬性具有相同的值,以確保所有工具都將看到相同的語言。

的可能值,對於langxml:lang,是BCP47 language tags如塞爾維亞寫在拉丁文字en-US的美式英語,或sr-Latn-RS在塞爾維亞使用。有關更多詳細信息,請參閱BCP47規範。

相關問題