Podczas generowania XML z XmlDocument w .NET, pusty xmlnsatrybut pojawia się po pierwszym wstawieniu elementu bez skojarzonej przestrzeni nazw; jak można temu zapobiec?
Przykład:
XmlDocument xml = new XmlDocument();
xml.AppendChild(xml.CreateElement("root",
"whatever:name-space-1.0"));
xml.DocumentElement.AppendChild(xml.CreateElement("loner"));
Console.WriteLine(xml.OuterXml);
Wynik:
<root xmlns="whatever:name-space-1.0"><loner xmlns="" /></root>
Pożądane wyjście:
<root xmlns="whatever:name-space-1.0"><loner /></root>
Czy istnieje rozwiązanie, które można zastosować do XmlDocumentkodu, a nie coś, co dzieje się po konwersji dokumentu na ciąg OuterXml?
Powodem, dla którego to robię, jest sprawdzenie, czy mogę dopasować standardowy kod XML konkretnego protokołu za pomocą XML wygenerowanego przez XmlDocument. Pusty xmlnsatrybut nie może zepsuć ani zmylić parsera, ale nie jest również obecny w żadnym zastosowaniu tego protokołu, jakie widziałem.