XML-为什么相对名称空间被认为是无效的?

XML-为什么相对名称空间被认为是无效的?,xml,xmlsec,Xml,Xmlsec,我有一段XML,我正试图对其进行签名,然后验证它使用的是相对名称空间: <Organization> <OrganizationName xmlns:_xml="xml" _xml:lang="en">name</OrganizationName> <OrganizationDisplayName xmlns:_xml="xml" _xml:lang="en">name</OrganizationDisplayName> &

我有一段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>

名称
名称
http://www.example.com/
OpenSAML引发以下异常:

org.apache.xml.security.c14n.CanonicalizationException:元素 OrganizationName有一个相对命名空间:_xml=“xml”

为什么相对名称空间被认为是不好的?解析真值时,解析器肯定可以解析名称空间

编辑:找到一些详细信息

本文件第2.2节规定:

这种相对URI引用的弃用是由W3C决定的 XML[相对URI弃用]。它还宣布 “以后的规范(如DOM、XPath等)将定义 对他们的解释”


当名称空间规范被敲定时,有两种思想流派:一组认为名称空间名称应该只是一个名称(仅为唯一性而选择的字符串),另一组认为它应该识别web上提供名称空间内容描述的某些资源:可能是一个模式,也可能是其他内容。现在,如果它只是一个字符串,那么任何字符串都可以。但是,如果它是资源的位置,那么您将期望根据出现的元素的基本URI解析相对引用。在这一点上,这两个思想流派之间没有妥协的余地,W3C并没有决定支持某一组或另一组,而是决定不允许相对URI作为名称空间名称——除非禁止它们为时已晚,所以它们被弃用了。

当名称空间规范被敲定时,有两个学派:一组认为名称空间名称应该只是一个名称(仅为唯一性而选择的字符串),另一组认为应该识别web上提供名称空间内容描述的某些资源:可能是一个模式,可能是其他内容。现在,如果它只是一个字符串,那么任何字符串都可以。但是,如果它是资源的位置,那么您将期望根据出现的元素的基本URI解析相对引用。在这一点上,这两个思想流派之间没有妥协的余地,W3C决定不允许相对URI作为名称空间名称,而不是支持某一组或另一组,除非现在已经太晚了,不允许它们,因此,它们被弃用。

这里不使用绝对名称空间URI的原因是什么?crewjam/saml以这种方式投影它。这里不使用绝对名称空间URI的原因是什么?crewjam/saml以这种方式投影它