You can add an XDocumentType to an existing XDocument, but there's a caveat: you can only do so provided no elements have already been added to the XDocument. This is mentioned in the Pro LINQ book (Google Books link). I couldn't find an MSDN page that states as much, but XmlDocument class has a similar limitation and its MSDN page states:
The DocumentType node must also be
inserted before the root element of
the XmlDocument (if the document
already has a root element, you cannot
add a DocumentType node).
That said, you would use the Add method to add an XDocumentType to an existing XDocument.
XDocument xDocument = new XDocument();
XDocumentType documentType = new XDocumentType("Books", null, "Books.dtd", null);
xDocument.Add(documentType);
On the other hand, the following is invalid and would result in an InvalidOperationException: "This operation would create an incorrectly structured document."
xDocument.Add(new XElement("Books"));
xDocument.Add(documentType); // invalid, element added before doctype
In your case you may have to create a new XDocument then read in (transfer) the nodes from the existing XDocument.