2014-10-02 100 views
0

創建的XmlElement我使用我的XmlDocumentCreateElement()方法是這樣的:沒有命名空間

XmlElement jobElement = dom.CreateElement("job"); 

但我得到的結果是job元素與空命名空間。

<job xmlns="">xyz</job> 

這應該閱讀這個XML將不再檢測到這種job元素程序。 我以爲this問題給出了答案,但它沒有。我如何創建一個純粹的工作元素?

<job>xyz</job> 

更新:這是我的文檔的根元素:

<job-scheduling-data xmlns="http://quartznet.sourceforge.net/JobSchedulingData" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" version="2.0"> 
+0

每個節點都有一個名稱空間 - 它在概念上不是可選的。但是,如果名稱空間未在節點上明確指定,則它將繼承其父級的名稱空間。 – 2014-10-02 15:44:52

+0

@TimothyShields,但它的父類不應該有命名空間。 – Disasterkid 2014-10-02 15:46:31

+0

然後,父項將從其父項繼承。最終,文檔的根節點至少應該有一個明確的名稱空間,以便文檔樹中的所有其他後代繼承(假設您正在使用> XML版本1.0)。 – 2014-10-02 15:47:42

回答

2

我想this問題給出了一個答案,但它沒有。」

其實它的確如此。設置<job>元素是在默認命名空間(即,在這種情況下,在根級別聲明前綴的命名空間):

XmlElement jobElement = dom.CreateElement("job", "http://quartznet.sourceforge.net/JobSchedulingData"); 
jobElement.InnerText = "xyz"; 

這樣,在XML標記,<job>元素簡單地繼承它的祖先的默認命名空間(將不會創建本地空的默認名稱空間):

<job>xyz</job>