Я хотел бы создать собственное объявление XmlDeclaration при использовании классов XmlDocument / XmlDeclaration в C# .net 2 или 3.
Это мой желаемый результат (это ожидаемый результат стороннего приложения):
<?xml version = "1.0" encoding = "ISO-8859-1" ?>
<?MyCustomNameHere attribute1 = "val1" attribute2 = "val2" ?>
[ ...more xml... ]
Используя классы XmlDocument / XmlDeclaration, похоже, я могу создать только одну XmlDeclaration с определенным набором параметров:
XmlDocument doc = new XmlDocument();
XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "ISO-8859-1", null);
doc.AppendChild(declaration);
Есть ли класс, отличный от XmlDocument / XmlDeclaration, на который я должен обратить внимание, чтобы создать пользовательский XmlDeclaration? Или есть способ с самими классами XmlDocument / XmlDeclaration?





Вы хотите создать не декларацию XML, а «инструкцию по обработке». Вы должны использовать класс XmlProcessingInstruction, а не класс XmlDeclaration, например:
XmlDocument doc = new XmlDocument();
XmlDeclaration declaration = doc.CreateXmlDeclaration("1.0", "ISO-8859-1", null);
doc.AppendChild(declaration);
XmlProcessingInstruction pi = doc.CreateProcessingInstruction("MyCustomNameHere", "attribute1=\"val1\" attribute2=\"val2\"");
doc.AppendChild(pi);
Вы хотели бы добавить XmlProcessingInstruction, созданный с использованием метода CreateProcessingInstruction для XmlDocument.
Пример:
XmlDocument document = new XmlDocument();
XmlDeclaration declaration = document.CreateXmlDeclaration("1.0", "ISO-8859-1", "no");
string data = String.Format(null, "attribute1=\"{0}\" attribute2=\"{1}\"", "val1", "val2");
XmlProcessingInstruction pi = document.CreateProcessingInstruction("MyCustomNameHere", data);
document.AppendChild(declaration);
document.AppendChild(pi);
@Oppositional - Еще раз спасибо :) Bradely и вы оба пригвоздили.