C# 创建XML文件时如何添加名称空间?

C# 创建XML文件时如何添加名称空间?,c#,xml,C#,Xml,我必须用C#创建一个XML文档 根元素必须如下所示: <valuation-request xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="valuations.xsd"> 然而,这产生了 <valuation-request xmlns:xsi="http://www.w3.org/2001/XMLSchema-ins

我必须用C#创建一个XML文档

根元素必须如下所示:

<valuation-request 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     xsi:noNamespaceSchemaLocation="valuations.xsd">
然而,这产生了

<valuation-request 
     xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 
     noNamespaceSchemaLocation="valuations.xsd"> //missing the xsi:
//缺少xsi:
我遗漏了什么?

使用的重载,它也会占用名称空间:

root.SetAttribute("noNamespaceSchemaLocation", 
    "http://www.w3.org/2001/XMLSchema-instance", 
    "valuations.xsd"
); 

使用writer,您可以这样添加它:

var writerSettings = new XmlWriterSettings
        {
            Indent = true,
            IndentChars = " ",
            NewLineChars = Environment.NewLine,
            NewLineHandling = NewLineHandling.Replace,
            Encoding = new UTF8Encoding(false)
        };

XmlWriter writer = XmlWriter.Create("C:\test.xml", writerSettings);
writer.WriteStartDocument(false);
writer.WriteStartElement("valuation-request");
writer.WriteAttributeString("xmlns", "xsi", null, "http://www.w3.org/2001/XMLSchema-instance");
writer.WriteAttributeString("xsi", "noNamespaceSchemaLocation", null, "http://www.gzs.si/e-poslovanje/sheme/eSLOG_1-5_EnostavniRacun.xsd");

最近,我遇到了同样的问题。为了解决这个问题,我只添加了以下行:

XmlAttribute noNamespaceSchemaLocationAttr = xmlDoc.CreateAttribute("xsi", "noNamespaceSchemaLocation", "http://www.w3.org/2001/XMLSchema-instance");

我正在使用root.SetAttribute(“xsi:noNamespaceSchemaLocation”、“valuations.xsd”);。你认为它应该是什么样子?试试这个root.SetAttribute(“noNamespaceSchemaLocation”,“valuements.xsd“,”);它返回的结果是我将它们调换成root.SetAttribute(“noNamespaceSchemaLocation”,“”,“valuements.xsd”);…bish bash bosh..cheers在我的代码中工作得很好。XMLSchema实例部分对我来说很重要
XmlAttribute noNamespaceSchemaLocationAttr = xmlDoc.CreateAttribute("xsi", "noNamespaceSchemaLocation", "http://www.w3.org/2001/XMLSchema-instance");