При генерации 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
может не нарушать или не сбивать с толку синтаксический анализатор, но он также отсутствует в любом использовании, которое я видел для этого протокола.