Combinar XElement en XDocument y resolver espacios de nombres

Dado lo siguienteXDocument, inicializado en variablexDoc:

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
  <ReportSection>
    <Width />
    <Page>
  </ReportSections>
</Report>

Tengo una plantilla incrustada en un archivo XML (llamémoslobody.xml):

<Body xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
  <ReportItems />        
  <Height />
  <Style />
</Body>

Que me gustaría poner como un niño de<ReportSection>. El problema es si agregarlo a travésXElement.Parse(body.xml), mantiene el espacio de nombres, aunque creo que el espacio de nombres debería eliminarse (no tiene sentido duplicarlo, ya declarado en el elemento primario). Si no especifico espacio de nombres, coloca un espacio de nombres vacío, por lo que se convierte en<Body xmlns="">.

¿Hay una manera de fusionar correctamenteXElement dentroXDocument? Me gustaría obtener el siguiente resultado después dexDoc.Root.Element("ReportSection").AddFirst(XElement):

<Report xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">
  <ReportSection>
    <Body>
      <ReportItems />        
      <Height />
      <Style />
    </Body>
    <Width />
    <Page>
  </ReportSections>
</Report>

Respuestas a la pregunta(1)

Su respuesta a la pregunta