我有一段 XML 正在尝试签名,然后验证哪个使用相对命名空间:
<Organization>
<OrganizationName xmlns:_xml="xml" _xml:lang="en">name</OrganizationName>
<OrganizationDisplayName xmlns:_xml="xml" _xml:lang="en">name</OrganizationDisplayName>
<OrganizationURL xmlns:_xml="xml" _xml:lang="en">http://www.example.com/</OrganizationURL>
</Organization>
OpenSAML 引发以下异常:
org.apache.xml.security.c14n.CanonicalizationException:元素 OrganizationName 有一个相对命名空间:_xml="xml"
为什么相对命名空间被认为是不好的?解析器在解析真实值时肯定可以解析命名空间吗?
编辑:找到更多信息
XML 1.1文档中的命名空间在第 2.2 节中指出:
弃用相对 URI 引用是由 W3C XML Plenary Ballot [Relative URI deprecation] 决定的。它还声明“以后的规范,如 DOM、XPath 等,将不会为它们定义任何解释”。
这是在相对 URI References 的投票中投票赞成的。