XML名称空间和默认名称空间

时间:2014-01-30 16:22:36

标签: xml xml-namespaces

我收到了一份令我头疼的XML文档。

这里看起来像这样:

<ns1:ObjectInfo xmlns:ns1="urn:package:ObjectInfo" xmlns="package:ObjectInfo">
...
    <Object Id="12345">
        <ns1:ObjectInfo xmlns="urn:package:ObjectInfo">
        </ns1:ObjectInfo>
    </Object>
...
</ns1:ObjectInfo>

我不是XML专家,但据我所知,这个“xmlns =”包:ObjectInfo“定义了默认命名空间,对吗?

首先明确定义命名空间(ns1:ObjectInfo xmlns:ns1 =“urn:package:ObjectInfo”)并且还定义默认命名空间(xmlns =“package:ObjectInfo”)是否真的很常见?

认为可能导致问题的原因是默认命名空间有一个拼写错误(是:xmlns =“package:ObjectInfo”,但应该是:“ urn :package:ObjectInfo“) - 这让我想到:Object中的ObjectInfo元素属于/引用哪个命名空间?

1 个答案:

答案 0 :(得分:1)

  

这让我想到:Object中的ObjectInfo元素属于/引用哪个命名空间?

ObjectInfo当然属于命名空间ns1。具有“无名称空间前缀”的Object元素中ObjectInfo元素的所有子元素都应属于默认名称空间xmlns =“urn:package:ObjectInfo”

我不确定是否有拼写错误。但是,Object元素属于顶级默认命名空间xmlns =“package:ObjectInfo”