For my own case I did the following within W3CDom:
Document out;
if (in.childNodeSize() > 1 && in.childNode(0) instanceof org.jsoup.nodes.DocumentType) {
final org.jsoup.nodes.DocumentType docType = (org.jsoup.nodes.DocumentType) in.childNode(0);
final DOMImplementation impl = builder.getDOMImplementation();
out = impl.createDocument(
null,
null,
impl.createDocumentType(
docType.attr("name"),
docType.attr("publicId"),
docType.attr("systemId")
));
} else {
out = builder.newDocument();
}
For my own case I did the following within W3CDom: