xmlns =“”是一个有效的xml命名空间吗?

时间:2009-10-19 10:11:06

标签: xml xml-namespaces

“空”是XML命名空间的有效值吗?如果是的话是什么意思?

我有以下XML代码,但我不确定哪个名称空间Field1Field2元素属于。

<soapenv:Envelope xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/">
  <soapenv:Header />
  <soap:Body>
    <Root xmlns="uri">
      <Field1 xmlns="">147079737</Field1>
      <Field2 xmlns="">POL</Field2>
    </Root>
  </soap:Body>
</soapenv:Envelope>

2 个答案:

答案 0 :(得分:23)

是的,它是有效的。 Section 6.2中的Namespaces in XML 1.0 Recommendation具体说:

  

默认名称空间声明中的属性值可以为空。在声明的范围内,这与没有默认命名空间具有相同的效果。

引自评论:

  

这是合法的,这是将元素引入全局命名空间的方法。

答案 1 :(得分:3)

它不是有效的XML NS。它不是有效的XML NS声明。请检查XML 1.0中的命名空间的section 2.2

  

空字符串虽然是合法的URI引用,但不能用作命名空间名称。

然而,如果存在默认NS声明,或者它没有效果,则它是取消声明默认NS声明的唯一方法。看到。 XML 1.0和1.1中的命名空间,section 6.2。然而,1.1 NS rec又添加了一种方法,也没有声明带有前缀的NS声明。

因此它是有效的,但它不像OP写的那样是“有效的XML命名空间”。