2015-10-05 36 views
0

我試圖設置以下屬性,但它們沒有正確通過。無法在xml文檔中設置屬性

我希望我的XML看起來像這樣:

 <AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="amzn-envelope.xsd"> 

,但它顯示是這樣的:

 <AmazonEnvelope xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="amzn-envelope.xsd"> 

沒有我的版本的noNamespaceSchemaLocation屬性的XSI盈。

如果你的.NET框架版本是> 3.0或者你可以使用XDocument代替XmlDocument

命名空間中寫XML

 var xmldoc = new XmlDocument(); 
     var amazonEnvelope = xmldoc.CreateElement("AmazonEnvelope"); 
     amazonEnvelope.SetAttribute("xsi:noNamespaceSchemaLocation", "amzn-envelope.xsd"); 
     amazonEnvelope.SetAttribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance"); 
     xmldoc.AppendChild(amazonEnvelope); 
+0

我試過這個解決方案,但它對我沒有用。沒有xsi。 – DanScan

回答

1

我的C#代碼

using System.Xml.Linq; 

代碼

XNamespace xsi = "http://www.w3.org/2001/XMLSchema-instance"; 

XDocument doc = new XDocument(
       new XElement("AmazonEnvelope", 
        new XAttribute(XNamespace.Xmlns + "xsi", "http://www.w3.org/2001/XMLSchema-instance"), 
        new XAttribute(xsi + "noNamespaceSchemaLocation", "amzn-envelope.xsd") 
        ) 
       );