2014-01-30 174 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