Хорошо с предложением @JonSkeet я перевернул свою идею в Linq-to-XML
это сделало мою работу довольно легкой.
если кому-то было бы интересно узнать о работе над Linq-to-XML,
вот мой код.
XNamespace ns = "http://www.ncpdp.org/schema/SCRIPT";
XElement xml = new XElement(ns + "Message",
new XAttribute("release", "001"),
new XAttribute("version", "008"),
new XElement(ns + "Header",
new XElement(ns + "To",
new XAttribute("Qualifier", "ZZZ"), "xxxxxxxxxx"),
new XElement(ns + "From",
new XAttribute("Qualifier", "ZZZ"), "xxxxxxxxxxxx"),
new XElement(ns + "MessageID", CommonController.GetIntegerGUID().ToString()),
new XElement(ns + "SentTime", "2002-09-30T08:15:22"),
new XElement(ns + "Security",
new XElement(ns + "UsernameToken",
new XElement(ns + "Username", "")),
new XElement(ns + "Sender",
new XElement(ns + "SecondaryIdentification", "PASSWORD")),
new XElement(ns + "Receiver",
new XElement(ns + "SecondaryIdentification", "RXHUB"))
),
new XElement(ns + "TestMessage", "1")
),
new XElement(ns + "Body",
new XElement(ns + "RxHistoryRequest",
new XElement(ns + "RxReferenceNumber", "POCDH1"),
// it goes on like that
Надеюсь, это кому-нибудь пригодится.