Serialize o XmlDocument e envie via HTTPWebRequest

Eu estou tentando descobrir como serializar corretamente meu XmlDocument e enviá-lo através de um objeto HTTPWebRequest.

Aqui está o que eu tenho até agora:

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();

Algumas coisas sobre as quais não tenho certeza. Eu tenho 2 XmlDocuments eu preciso enviar o mesmo HTTPWebRequest. Eu tentei antes de converter os XmlDocuments para seqüências de caracteres e apenas concatená-los (para enviar a seqüência de caracteres), mas quando eu usei o StringBuilder / Writer ele adiciona:

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

Eu já tenho a declaração em meus objetos XmlDocument então agora está lá duas vezes, e eu não posso ter o<string... parte lá. É mais fácil converter os XmlDocuments em seqüências de caracteres, concatená-los e enviá-los ou há uma maneira fácil de enviar os XmlDocuments como eles são?

Editar:

VejoC # XmlNocument Nodes Quando tento converter um dos meus XmlDocuments em uma string, ele aparece como

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

Eu quero que minha raiz seja<TrackRequest>

questionAnswers(3)

yourAnswerToTheQuestion