[英]Unwanted namespace attribute added to root child element
我曾尝试将默认名称空间添加到根目录,尽管它也将名称空间添加到其子级。 我想将名称空间添加到现有XDocument中。
我的代码尝试;
// add default namespace - attempt 1
XNamespace xmlns = "http://www.myschema/schema.xsd";
xDocument.Root.Name = xmlns + xDocument.Root.Name.LocalName;
// add default namespace - attempt 2
XNamespace MyNS = "http://www.myschema/schema.xsd";
xDocument.Element("testFile").Name = MyNS.GetName("testFile");
XML;
<testFile version="1" xmlns="http://www.myschema/schema.xsd">
<testResults xmlns=""> <!-- *** Unwanted Attribute *** -->
<result resultID="abcdefgh" comment="blah blah blah blah">
</testResults>
</testFile>
我想知道为什么testResults附加了xmlns命名空间属性?
这是一些要测试的测试C#代码;
XDocument xDocument = new XDocument(
new XElement("testFile",
new XAttribute("version", "1"),
new XElement("testResults",
new XElement("result",
new XAttribute("resultID", "abcdefgh"),
new XAttribute("comment", "blah blah blah blah")
))));
XNamespace ns = "http://www.myschema/schema.xsd";
XDocument xDocument = new XDocument(
new XElement(ns + "testFile",
new XAttribute("version", "1"),
new XElement(ns + "testResults",
new XElement(ns + "result",
new XAttribute("resultID", "abcdefgh"),
new XAttribute("comment", "blah blah blah blah")
))));
如下代码:
var xDocument = new XmlDocument();
var element1 = xDocument.CreateElement("testFile", "http://www.myschema/schema.xsd");
element1.SetAttribute("version", "1");
xDocument.AppendChild(element1);
var element2 = xDocument.CreateElement("testResults", "http://www.myschema/schema.xsd");
element1.AppendChild(element2);
var element3 = xDocument.CreateElement("result", "http://www.myschema/schema.xsd");
element3.SetAttribute("resultID", "abcdefgh");
element3.SetAttribute("comment", "blah blah blah blah");
element2.AppendChild(element3);
产生以下xml文件:
<testFile version="1" xmlns="http://www.myschema/schema.xsd">
<testResults>
<result resultID="abcdefgh" comment="blah blah blah blah" />
</testResults>
</testFile>
您不能“将名称空间添加到XDocument”。 文件没有命名空间。 元素和属性名称具有名称空间。
您将不得不更改文档中每个元素的名称空间,并可能还要更改某些属性。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.