object dom_implementation::createDocument(string_type ns_uri, string_type qname, boost::optional<doctype&> doctype) { arabica_doctype dt = doctype ? static_cast<arabica_doctype>(doctype->underlying_impl()) : arabica_doctype(); XML_CB_TRY { return master_node_map_->get_node( impl_.createDocument( ns_uri, qname, dt ) ); } XML_CB_CATCH }