2014-01-30 259 views
0

我收到了一个XML文档,这让我很头疼。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元素属于/指?

+0

定义几个名称空间别名以及定义默认名称空间当然很常见。尽管这两个名称空间URI之间的共同性不同寻常。 –

+0

那是什么文件?谷歌的“urn:package:ObjectInfo”只能找到这个问题! –

回答

1

这让我想到:Object中的ObjectInfo元素属于/指向哪个名称空间?

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

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

+0

我同意。也许第一个应该是'xmlns =“urn:package:ObjectInfo”' –

+0

@John是的,如果第一个像你说的那样,那么第二个是多余的 – IndoKnight