I'm not able to get my expected result. Look at my C# code I am adding the second attribute "xsi:noNamespaceSchemaLocation" , But the word "xsi:" is missing in the outerXml. Where I'm failing?
c# :
XmlDocument doc = new XmlDocument();
using (XmlWriter writer = doc.CreateNavigator().AppendChild())
{
new XmlSerializer(oWrite.GetType()).Serialize(writer, oWrite);
}
doc.DocumentElement.RemoveAllAttributes() ;
XmlAttribute xmlAtri1,xmlAtri2;
xmlAtri1 = doc.CreateAttribute("xmlns:xsi");
xmlAtri1.Value = "http://www.w3.org/2001/XMLSchema-instance";
doc.FirstChild.FirstChild.Attributes.Append(xmlAtri1);
xmlAtri2 = doc.CreateAttribute("xsi:noNamespaceSchemaLocation");
xmlAtri2.Value = "../xsd/nikuxog_customObjectInstance.xsd";
doc.FirstChild.FirstChild.Attributes.Append(xmlAtri2);
return doc.DocumentElement ;
Outer XML :
<WriteCustomObjectInstance>
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" noNamespaceSchemaLocation="../xsd/nikuxog_customObjectInstance.xsd">
<Header externalSource="NIKU" version="13.1.0.0248" />
<customObjectInstances objectCode="web_req">
</customObjectInstances>
</NikuDataBus>
</WriteCustomObjectInstance>
Expected XML :
<WriteCustomObjectInstance>
<NikuDataBus xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="../xsd/nikuxog_customObjectInstance.xsd">
<Header externalSource="NIKU" version="13.1.0.0248" />
<customObjectInstances objectCode="web_req">
</customObjectInstances>
</NikuDataBus>
</WriteCustomObjectInstance>
Thanks,
JP
Try like this -
doc.DocumentElement.RemoveAllAttributes() ;
var xsi = "http://www.w3.org/2001/XMLSchema-instance";
XmlAttribute xmlAtri1;
xmlAtri1 = doc.CreateAttribute("xmlns:xsi");
xmlAtri1.Value = xsi;
doc.FirstChild.FirstChild.Attributes.Append(xmlAtri1);
xmlAtri1 = doc.CreateAttribute("noNamespaceSchemaLocation", xsi);
xmlAtri1.Value = "../xsd/nikuxog_customObjectInstance.xsd";
doc.FirstChild.FirstChild.Attributes.Append(xmlAtri1);
For details check this link -