“空”是XML命名空间的有效值吗?如果是的话是什么意思?
我有以下XML代码,但我不确定哪个名称空间Field1
和Field2
元素属于。
<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>
答案 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命名空间”。