Reputation: 21
i use this code for creating xml file using c# class.
XmlDocument doc = new XmlDocument();
XmlNode docNode = doc.CreateXmlDeclaration("1.0", "UTF-8", null);
doc.AppendChild(docNode);
XmlNode RootNode = doc.CreateElement("SDF");
doc.AppendChild(RootNode);
XmlAttribute rootAttribute2 = doc.CreateAttribute("Version");
rootAttribute2.Value = "3.0";
RootNode.Attributes.Append(rootAttribute2);
XmlAttribute rootAttribute = doc.CreateAttribute("xmlns:sdf");
rootAttribute.Value = "http://www.w3.org/2001/XMLSchema-instance";
RootNode.Attributes.Append(rootAttribute);
XmlAttribute rootAttribute1 = doc.CreateAttribute("sdf:noNamespaceSchemaLocation");
rootAttribute1.Value = "SDF.xsd";
RootNode.Attributes.Append(rootAttribute1);
output of this code..
<?xml version="1.0" encoding="UTF-8"?>
<SDF Version="3.0" xmlns:sdf="http://www.w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="SDF.xsd">
but i want output like that
<?xml version="1.0" encoding="UTF-8"?>
<SDF Version="3.0" xmlns:sdf="http://www.w3.org/2001/XMLSchema-instance" sdf:noNamespaceSchemaLocation="SDF.xsd">
Upvotes: 2
Views: 173
Reputation: 21
i searched on google and find answer that solve my problem
XmlNode RootNode = doc.CreateElement("SDF");
doc.AppendChild(RootNode);
XmlAttribute rootAttribute2 = doc.CreateAttribute("Version");
rootAttribute2.Value = "3.0";
RootNode.Attributes.Append(rootAttribute2);
XmlAttribute newAttr = doc.CreateAttribute("sdf", "noNamespaceSchemaLocation", "http://www.w3.org/2001/XMLSchema-instance");
newAttr.Value = "SDF.xsd";
RootNode.Attributes.Append(newAttr);
Upvotes: 0
Reputation: 2355
Use Overloaded version CreateAttribute method.
doc.CreateAttribute("name","namespaceURI")
See below link for detials.
http://msdn.microsoft.com/en-us/library/System.Xml.XmlDocument.CreateAttribute%28v=vs.110%29.aspx
Upvotes: 1
Reputation: 67898
You need to use a different overload:
XmlAttribute rootAttribute1 =
doc.CreateAttribute("sdf", "noNamespaceSchemaLocation", null);
Upvotes: 3