簡體   English   中英

不需要的名稱空間屬性已添加到根子元素

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM