互联网上的许多文章(例如这篇文章)建议使用xml:lang
或一些自定义属性来编码有关 XML 标记内的语言的元信息。他们提到这些代码必须符合BCP47 标准。
让我们看看如果我按照文章的建议对语言属性进行编码会发生什么:
- 内部 DTD:
<!ATTLIST text xml:lang NMTOKEN #IMPLIED>
- 内部 XML:
<text xml:lang="YODU991Yklew-e-ijsw02ijwk">...</text>
预期的结果是什么?
DTD 验证器将检查YODU991Yklew-e-ijsw02ijwk
代码是否是真正的 BCP47 语言代码、国家和脚本是否存在并将其标记为红色,如果这些代码不正确。与http://schneegans.de/完全相同的方式有助于验证这些代码(错误代码与正确代码)。
相反会发生什么?
Validator 仅将此属性视为一些文本,并且不会验证,如果它是真实的语言代码或一些乱码。