From 1ab1ed7301d3885a00b3081b3bf7ccdeabd0466a Mon Sep 17 00:00:00 2001 From: John Mark Bell Date: Sun, 5 Feb 2012 21:01:43 +0000 Subject: Make HTMLDocument use dynamic dispatch like everything else. Fix variable misuse in HTMLDocument constructor. Overload Document.createElement and Document.createElementNS for HTMLDocuments Re-enable decision to create HTMLDocument instead of Document in DOMImplementation.createDocument svn path=/trunk/libdom/; revision=13425 --- include/dom/html/html_document.h | 264 +++++++++++++++++++++++++++++++++------ src/core/implementation.c | 14 +-- src/html/html_document.c | 223 +++++++++++++++++++++++++++------ src/html/html_document.h | 98 +++++++++++++++ 4 files changed, 513 insertions(+), 86 deletions(-) diff --git a/include/dom/html/html_document.h b/include/dom/html/html_document.h index d09cd36..6270f47 100644 --- a/include/dom/html/html_document.h +++ b/include/dom/html/html_document.h @@ -22,47 +22,233 @@ typedef struct dom_html_document dom_html_document; typedef struct dom_html_document_vtable { struct dom_document_vtable base; + + dom_exception (*get_title)(dom_html_document *doc, + dom_string **title); + dom_exception (*set_title)(dom_html_document *doc, + dom_string *title); + dom_exception (*get_referer)(dom_html_document *doc, + dom_string **referer); + dom_exception (*get_domain)(dom_html_document *doc, + dom_string **domain); + dom_exception (*get_url)(dom_html_document *doc, + dom_string **url); + dom_exception (*get_body)(dom_html_document *doc, + struct dom_html_element **body); + dom_exception (*set_body)(dom_html_document *doc, + struct dom_html_element *body); + dom_exception (*get_images)(dom_html_document *doc, + struct dom_html_collection **col); + dom_exception (*get_applets)(dom_html_document *doc, + struct dom_html_collection **col); + dom_exception (*get_links)(dom_html_document *doc, + struct dom_html_collection **col); + dom_exception (*get_forms)(dom_html_document *doc, + struct dom_html_collection **col); + dom_exception (*get_anchors)(dom_html_document *doc, + struct dom_html_collection **col); + dom_exception (*get_cookie)(dom_html_document *doc, + dom_string **cookie); + dom_exception (*set_cookie)(dom_html_document *doc, + dom_string *cookie); + + dom_exception (*open)(dom_html_document *doc); + dom_exception (*close)(dom_html_document *doc); + dom_exception (*write)(dom_html_document *doc, + dom_string *text); + dom_exception (*writeln)(dom_html_document *doc, + dom_string *text); + dom_exception (*get_elements_by_name)(dom_html_document *doc, + dom_string *name, struct dom_nodelist **list); } dom_html_document_vtable; -/* The DOM spec public API */ - -dom_exception dom_html_document_get_title(dom_html_document *doc, - dom_string **title); -dom_exception dom_html_document_set_title(dom_html_document *doc, - dom_string *title); -dom_exception dom_html_document_get_referer(dom_html_document *doc, - dom_string **referer); -dom_exception dom_html_document_get_domain(dom_html_document *doc, - dom_string **domain); -dom_exception dom_html_document_get_url(dom_html_document *doc, - dom_string **url); -dom_exception dom_html_document_get_body(dom_html_document *doc, - struct dom_html_element **body); -dom_exception dom_html_document_set_body(dom_html_document *doc, - struct dom_html_element *body); -dom_exception dom_html_document_get_images(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_applets(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_links(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_forms(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_anchors(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_cookie(dom_html_document *doc, - dom_string **cookie); -dom_exception dom_html_document_set_cookie(dom_html_document *doc, - dom_string *cookie); - -dom_exception dom_html_document_open(dom_html_document *doc); -dom_exception dom_html_document_close(dom_html_document *doc); -dom_exception dom_html_document_write(dom_html_document *doc, - dom_string *text); -dom_exception dom_html_document_writeln(dom_html_document *doc, - dom_string *text); -dom_exception dom_html_document_get_elements_by_name(dom_html_document *doc, - dom_string *name, struct dom_nodelist **list); +static inline dom_exception dom_html_document_get_title( + dom_html_document *doc, dom_string **title) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_title(doc, title); +} +#define dom_html_document_get_title(d, t) \ + dom_html_document_get_title((dom_html_document *) (d), \ + (dom_string **) (t)) + +static inline dom_exception dom_html_document_set_title(dom_html_document *doc, + dom_string *title) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + set_title(doc, title); +} +#define dom_html_document_set_title(d, t) \ + dom_html_document_set_title((dom_html_document *) (d), \ + (dom_string **) (t)) + +static inline dom_exception dom_html_document_get_referer(dom_html_document *doc, + dom_string **referer) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_referer(doc, referer); +} +#define dom_html_document_get_referer(d, r) \ + dom_html_document_get_referer((dom_html_document *) (d), \ + (dom_string **) (r)) + +static inline dom_exception dom_html_document_get_domain(dom_html_document *doc, + dom_string **domain) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_domain(doc, domain); +} +#define dom_html_document_get_domain(d, t) \ + dom_html_document_get_domain((dom_html_document *) (d), \ + (dom_string **) (t)) + +static inline dom_exception dom_html_document_get_url(dom_html_document *doc, + dom_string **url) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_url(doc, url); +} +#define dom_html_document_get_url(d, u) \ + dom_html_document_get_url((dom_html_document *) (d), \ + (dom_string **) (u)) + +static inline dom_exception dom_html_document_get_body(dom_html_document *doc, + struct dom_html_element **body) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_body(doc, body); +} +#define dom_html_document_get_body(d, b) \ + dom_html_document_get_title((dom_html_document *) (d), \ + (struct dom_html_element **) (b)) + +static inline dom_exception dom_html_document_set_body(dom_html_document *doc, + struct dom_html_element *body) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + set_body(doc, body); +} +#define dom_html_document_set_body(d, b) \ + dom_html_document_set_body((dom_html_document *) (d), \ + (struct dom_html_element **) (b)) + +static inline dom_exception dom_html_document_get_images(dom_html_document *doc, + struct dom_html_collection **col) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_images(doc, col); +} +#define dom_html_document_get_images(d, c) \ + dom_html_document_get_images((dom_html_document *) (d), \ + (struct dom_html_collection **) (c)) + +static inline dom_exception dom_html_document_get_applets(dom_html_document *doc, + struct dom_html_collection **col) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_applets(doc, col); +} +#define dom_html_document_get_applets(d, c) \ + dom_html_document_get_applets((dom_html_document *) (d), \ + (struct dom_html_collection **) (c)) + +static inline dom_exception dom_html_document_get_links(dom_html_document *doc, + struct dom_html_collection **col) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_links(doc, col); +} +#define dom_html_document_get_links(d, c) \ + dom_html_document_get_links((dom_html_document *) (d), \ + (struct dom_html_collection **) (c)) + +static inline dom_exception dom_html_document_get_forms(dom_html_document *doc, + struct dom_html_collection **col) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_forms(doc, col); +} +#define dom_html_document_get_forms(d, c) \ + dom_html_document_get_forms((dom_html_document *) (d), \ + (struct dom_html_collection **) (c)) + +static inline dom_exception dom_html_document_get_anchors(dom_html_document *doc, + struct dom_html_collection **col) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_anchors(doc, col); +} +#define dom_html_document_get_anchors(d, c) \ + dom_html_document_get_title((dom_html_document *) (d), \ + (struct dom_html_collection **) (c)) + +static inline dom_exception dom_html_document_get_cookie(dom_html_document *doc, + dom_string **cookie) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_cookie(doc, cookie); +} +#define dom_html_document_get_cookie(d, c) \ + dom_html_document_get_title((dom_html_document *) (d), \ + (dom_string **) (c)) + +static inline dom_exception dom_html_document_set_cookie(dom_html_document *doc, + dom_string *cookie) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + set_cookie(doc, cookie); +} +#define dom_html_document_set_cookie(d, c) \ + dom_html_document_set_cookie((dom_html_document *) (d), \ + (dom_string **) (c)) + + +static inline dom_exception dom_html_document_open(dom_html_document *doc) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + open(doc); +} +#define dom_html_document_open(d) \ + dom_html_document_open((dom_html_document *) (d)) + +static inline dom_exception dom_html_document_close(dom_html_document *doc) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + close(doc); +} +#define dom_html_document_close(d) \ + dom_html_document_close((dom_html_document *) (d)) + + +static inline dom_exception dom_html_document_write(dom_html_document *doc, + dom_string *text) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + write(doc, text); +} +#define dom_html_document_write(d, t) \ + dom_html_document_write((dom_html_document *) (d), \ + (dom_string *) (t)) + +static inline dom_exception dom_html_document_writeln(dom_html_document *doc, + dom_string *text) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + writeln(doc, text); +} +#define dom_html_document_writeln(d, t) \ + dom_html_document_writeln((dom_html_document *) (d), \ + (dom_string *) (t)) + +static inline dom_exception dom_html_document_get_elements_by_name(dom_html_document *doc, + dom_string *name, struct dom_nodelist **list) +{ + return ((dom_html_document_vtable *) ((dom_node *) doc)->vtable)-> + get_elements_by_name(doc, name, list); +} +#define dom_html_document_get_elements_by_name(d, n, l) \ + dom_html_document_get_element_by_name((dom_html_document *) (d), \ + (dom_string *) (n), (struct dom_nodelist **) (l)) #endif diff --git a/src/core/implementation.c b/src/core/implementation.c index ab87e6d..08ce996 100644 --- a/src/core/implementation.c +++ b/src/core/implementation.c @@ -209,23 +209,13 @@ dom_exception dom_implementation_create_document( } /* Create document object that reflects the required APIs */ - /** \todo Why do these have different APIs? - * Why is the html document constructor public? */ - /** \todo Of course, none of the HTML stuff actually works, - * so enabling it results in total breakage of the testsuite */ -#ifdef WITH_NON_BROKEN_HTML_IMPLEMENTATION if (impl_type == DOM_IMPLEMENTATION_HTML) { dom_html_document *html_doc; - err = dom_html_document_create(NULL, NULL, - daf, NULL, DOM_HTML_PARSER, &html_doc); + err = _dom_html_document_create(daf, &html_doc); d = (dom_document *) html_doc; - } else -#else - UNUSED(impl_type); -#endif - { + } else { err = _dom_document_create(daf, &d); } diff --git a/src/html/html_document.c b/src/html/html_document.c index 673615e..52e0b9c 100644 --- a/src/html/html_document.c +++ b/src/html/html_document.c @@ -9,9 +9,12 @@ #include #include "html/html_document.h" +#include "html/html_element.h" #include "core/string.h" +#include "utils/namespace.h" #include "utils/utils.h" +#include "utils/validate.h" static struct dom_html_document_vtable html_document_vtable = { { @@ -21,8 +24,9 @@ static struct dom_html_document_vtable html_document_vtable = { }, DOM_NODE_VTABLE, }, - DOM_DOCUMENT_VTABLE - } + DOM_DOCUMENT_VTABLE_HTML + }, + DOM_HTML_DOCUMENT_VTABLE }; static struct dom_node_protect_vtable html_document_protect_vtable = { @@ -44,7 +48,7 @@ dom_exception _dom_html_document_create( result->base.base.base.vtable = &html_document_vtable; result->base.base.vtable = &html_document_protect_vtable; - error = _dom_html_document_initialise(*doc, daf); + error = _dom_html_document_initialise(result, daf); if (error != DOM_NO_ERR) { free(result); return error; @@ -104,6 +108,60 @@ dom_exception _dom_html_document_copy(dom_node_internal *old, return DOM_NOT_SUPPORTED_ERR; } +/* Overloaded methods inherited from super class */ +/** \todo: dispatch on tag name to create correct HTMLElement subclass */ + +dom_exception _dom_html_document_create_element(dom_document *doc, + dom_string *tag_name, dom_element **result) +{ + dom_html_document *html = (dom_html_document *) doc; + + if (_dom_validate_name(tag_name) == false) + return DOM_INVALID_CHARACTER_ERR; + + return _dom_html_element_create(html, tag_name, NULL, NULL, + (dom_html_element **) result); +} + +dom_exception _dom_html_document_create_element_ns(dom_document *doc, + dom_string *namespace, dom_string *qname, + dom_element **result) +{ + dom_html_document *html = (dom_html_document *) doc; + dom_string *prefix, *localname; + dom_exception err; + + if (_dom_validate_name(qname) == false) + return DOM_INVALID_CHARACTER_ERR; + + /* Validate qname */ + err = _dom_namespace_validate_qname(qname, namespace); + if (err != DOM_NO_ERR) { + return err; + } + + /* Divide QName into prefix/localname pair */ + err = _dom_namespace_split_qname(qname, &prefix, &localname); + if (err != DOM_NO_ERR) { + return err; + } + + /* Attempt to create element */ + err = _dom_html_element_create(html, localname, namespace, prefix, + (dom_html_element **) result); + + /* Tidy up */ + if (localname != NULL) { + dom_string_unref(localname); + } + + if (prefix != NULL) { + dom_string_unref(prefix); + } + + return err; +} + /*-----------------------------------------------------------------------*/ /* The DOM spec public API */ @@ -119,7 +177,7 @@ dom_exception _dom_html_document_copy(dom_node_internal *old, * 2. If there is no such one, find the element and use its text * as the returned title. */ -dom_exception dom_html_document_get_title(dom_html_document *doc, +dom_exception _dom_html_document_get_title(dom_html_document *doc, dom_string **title) { if (doc->title != NULL) { @@ -131,7 +189,7 @@ dom_exception dom_html_document_get_title(dom_html_document *doc, return DOM_NO_ERR; } -dom_exception dom_html_document_set_title(dom_html_document *doc, +dom_exception _dom_html_document_set_title(dom_html_document *doc, dom_string *title) { if (doc->title != NULL) @@ -142,7 +200,7 @@ dom_exception dom_html_document_set_title(dom_html_document *doc, return DOM_NO_ERR; } -dom_exception dom_html_document_get_referer(dom_html_document *doc, +dom_exception _dom_html_document_get_referer(dom_html_document *doc, dom_string **referer) { *referer = dom_string_ref(doc->referer); @@ -150,7 +208,7 @@ dom_exception dom_html_document_get_referer(dom_html_document *doc, return DOM_NO_ERR; } -dom_exception dom_html_document_get_domain(dom_html_document *doc, +dom_exception _dom_html_document_get_domain(dom_html_document *doc, dom_string **domain) { *domain = dom_string_ref(doc->domain); @@ -158,7 +216,7 @@ dom_exception dom_html_document_get_domain(dom_html_document *doc, return DOM_NO_ERR; } -dom_exception dom_html_document_get_url(dom_html_document *doc, +dom_exception _dom_html_document_get_url(dom_html_document *doc, dom_string **url) { *url = dom_string_ref(doc->url); @@ -166,31 +224,126 @@ dom_exception dom_html_document_get_url(dom_html_document *doc, return DOM_NO_ERR; } -dom_exception dom_html_document_get_body(dom_html_document *doc, - struct dom_html_element **body); -dom_exception dom_html_document_set_body(dom_html_document *doc, - struct dom_html_element *body); -dom_exception dom_html_document_get_images(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_applets(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_links(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_forms(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_anchors(dom_html_document *doc, - struct dom_html_collection **col); -dom_exception dom_html_document_get_cookie(dom_html_document *doc, - dom_string **cookie); -dom_exception dom_html_document_set_cookie(dom_html_document *doc, - dom_string *cookie); - -dom_exception dom_html_document_open(dom_html_document *doc); -dom_exception dom_html_document_close(dom_html_document *doc); -dom_exception dom_html_document_write(dom_html_document *doc, - dom_string *text); -dom_exception dom_html_document_writeln(dom_html_document *doc, - dom_string *text); -dom_exception dom_html_document_get_elements_by_name(dom_html_document *doc, - dom_string *name, struct dom_nodelist **list); +dom_exception _dom_html_document_get_body(dom_html_document *doc, + struct dom_html_element **body) +{ + UNUSED(doc); + UNUSED(body); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_set_body(dom_html_document *doc, + struct dom_html_element *body) +{ + UNUSED(doc); + UNUSED(body); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_get_images(dom_html_document *doc, + struct dom_html_collection **col) +{ + UNUSED(doc); + UNUSED(col); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_get_applets(dom_html_document *doc, + struct dom_html_collection **col) +{ + UNUSED(doc); + UNUSED(col); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_get_links(dom_html_document *doc, + struct dom_html_collection **col) +{ + UNUSED(doc); + UNUSED(col); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_get_forms(dom_html_document *doc, + struct dom_html_collection **col) +{ + UNUSED(doc); + UNUSED(col); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_get_anchors(dom_html_document *doc, + struct dom_html_collection **col) +{ + UNUSED(doc); + UNUSED(col); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_get_cookie(dom_html_document *doc, + dom_string **cookie) +{ + UNUSED(doc); + UNUSED(cookie); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_set_cookie(dom_html_document *doc, + dom_string *cookie) +{ + UNUSED(doc); + UNUSED(cookie); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_open(dom_html_document *doc) +{ + UNUSED(doc); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_close(dom_html_document *doc) +{ + UNUSED(doc); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_write(dom_html_document *doc, + dom_string *text) +{ + UNUSED(doc); + UNUSED(text); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_writeln(dom_html_document *doc, + dom_string *text) +{ + UNUSED(doc); + UNUSED(text); + + return DOM_NOT_SUPPORTED_ERR; +} + +dom_exception _dom_html_document_get_elements_by_name(dom_html_document *doc, + dom_string *name, struct dom_nodelist **list) +{ + UNUSED(doc); + UNUSED(name); + UNUSED(list); + + return DOM_NOT_SUPPORTED_ERR; +} diff --git a/src/html/html_document.h b/src/html/html_document.h index 28041d6..f27de20 100644 --- a/src/html/html_document.h +++ b/src/html/html_document.h @@ -43,5 +43,103 @@ dom_exception _dom_html_document_copy(dom_node_internal *old, _dom_html_document_destroy, \ _dom_html_document_copy +dom_exception _dom_html_document_get_title(dom_html_document *doc, + dom_string **title); +dom_exception _dom_html_document_set_title(dom_html_document *doc, + dom_string *title); +dom_exception _dom_html_document_get_referer(dom_html_document *doc, + dom_string **referer); +dom_exception _dom_html_document_get_domain(dom_html_document *doc, + dom_string **domain); +dom_exception _dom_html_document_get_url(dom_html_document *doc, + dom_string **url); +dom_exception _dom_html_document_get_body(dom_html_document *doc, + struct dom_html_element **body); +dom_exception _dom_html_document_set_body(dom_html_document *doc, + struct dom_html_element *body); +dom_exception _dom_html_document_get_images(dom_html_document *doc, + struct dom_html_collection **col); +dom_exception _dom_html_document_get_applets(dom_html_document *doc, + struct dom_html_collection **col); +dom_exception _dom_html_document_get_links(dom_html_document *doc, + struct dom_html_collection **col); +dom_exception _dom_html_document_get_forms(dom_html_document *doc, + struct dom_html_collection **col); +dom_exception _dom_html_document_get_anchors(dom_html_document *doc, + struct dom_html_collection **col); +dom_exception _dom_html_document_get_cookie(dom_html_document *doc, + dom_string **cookie); +dom_exception _dom_html_document_set_cookie(dom_html_document *doc, + dom_string *cookie); + +dom_exception _dom_html_document_open(dom_html_document *doc); +dom_exception _dom_html_document_close(dom_html_document *doc); +dom_exception _dom_html_document_write(dom_html_document *doc, + dom_string *text); +dom_exception _dom_html_document_writeln(dom_html_document *doc, + dom_string *text); +dom_exception _dom_html_document_get_elements_by_name(dom_html_document *doc, + dom_string *name, struct dom_nodelist **list); + +#define DOM_HTML_DOCUMENT_VTABLE \ + _dom_html_document_get_title, \ + _dom_html_document_set_title, \ + _dom_html_document_get_referer, \ + _dom_html_document_get_domain, \ + _dom_html_document_get_url, \ + _dom_html_document_get_body, \ + _dom_html_document_set_body, \ + _dom_html_document_get_images, \ + _dom_html_document_get_applets, \ + _dom_html_document_get_links, \ + _dom_html_document_get_forms, \ + _dom_html_document_get_anchors, \ + _dom_html_document_get_cookie, \ + _dom_html_document_set_cookie, \ + _dom_html_document_open, \ + _dom_html_document_close, \ + _dom_html_document_write, \ + _dom_html_document_writeln, \ + _dom_html_document_get_elements_by_name + +dom_exception _dom_html_document_create_element(dom_document *doc, + dom_string *tag_name, dom_element **result); +dom_exception _dom_html_document_create_element_ns(dom_document *doc, + dom_string *namespace, dom_string *qname, + dom_element **result); + +#define DOM_DOCUMENT_VTABLE_HTML \ + _dom_document_get_doctype, \ + _dom_document_get_implementation, \ + _dom_document_get_document_element, \ + _dom_html_document_create_element, \ + _dom_document_create_document_fragment, \ + _dom_document_create_text_node, \ + _dom_document_create_comment, \ + _dom_document_create_cdata_section, \ + _dom_document_create_processing_instruction, \ + _dom_document_create_attribute, \ + _dom_document_create_entity_reference, \ + _dom_document_get_elements_by_tag_name, \ + _dom_document_import_node, \ + _dom_html_document_create_element_ns, \ + _dom_document_create_attribute_ns, \ + _dom_document_get_elements_by_tag_name_ns, \ + _dom_document_get_element_by_id, \ + _dom_document_get_input_encoding, \ + _dom_document_get_xml_encoding, \ + _dom_document_get_xml_standalone, \ + _dom_document_set_xml_standalone, \ + _dom_document_get_xml_version, \ + _dom_document_set_xml_version, \ + _dom_document_get_strict_error_checking, \ + _dom_document_set_strict_error_checking, \ + _dom_document_get_uri, \ + _dom_document_set_uri, \ + _dom_document_adopt_node, \ + _dom_document_get_dom_config, \ + _dom_document_normalize, \ + _dom_document_rename_node + #endif -- cgit v1.2.3