C# 创建XML文件时如何添加名称空间?
我必须用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
<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");