Сериализация XmlDocument и отправка через HTTPWebRequest

Я пытаюсь выяснить, как правильно сериализовать мой XmlDocument и отправить его через объект HTTPWebRequest.

Вот что я имею к настоящему времени:

Stream requestStream;

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://wwwcie.ups.com/ups.app/xml/Track");
request.Method = "POST";

request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = postData.Length;
requestStream = request.GetRequestStream();

XmlSerializerNamespaces xsm = new XmlSerializerNamespaces();
xsm.Add("", ""); // remove namespace
XmlSerializer ser = new XmlSerializer(xmlRequest.GetType());
ser.Serialize(requestStream, xmlRequest);

requestStream.Write(postData, 0, postData.Length);
requestStream.Close();

Несколько вещей, в которых я не уверен. У меня есть 2 XmlDocuments, которые мне нужно отправить в том же HTTPWebRequest. Ранее я пытался преобразовать XmlDocuments в строки и просто объединить их (для отправки строки), но когда я использовал StringBuilder / Writer, он добавляет:

  <?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://myNameSpace/">

У меня уже есть объявление в моих объектах XmlDocument, так что теперь его там дважды, и я не могу иметь<string... часть там. Проще ли конвертировать XmlDocuments в строки, затем объединять их и отправлять, или есть простой способ отправить XmlDocuments как есть?

Edit:

УвидетьC # XmlDocument Nodes Когда я пытаюсь преобразовать один из моих XmlDocuments в строку, он отображается как

  <?xml version="1.0" encoding="utf-8" ?> 
  <string xmlns="http://myNamespace/">
      <TrackRequest>
         <Request>
            <TransactionReference>
                <CustomerContext>whatever</CustomerContext>
            </TransactionReference>
         </Request>
         <TrackingNumber>123</TrackingNumber>
      </TrackRequest>
   </string> 

Я хочу, чтобы мой корень был<TrackRequest>

Ответы на вопрос(3)

Ваш ответ на вопрос