2010-11-16 18 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规范。

相关问题