2014-10-02 99 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>