xml:lang 是 XML 中声明元素内容语言的内置属性,遵循 RFC 5901 规范,用于标识自然语言;可出现在任意元素上,就近优先;语法为 xml:lang="语言代码",须小写并加引号;支持多语言混合标注,与 HTML 的 lang 属性语义相同但命名空间不同。

xml:lang 是 XML 中用于声明元素内容语言的内置属性,它遵循 RFC 5901(原 RFC 3066)的语言标签规范,作用是告诉处理器、浏览器或辅助技术当前文本使用的自然语言(如中文、英文、日语等)。
xml:lang 的基本用法
该属性可出现在任何 XML 元素上,优先级以“最近的声明为准”——即嵌套最深、离文本最近的 xml:lang 会覆盖外层的设置。
- 语法格式为:
xml:lang="语言代码",语言代码通常由主语言子标签(必选)和可选的扩展子标签(如地区、脚本)组成,例如zh、zh-CN、en-US、ja-JP、pt-BR - 必须使用小写字母(XML 规范要求),且不能省略引号
- 根元素上声明可作为整个文档默认语言,例如:
<book xml:lang="zh-CN"></book>
多语言混合内容中的灵活应用
当一个 XML 文档包含多种语言时(如中英混排、术语引用、引文等),可在具体元素上单独标注语言,帮助样式处理、语音合成、拼写检查等更准确地响应。
生成可在 deepbi 沙箱 iframe 内运行或作为独立文件运行的交互式 HTML 页面,使用 `window.deepbi` JS SDK 实现数据查询、空间管理、文件浏览及用户操作。当用户提出以下需求时启用该能力: - 创建 KPI 仪表盘、数据表格、文件浏览器、成员列表、管理页面; - 明确要求“转成 dhtml”、“转译成 HTML”、“把 XX 页面转成……”、“控制台页面”、“管理后台”、“DeepBI 页面迁移”; - 提及位于 `apps/console/src/featur
- 在段落中嵌入英文术语:
<p>这个概念叫<term xml:lang="en">abstraction</term>。</p> - 引用外语原文:
<quote xml:lang="fr">Je pense, donc je suis.</quote> - 切换方言或变体:
<name xml:lang="zh-TW">台北市</name>与<name xml:lang="zh-CN">北京市</name>
与 lang 属性的区别和注意事项
HTML 中常用 lang,而 XML(包括 XHTML、SVG、DocBook 等)应统一使用 xml:lang。二者语义一致,但命名空间不同:
-
xml:lang属于 XML 命名空间(http://www.w3.org/XML/1998/namespace),无需显式声明前缀即可使用 - 若同时存在
lang和xml:lang,XML 处理器只认xml:lang;HTML 解析器则优先识别lang - 不要写成
xmlns:xml="http://www.w3.org/XML/1998/namespace"—— 这个前缀已由 XML 规范预定义,强制绑定
验证与工具支持
多数现代 XML 编辑器(如 Oxygen XML、VS Code + XML 插件)能识别并校验 xml:lang 值是否符合 BCP 47 标准。建议:
- 使用 IANA 语言子标签注册库(language-subtag-registry)查证合法代码
- 避免自造标签,如
zh-simplified(应为zh-Hans),en-uk(应为en-GB) - 空值或非法值(如
xml:lang=""或xml:lang="xyz")可能导致辅助技术跳过该段文本

















