具有命名空间的元素的XML规范化


标准XML标准https://www.ietf.org/rfc/rfc3076.txt包含各种示例,但没有一个示例,输入文档在元素名称上具有名称空间。

的规范形式是什么

<Namespace:Element Attribute="Value" xmlns:Namespace="https://namespace.example.com"/>

是吗

<Namespace:Element xmlns:Namespace="https://namespace.example.com" Attribute="Value"></Namespace:Element>

还是

<Element xmlns="https://namespace.example.com" Attribute="Value"></Element>

甚至

<Element xmlns="https://namespace.example.com" xmlns:Namespace="https://namespace.example.com" Attribute="Value"></Element>

还是别的什么?

您的起始文档使用名称空间前缀,您引用的参考文献RFC 3076规范XML版本1.0在第4.4节中指出,名称空间前缀不应重写,

4.4无命名空间前缀重写

因此,您可以得出结论,名称空间前缀也不应该被消除,这将排除后两个候选者。重要的是,第4.4节继续说

必须测试逻辑等价性的应用程序必须执行比仅仅八位字节流比较更复杂的测试。

因此,请务必意识到RFC3076不会为您购买XML文档的字符串级等效测试

关于名称空间声明和属性排序,第4.5节

4.5命名空间声明和属性的顺序

[…]此规范遵循将所有名称空间节点置于所有属性节点之前的XPath数据模型。

因此,根据RFC 3076,您的第一个候选表单是正确的。

最新更新