带命名空间的XML元素的Canonical XML规范化形式咨询
Canonical XML命名空间元素规范化问题
给定输入XML元素:
<Namespace:Element Attribute="Value" xmlns:Namespace="https://namespace.example.com"/>
其Canonical XML规范化形式为:
<Namespace:Element xmlns:Namespace="https://namespace.example.com" Attribute="Value"></Namespace:Element>
核心规则依据:
- 空元素必须展开为完整的开始标签+结束标签,禁止使用自闭合形式;
- 属性排序需遵循「命名空间声明属性(
xmlns:*)优先于普通属性」的规则,命名空间声明按前缀字典序排列(此处仅一个声明,直接放在最前); - 元素的命名空间前缀需保留原始形式,只要对应的命名空间URI声明存在即可,不能随意替换为默认命名空间(即不能改成不带前缀的
<Element>+默认xmlns声明的形式); - 冗余的命名空间声明会被移除,第三个选项中同时保留默认命名空间和前缀命名空间属于冗余,不符合规范。
内容的提问来源于stack exchange,提问作者Juergen
相关产品推荐
相关产品推荐

