При генерації XML з XmlDocument в .NET, пустий xmlns
атрибут з'являється вперше, коли елемент без вбудованого простору імен вставляється; як це можна запобігти?
Приклад:
XmlDocument xml = new XmlDocument();
xml.AppendChild(xml.CreateElement("root",
"whatever:name-space-1.0"));
xml.DocumentElement.AppendChild(xml.CreateElement("loner"));
Console.WriteLine(xml.OuterXml);
Вихід:
<root xmlns="whatever:name-space-1.0"><loner xmlns="" /></root>
Бажаний вихід:
<root xmlns="whatever:name-space-1.0"><loner /></root>
Чи є рішення, застосовне до XmlDocument
коду, а не те, що відбувається після перетворення документа в рядок з OuterXml
?
Моє міркування для цього полягає в тому, щоб побачити, чи можу я відповідати стандартному XML певного протоколу за допомогою XMLDocument, створеного XML. Порожній xmlns
атрибут може не зламати або заплутати аналізатор, але він також не присутній у використанні, яке я бачив у цьому протоколі.