r3460 jmb - in /trunk/dom/test: Makefile binding.c
by netsurf@semichrome.net
Author: jmb
Date: Sun Jul 22 22:41:45 2007
New Revision: 3460
URL: http://source.netsurf-browser.org?rev=3460&view=rev
Log:
Fix binding.c API usage.
Modify testcase Makefile to build things other than the XML-based testsuite
Modified:
trunk/dom/test/Makefile
trunk/dom/test/binding.c
Modified: trunk/dom/test/Makefile
URL: http://source.netsurf-browser.org/trunk/dom/test/Makefile?rev=3460&r1=345...
==============================================================================
--- trunk/dom/test/Makefile (original)
+++ trunk/dom/test/Makefile Sun Jul 22 22:41:45 2007
@@ -35,7 +35,9 @@
CFILES = $(addprefix xml/c/, $(notdir $(XMLFILES:.xml=.c)))
# Objects
-OBJS = $(addprefix xml/bin/, $(notdir $(XMLFILES:.xml=)))
+XMLOBJS = $(addprefix xml/bin/, $(notdir $(XMLFILES:.xml=)))
+OTHEROBJS = binding
+OBJS = $(OTHEROBJS) $(XMLOBJS)
.PHONY: clean debug export release setup test
@@ -46,6 +48,7 @@
clean:
ifneq (${OBJS}, )
+ -@${RM} ${RMFLAGS} $(addsuffix ${EXEEXT}, $(OTHEROBJS))
-@${RM} ${RMFLAGS} -r xml/c/
-@${RM} ${RMFLAGS} -r xml/bin/
endif
@@ -73,3 +76,9 @@
xml/c/%.c: xml/tests/%.xml
@${XSLT} ${XSLTFLAGS} -o $@ transform/test-to-c.xsl $<
+
+%: %.c
+ @${ECHO} ${ECHOFLAGS} "==> $<"
+ @${CC} -c -g ${CFLAGS} -o $@.o $<
+ @${LD} -g -o $@ $@.o ${LDFLAGS} -ldom-libxml-debug -ldom-debug
+ @${RM} ${RMFLAGS} $@.o
Modified: trunk/dom/test/binding.c
URL: http://source.netsurf-browser.org/trunk/dom/test/binding.c?rev=3460&r1=34...
==============================================================================
--- trunk/dom/test/binding.c (original)
+++ trunk/dom/test/binding.c Sun Jul 22 22:41:45 2007
@@ -15,7 +15,7 @@
doc = test_object_get_doc(staff);
assert(doc != NULL);
- err = dom_document_get_element(doc, &element);
+ err = dom_document_get_document_element(doc, &element);
assert(err == DOM_NO_ERR);
assert(element != NULL);
16 years, 2 months
r3459 jmb - in /trunk/dom: include/dom/core/document.h src/core/document.c
by netsurf@semichrome.net
Author: jmb
Date: Sun Jul 22 22:40:48 2007
New Revision: 3459
URL: http://source.netsurf-browser.org?rev=3459&view=rev
Log:
Add omitted dom_document_create_comment API
Modified:
trunk/dom/include/dom/core/document.h
trunk/dom/src/core/document.c
Modified: trunk/dom/include/dom/core/document.h
URL: http://source.netsurf-browser.org/trunk/dom/include/dom/core/document.h?r...
==============================================================================
--- trunk/dom/include/dom/core/document.h (original)
+++ trunk/dom/include/dom/core/document.h Sun Jul 22 22:40:48 2007
@@ -13,6 +13,7 @@
#include <dom/core/exceptions.h>
struct dom_attr;
+struct dom_characterdata;
struct dom_configuration;
struct dom_document;
struct dom_document_type;
@@ -35,6 +36,8 @@
struct dom_node **result);
dom_exception dom_document_create_text_node(struct dom_document *doc,
struct dom_string *data, struct dom_text **result);
+dom_exception dom_document_create_comment(struct dom_document *doc,
+ struct dom_string *data, struct dom_characterdata **result);
dom_exception dom_document_create_cdata_section(struct dom_document *doc,
struct dom_string *data, struct dom_text **result);
dom_exception dom_document_create_processing_instruction(
Modified: trunk/dom/src/core/document.c
URL: http://source.netsurf-browser.org/trunk/dom/src/core/document.c?rev=3459&...
==============================================================================
--- trunk/dom/src/core/document.c (original)
+++ trunk/dom/src/core/document.c Sun Jul 22 22:40:48 2007
@@ -8,6 +8,7 @@
#include <dom/functypes.h>
#include <dom/core/document.h>
+#include "core/characterdata.h"
#include "core/document.h"
#include "core/namednodemap.h"
#include "core/node.h"
@@ -161,6 +162,28 @@
*/
dom_exception dom_document_create_text_node(struct dom_document *doc,
struct dom_string *data, struct dom_text **result)
+{
+ UNUSED(doc);
+ UNUSED(data);
+ UNUSED(result);
+
+ return DOM_NOT_SUPPORTED_ERR;
+}
+
+/**
+ * Create a comment node
+ *
+ * \param doc The document owning the node
+ * \param data The data for the node
+ * \param result Pointer to location to receive result
+ * \return DOM_NO_ERR.
+ *
+ * The returned node will have its reference count increased. It is
+ * the responsibility of the caller to unref the node once it has
+ * finished with it.
+ */
+dom_exception dom_document_create_comment(struct dom_document *doc,
+ struct dom_string *data, struct dom_characterdata **result)
{
UNUSED(doc);
UNUSED(data);
16 years, 2 months
r3458 jmb - /trunk/dom/bindings/xml/xmlparser.c
by netsurf@semichrome.net
Author: jmb
Date: Sun Jul 22 19:01:09 2007
New Revision: 3458
URL: http://source.netsurf-browser.org?rev=3458&view=rev
Log:
More libxml binding work
Modified:
trunk/dom/bindings/xml/xmlparser.c
Modified: trunk/dom/bindings/xml/xmlparser.c
URL: http://source.netsurf-browser.org/trunk/dom/bindings/xml/xmlparser.c?rev=...
==============================================================================
--- trunk/dom/bindings/xml/xmlparser.c (original)
+++ trunk/dom/bindings/xml/xmlparser.c Sun Jul 22 19:01:09 2007
@@ -29,9 +29,14 @@
static void xml_parser_end_element_ns(void *ctx, const xmlChar *localname,
const xmlChar *prefix, const xmlChar *URI);
+static dom_exception xml_parser_link_nodes(xml_parser *parser,
+ struct dom_node *dom, xmlNodePtr xml);
+
static void xml_parser_add_node(xml_parser *parser, struct dom_node *parent,
xmlNodePtr child);
static void xml_parser_add_element_node(xml_parser *parser,
+ struct dom_node *parent, xmlNodePtr child);
+static void xml_parser_add_text_node(xml_parser *parser,
struct dom_node *parent, xmlNodePtr child);
static void xml_parser_internal_subset(void *ctx, const xmlChar *name,
@@ -74,6 +79,8 @@
struct dom_document *doc; /**< DOM Document we're building */
bool complete; /**< Indicate stream completion */
+
+ struct dom_string *udkey; /**< Key for DOM node user data */
xml_alloc alloc; /**< Memory (de)allocation function */
void *pw; /**< Pointer to client data */
@@ -134,6 +141,7 @@
xml_alloc alloc, void *pw)
{
xml_parser *parser;
+ dom_exception err;
UNUSED(enc);
UNUSED(int_enc);
@@ -153,6 +161,16 @@
parser->complete = false;
+ /* Create key for user data registration */
+ err = dom_string_create_from_ptr_no_doc(alloc, pw,
+ (const uint8_t *) "__xmlnode", SLEN("__xmlnode"),
+ &parser->udkey);
+ if (err != DOM_NO_ERR) {
+ xmlFreeParserCtxt(parser->xml_ctx);
+ alloc(parser, 0, pw);
+ return NULL;
+ }
+
parser->alloc = alloc;
parser->pw = pw;
@@ -166,6 +184,8 @@
*/
void xml_parser_destroy(xml_parser *parser)
{
+ dom_string_unref(parser->udkey);
+
xmlFreeParserCtxt(parser->xml_ctx);
/** \todo Do we want to clean up the document here, too? */
@@ -238,9 +258,8 @@
{
xml_parser *parser = (xml_parser *) ctx;
struct dom_implementation *impl;
- struct dom_string *features, *udkey;
+ struct dom_string *features;
struct dom_document *doc;
- void *ignored;
dom_exception err;
/* Invoke libxml2's default behaviour */
@@ -276,27 +295,12 @@
/* No longer need the implementation */
dom_implementation_unref(impl);
- /* Create key for user data registration */
- err = dom_string_create_from_const_ptr(doc,
- (const uint8_t *) "__xmlnode", SLEN("__xmlnode"),
- &udkey);
- if (err != DOM_NO_ERR)
- return;
-
- /* Register xmlNode as userdata for document */
- err = dom_node_set_user_data((struct dom_node *) doc,
- udkey, parser->xml_ctx->myDoc, NULL, &ignored);
+ /* Link nodes together */
+ err = xml_parser_link_nodes(parser, (struct dom_node *) doc,
+ (xmlNodePtr) parser->xml_ctx->myDoc);
if (err != DOM_NO_ERR) {
- dom_string_unref(udkey);
- return;
- }
-
- /* No longer need the key */
- dom_string_unref(udkey);
-
- /* Register the DOM node with the xmlNode */
- dom_node_ref((struct dom_node *) doc);
- parser->xml_ctx->myDoc->_private = doc;
+ return;
+ }
/* And squirrel the document away for later use */
parser->doc = doc;
@@ -310,7 +314,6 @@
void xml_parser_end_document(void *ctx)
{
xml_parser *parser = (xml_parser *) ctx;
- struct dom_string *key;
xmlNodePtr node;
xmlNodePtr n;
dom_exception err;
@@ -325,23 +328,12 @@
/* We need to mirror any child nodes at the end of the list of
* children which occur after the last Element node in the list */
- /* Create key */
- err = dom_string_create_from_const_ptr(parser->doc,
- (const uint8_t *) "__xmlnode", SLEN("__xmlnode"),
- &key);
- if (err != DOM_NO_ERR)
- return;
-
/* Get XML node */
- err = dom_node_get_user_data((struct dom_node *) parser->doc, key,
- (void **) &node);
+ err = dom_node_get_user_data((struct dom_node *) parser->doc,
+ parser->udkey, (void **) &node);
if (err != DOM_NO_ERR) {
- dom_string_unref(key);
- return;
- }
-
- /* No longer need key */
- dom_string_unref(key);
+ return;
+ }
/* Find last Element node, if any */
for (n = node->last; n != NULL; n = n->prev) {
@@ -487,6 +479,32 @@
}
/**
+ * Link a DOM and XML node together
+ *
+ * \param parser The parser context
+ * \param dom The DOM node
+ * \param xml The XML node
+ * \return DOM_NO_ERR on success, appropriate error otherwise
+ */
+dom_exception xml_parser_link_nodes(xml_parser *parser, struct dom_node *dom,
+ xmlNodePtr xml)
+{
+ void *prev_data;
+ dom_exception err;
+
+ /* Register XML node as user data for DOM node */
+ err = dom_node_set_user_data(dom, parser->udkey, xml, NULL,
+ &prev_data);
+ if (err != DOM_NO_ERR)
+ return err;
+
+ /* Register DOM node with the XML node */
+ xml->_private = dom;
+
+ return DOM_NO_ERR;
+}
+
+/**
* Add a node to the DOM
*
* \param parser The parser context
@@ -501,6 +519,8 @@
xml_parser_add_element_node(parser, parent, child);
break;
case XML_TEXT_NODE:
+ xml_parser_add_text_node(parser, parent, child);
+ break;
case XML_CDATA_SECTION_NODE:
case XML_ENTITY_REF_NODE:
case XML_COMMENT_NODE:
@@ -520,7 +540,7 @@
void xml_parser_add_element_node(xml_parser *parser, struct dom_node *parent,
xmlNodePtr child)
{
- struct dom_element *el;
+ struct dom_element *el, *ins_el;
xmlAttrPtr a;
dom_exception err;
@@ -549,13 +569,57 @@
dom_string_unref(tag_name);
} else {
/* Namespace */
-
- /** \todo implement this */
+ struct dom_string *namespace;
+ struct dom_string *qname;
+ size_t qnamelen = (child->ns->prefix != NULL ?
+ strlen((const char *) child->ns->prefix) : 0) +
+ (child->ns->prefix != NULL ? 1 : 0) /* ':' */ +
+ strlen((const char *) child->name);
+ uint8_t qnamebuf[qnamelen + 1 /* '\0' */];
+
+ /* Create namespace DOM string */
+ err = dom_string_create_from_const_ptr(parser->doc,
+ child->ns->href,
+ strlen((const char *) child->ns->href),
+ &namespace);
+ if (err != DOM_NO_ERR)
+ return;
+
+ /* QName is "prefix:localname",
+ * or "localname" if there is no prefix */
+ sprintf((char *) qnamebuf, "%s%s%s",
+ child->ns->prefix != NULL ?
+ (const char *) child->ns->prefix : "",
+ child->ns->prefix != NULL ? ":" : "",
+ (const char *) child->name);
+
+ /* Create qname DOM string */
+ err = dom_string_create_from_ptr(parser->doc,
+ qnamebuf,
+ qnamelen,
+ &qname);
+ if (err != DOM_NO_ERR) {
+ dom_string_unref(namespace);
+ return;
+ }
+
+ /* Create element node */
+ err = dom_document_create_element_ns(parser->doc,
+ namespace, qname, &el);
+ if (err != DOM_NO_ERR) {
+ dom_string_unref(namespace);
+ dom_string_unref(qname);
+ return;
+ }
+
+ /* No longer need namespace / qname */
+ dom_string_unref(namespace);
+ dom_string_unref(qname);
}
/* Add attributes to created element */
for (a = child->properties; a != NULL; a = a->next) {
- struct dom_attr *attr;
+ struct dom_attr *attr, *prev_attr;
xmlNodePtr c;
/* Create attribute node */
@@ -583,8 +647,52 @@
dom_string_unref(name);
} else {
/* Attribute has namespace */
-
- /** \todo implement this */
+ struct dom_string *namespace;
+ struct dom_string *qname;
+ size_t qnamelen = (a->ns->prefix != NULL ?
+ strlen((const char *) a->ns->prefix) : 0) +
+ (a->ns->prefix != NULL ? 1 : 0) /* ':' */ +
+ strlen((const char *) a->name);
+ uint8_t qnamebuf[qnamelen + 1 /* '\0' */];
+
+ /* Create namespace DOM string */
+ err = dom_string_create_from_const_ptr(parser->doc,
+ a->ns->href,
+ strlen((const char *) a->ns->href),
+ &namespace);
+ if (err != DOM_NO_ERR)
+ return;
+
+ /* QName is "prefix:localname",
+ * or "localname" if there is no prefix */
+ sprintf((char *) qnamebuf, "%s%s%s",
+ a->ns->prefix != NULL ?
+ (const char *) a->ns->prefix : "",
+ a->ns->prefix != NULL ? ":" : "",
+ (const char *) a->name);
+
+ /* Create qname DOM string */
+ err = dom_string_create_from_ptr(parser->doc,
+ qnamebuf,
+ qnamelen,
+ &qname);
+ if (err != DOM_NO_ERR) {
+ dom_string_unref(namespace);
+ return;
+ }
+
+ /* Create attribute */
+ err = dom_document_create_attribute_ns(parser->doc,
+ namespace, qname, &attr);
+ if (err != DOM_NO_ERR) {
+ dom_string_unref(namespace);
+ dom_string_unref(qname);
+ return;
+ }
+
+ /* No longer need namespace / qname */
+ dom_string_unref(namespace);
+ dom_string_unref(qname);
}
/* Clone subtree (attribute value) */
@@ -593,37 +701,112 @@
(struct dom_node *) attr, c);
}
- /* And add attribute to the element */
- err = dom_element_set_attribute_node(el, attr, &attr);
+ /* Link nodes together */
+ err = xml_parser_link_nodes(parser,
+ (struct dom_node *) attr, (xmlNodePtr) a);
if (err != DOM_NO_ERR) {
dom_node_unref((struct dom_node *) attr);
goto cleanup;
}
+ /* And add attribute to the element */
+ err = dom_element_set_attribute_node(el, attr, &prev_attr);
+ if (err != DOM_NO_ERR) {
+ dom_node_unref((struct dom_node *) attr);
+ goto cleanup;
+ }
+
+ /* We're not interested in the previous attribute (if any) */
+ if (prev_attr != NULL)
+ dom_node_unref((struct dom_node *) prev_attr);
+
/* We're no longer interested in the attribute node */
dom_node_unref((struct dom_node *) attr);
}
- /* Finally, append element to parent */
+ /* Append element to parent */
err = dom_node_append_child(parent, (struct dom_node *) el,
- (struct dom_node **) &el);
+ (struct dom_node **) &ins_el);
if (err != DOM_NO_ERR) {
goto cleanup;
}
+ /* We're not interested in the inserted element */
+ if (ins_el != NULL)
+ dom_node_unref((struct dom_node *) ins_el);
+
+ /* Link nodes together */
+ err = xml_parser_link_nodes(parser, (struct dom_node *) el,
+ child);
+ if (err != DOM_NO_ERR) {
+ goto cleanup;
+ }
+
/* No longer interested in element node */
dom_node_unref((struct dom_node *) el);
return;
cleanup:
-
- /** \todo clean up attributes */
-
- /* No longer want node */
+ /* No longer want node (any attributes attached to it
+ * will be cleaned up with it) */
dom_node_unref((struct dom_node *) el);
return;
+}
+
+/**
+ * Add a text node to the DOM
+ *
+ * \param parser The parser context
+ * \param parent The parent DOM node
+ * \param child The xmlNode to mirror in the DOM as a child of parent
+ */
+void xml_parser_add_text_node(xml_parser *parser, struct dom_node *parent,
+ xmlNodePtr child)
+{
+ struct dom_text *text, *ins_text;
+ struct dom_string *data;
+ dom_exception err;
+
+ /* Create DOM string data for text node */
+ err = dom_string_create_from_const_ptr(parser->doc, child->content,
+ strlen((const char *) child->content), &data);
+ if (err != DOM_NO_ERR)
+ return;
+
+ /* Create text node */
+ err = dom_document_create_text_node(parser->doc, data, &text);
+ if (err != DOM_NO_ERR) {
+ dom_string_unref(data);
+ return;
+ }
+
+ /* No longer need data */
+ dom_string_unref(data);
+
+ /* Append text node to parent */
+ err = dom_node_append_child(parent, (struct dom_node *) text,
+ (struct dom_node **) &ins_text);
+ if (err != DOM_NO_ERR) {
+ dom_node_unref((struct dom_node *) text);
+ return;
+ }
+
+ /* We're not interested in the inserted text node */
+ if (ins_text != NULL)
+ dom_node_unref((struct dom_node *) ins_text);
+
+ /* Link nodes together */
+ err = xml_parser_link_nodes(parser, (struct dom_node *) text,
+ child);
+ if (err != DOM_NO_ERR) {
+ dom_node_unref((struct dom_node *) text);
+ return;
+ }
+
+ /* No longer interested in text node */
+ dom_node_unref((struct dom_node *) text);
}
/* */
16 years, 2 months
r3457 jshaw - in /trunk/dom/test/transform: ctypes.xml test-to-c.xsl
by netsurf@semichrome.net
Author: jshaw
Date: Sun Jul 22 12:54:12 2007
New Revision: 3457
URL: http://source.netsurf-browser.org?rev=3457&view=rev
Log:
Rewritten produce-specific-attribute to handle casts properly. IDL to C names are now held in ctypes.xml. produce-specific-method and <assertEquals> are not yet reimplemented.
Added:
trunk/dom/test/transform/ctypes.xml
Modified:
trunk/dom/test/transform/test-to-c.xsl
Added: trunk/dom/test/transform/ctypes.xml
URL: http://source.netsurf-browser.org/trunk/dom/test/transform/ctypes.xml?rev...
==============================================================================
--- trunk/dom/test/transform/ctypes.xml (added)
+++ trunk/dom/test/transform/ctypes.xml Sun Jul 22 12:54:12 2007
@@ -1,0 +1,56 @@
+<?xml version="1.0" ?>
+<types>
+ <primitive idl="int" c="int"/>
+
+ <type idl="Attr" c="dom_attr"/>
+ <type idl="Document" c="dom_document">
+ <attribute idl="documentElement" c="document_element"/>
+ <method idl="createElement" c="create_element"/>
+ <method idl="createDocumentFragment" c="create_document_fragment"/>
+ <method idl="createTextNode" c="create_text_node"/>
+ <method idl="createComment" c="create_comment"/>
+ <method idl="createCDATASection" c="create_cdata_section"/>
+ <method idl="createProcessingInstruction" c="create_processing_instruction"/>
+ <method idl="createAttribute" c="create_attribute"/>
+ <method idl="createEntityReference" c="create_entity_reference"/>
+ <method idl="getElementsByTagName" c="get_elements_by_tag_name"/>
+
+ </type>
+ <type idl="DocumentType" c="dom_document_type">
+
+ </type>
+ <type idl="DOMString" c="dom_string">
+ </type>
+ <type idl="Element" c="dom_element">
+ <attribute idl="tagName" c="tag_name"/>
+ <method idl="getAttribute" c="get_attribute"/>
+ <method idl="setAttribute" c="set_attribute"/>
+ <method idl="removeAttribute" c="remove_attribute"/>
+ <method idl="getAttributeNode" c="get_attribute_node"/>
+ <method idl="setAttributeNode" c="set_attribute_node"/>
+ <method idl="removeAttributeNode" c="remove_attribute_node"/>
+ <method idl="getElementsByTagName" c="get_elements_by_tag_name"/>
+ </type>
+ <type idl="Node" c="dom_node">
+ <attribute idl="nodeName" c="node_name"/>
+ <attribute idl="nodeValue" c="node_value"/>
+ <attribute idl="nodeType" c="node_type">
+ <override-type>dom_node_type</override-type>
+ </attribute>
+ <attribute idl="parentNode" c="parent_node"/>
+ <attribute idl="childNodes" c="child_nodes"/>
+ <attribute idl="firstChild" c="first_child"/>
+ <attribute idl="lastChild" c="last_child"/>
+ <attribute idl="previousSibling" c="previous_sibling"/>
+ <attribute idl="nextSibling" c="next_sibling"/>
+ <attribute idl="ownerDocument" c="owner_document"/>
+ <method idl="insertBefore" c="insert_before"/>
+ <method idl="replaceChild" c="replace_child"/>
+ <method idl="removeChild" c="remove_child"/>
+ <method idl="appendChild" c="append_child"/>
+ <method idl="hasChildNodes" c="has_child_nodes"/>
+ <method idl="cloneNode" c="clone_node"/>
+ </type>
+ <type idl="Text" c="dom_text">
+ </type>
+</types>
Modified: trunk/dom/test/transform/test-to-c.xsl
URL: http://source.netsurf-browser.org/trunk/dom/test/transform/test-to-c.xsl?...
==============================================================================
--- trunk/dom/test/transform/test-to-c.xsl (original)
+++ trunk/dom/test/transform/test-to-c.xsl Sun Jul 22 12:54:12 2007
@@ -5,13 +5,24 @@
-->
<xsl:stylesheet version="1.0"
- xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
- xmlns:str="http://exslt.org/strings"><!-- TODO: exslt not currently used -->
+ xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
+ <!--
+ The interfaces document is generated from the W3C test suite.
+ It contains the signatures of DOM interfaces, their methods
+ and attributes
+ -->
<xsl:param name="interfaces-docname">dom1-interfaces.xml</xsl:param>
+
+ <!--
+ The ctypes document maps interfaces, methods and attributes in the
+ interfaces document to their C counterparts, proving the ability to
+ override names and types.
+ -->
+ <xsl:param name="ctypes-docname">ctypes.xml</xsl:param>
<xsl:param name="target-uri-base">http://www.w3.org/2001/DOM-Test-Suite/tests/Level-1/</xsl:param>
<xsl:output method="text" encoding="UTF-8"/>
<xsl:variable name="domspec" select="document($interfaces-docname)"/>
-
+ <xsl:variable name="ctypes" select="document($ctypes-docname)"/>
<!-- swallow any text which we don't understand -->
<xsl:template match="text()" mode="body"/>
@@ -39,7 +50,6 @@
<xsl:when test="$method">
<xsl:call-template name="produce-method">
<xsl:with-param name="method" select="$method"/>
- <!-- TODO: vardefs not yet done <xsl:with-param name="vardefs" select="$vardefs"/>-->
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
@@ -51,9 +61,7 @@
<xsl:variable name="attribute" select="$domspec/library/interface[not($interface) or @name = $interface]/attribute[@name = $feature]"/>
<xsl:choose>
<xsl:when test="$attribute">
- <xsl:call-template name="produce-attribute">
- <!-- TODO: vardefs not yet done <xsl:with-param name="vardefs" select="$vardefs"/> -->
- </xsl:call-template>
+ <xsl:call-template name="produce-attribute"/>
</xsl:when>
<xsl:otherwise>
@@ -141,25 +149,25 @@
<xsl:template match="*[local-name() = 'var']" mode="body">
<xsl:text> </xsl:text>
- <xsl:call-template name="convert_var_declaration">
- <xsl:with-param name="var_type" select="@type"/>
+ <xsl:call-template name="produce-var-type-declaration">
+ <xsl:with-param name="var-type" select="./@type"/>
</xsl:call-template>
<xsl:value-of select="@name"/>;
</xsl:template>
<xsl:template match="*[local-name() = 'if']" mode="body">
-<xsl:text>
+ <xsl:text>
if (</xsl:text><xsl:apply-templates select="*[1]" mode="body"/><xsl:text>) {
-</xsl:text>
-<xsl:apply-templates select="*[position() > 1 and local-name() != 'else']" mode="body"/>
-<xsl:text> }</xsl:text>
-<xsl:for-each select="*[local-name() = 'else']">
- <xsl:text> else {
-</xsl:text>
- <xsl:apply-templates mode="body"/>
+ </xsl:text>
+ <xsl:apply-templates select="*[position() > 1 and local-name() != 'else']" mode="body"/>
<xsl:text> }</xsl:text>
-</xsl:for-each>
-<xsl:text>
+ <xsl:for-each select="*[local-name() = 'else']">
+ <xsl:text> else {
+</xsl:text>
+ <xsl:apply-templates mode="body"/>
+ <xsl:text> }</xsl:text>
+ </xsl:for-each>
+ <xsl:text>
</xsl:text>
</xsl:template>
@@ -177,44 +185,18 @@
<xsl:variable name="interface" select="@interface"/>
<xsl:call-template name="produce-specific-method">
<xsl:with-param name="method" select="$domspec/library/interface[@name = $interface]/method[@name = $methodName]"/>
- <!--<xsl:with-param name="vardefs" select="$vardefs"/>-->
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:variable name="methods" select="$domspec/library/interface/method[@name = $methodName]"/>
<xsl:call-template name="produce-specific-method">
<xsl:with-param name="method" select="$methods[1]"/>
- <!--<xsl:with-param name="vardefs" select="$vardefs"/>-->
</xsl:call-template>
</xsl:otherwise>
</xsl:choose>
</xsl:template>
-<xsl:template name="produce-specific-method">
- <xsl:param name="method"/>
- <xsl:variable name="current" select="."/>
- <xsl:variable name="obj" select="@obj"/>
- <xsl:variable name="var" select="//*[local-name() = 'var' and @name = $obj]"/>
-
- <xsl:text> </xsl:text>
- <xsl:call-template name="convert_method_name">
- <xsl:with-param name="method_target"><xsl:value-of select="$var/@type"/></xsl:with-param>
- <xsl:with-param name="method_name"><xsl:value-of select="$method/@name"/></xsl:with-param>
- </xsl:call-template>
- <xsl:text>(</xsl:text><xsl:value-of select="@obj"/>
- <xsl:for-each select="$method/parameters/param">
- <xsl:variable name="paramDef" select="."/>
- <xsl:text>, </xsl:text>
- <xsl:value-of select="$current/@*[name() = $paramDef/@name]"/>
- </xsl:for-each>
- <xsl:if test="@var">
- <xsl:text>, &</xsl:text><xsl:value-of select="@var"/>
- </xsl:if>
- <xsl:text>);</xsl:text>
-</xsl:template>
-
<xsl:template name="produce-attribute">
- <!-- <xsl:param name="vardefs"/> -->
<xsl:variable name="attribName" select="local-name(.)"/>
<xsl:choose>
<!-- if interface is specified -->
@@ -222,97 +204,159 @@
<xsl:variable name="interface" select="@interface"/>
<xsl:call-template name="produce-specific-attribute">
<xsl:with-param name="attribute" select="$domspec/library/interface[@name = $interface]/attribute[@name = $attribName]"/>
- <!-- <xsl:with-param name="vardefs" select="$vardefs"/> -->
</xsl:call-template>
</xsl:when>
<xsl:otherwise>
<xsl:call-template name="produce-specific-attribute">
- <xsl:with-param name="attribute" select="$domspec/library/interface/attribute[@name = $attribName]"/>
- <!-- <xsl:with-param name="vardefs" select="$vardefs"/> -->
+ <xsl:with-param name="attribute" select="$domspec/library/interface/attribute[@name = $attribName]"/>
</xsl:call-template>
</xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
+ </xsl:choose>
+</xsl:template>
+
+<!--
+Produce a statement to get or set an attribute.
+If @var is specified, the accessor is called and @var is given the result value.
+err = dom_document_get_doctype(doc, &docType);
+assert(err == DOM_NO_ERR);
+
+If @value is specified, the mutator is called and @value is used as the parameter argument.
+
+-->
<xsl:template name="produce-specific-attribute">
- <!-- <xsl:param name="vardefs"/> -->
+ <!--
+ An <attribute> node in the $domspec document.
+ -->
<xsl:param name="attribute"/>
- <xsl:variable name="obj" select="@obj"/>
- <xsl:variable name="value" select="@value"/>
- <xsl:variable name="var" select="@var"/>
- <xsl:variable name="obj_type" select="//*[local-name() = 'var' and @name = $obj]/@type"/>
- <xsl:variable name="interface_type" select="$domspec/library/interface[attribute = $attribute]/@name"/>
- <!-- check if attribute name starts with is -->
+
+ <!-- the object which contains the attribute -->
+ <xsl:variable name="obj" select="@obj"/>
+
+ <!-- the <var> for the $obj -->
+ <xsl:variable name="obj-var" select="//*[local-name() = 'var' and @name = $obj]"/>
+
+ <!--
+ The C type for the object's type containing $attribute.
+ This may be the object's own type, or a supertype. For example, $obj
+ may be an Element, but the nodeValue attribute is a member of the Node
+ supertype.
+ Note that this is the <type> element itself, not the @c attribute.
+ -->
+ <xsl:variable name="obj-ctype" select="$ctypes/types/type[@idl = $attribute/parent::interface/@name]"/>
+
+ <!--
+ The C name of the attribute. This is either $attribute/@name, or
+ the value in $ctypes if it overrides it.
+ -->
+ <xsl:variable name="attribute-cname">
+ <xsl:choose>
+ <xsl:when test="$obj-ctype/attribute[@idl = $attribute/@name]/@c">
+ <xsl:value-of select="$obj-ctype/attribute[@idl = $attribute/@name]/@c"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$attribute/@name"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+ <xsl:message>attribute-cname: <xsl:value-of select="$attribute-cname"/></xsl:message>
+
+ <!--
+ The attribute type. This is either $attribute/@type, or
+ the <override-type> in $ctypes if it is specified.
+ The resulting attribute type may be an IDL-style name (e.g. DocumentType)
+ or a C-style name (e.g. dom_node_type).
+ -->
+ <xsl:variable name="attribute-type">
+ <xsl:choose>
+ <xsl:when test="$obj-ctype/attribute[@idl = $attribute/@name]/override-type">
+ <xsl:value-of select="$obj-ctype/attribute[@idl = $attribute/@name]/override-type/text()"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$attribute/@type"/>
+ </xsl:otherwise>
+ </xsl:choose>
+ </xsl:variable>
+
+ <xsl:text> err = </xsl:text>
<xsl:if test="@value">
- <!-- TODO: set attribute to a value -->
+ <xsl:text>_set_</xsl:text>
</xsl:if>
- <!--
- call an attribute accessor. this takes the form
- err = dom_<objecttype>_get_<attributename>(<objectstruct>, &<targetattributestruct>);
- -->
<xsl:if test="@var">
- <xsl:text>
- err = </xsl:text>
- <xsl:call-template name="convert_var_type">
- <xsl:with-param name="var_type"><xsl:value-of select="$interface_type"/></xsl:with-param>
- </xsl:call-template>
+ <xsl:variable name="var" select="@var"/>
+ <xsl:variable name="var-type" select="//*[local-name() = 'var' and @name = $var]/@type"/>
+
+ <xsl:value-of select="$obj-ctype/@c"/>
<xsl:text>_get_</xsl:text>
- <xsl:call-template name="convert_attribute_name">
- <xsl:with-param name="attribute_name"><xsl:value-of select="$attribute/@name"/></xsl:with-param>
- </xsl:call-template>
+ <xsl:value-of select="$attribute-cname"/>
<xsl:text>(</xsl:text>
- <!-- cast to target interface if this is different from the type of the variable @obj -->
<xsl:call-template name="cast">
- <xsl:with-param name="vartype" select="$obj_type"/>
- <xsl:with-param name="reqtype" select="$interface_type"/>
- </xsl:call-template>
- <xsl:value-of select="@obj"/>
+ <xsl:with-param name="var-type" select="//*[local-name() = 'var' and @name = $obj]/@type"/>
+ <xsl:with-param name="interface-type" select="$obj-ctype/@c"/>
+ </xsl:call-template>
+ <xsl:value-of select="$obj"/>
<xsl:text>, </xsl:text>
- <!-- TODO: cast the result to the that expected by the function
- e.g. int nodeType; dom_node_get_node_type(node, (dom_node_type *) &nodeType);
- -->
- <xsl:call-template name="attribute-result-cast">
- <xsl:with-param name="vartype" select="//*[local-name() = 'var' and @name = $var]/@type"/>
- <xsl:with-param name="attribute" select="$attribute"/>
- </xsl:call-template>
- <xsl:text>&</xsl:text><xsl:value-of select="@var"/>
- <xsl:text>);
+ <xsl:call-template name="cast">
+ <xsl:with-param name="var-type" select="$var-type"/>
+ <xsl:with-param name="interface-type" select="$attribute-type"/>
+ </xsl:call-template>
+ <xsl:text>&</xsl:text>
+ <xsl:value-of select="@var"/>
+ <xsl:text>);</xsl:text>
+ </xsl:if>
+ <xsl:text>
assert(err == DOM_NO_ERR);
</xsl:text>
-
+</xsl:template>
+
+<xsl:template name="produce-specific-method">
+ <xsl:param name="method"/>
+</xsl:template>
+
+<xsl:template name="cast">
+ <!-- the variable's type (e.g. Document, dom_node_type or int) -->
+ <xsl:param name="var-type"/>
+
+ <!-- the required type (e.g. Document or dom_node_type) -->
+ <xsl:param name="interface-type"/>
+
+ <!-- the variable's C-style type -->
+ <xsl:variable name="var-ctype">
+ <xsl:call-template name="get-ctype">
+ <xsl:with-param name="type" select="$var-type"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <!-- the interface's C-style type -->
+ <xsl:variable name="interface-ctype">
+ <xsl:call-template name="get-ctype">
+ <xsl:with-param name="type" select="$interface-type"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$var-ctype != $interface-ctype">
+ <xsl:text>(</xsl:text>
+ <xsl:call-template name="produce-var-type-declaration">
+ <xsl:with-param name="var-type" select="$interface-ctype"/>
+ </xsl:call-template>
+ <xsl:text>) </xsl:text>
</xsl:if>
</xsl:template>
-<xsl:template name="cast">
- <xsl:param name="vartype"/>
- <xsl:param name="reqtype"/>
- <xsl:choose>
- <xsl:when test="$vartype = $reqtype">
-
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>(</xsl:text>
- <xsl:call-template name="convert_var_declaration">
- <xsl:with-param name="var_type"><xsl:value-of select="$reqtype"/></xsl:with-param>
- </xsl:call-template>
- <xsl:text>) </xsl:text>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template name="attribute-result-cast">
- <!-- the type of the target result variable, as defined by <var @type> -->
- <xsl:param name="vartype"/>
- <!-- an <attribute> from the $domspec -->
- <xsl:param name="attribute"/>
- <xsl:choose>
- <xsl:when test="$attribute/@name = 'nodeType'">
- <xsl:text>(</xsl:text>
- <xsl:call-template name="convert_var_declaration">
- <xsl:with-param name="var_type" select="'NodeType'"/>
- </xsl:call-template>
- <xsl:text>) </xsl:text>
- </xsl:when>
+<xsl:template name="get-ctype">
+ <!--
+ a type (e.g. Document, dom_node_type or int)
+ if $type is already a C-style type, or was a primitive, this is
+ used instead
+ -->
+ <xsl:param name="type"/>
+
+ <xsl:choose>
+ <xsl:when test="$ctypes/types/type[@idl = $type]/@c">
+ <xsl:value-of select="$ctypes/types/type[@idl = $type]/@c"/>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:value-of select="$type"/>
+ </xsl:otherwise>
</xsl:choose>
</xsl:template>
@@ -338,152 +382,45 @@
</xsl:template>
<xsl:template match="*[local-name() = 'assertEquals']" mode="body">
- <xsl:variable name="actual" select="@actual"/>
- <xsl:variable name="var_type" select="//*[local-name() = 'var' and @name = $actual]/@type"/>
-
- <!-- implement equality test depending upon $var_type -->
- <xsl:choose>
- <xsl:when test="$var_type = 'DOMString'">
-
- <xsl:text>
- /* begin assertEquals */
- struct dom_string *match;
-
- err = dom_string_create_from_const_ptr(</xsl:text>
- <!-- use the first variable we find that's of @type 'Document' -->
- <xsl:value-of select="//*[local-name() = 'var' and @type = 'Document'][1]/@name"/>
- <xsl:text>, (uint8_t *) </xsl:text><xsl:value-of select="@expected"/><xsl:text>,
- SLEN(</xsl:text><xsl:value-of select="@expected"/><xsl:text>), &match);
- assert(err == DOM_NO_ERR); <!-- TODO: pull this line out, since it's reused everywhere -->
-
- assert(</xsl:text>
- <xsl:choose>
- <xsl:when test="@ignoreCase = 'true'">
- <xsl:text>dom_string_icmp</xsl:text>
- </xsl:when>
- <xsl:when test="@ignoreCase = 'auto'">
- <!--
- TODO: implement auto case comparison (see java's DOMTestCase.assertEqualsAutoCase()
- -->
- <xsl:message><assertEquals ignoreCase='auto'> not supported</xsl:message>
- </xsl:when>
- <xsl:otherwise>
- <xsl:text>dom_string_cmp</xsl:text>
- </xsl:otherwise>
- </xsl:choose>
- <xsl:text>(</xsl:text><xsl:value-of select="@actual"/><xsl:text>, match) == 0);
-</xsl:text>
- </xsl:when>
- <xsl:when test="$var_type = 'int'">
- <xsl:text>
- assert(</xsl:text><xsl:value-of select="@actual"/><xsl:text> == </xsl:text><xsl:value-of select="@expected"/><xsl:text>);</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:message terminate="no">Warning in assertEquals template: don't know how to compare variable type '<xsl:value-of select="$var_type"/>'</xsl:message>
+ <!-- TODO: implement -->
+</xsl:template>
+
+<!--
+================================
+Helper templates
+================================
+-->
+
+<xsl:template name="produce-var-type-declaration">
+ <!-- a type (e.g. Document, dom_node_type or int) -->
+ <xsl:param name="var-type"/>
+ <xsl:variable name="var-ctype">
+ <xsl:call-template name="get-ctype">
+ <xsl:with-param name="type" select="$var-type"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:choose>
+ <xsl:when test="$ctypes/types/primitive[@c = $var-ctype]">
+ <!-- TODO: support the overriding of primitive name in ctypes document -->
+ <xsl:value-of select="$var-ctype"/><xsl:text> </xsl:text>
+ </xsl:when>
+ <xsl:when test="$ctypes/types/type[@c = $var-ctype]">
+ <xsl:text>struct </xsl:text>
+ <xsl:value-of select="$ctypes/types/type[@c = $var-ctype]/@c"/>
+ <xsl:text> *</xsl:text>
+ </xsl:when>
+
+ <!-- assume this is not a struct, and not a primitive (e.g. an enum) -->
+ <xsl:otherwise>
+ <xsl:value-of select="$var-ctype"/>
+ <xsl:text> *</xsl:text>
</xsl:otherwise>
</xsl:choose>
- <xsl:text>
- /* end assertEquals */
-</xsl:text>
-</xsl:template>
-
-<!-- helper templates -->
-
-<xsl:template name="convert_var_declaration">
- <xsl:param name="var_type"/>
- <!-- TODO: move these definitions out to a separate XML file -->
- <xsl:variable name="is_struct" select="$var_type != 'int' and $var_type != 'NodeType'"/>
- <xsl:variable name="is_pointer" select="$var_type != 'int'"/>
- <xsl:message>is_struct <xsl:value-of select="$is_struct"/></xsl:message>
- <xsl:if test="$is_struct">
- <xsl:text>struct </xsl:text>
- </xsl:if>
- <xsl:call-template name="convert_var_type">
- <xsl:with-param name="var_type" select="$var_type"/>
- </xsl:call-template>
- <xsl:text> </xsl:text>
- <xsl:if test="$is_pointer">
- <xsl:text>*</xsl:text>
- </xsl:if>
-</xsl:template>
-
-<!--
-Convert a variable type to its equivalent C name. C names are lower case
-separated by underscores.
--->
-<xsl:template name="convert_var_type">
-<!-- TODO: convert certain types, e.g. from DocumentType to dom_document_type -->
- <xsl:param name="var_type"/>
- <xsl:choose>
- <xsl:when test="$var_type = 'Document'">
- <xsl:text>dom_document</xsl:text>
- </xsl:when>
- <xsl:when test="$var_type = 'DocumentType'">
- <xsl:text>dom_document_type</xsl:text>
- </xsl:when>
- <xsl:when test="$var_type = 'DOMString'">
- <xsl:text>dom_string</xsl:text>
- </xsl:when>
- <xsl:when test="$var_type = 'Element'">
- <xsl:text>dom_element</xsl:text>
- </xsl:when>
- <xsl:when test="$var_type = 'Node'">
- <xsl:text>dom_node</xsl:text>
- </xsl:when>
- <xsl:when test="$var_type = 'NodeType'">
- <xsl:text>dom_node_type</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <xsl:value-of select="$var_type"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<xsl:template name="convert_attribute_name">
- <xsl:param name="attribute_name"/>
- <xsl:message><xsl:value-of select="$attribute_name"/></xsl:message>
- <xsl:choose>
- <xsl:when test="$attribute_name = 'nodeName'">
- <xsl:text>node_name</xsl:text>
- </xsl:when>
- <xsl:when test="$attribute_name = 'nodeValue'">
- <xsl:text>node_value</xsl:text>
- </xsl:when>
- <xsl:when test="$attribute_name = 'nodeType'">
- <xsl:text>node_type</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <!-- assume no conversion is needed -->
- <xsl:value-of select="$attribute_name"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!--
-Method name is in the form dom_<type>_<methodName>
-For example, dom_document_create_element
--->
-<xsl:template name="convert_method_name">
- <xsl:param name="method_target"/>
- <xsl:param name="method_name"/>
-
- <xsl:call-template name="convert_var_type">
- <xsl:with-param name="var_type"><xsl:value-of select="$method_target"/></xsl:with-param>
- </xsl:call-template>
- <xsl:text>_</xsl:text>
- <xsl:choose>
- <xsl:when test="$method_name = 'createElement'">
- <xsl:text>create_element</xsl:text>
- </xsl:when>
- <xsl:otherwise>
- <!-- assume no conversion is needed -->
- <xsl:value-of select="$method_name"/>
- </xsl:otherwise>
- </xsl:choose>
-</xsl:template>
-
-<!--
-stolen from test-to-java.xsl
+</xsl:template>
+
+<!--
+Taken from test-to-java.xsl
Prepends every line with asterisks, suitable for use in a block comment
-->
<xsl:template name="emit-description">
16 years, 2 months
r3456 adrianl - /trunk/netsurf/riscos/artworks.c
by netsurf@semichrome.net
Author: adrianl
Date: Sun Jul 22 05:15:27 2007
New Revision: 3456
URL: http://source.netsurf-browser.org?rev=3456&view=rev
Log:
Workaround for AWRenderer clipping issue (bug #1756230) and improved rendering performance
Modified:
trunk/netsurf/riscos/artworks.c
Modified: trunk/netsurf/riscos/artworks.c
URL: http://source.netsurf-browser.org/trunk/netsurf/riscos/artworks.c?rev=345...
==============================================================================
--- trunk/netsurf/riscos/artworks.c (original)
+++ trunk/netsurf/riscos/artworks.c Sun Jul 22 05:15:27 2007
@@ -60,7 +60,7 @@
/* Assembler routines for interfacing with the ArtworksRenderer module */
os_error *awrender_init(char **doc,
- size_t *doc_size,
+ unsigned long *doc_size,
void *routine,
void *workspace);
@@ -114,7 +114,7 @@
}
/* lookup the addresses of the init and render routines */
- error = _swix(AWRender_FileInitAddress, _OUT(0) | _OUT(1),
+ error = (os_error*)_swix(AWRender_FileInitAddress, _OUT(0) | _OUT(1),
&init_routine, &init_workspace);
if (error) {
LOG(("AWRender_FileInitAddress: 0x%x: %s",
@@ -124,7 +124,7 @@
return false;
}
- error = _swix(AWRender_RenderAddress, _OUT(0) | _OUT(1),
+ error = (os_error*)_swix(AWRender_RenderAddress, _OUT(0) | _OUT(1),
&c->data.artworks.render_routine,
&c->data.artworks.render_workspace);
if (error) {
@@ -146,12 +146,13 @@
return false;
}
- error = _swix(AWRender_DocBounds, _IN(0) | _OUT(2) | _OUT(3) | _OUT(4) | _OUT(5),
+ error = (os_error*)_swix(AWRender_DocBounds, _IN(0) | _OUT(2) | _OUT(3) | _OUT(4) | _OUT(5),
c->source_data,
&c->data.artworks.x0,
&c->data.artworks.y0,
&c->data.artworks.x1,
&c->data.artworks.y1);
+
if (error) {
LOG(("AWRender_DocBounds: 0x%x: %s",
error->errnum, error->errmess));
@@ -176,7 +177,7 @@
return false;
}
- c->width = (c->data.artworks.x1 - c->data.artworks.x0) / 512;
+ c->width = (c->data.artworks.x1 - c->data.artworks.x0) / 512;
c->height = (c->data.artworks.y1 - c->data.artworks.y0) / 512;
c->title = malloc(100);
@@ -222,6 +223,12 @@
if (plot.flush && !plot.flush())
return false;
+ /* pick up render addresses again in case they've changed
+ (eg. newer AWRender module loaded since we first loaded this file) */
+ (void)_swix(AWRender_RenderAddress, _OUT(0) | _OUT(1),
+ &c->data.artworks.render_routine,
+ &c->data.artworks.render_workspace);
+
/* Scaled image. Transform units (65536*OS units) */
matrix.entries[0][0] = width * 65536 / c->width;
matrix.entries[0][1] = 0;
@@ -235,10 +242,25 @@
info.ditherx = ro_plot_origin_x;
info.dithery = ro_plot_origin_y;
- info.clip_x0 = INT_MIN;
- info.clip_y0 = INT_MIN;
- info.clip_x1 = INT_MAX;
- info.clip_y1 = INT_MAX;
+
+ clip_x0 -= x;
+ clip_y0 -= y;
+ clip_x1 -= x;
+ clip_y1 -= y;
+
+ if (scale == 1.0) {
+ info.clip_x0 = (clip_x0 * 512) + c->data.artworks.x0 - 511;
+ info.clip_y0 = ((c->height - clip_y1) * 512) + c->data.artworks.y0 - 511;
+ info.clip_x1 = (clip_x1 * 512) + c->data.artworks.x0 + 511;
+ info.clip_y1 = ((c->height - clip_y0) * 512) + c->data.artworks.y0 + 511;
+ }
+ else {
+ info.clip_x0 = (clip_x0 * 512 / scale) + c->data.artworks.x0 - 511;
+ info.clip_y0 = ((c->height - (clip_y1 / scale)) * 512) + c->data.artworks.y0 - 511;
+ info.clip_x1 = (clip_x1 * 512 / scale) + c->data.artworks.x0 + 511;
+ info.clip_y1 = ((c->height - (clip_y0 / scale)) * 512) + c->data.artworks.y0 + 511;
+ }
+
info.print_lowx = 0;
info.print_lowy = 0;
info.print_handle = 0;
16 years, 2 months
r3455 jshaw - in /trunk/dom: include/dom/core/node.h src/core/node.c
by netsurf@semichrome.net
Author: jshaw
Date: Sat Jul 21 23:29:48 2007
New Revision: 3455
URL: http://source.netsurf-browser.org?rev=3455&view=rev
Log:
More name changes for consistency with spec
Modified:
trunk/dom/include/dom/core/node.h
trunk/dom/src/core/node.c
Modified: trunk/dom/include/dom/core/node.h
URL: http://source.netsurf-browser.org/trunk/dom/include/dom/core/node.h?rev=3...
==============================================================================
--- trunk/dom/include/dom/core/node.h (original)
+++ trunk/dom/include/dom/core/node.h Sat Jul 21 23:29:48 2007
@@ -79,17 +79,17 @@
struct dom_string *value);
dom_exception dom_node_get_node_type(struct dom_node *node,
dom_node_type *result);
-dom_exception dom_node_get_parent(struct dom_node *node,
+dom_exception dom_node_get_parent_node(struct dom_node *node,
struct dom_node **result);
-dom_exception dom_node_get_children(struct dom_node *node,
+dom_exception dom_node_get_child_nodes(struct dom_node *node,
struct dom_node_list **result);
dom_exception dom_node_get_first_child(struct dom_node *node,
struct dom_node **result);
dom_exception dom_node_get_last_child(struct dom_node *node,
struct dom_node **result);
-dom_exception dom_node_get_previous(struct dom_node *node,
+dom_exception dom_node_get_previous_sibling(struct dom_node *node,
struct dom_node **result);
-dom_exception dom_node_get_next(struct dom_node *node,
+dom_exception dom_node_get_next_sibling(struct dom_node *node,
struct dom_node **result);
dom_exception dom_node_get_attributes(struct dom_node *node,
struct dom_named_node_map **result);
@@ -107,8 +107,8 @@
dom_exception dom_node_append_child(struct dom_node *node,
struct dom_node *new_child,
struct dom_node **result);
-dom_exception dom_node_has_children(struct dom_node *node, bool *result);
-dom_exception dom_node_clone(struct dom_node *node, bool deep,
+dom_exception dom_node_has_child_nodes(struct dom_node *node, bool *result);
+dom_exception dom_node_clone_node(struct dom_node *node, bool deep,
struct dom_node **result);
dom_exception dom_node_normalize(struct dom_node *node);
dom_exception dom_node_is_supported(struct dom_node *node,
Modified: trunk/dom/src/core/node.c
URL: http://source.netsurf-browser.org/trunk/dom/src/core/node.c?rev=3455&r1=3...
==============================================================================
--- trunk/dom/src/core/node.c (original)
+++ trunk/dom/src/core/node.c Sat Jul 21 23:29:48 2007
@@ -183,7 +183,7 @@
* the responsibility of the caller to unref the node once it has
* finished with it.
*/
-dom_exception dom_node_get_parent(struct dom_node *node,
+dom_exception dom_node_get_parent_node(struct dom_node *node,
struct dom_node **result)
{
/* If there is a parent node, then increase its reference count */
@@ -204,7 +204,7 @@
*
* \todo Work out reference counting semantics of dom_node_list
*/
-dom_exception dom_node_get_children(struct dom_node *node,
+dom_exception dom_node_get_child_nodes(struct dom_node *node,
struct dom_node_list **result)
{
UNUSED(node);
@@ -270,7 +270,7 @@
* the responsibility of the caller to unref the node once it has
* finished with it.
*/
-dom_exception dom_node_get_previous(struct dom_node *node,
+dom_exception dom_node_get_previous_sibling(struct dom_node *node,
struct dom_node **result)
{
/* If there is a previous sibling, increase its reference count */
@@ -293,7 +293,7 @@
* the responsibility of the caller to unref the node once it has
* finished with it.
*/
-dom_exception dom_node_get_next(struct dom_node *node,
+dom_exception dom_node_get_next_sibling(struct dom_node *node,
struct dom_node **result)
{
/* If there is a subsequent sibling, increase its reference count */
@@ -509,7 +509,7 @@
* \param result Pointer to location to receive result
* \return DOM_NO_ERR.
*/
-dom_exception dom_node_has_children(struct dom_node *node, bool *result)
+dom_exception dom_node_has_child_nodes(struct dom_node *node, bool *result)
{
*result = node->first_child != NULL;
@@ -555,7 +555,7 @@
* \todo work out what happens when cloning Document, DocumentType, Entity
* and Notation nodes.
*/
-dom_exception dom_node_clone(struct dom_node *node, bool deep,
+dom_exception dom_node_clone_node(struct dom_node *node, bool deep,
struct dom_node **result)
{
UNUSED(node);
16 years, 2 months
r3454 jmb - in /trunk/netsurf: makefile posix.mk riscos.mk utils/config.h
by netsurf@semichrome.net
Author: jmb
Date: Sat Jul 21 23:17:07 2007
New Revision: 3454
URL: http://source.netsurf-browser.org?rev=3454&view=rev
Log:
Purge NCOS build options; these have been redundant for ages.
Modified:
trunk/netsurf/makefile
trunk/netsurf/posix.mk
trunk/netsurf/riscos.mk
trunk/netsurf/utils/config.h
Modified: trunk/netsurf/makefile
URL: http://source.netsurf-browser.org/trunk/netsurf/makefile?rev=3454&r1=3453...
==============================================================================
--- trunk/netsurf/makefile (original)
+++ trunk/netsurf/makefile Sat Jul 21 23:17:07 2007
@@ -9,12 +9,11 @@
# riscos -- standard RISC OS build
# riscos_small -- identical to "riscos", but linked with smaller libraries
# (no openssl, and libcurl without ssl support)
-# ncos -- NCOS build (variant of RISC OS for Network Computers)
# debug -- command line Unix/Linux, for debugging
# riscos_debug -- a cross between "riscos" and "debug"
# gtk -- experimental gtk version
#
-# "riscos", "riscos_small", "ncos", and "riscos_debug" can be compiled under
+# "riscos", "riscos_small", and "riscos_debug" can be compiled under
# RISC OS, or cross-compiled using GCCSDK.
SYSTEM_CC ?= gcc
@@ -53,8 +52,6 @@
OBJECTS_RISCOS_SMALL = $(OBJECTS_RISCOS)
-OBJECTS_NCOS = $(OBJECTS_RISCOS)
-
OBJECTS_DEBUG = $(OBJECTS_COMMON) $(OBJECTS_IMAGE)
OBJECTS_DEBUG += debug_bitmap.o filetyped.o fontd.o netsurfd.o # debug/
@@ -83,10 +80,6 @@
SOURCES_RISCOS_SMALL=$(OBJECTS_RISCOS_SMALL:.o=.c)
OBJS_RISCOS_SMALL=$(OBJECTS_RISCOS_SMALL:%.o=$(OBJDIR_RISCOS_SMALL)/%.o)
-OBJDIR_NCOS = arm-ncos-aof
-SOURCES_NCOS=$(OBJECTS_NCOS:.o=.c)
-OBJS_NCOS=$(OBJECTS_NCOS:%.o=$(OBJDIR_NCOS)/%.o)
-
OBJDIR_DEBUG = $(shell $(SYSTEM_CC) -dumpmachine)-debug
SOURCES_DEBUG=$(OBJECTS_DEBUG:.o=.c)
OBJS_DEBUG=$(OBJECTS_DEBUG:%.o=$(OBJDIR_DEBUG)/%.o)
@@ -125,7 +118,6 @@
$(WARNFLAGS) -I. $(PLATFORM_CFLAGS_RISCOS) -mpoke-function-name \
# -include utils/memdebug.h
CFLAGS_RISCOS_SMALL = $(CFLAGS_RISCOS) -Dsmall
-CFLAGS_NCOS = $(CFLAGS_RISCOS) -Dncos
CFLAGS_DEBUG = -std=c99 -D_BSD_SOURCE -DDEBUG_BUILD $(WARNFLAGS) -I. \
$(PLATFORM_CFLAGS_DEBUG) -g
CFLAGS_GTK = -std=c99 -Dgtk -Dnsgtk \
@@ -149,7 +141,6 @@
AFLAGS_RISCOS = -I..,. $(PLATFORM_AFLAGS_RISCOS)
AFLAGS_RISCOS_SMALL = $(AFLAGS_RISCOS) -Dsmall
-AFLAGS_NCOS = $(AFLAGS_RISCOS) -Dncos
# targets
riscos: $(RUNIMAGE)
@@ -159,10 +150,6 @@
u!RunImage,ff8 : $(OBJS_RISCOS_SMALL)
$(CC) -o $@ $(LDFLAGS_SMALL) $^
-ncos: $(NCRUNIMAGE)
-$(NCRUNIMAGE) : $(OBJS_NCOS)
- $(CC) -o $@ $(LDFLAGS_RISCOS) $^
-
debug: nsdebug
nsdebug: $(OBJS_DEBUG)
$(CC_DEBUG) -o $@ $(LDFLAGS_DEBUG) $^
@@ -186,9 +173,6 @@
$(OBJDIR_RISCOS_SMALL)/%.o : %.c
@echo "==> $<"
@$(CC) -o $@ -c $(CFLAGS_RISCOS_SMALL) $<
-$(OBJDIR_NCOS)/%.o : %.c
- @echo "==> $<"
- @$(CC) -o $@ -c $(CFLAGS_NCOS) $<
$(OBJDIR_DEBUG)/%.o : %.c
@echo "==> $<"
@$(CC_DEBUG) -o $@ -c $(CFLAGS_DEBUG) $<
@@ -203,9 +187,6 @@
$(OBJDIR_RISCOS_SMALL)/%.o : %.s
@echo "==> $<"
$(ASM) -o $@ -c $(AFLAGS_RISCOS_SMALL) $<
-$(OBJDIR_NCOS)/%.o : %.s
- @echo "==> $<"
- $(ASM) -o $@ -c $(AFLAGS_NCOS) $<
# Generate dependencies.
# To disable automatic regeneration of dependencies (eg. if perl is not
@@ -215,7 +196,7 @@
depend: css/css_enum.c css/parser.c css/scanner.c utils/translit.c */*.[ch] */*/*.[ch]
@echo "--> modified files $?"
@echo "--> updating dependencies"
- @-mkdir -p $(OBJDIR_RISCOS) $(OBJDIR_RISCOS_SMALL) $(OBJDIR_NCOS) $(OBJDIR_DEBUG) $(OBJDIR_GTK)
- @perl scandeps $(OBJDIR_RISCOS) $(OBJDIR_RISCOS_SMALL) $(OBJDIR_NCOS) $(OBJDIR_DEBUG) $(OBJDIR_GTK) -- $^ > depend
+ @-mkdir -p $(OBJDIR_RISCOS) $(OBJDIR_RISCOS_SMALL) $(OBJDIR_DEBUG) $(OBJDIR_GTK)
+ @perl scandeps $(OBJDIR_RISCOS) $(OBJDIR_RISCOS_SMALL) $(OBJDIR_DEBUG) $(OBJDIR_GTK) -- $^ > depend
include depend
Modified: trunk/netsurf/posix.mk
URL: http://source.netsurf-browser.org/trunk/netsurf/posix.mk?rev=3454&r1=3453...
==============================================================================
--- trunk/netsurf/posix.mk (original)
+++ trunk/netsurf/posix.mk Sat Jul 21 23:17:07 2007
@@ -26,7 +26,6 @@
endif
RUNIMAGE = !NetSurf/!RunImage,ff8
-NCRUNIMAGE = !NCNetSurf/!RunImage,ff8
# special cases - in here, cos RISC OS can't cope :(
css/css_enum.c css/css_enum.h: css/css_enums css/makeenum
@@ -40,7 +39,7 @@
# remove generated files - again, RISC OS fails it
clean:
- -rm $(OBJDIR_RISCOS)/* $(OBJDIR_RISCOS_SMALL)/* $(OBJDIR_NCOS)/* \
+ -rm $(OBJDIR_RISCOS)/* $(OBJDIR_RISCOS_SMALL)/* \
$(OBJDIR_DEBUG)/* $(OBJDIR_GTK)/* \
css/css_enum.c css/css_enum.h \
css/parser.c css/parser.h css/scanner.c \
Modified: trunk/netsurf/riscos.mk
URL: http://source.netsurf-browser.org/trunk/netsurf/riscos.mk?rev=3454&r1=345...
==============================================================================
--- trunk/netsurf/riscos.mk (original)
+++ trunk/netsurf/riscos.mk Sat Jul 21 23:17:07 2007
@@ -15,7 +15,6 @@
NSLibs:lib/libjpeg OSLib:o.oslib32
RUNIMAGE = !NetSurf/!RunImage
-NCRUNIMAGE = !NCNetSurf/!RunImage
# special cases
css/css_enum.c css/css_enum.h: css/css_enums css/makeenum
@@ -37,7 +36,6 @@
clean:
-wipe $(OBJDIR_RISCOS).* ~CFR~V
-wipe $(OBJDIR_RISCOS_SMALL).* ~CFR~V
- -wipe $(OBJDIR_NCOS).* ~CFR~V
-wipe $(OBJDIR_DEBUG).* ~CFR~V
-wipe $(OBJDIR_GTK).* ~CFR~V
-wipe css.c.css_enum ~CFR~V
Modified: trunk/netsurf/utils/config.h
URL: http://source.netsurf-browser.org/trunk/netsurf/utils/config.h?rev=3454&r...
==============================================================================
--- trunk/netsurf/utils/config.h (original)
+++ trunk/netsurf/utils/config.h Sat Jul 21 23:17:07 2007
@@ -2,8 +2,7 @@
* This file is part of NetSurf, http://netsurf-browser.org/
* Licensed under the GNU General Public License,
* http://www.opensource.org/licenses/gpl-license
- * Copyright 2003,4 John M Bell <jmb202(a)ecs.soton.ac.uk>
- * Copyright 2004 Andrew Timmins <atimmins(a)blueyonder.co.uk>
+ * Copyright 2003-7 John M Bell <jmb202(a)ecs.soton.ac.uk>
*/
#ifndef _NETSURF_UTILS_CONFIG_H_
@@ -39,7 +38,7 @@
#define WITH_JPEG
#define WITH_MNG
#define WITH_GIF
-#if defined(riscos) || defined(ncos)
+#if defined(riscos)
#define WITH_NS_SVG /* internal SVG renderer */
#define WITH_DRAW
#define WITH_SPRITE
@@ -47,7 +46,7 @@
#endif
/* Platform specific features */
-#if defined(riscos) || defined(ncos)
+#if defined(riscos)
/* Plugin module */
#define WITH_PLUGIN
/* Acorn URI protocol support */
@@ -71,7 +70,7 @@
#error Cannot build WITH_NS_SVG and WITH_RSVG both enabled
#endif
-#if defined(riscos) || defined(ncos) || defined(DEBUG_BUILD)
+#if defined(riscos) || defined(DEBUG_BUILD)
/* Export modules */
#define WITH_SAVE_COMPLETE
#define WITH_DRAW_EXPORT
16 years, 2 months
r3453 jshaw - in /trunk/dom: include/dom/core/document.h src/core/document.c
by netsurf@semichrome.net
Author: jshaw
Date: Sat Jul 21 21:30:09 2007
New Revision: 3453
URL: http://source.netsurf-browser.org?rev=3453&view=rev
Log:
rename dom_document_get_element() to dom_document_get_document_element()
Modified:
trunk/dom/include/dom/core/document.h
trunk/dom/src/core/document.c
Modified: trunk/dom/include/dom/core/document.h
URL: http://source.netsurf-browser.org/trunk/dom/include/dom/core/document.h?r...
==============================================================================
--- trunk/dom/include/dom/core/document.h (original)
+++ trunk/dom/include/dom/core/document.h Sat Jul 21 21:30:09 2007
@@ -27,7 +27,7 @@
struct dom_document_type **result);
dom_exception dom_document_get_implementation(struct dom_document *doc,
struct dom_implementation **result);
-dom_exception dom_document_get_element(struct dom_document *doc,
+dom_exception dom_document_get_document_element(struct dom_document *doc,
struct dom_element **result);
dom_exception dom_document_create_element(struct dom_document *doc,
struct dom_string *tag_name, struct dom_element **result);
Modified: trunk/dom/src/core/document.c
URL: http://source.netsurf-browser.org/trunk/dom/src/core/document.c?rev=3453&...
==============================================================================
--- trunk/dom/src/core/document.c (original)
+++ trunk/dom/src/core/document.c Sat Jul 21 21:30:09 2007
@@ -95,7 +95,7 @@
* the responsibility of the caller to unref the node once it has
* finished with it.
*/
-dom_exception dom_document_get_element(struct dom_document *doc,
+dom_exception dom_document_get_document_element(struct dom_document *doc,
struct dom_element **result)
{
UNUSED(doc);
16 years, 2 months
r3452 jmb - in /trunk/dom/test: Makefile xml/documentcreateelement.xml xml/documentgetdoctype.xml xml/dom1.dtd xml/tests/ xml/tests/documentcreateelement.xml xml/tests/documentgetdoctype.xml xml/tests/dom1.dtd
by netsurf@semichrome.net
Author: jmb
Date: Sat Jul 21 19:55:40 2007
New Revision: 3452
URL: http://source.netsurf-browser.org?rev=3452&view=rev
Log:
Silence GCC/LD command lines when building test cases.
Improve structure of xml-based testsuite
Added:
trunk/dom/test/xml/tests/
trunk/dom/test/xml/tests/documentcreateelement.xml
- copied unchanged from r3451, trunk/dom/test/xml/documentcreateelement.xml
trunk/dom/test/xml/tests/documentgetdoctype.xml
- copied unchanged from r3451, trunk/dom/test/xml/documentgetdoctype.xml
trunk/dom/test/xml/tests/dom1.dtd
- copied unchanged from r3451, trunk/dom/test/xml/dom1.dtd
Removed:
trunk/dom/test/xml/documentcreateelement.xml
trunk/dom/test/xml/documentgetdoctype.xml
trunk/dom/test/xml/dom1.dtd
Modified:
trunk/dom/test/Makefile
Modified: trunk/dom/test/Makefile
URL: http://source.netsurf-browser.org/trunk/dom/test/Makefile?rev=3452&r1=345...
==============================================================================
--- trunk/dom/test/Makefile (original)
+++ trunk/dom/test/Makefile Sat Jul 21 19:55:40 2007
@@ -29,13 +29,13 @@
DEBUG =
# Transformer input
-XMLFILES = $(wildcard xml/*.xml)
+XMLFILES = $(wildcard xml/tests/*.xml)
# Transformer output
-CFILES = $(XMLFILES:.xml=.c)
+CFILES = $(addprefix xml/c/, $(notdir $(XMLFILES:.xml=.c)))
# Objects
-OBJS = $(CFILES:.c=)
+OBJS = $(addprefix xml/bin/, $(notdir $(XMLFILES:.xml=)))
.PHONY: clean debug export release setup test
@@ -46,15 +46,16 @@
clean:
ifneq (${OBJS}, )
- -@${RM} ${RMFLAGS} $(CFILES)
- -@${RM} ${RMFLAGS} $(CFILES:.c=.o)
- -@${RM} ${RMFLAGS} $(addsuffix ${EXEEXT}, $(OBJS))
+ -@${RM} ${RMFLAGS} -r xml/c/
+ -@${RM} ${RMFLAGS} -r xml/bin/
endif
distclean:
-@${RM} ${RMFLAGS} log
setup:
+ @${MKDIR} ${MKDIRFLAGS} $(CURDIR)/xml/c
+ @${MKDIR} ${MKDIRFLAGS} $(CURDIR)/xml/bin
export:
@@ -64,11 +65,11 @@
transform: $(CFILES)
# Pattern rules
-%: %.c
+xml/bin/%: xml/c/%.c
@${ECHO} ${ECHOFLAGS} "==> $<"
- ${CC} -c -g ${CFLAGS} -o $@.o $<
- ${LD} -g -o $@ $@.o ${LDFLAGS} -ldom-libxml-debug -ldom-debug
+ @${CC} -c -g ${CFLAGS} -o $@.o $<
+ @${LD} -g -o $@ $@.o ${LDFLAGS} -ldom-libxml-debug -ldom-debug
@${RM} ${RMFLAGS} $@.o
-%.c: %.xml
+xml/c/%.c: xml/tests/%.xml
@${XSLT} ${XSLTFLAGS} -o $@ transform/test-to-c.xsl $<
Removed: trunk/dom/test/xml/documentcreateelement.xml
URL: http://source.netsurf-browser.org/trunk/dom/test/xml/documentcreateelemen...
==============================================================================
--- trunk/dom/test/xml/documentcreateelement.xml (original)
+++ trunk/dom/test/xml/documentcreateelement.xml (removed)
@@ -1,44 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2001 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
---><!DOCTYPE test SYSTEM "dom1.dtd">
-
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="documentcreateelement">
-<metadata>
-<title>documentCreateElement</title>
-<creator>NIST</creator>
-<description>
- The "createElement(tagName)" method creates an Element
- of the type specified.
- Retrieve the entire DOM document and invoke its
- "createElement(tagName)" method with tagName="address".
- The method should create an instance of an Element node
- whose tagName is "address". The NodeName, NodeType
- and NodeValue are returned.
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2001-08-17</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141..."/>
-</metadata>
-<var name="doc" type="Document"/>
-<var name="newElement" type="Element"/>
-<var name="newElementName" type="DOMString"/>
-<var name="newElementType" type="int"/>
-<var name="newElementValue" type="DOMString"/>
-<load var="doc" href="staff" willBeModified="true"/>
-<createElement obj="doc" var="newElement" tagName=""address""/>
-<nodeName obj="newElement" var="newElementName"/>
-<assertEquals actual="newElementName" expected=""address"" ignoreCase="false" id="name"/>
-<nodeType obj="newElement" var="newElementType"/>
-<assertEquals actual="newElementType" expected="1" ignoreCase="false" id="type"/>
-<nodeValue obj="newElement" var="newElementValue"/>
-<assertNull actual="newElementValue" id="valueInitiallyNull"/>
-</test>
Removed: trunk/dom/test/xml/documentgetdoctype.xml
URL: http://source.netsurf-browser.org/trunk/dom/test/xml/documentgetdoctype.x...
==============================================================================
--- trunk/dom/test/xml/documentgetdoctype.xml (original)
+++ trunk/dom/test/xml/documentgetdoctype.xml (removed)
@@ -1,49 +1,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<!--
-Copyright (c) 2001-2004 World Wide Web Consortium,
-(Massachusetts Institute of Technology, Institut National de
-Recherche en Informatique et en Automatique, Keio University). All
-Rights Reserved. This program is distributed under the W3C's Software
-Intellectual Property License. This program is distributed in the
-hope that it will be useful, but WITHOUT ANY WARRANTY; without even
-the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-PURPOSE.
-See W3C License http://www.w3.org/Consortium/Legal/ for more details.
---><!DOCTYPE test SYSTEM "dom1.dtd">
-
-<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="documentgetdoctype">
-<metadata>
-<title>documentGetDocType</title>
-<creator>NIST</creator>
-<description>
- The "getDoctype()" method returns the Document
- Type Declaration associated with this document.
- Retrieve the entire DOM document and invoke its
- "getDoctype()" method. The name of the document
- type should be returned. The "getName()" method
- should be equal to "staff" or "svg".
-</description>
-<contributor>Mary Brady</contributor>
-<date qualifier="created">2001-08-17</date>
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-B63E..."/>
-<!-- Node.nodeValue -->
-<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-F68D080"/>
-<subject resource="http://www.w3.org/Bugs/Public/show_bug.cgi?id=249"/>
-</metadata>
-<var name="doc" type="Document"/>
-<var name="docType" type="DocumentType"/>
-<var name="docTypeName" type="DOMString"/>
-<var name="nodeValue" type="DOMString"/>
-<load var="doc" href="staff" willBeModified="false"/>
-<doctype obj="doc" var="docType"/>
-<assertNotNull actual="docType" id="docTypeNotNull"/>
-<name interface="DocumentType" obj="docType" var="docTypeName"/>
-<if><contentType type="image/svg+xml"/>
- <assertEquals actual="docTypeName" expected='"svg"' id="doctypeNameSVG" ignoreCase="false"/>
- <else>
- <assertEquals actual="docTypeName" expected='"staff"' id="doctypeName" ignoreCase="false"/>
- </else>
-</if>
-<nodeValue obj="docType" var="nodeValue"/>
-<assertNull actual="nodeValue" id="initiallyNull"/>
-</test>
Removed: trunk/dom/test/xml/dom1.dtd
URL: http://source.netsurf-browser.org/trunk/dom/test/xml/dom1.dtd?rev=3451&vi...
==============================================================================
--- trunk/dom/test/xml/dom1.dtd (original)
+++ trunk/dom/test/xml/dom1.dtd (removed)
@@ -1,2500 +1,0 @@
-
-<!--
- Copyright (c) 2001-2004 World Wide Web Consortium,
- (Massachusetts Institute of Technology, Institut National de
- Recherche en Informatique et en Automatique, Keio University). All
- Rights Reserved. This program is distributed under the W3C's Software
- Intellectual Property License. This program is distributed in the
- hope that it will be useful, but WITHOUT ANY WARRANTY; without even
- the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
- PURPOSE.
- See W3C License http://www.w3.org/Consortium/Legal/ for more details.
-
-This schema was generated from by dom-to-dtd.xsl.
-
--->
-
-<!ENTITY % framework-assertion "fail|assertTrue|assertFalse|assertNull|assertNotNull|assertEquals|assertNotEquals|assertSame|assertInstanceOf|assertSize|assertEventCount|assertURIEquals|assertImplementationException">
-
-<!ENTITY % framework-statement "assign|increment|decrement|append|plus|subtract|mult|divide|load|implementation|hasFeature|implementationAttribute|if|while|try|for-each|comment|return|userObj|atEvents|capturedEvents|bubbledEvents|allEvents|createXPathEvaluator|getResourceURI|substring|createTempURI|DOMImplementationRegistry.newInstance|allErrors|assertLowerSeverity|allNotifications|operation|key|dst">
-
-<!ENTITY % implementation-condition "hasFeature | implementationAttribute">
-
-<!ENTITY % condition "same|equals|notEquals|less|lessOrEquals|greater|greaterOrEquals|isNull|notNull|and|or|xor|not|instanceOf|isTrue|isFalse|hasSize|contentType|contains| %implementation-condition;">
-
-<!ENTITY % assertion "%framework-assertion;| assertDOMException" >
-<!ENTITY % variable-type "int|short|double|boolean|DOMString|List|Collection|EventMonitor|DOMErrorMonitor|UserDataMonitor|UserDataNotification|Attr|CDATASection|CharacterData|Comment|Document|DocumentFragment|DocumentType|DOMImplementation|Element|Entity|EntityReference|HTMLAnchorElement|HTMLAppletElement|HTMLAreaElement|HTMLBaseElement|HTMLBaseFontElement|HTMLBodyElement|HTMLBRElement|HTMLButtonElement|HTMLCollection|HTMLDirectoryElement|HTMLDivElement|HTMLDListElement|HTMLDocument|HTMLElement|HTMLFieldSetElement|HTMLFontElement|HTMLFormElement|HTMLFrameElement|HTMLFrameSetElement|HTMLHeadElement|HTMLHeadingElement|HTMLHRElement|HTMLHtmlElement|HTMLIFrameElement|HTMLImageElement|HTMLInputElement|HTMLIsIndexElement|HTMLLabelElement|HTMLLegendElement|HTMLLIElement|HTMLLinkElement|HTMLMapElement|HTMLMenuElement|HTMLMetaElement|HTMLModElement|HTMLObjectElement|HTMLOListElement|HTMLOptGroupElement|HTMLOptionElement|HTMLParagraphElement|HTMLParamElement|HTMLPreElement|HTMLQuoteElement|HTMLScriptElement|HTMLSelectElement|HTMLStyleElement|HTMLTableCaptionElement|HTMLTableCellElement|HTMLTableColElement|HTMLTableElement|HTMLTableRowElement|HTMLTableSectionElement|HTMLTextAreaElement|HTMLTitleElement|HTMLUListElement|NamedNodeMap|Node|NodeList|Notation|ProcessingInstruction|Text">
-<!ENTITY % statement "%framework-statement;|%assertion; | abbr | accept | acceptCharset | accessKey | action | align | aLink | alt | anchors | applets | archive | areas | attributes | axis | background | bgColor | body | border | caption | cellIndex | cellPadding | cells | cellSpacing | ch | charset | checked | childNodes | chOff | cite | className | clear | code | codeBase | codeType | color | cols | colSpan | compact | content | cookie | coords | data | dateTime | declare | defaultChecked | defaultSelected | defaultValue | defer | dir | disabled | doctype | documentElement | domain | elements | enctype | entities | event | face | firstChild | form | forms | frame | frameBorder | headers | height | href | hreflang | hspace | htmlFor | httpEquiv | id | images | implementation | index | isMap | label | lang | lastChild | length | link | links | longDesc | lowSrc | marginHeight | marginWidth | maxLength | media | method | multiple | name | nextSibling | nodeName | nodeType | nodeValue | noHref | noResize | noShade | notationName | notations | noWrap | object | options | ownerDocument | parentNode | previousSibling | profile | prompt | publicId | readOnly | referrer | rel | rev | rowIndex | rows | rowSpan | rules | scheme | scope | scrolling | sectionRowIndex | selected | selectedIndex | shape | size | span | specified | src | standby | start | summary | systemId | tabIndex | tagName | target | tBodies | text | tFoot | tHead | title | type | URL | useMap | vAlign | value | valueType | version | vLink | vspace | width | add | appendChild | appendData | blur | click | cloneNode | close | createAttribute | createCaption | createCDATASection | createComment | createDocumentFragment | createElement | createEntityReference | createProcessingInstruction | createTextNode | createTFoot | createTHead | deleteCaption | deleteCell | deleteData | deleteRow | deleteTFoot | deleteTHead | focus | getAttribute | getAttributeNode | getElementById | getElementsByName | getElementsByTagName | getNamedItem | hasChildNodes | hasFeature | insertBefore | insertCell | insertData | insertRow | item | namedItem | normalize | open | remove | removeAttribute | removeAttributeNode | removeChild | removeNamedItem | replaceChild | replaceData | reset | select | setAttribute | setAttributeNode | setNamedItem | splitText | submit | substringData | write | writeln ">
-<!ELEMENT assertDOMException (metadata?,(INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR|WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR))>
-<!ATTLIST assertDOMException id ID #REQUIRED>
-<!ELEMENT INDEX_SIZE_ERR ( substringData | insertData | deleteData | replaceData | splitText ) >
-<!ELEMENT DOMSTRING_SIZE_ERR ( nodeValue | data | substringData ) >
-<!ELEMENT HIERARCHY_REQUEST_ERR ( insertBefore | replaceChild | appendChild ) >
-<!ELEMENT WRONG_DOCUMENT_ERR ( insertBefore | replaceChild | appendChild | setNamedItem | setAttributeNode ) >
-<!ELEMENT INVALID_CHARACTER_ERR ( createElement | createProcessingInstruction | createAttribute | createEntityReference | setAttribute ) >
-<!ELEMENT NO_DATA_ALLOWED_ERR EMPTY >
-<!ELEMENT NO_MODIFICATION_ALLOWED_ERR ( nodeValue | data | value | data | insertBefore | replaceChild | removeChild | appendChild | setNamedItem | removeNamedItem | appendData | insertData | deleteData | replaceData | setAttribute | removeAttribute | setAttributeNode | removeAttributeNode | splitText ) >
-<!ELEMENT NOT_FOUND_ERR ( insertBefore | replaceChild | removeChild | removeNamedItem | removeAttributeNode ) >
-<!ELEMENT NOT_SUPPORTED_ERR ( createCDATASection | createProcessingInstruction | createEntityReference ) >
-<!ELEMENT INUSE_ATTRIBUTE_ERR ( setNamedItem | setAttributeNode ) >
-
-
-
-<!ELEMENT abbr EMPTY>
-<!ATTLIST abbr
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableCellElement ) #IMPLIED>
-
-
-<!ELEMENT accept EMPTY>
-<!ATTLIST accept
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement ) #IMPLIED>
-
-
-<!ELEMENT acceptCharset EMPTY>
-<!ATTLIST acceptCharset
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFormElement ) #IMPLIED>
-
-
-<!ELEMENT accessKey EMPTY>
-<!ATTLIST accessKey
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement | HTMLLabelElement | HTMLLegendElement | HTMLAnchorElement | HTMLAreaElement ) #REQUIRED>
-
-
-<!ELEMENT action EMPTY>
-<!ATTLIST action
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFormElement ) #IMPLIED>
-
-
-<!ELEMENT align EMPTY>
-<!ATTLIST align
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement | HTMLLegendElement | HTMLDivElement | HTMLParagraphElement | HTMLHeadingElement | HTMLHRElement | HTMLImageElement | HTMLObjectElement | HTMLAppletElement | HTMLTableElement | HTMLTableCaptionElement | HTMLTableColElement | HTMLTableSectionElement | HTMLTableRowElement | HTMLTableCellElement | HTMLIFrameElement ) #REQUIRED>
-
-
-<!ELEMENT aLink EMPTY>
-<!ATTLIST aLink
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLBodyElement ) #IMPLIED>
-
-
-<!ELEMENT alt EMPTY>
-<!ATTLIST alt
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement | HTMLImageElement | HTMLAppletElement | HTMLAreaElement ) #REQUIRED>
-
-
-<!ELEMENT anchors EMPTY>
-<!ATTLIST anchors
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT applets EMPTY>
-<!ATTLIST applets
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT archive EMPTY>
-<!ATTLIST archive
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLObjectElement | HTMLAppletElement ) #REQUIRED>
-
-
-<!ELEMENT areas EMPTY>
-<!ATTLIST areas
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLMapElement ) #IMPLIED>
-
-
-<!ELEMENT attributes EMPTY>
-<!ATTLIST attributes
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT axis EMPTY>
-<!ATTLIST axis
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableCellElement ) #IMPLIED>
-
-
-<!ELEMENT background EMPTY>
-<!ATTLIST background
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLBodyElement ) #IMPLIED>
-
-
-<!ELEMENT bgColor EMPTY>
-<!ATTLIST bgColor
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLBodyElement | HTMLTableElement | HTMLTableRowElement | HTMLTableCellElement ) #REQUIRED>
-
-
-<!ELEMENT body EMPTY>
-<!ATTLIST body
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT border EMPTY>
-<!ATTLIST border
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLImageElement | HTMLObjectElement | HTMLTableElement ) #REQUIRED>
-
-
-<!ELEMENT caption EMPTY>
-<!ATTLIST caption
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT cellIndex EMPTY>
-<!ATTLIST cellIndex
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableCellElement ) #IMPLIED>
-
-
-<!ELEMENT cellPadding EMPTY>
-<!ATTLIST cellPadding
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT cells EMPTY>
-<!ATTLIST cells
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableRowElement ) #IMPLIED>
-
-
-<!ELEMENT cellSpacing EMPTY>
-<!ATTLIST cellSpacing
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT ch EMPTY>
-<!ATTLIST ch
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableColElement | HTMLTableSectionElement | HTMLTableRowElement | HTMLTableCellElement ) #REQUIRED>
-
-
-<!ELEMENT charset EMPTY>
-<!ATTLIST charset
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLinkElement | HTMLAnchorElement | HTMLScriptElement ) #REQUIRED>
-
-
-<!ELEMENT checked EMPTY>
-<!ATTLIST checked
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement ) #IMPLIED>
-
-
-<!ELEMENT childNodes EMPTY>
-<!ATTLIST childNodes
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT chOff EMPTY>
-<!ATTLIST chOff
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableColElement | HTMLTableSectionElement | HTMLTableRowElement | HTMLTableCellElement ) #REQUIRED>
-
-
-<!ELEMENT cite EMPTY>
-<!ATTLIST cite
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLQuoteElement | HTMLModElement ) #REQUIRED>
-
-
-<!ELEMENT className EMPTY>
-<!ATTLIST className
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLElement ) #IMPLIED>
-
-
-<!ELEMENT clear EMPTY>
-<!ATTLIST clear
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLBRElement ) #IMPLIED>
-
-
-<!ELEMENT code EMPTY>
-<!ATTLIST code
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLObjectElement | HTMLAppletElement ) #REQUIRED>
-
-
-<!ELEMENT codeBase EMPTY>
-<!ATTLIST codeBase
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLObjectElement | HTMLAppletElement ) #REQUIRED>
-
-
-<!ELEMENT codeType EMPTY>
-<!ATTLIST codeType
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLObjectElement ) #IMPLIED>
-
-
-<!ELEMENT color EMPTY>
-<!ATTLIST color
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLBaseFontElement | HTMLFontElement ) #REQUIRED>
-
-
-<!ELEMENT cols EMPTY>
-<!ATTLIST cols
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTextAreaElement | HTMLFrameSetElement ) #REQUIRED>
-
-
-<!ELEMENT colSpan EMPTY>
-<!ATTLIST colSpan
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableCellElement ) #IMPLIED>
-
-
-<!ELEMENT compact EMPTY>
-<!ATTLIST compact
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLUListElement | HTMLOListElement | HTMLDListElement | HTMLDirectoryElement | HTMLMenuElement ) #REQUIRED>
-
-
-<!ELEMENT content EMPTY>
-<!ATTLIST content
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLMetaElement ) #IMPLIED>
-
-
-<!ELEMENT cookie EMPTY>
-<!ATTLIST cookie
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT coords EMPTY>
-<!ATTLIST coords
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLAnchorElement | HTMLAreaElement ) #REQUIRED>
-
-
-<!ELEMENT data EMPTY>
-<!ATTLIST data
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( CharacterData | ProcessingInstruction | HTMLObjectElement | UserDataNotification ) #REQUIRED>
-
-
-<!ELEMENT dateTime EMPTY>
-<!ATTLIST dateTime
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLModElement ) #IMPLIED>
-
-
-<!ELEMENT declare EMPTY>
-<!ATTLIST declare
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLObjectElement ) #IMPLIED>
-
-
-<!ELEMENT defaultChecked EMPTY>
-<!ATTLIST defaultChecked
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement ) #IMPLIED>
-
-
-<!ELEMENT defaultSelected EMPTY>
-<!ATTLIST defaultSelected
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLOptionElement ) #IMPLIED>
-
-
-<!ELEMENT defaultValue EMPTY>
-<!ATTLIST defaultValue
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement | HTMLTextAreaElement ) #REQUIRED>
-
-
-<!ELEMENT defer EMPTY>
-<!ATTLIST defer
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLScriptElement ) #IMPLIED>
-
-
-<!ELEMENT dir EMPTY>
-<!ATTLIST dir
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLElement ) #IMPLIED>
-
-
-<!ELEMENT disabled EMPTY>
-<!ATTLIST disabled
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLinkElement | HTMLStyleElement | HTMLSelectElement | HTMLOptGroupElement | HTMLOptionElement | HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement ) #REQUIRED>
-
-
-<!ELEMENT doctype EMPTY>
-<!ATTLIST doctype
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Document ) #IMPLIED>
-
-
-<!ELEMENT documentElement EMPTY>
-<!ATTLIST documentElement
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Document ) #IMPLIED>
-
-
-<!ELEMENT domain EMPTY>
-<!ATTLIST domain
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT elements EMPTY>
-<!ATTLIST elements
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLFormElement ) #IMPLIED>
-
-
-<!ELEMENT enctype EMPTY>
-<!ATTLIST enctype
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFormElement ) #IMPLIED>
-
-
-<!ELEMENT entities EMPTY>
-<!ATTLIST entities
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( DocumentType ) #IMPLIED>
-
-
-<!ELEMENT event EMPTY>
-<!ATTLIST event
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLScriptElement ) #IMPLIED>
-
-
-<!ELEMENT face EMPTY>
-<!ATTLIST face
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLBaseFontElement | HTMLFontElement ) #REQUIRED>
-
-
-<!ELEMENT firstChild EMPTY>
-<!ATTLIST firstChild
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT form EMPTY>
-<!ATTLIST form
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLIsIndexElement | HTMLSelectElement | HTMLOptionElement | HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement | HTMLLabelElement | HTMLFieldSetElement | HTMLLegendElement | HTMLObjectElement ) #REQUIRED>
-
-
-<!ELEMENT forms EMPTY>
-<!ATTLIST forms
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT frame EMPTY>
-<!ATTLIST frame
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT frameBorder EMPTY>
-<!ATTLIST frameBorder
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFrameElement | HTMLIFrameElement ) #REQUIRED>
-
-
-<!ELEMENT headers EMPTY>
-<!ATTLIST headers
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableCellElement ) #IMPLIED>
-
-
-<!ELEMENT height EMPTY>
-<!ATTLIST height
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLImageElement | HTMLObjectElement | HTMLAppletElement | HTMLTableCellElement | HTMLIFrameElement ) #REQUIRED>
-
-
-<!ELEMENT href EMPTY>
-<!ATTLIST href
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLinkElement | HTMLBaseElement | HTMLAnchorElement | HTMLAreaElement ) #REQUIRED>
-
-
-<!ELEMENT hreflang EMPTY>
-<!ATTLIST hreflang
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLinkElement | HTMLAnchorElement ) #REQUIRED>
-
-
-<!ELEMENT hspace EMPTY>
-<!ATTLIST hspace
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLImageElement | HTMLObjectElement | HTMLAppletElement ) #REQUIRED>
-
-
-<!ELEMENT htmlFor EMPTY>
-<!ATTLIST htmlFor
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLabelElement | HTMLScriptElement ) #REQUIRED>
-
-
-<!ELEMENT httpEquiv EMPTY>
-<!ATTLIST httpEquiv
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLMetaElement ) #IMPLIED>
-
-
-<!ELEMENT id EMPTY>
-<!ATTLIST id
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLElement ) #IMPLIED>
-
-
-<!ELEMENT images EMPTY>
-<!ATTLIST images
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT index EMPTY>
-<!ATTLIST index
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLOptionElement ) #IMPLIED>
-
-
-<!ELEMENT isMap EMPTY>
-<!ATTLIST isMap
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLImageElement ) #IMPLIED>
-
-
-<!ELEMENT label EMPTY>
-<!ATTLIST label
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLOptGroupElement | HTMLOptionElement ) #REQUIRED>
-
-
-<!ELEMENT lang EMPTY>
-<!ATTLIST lang
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLElement ) #IMPLIED>
-
-
-<!ELEMENT lastChild EMPTY>
-<!ATTLIST lastChild
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT length EMPTY>
-<!ATTLIST length
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( NodeList | NamedNodeMap | CharacterData | HTMLCollection | HTMLFormElement | HTMLSelectElement | DOMString ) #REQUIRED>
-
-
-<!ELEMENT link EMPTY>
-<!ATTLIST link
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLBodyElement ) #IMPLIED>
-
-
-<!ELEMENT links EMPTY>
-<!ATTLIST links
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT longDesc EMPTY>
-<!ATTLIST longDesc
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLImageElement | HTMLFrameElement | HTMLIFrameElement ) #REQUIRED>
-
-
-<!ELEMENT lowSrc EMPTY>
-<!ATTLIST lowSrc
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLImageElement ) #IMPLIED>
-
-
-<!ELEMENT marginHeight EMPTY>
-<!ATTLIST marginHeight
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFrameElement | HTMLIFrameElement ) #REQUIRED>
-
-
-<!ELEMENT marginWidth EMPTY>
-<!ATTLIST marginWidth
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFrameElement | HTMLIFrameElement ) #REQUIRED>
-
-
-<!ELEMENT maxLength EMPTY>
-<!ATTLIST maxLength
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement ) #IMPLIED>
-
-
-<!ELEMENT media EMPTY>
-<!ATTLIST media
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLinkElement | HTMLStyleElement ) #REQUIRED>
-
-
-<!ELEMENT method EMPTY>
-<!ATTLIST method
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFormElement ) #IMPLIED>
-
-
-<!ELEMENT multiple EMPTY>
-<!ATTLIST multiple
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLSelectElement ) #IMPLIED>
-
-
-<!ELEMENT name EMPTY>
-<!ATTLIST name
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( Attr | DocumentType | HTMLMetaElement | HTMLFormElement | HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement | HTMLAnchorElement | HTMLImageElement | HTMLObjectElement | HTMLParamElement | HTMLAppletElement | HTMLMapElement | HTMLFrameElement | HTMLIFrameElement ) #REQUIRED>
-
-
-<!ELEMENT nextSibling EMPTY>
-<!ATTLIST nextSibling
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT nodeName EMPTY>
-<!ATTLIST nodeName
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT nodeType EMPTY>
-<!ATTLIST nodeType
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT nodeValue EMPTY>
-<!ATTLIST nodeValue
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT noHref EMPTY>
-<!ATTLIST noHref
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLAreaElement ) #IMPLIED>
-
-
-<!ELEMENT noResize EMPTY>
-<!ATTLIST noResize
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFrameElement ) #IMPLIED>
-
-
-<!ELEMENT noShade EMPTY>
-<!ATTLIST noShade
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLHRElement ) #IMPLIED>
-
-
-<!ELEMENT notationName EMPTY>
-<!ATTLIST notationName
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Entity ) #IMPLIED>
-
-
-<!ELEMENT notations EMPTY>
-<!ATTLIST notations
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( DocumentType ) #IMPLIED>
-
-
-<!ELEMENT noWrap EMPTY>
-<!ATTLIST noWrap
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableCellElement ) #IMPLIED>
-
-
-<!ELEMENT object EMPTY>
-<!ATTLIST object
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLAppletElement ) #IMPLIED>
-
-
-<!ELEMENT options EMPTY>
-<!ATTLIST options
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLSelectElement ) #IMPLIED>
-
-
-<!ELEMENT ownerDocument EMPTY>
-<!ATTLIST ownerDocument
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT parentNode EMPTY>
-<!ATTLIST parentNode
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT previousSibling EMPTY>
-<!ATTLIST previousSibling
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Node ) #IMPLIED>
-
-
-<!ELEMENT profile EMPTY>
-<!ATTLIST profile
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLHeadElement ) #IMPLIED>
-
-
-<!ELEMENT prompt EMPTY>
-<!ATTLIST prompt
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLIsIndexElement ) #IMPLIED>
-
-
-<!ELEMENT publicId EMPTY>
-<!ATTLIST publicId
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Notation | Entity ) #REQUIRED>
-
-
-<!ELEMENT readOnly EMPTY>
-<!ATTLIST readOnly
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement | HTMLTextAreaElement ) #REQUIRED>
-
-
-<!ELEMENT referrer EMPTY>
-<!ATTLIST referrer
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT rel EMPTY>
-<!ATTLIST rel
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLinkElement | HTMLAnchorElement ) #REQUIRED>
-
-
-<!ELEMENT rev EMPTY>
-<!ATTLIST rev
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLinkElement | HTMLAnchorElement ) #REQUIRED>
-
-
-<!ELEMENT rowIndex EMPTY>
-<!ATTLIST rowIndex
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableRowElement ) #IMPLIED>
-
-
-<!ELEMENT rows EMPTY>
-<!ATTLIST rows
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTextAreaElement | HTMLTableElement | HTMLTableSectionElement | HTMLFrameSetElement ) #REQUIRED>
-
-
-<!ELEMENT rowSpan EMPTY>
-<!ATTLIST rowSpan
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableCellElement ) #IMPLIED>
-
-
-<!ELEMENT rules EMPTY>
-<!ATTLIST rules
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT scheme EMPTY>
-<!ATTLIST scheme
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLMetaElement ) #IMPLIED>
-
-
-<!ELEMENT scope EMPTY>
-<!ATTLIST scope
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableCellElement ) #IMPLIED>
-
-
-<!ELEMENT scrolling EMPTY>
-<!ATTLIST scrolling
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLFrameElement | HTMLIFrameElement ) #REQUIRED>
-
-
-<!ELEMENT sectionRowIndex EMPTY>
-<!ATTLIST sectionRowIndex
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableRowElement ) #IMPLIED>
-
-
-<!ELEMENT selected EMPTY>
-<!ATTLIST selected
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLOptionElement ) #IMPLIED>
-
-
-<!ELEMENT selectedIndex EMPTY>
-<!ATTLIST selectedIndex
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLSelectElement ) #IMPLIED>
-
-
-<!ELEMENT shape EMPTY>
-<!ATTLIST shape
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLAnchorElement | HTMLAreaElement ) #REQUIRED>
-
-
-<!ELEMENT size EMPTY>
-<!ATTLIST size
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLSelectElement | HTMLInputElement | HTMLBaseFontElement | HTMLFontElement | HTMLHRElement ) #REQUIRED>
-
-
-<!ELEMENT span EMPTY>
-<!ATTLIST span
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableColElement ) #IMPLIED>
-
-
-<!ELEMENT specified EMPTY>
-<!ATTLIST specified
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Attr ) #IMPLIED>
-
-
-<!ELEMENT src EMPTY>
-<!ATTLIST src
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement | HTMLImageElement | HTMLScriptElement | HTMLFrameElement | HTMLIFrameElement | UserDataNotification ) #REQUIRED>
-
-
-<!ELEMENT standby EMPTY>
-<!ATTLIST standby
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLObjectElement ) #IMPLIED>
-
-
-<!ELEMENT start EMPTY>
-<!ATTLIST start
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLOListElement ) #IMPLIED>
-
-
-<!ELEMENT summary EMPTY>
-<!ATTLIST summary
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT systemId EMPTY>
-<!ATTLIST systemId
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Notation | Entity ) #REQUIRED>
-
-
-<!ELEMENT tabIndex EMPTY>
-<!ATTLIST tabIndex
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement | HTMLAnchorElement | HTMLObjectElement | HTMLAreaElement ) #REQUIRED>
-
-
-<!ELEMENT tagName EMPTY>
-<!ATTLIST tagName
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( Element ) #IMPLIED>
-
-
-<!ELEMENT target EMPTY>
-<!ATTLIST target
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( ProcessingInstruction | HTMLLinkElement | HTMLBaseElement | HTMLFormElement | HTMLAnchorElement | HTMLAreaElement ) #REQUIRED>
-
-
-<!ELEMENT tBodies EMPTY>
-<!ATTLIST tBodies
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT text EMPTY>
-<!ATTLIST text
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTitleElement | HTMLBodyElement | HTMLOptionElement | HTMLScriptElement ) #REQUIRED>
-
-
-<!ELEMENT tFoot EMPTY>
-<!ATTLIST tFoot
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT tHead EMPTY>
-<!ATTLIST tHead
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableElement ) #IMPLIED>
-
-
-<!ELEMENT type EMPTY>
-<!ATTLIST type
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLLinkElement | HTMLStyleElement | HTMLSelectElement | HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement | HTMLUListElement | HTMLOListElement | HTMLLIElement | HTMLAnchorElement | HTMLObjectElement | HTMLParamElement | HTMLScriptElement ) #REQUIRED>
-
-
-<!ELEMENT URL EMPTY>
-<!ATTLIST URL
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface ( HTMLDocument ) #IMPLIED>
-
-
-<!ELEMENT useMap EMPTY>
-<!ATTLIST useMap
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLInputElement | HTMLImageElement | HTMLObjectElement ) #REQUIRED>
-
-
-<!ELEMENT vAlign EMPTY>
-<!ATTLIST vAlign
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLTableColElement | HTMLTableSectionElement | HTMLTableRowElement | HTMLTableCellElement ) #REQUIRED>
-
-
-<!ELEMENT value EMPTY>
-<!ATTLIST value
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( Attr | HTMLSelectElement | HTMLOptionElement | HTMLInputElement | HTMLTextAreaElement | HTMLButtonElement | HTMLLIElement | HTMLParamElement ) #REQUIRED>
-
-
-<!ELEMENT valueType EMPTY>
-<!ATTLIST valueType
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLParamElement ) #IMPLIED>
-
-
-<!ELEMENT version EMPTY>
-<!ATTLIST version
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLHtmlElement ) #IMPLIED>
-
-
-<!ELEMENT vLink EMPTY>
-<!ATTLIST vLink
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLBodyElement ) #IMPLIED>
-
-
-<!ELEMENT vspace EMPTY>
-<!ATTLIST vspace
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLImageElement | HTMLObjectElement | HTMLAppletElement ) #REQUIRED>
-
-
-<!ELEMENT width EMPTY>
-<!ATTLIST width
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface ( HTMLPreElement | HTMLHRElement | HTMLImageElement | HTMLObjectElement | HTMLAppletElement | HTMLTableElement | HTMLTableColElement | HTMLTableCellElement | HTMLIFrameElement ) #REQUIRED>
-<!ELEMENT add EMPTY >
-<!ATTLIST add
- id ID #IMPLIED
- obj CDATA #REQUIRED
- element CDATA #REQUIRED
- before CDATA #REQUIRED
- interface (HTMLSelectElement) #IMPLIED
->
-
-
-<!ELEMENT appendChild EMPTY >
-<!ATTLIST appendChild
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- newChild CDATA #REQUIRED
- interface (Node) #IMPLIED
->
-
-
-<!ELEMENT appendData EMPTY >
-<!ATTLIST appendData
- id ID #IMPLIED
- obj CDATA #REQUIRED
- arg CDATA #REQUIRED
- interface (CharacterData) #IMPLIED
->
-
-
-<!ELEMENT blur EMPTY >
-<!ATTLIST blur
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLSelectElement|HTMLInputElement|HTMLTextAreaElement|HTMLAnchorElement) #REQUIRED
->
-
-
-<!ELEMENT click EMPTY >
-<!ATTLIST click
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLInputElement) #IMPLIED
->
-
-
-<!ELEMENT cloneNode EMPTY >
-<!ATTLIST cloneNode
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- deep CDATA #REQUIRED
- interface (Node) #IMPLIED
->
-
-
-<!ELEMENT close EMPTY >
-<!ATTLIST close
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLDocument) #IMPLIED
->
-
-
-<!ELEMENT createAttribute EMPTY >
-<!ATTLIST createAttribute
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- name CDATA #REQUIRED
- interface (Document) #IMPLIED
->
-
-
-<!ELEMENT createCaption EMPTY >
-<!ATTLIST createCaption
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface (HTMLTableElement) #IMPLIED
->
-
-
-<!ELEMENT createCDATASection EMPTY >
-<!ATTLIST createCDATASection
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- data CDATA #REQUIRED
- interface (Document) #IMPLIED
->
-
-
-<!ELEMENT createComment EMPTY >
-<!ATTLIST createComment
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- data CDATA #REQUIRED
- interface (Document) #IMPLIED
->
-
-
-<!ELEMENT createDocumentFragment EMPTY >
-<!ATTLIST createDocumentFragment
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface (Document) #IMPLIED
->
-
-
-<!ELEMENT createElement EMPTY >
-<!ATTLIST createElement
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- tagName CDATA #REQUIRED
- interface (Document) #IMPLIED
->
-
-
-<!ELEMENT createEntityReference EMPTY >
-<!ATTLIST createEntityReference
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- name CDATA #REQUIRED
- interface (Document) #IMPLIED
->
-
-
-<!ELEMENT createProcessingInstruction EMPTY >
-<!ATTLIST createProcessingInstruction
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- target CDATA #REQUIRED
- data CDATA #REQUIRED
- interface (Document) #IMPLIED
->
-
-
-<!ELEMENT createTextNode EMPTY >
-<!ATTLIST createTextNode
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- data CDATA #REQUIRED
- interface (Document) #IMPLIED
->
-
-
-<!ELEMENT createTFoot EMPTY >
-<!ATTLIST createTFoot
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface (HTMLTableElement) #IMPLIED
->
-
-
-<!ELEMENT createTHead EMPTY >
-<!ATTLIST createTHead
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface (HTMLTableElement) #IMPLIED
->
-
-
-<!ELEMENT deleteCaption EMPTY >
-<!ATTLIST deleteCaption
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLTableElement) #IMPLIED
->
-
-
-<!ELEMENT deleteCell EMPTY >
-<!ATTLIST deleteCell
- id ID #IMPLIED
- obj CDATA #REQUIRED
- index CDATA #REQUIRED
- interface (HTMLTableRowElement) #IMPLIED
->
-
-
-<!ELEMENT deleteData EMPTY >
-<!ATTLIST deleteData
- id ID #IMPLIED
- obj CDATA #REQUIRED
- offset CDATA #REQUIRED
- count CDATA #REQUIRED
- interface (CharacterData) #IMPLIED
->
-
-
-<!ELEMENT deleteRow EMPTY >
-<!ATTLIST deleteRow
- id ID #IMPLIED
- obj CDATA #REQUIRED
- index CDATA #REQUIRED
- interface (HTMLTableElement|HTMLTableSectionElement) #REQUIRED
->
-
-
-<!ELEMENT deleteTFoot EMPTY >
-<!ATTLIST deleteTFoot
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLTableElement) #IMPLIED
->
-
-
-<!ELEMENT deleteTHead EMPTY >
-<!ATTLIST deleteTHead
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLTableElement) #IMPLIED
->
-
-
-<!ELEMENT focus EMPTY >
-<!ATTLIST focus
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLSelectElement|HTMLInputElement|HTMLTextAreaElement|HTMLAnchorElement) #REQUIRED
->
-
-
-<!ELEMENT getAttribute EMPTY >
-<!ATTLIST getAttribute
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- name CDATA #REQUIRED
- interface (Element) #IMPLIED
->
-
-
-<!ELEMENT getAttributeNode EMPTY >
-<!ATTLIST getAttributeNode
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- name CDATA #REQUIRED
- interface (Element) #IMPLIED
->
-
-
-<!ELEMENT getElementById EMPTY >
-<!ATTLIST getElementById
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- elementId CDATA #REQUIRED
- interface (HTMLDocument) #IMPLIED
->
-
-
-<!ELEMENT getElementsByName EMPTY >
-<!ATTLIST getElementsByName
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- elementName CDATA #REQUIRED
- interface (HTMLDocument) #IMPLIED
->
-
-
-<!ELEMENT getElementsByTagName EMPTY >
-<!ATTLIST getElementsByTagName
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- tagname CDATA #REQUIRED
- interface (Document|Element) #REQUIRED
->
-
-
-<!ELEMENT getNamedItem EMPTY >
-<!ATTLIST getNamedItem
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- name CDATA #REQUIRED
- interface (NamedNodeMap) #IMPLIED
->
-
-
-<!ELEMENT hasChildNodes EMPTY >
-<!ATTLIST hasChildNodes
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- interface (Node) #IMPLIED
->
-
-
-<!ELEMENT insertBefore EMPTY >
-<!ATTLIST insertBefore
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- newChild CDATA #REQUIRED
- refChild CDATA #REQUIRED
- interface (Node) #IMPLIED
->
-
-
-<!ELEMENT insertCell EMPTY >
-<!ATTLIST insertCell
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- index CDATA #REQUIRED
- interface (HTMLTableRowElement) #IMPLIED
->
-
-
-<!ELEMENT insertData EMPTY >
-<!ATTLIST insertData
- id ID #IMPLIED
- obj CDATA #REQUIRED
- offset CDATA #REQUIRED
- arg CDATA #REQUIRED
- interface (CharacterData) #IMPLIED
->
-
-
-<!ELEMENT insertRow EMPTY >
-<!ATTLIST insertRow
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- index CDATA #REQUIRED
- interface (HTMLTableElement|HTMLTableSectionElement) #REQUIRED
->
-
-
-<!ELEMENT item EMPTY >
-<!ATTLIST item
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- index CDATA #REQUIRED
- interface (NodeList|NamedNodeMap|HTMLCollection) #REQUIRED
->
-
-
-<!ELEMENT namedItem EMPTY >
-<!ATTLIST namedItem
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- name CDATA #REQUIRED
- interface (HTMLCollection) #IMPLIED
->
-
-
-<!ELEMENT normalize EMPTY >
-<!ATTLIST normalize
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (Element) #IMPLIED
->
-
-
-<!ELEMENT open EMPTY >
-<!ATTLIST open
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLDocument) #IMPLIED
->
-
-
-<!ELEMENT remove EMPTY >
-<!ATTLIST remove
- id ID #IMPLIED
- obj CDATA #REQUIRED
- index CDATA #REQUIRED
- interface (HTMLSelectElement) #IMPLIED
->
-
-
-<!ELEMENT removeAttribute EMPTY >
-<!ATTLIST removeAttribute
- id ID #IMPLIED
- obj CDATA #REQUIRED
- name CDATA #REQUIRED
- interface (Element) #IMPLIED
->
-
-
-<!ELEMENT removeAttributeNode EMPTY >
-<!ATTLIST removeAttributeNode
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- oldAttr CDATA #REQUIRED
- interface (Element) #IMPLIED
->
-
-
-<!ELEMENT removeChild EMPTY >
-<!ATTLIST removeChild
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- oldChild CDATA #REQUIRED
- interface (Node) #IMPLIED
->
-
-
-<!ELEMENT removeNamedItem EMPTY >
-<!ATTLIST removeNamedItem
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- name CDATA #REQUIRED
- interface (NamedNodeMap) #IMPLIED
->
-
-
-<!ELEMENT replaceChild EMPTY >
-<!ATTLIST replaceChild
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- newChild CDATA #REQUIRED
- oldChild CDATA #REQUIRED
- interface (Node) #IMPLIED
->
-
-
-<!ELEMENT replaceData EMPTY >
-<!ATTLIST replaceData
- id ID #IMPLIED
- obj CDATA #REQUIRED
- offset CDATA #REQUIRED
- count CDATA #REQUIRED
- arg CDATA #REQUIRED
- interface (CharacterData) #IMPLIED
->
-
-
-<!ELEMENT reset EMPTY >
-<!ATTLIST reset
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLFormElement) #IMPLIED
->
-
-
-<!ELEMENT select EMPTY >
-<!ATTLIST select
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLInputElement|HTMLTextAreaElement) #REQUIRED
->
-
-
-<!ELEMENT setAttribute EMPTY >
-<!ATTLIST setAttribute
- id ID #IMPLIED
- obj CDATA #REQUIRED
- name CDATA #REQUIRED
- value CDATA #REQUIRED
- interface (Element) #IMPLIED
->
-
-
-<!ELEMENT setAttributeNode EMPTY >
-<!ATTLIST setAttributeNode
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- newAttr CDATA #REQUIRED
- interface (Element) #IMPLIED
->
-
-
-<!ELEMENT setNamedItem EMPTY >
-<!ATTLIST setNamedItem
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- arg CDATA #REQUIRED
- interface (NamedNodeMap) #IMPLIED
->
-
-
-<!ELEMENT splitText EMPTY >
-<!ATTLIST splitText
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- offset CDATA #REQUIRED
- interface (Text) #IMPLIED
->
-
-
-<!ELEMENT submit EMPTY >
-<!ATTLIST submit
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (HTMLFormElement) #IMPLIED
->
-
-
-<!ELEMENT substringData EMPTY >
-<!ATTLIST substringData
- id ID #IMPLIED
- obj CDATA #REQUIRED
- var CDATA #REQUIRED
- offset CDATA #REQUIRED
- count CDATA #REQUIRED
- interface (CharacterData) #IMPLIED
->
-
-
-<!ELEMENT write EMPTY >
-<!ATTLIST write
- id ID #IMPLIED
- obj CDATA #REQUIRED
- text CDATA #REQUIRED
- interface (HTMLDocument) #IMPLIED
->
-
-
-<!ELEMENT writeln EMPTY >
-<!ATTLIST writeln
- id ID #IMPLIED
- obj CDATA #REQUIRED
- text CDATA #REQUIRED
- interface (HTMLDocument) #IMPLIED
->
-
-
-
-<!ELEMENT test (metadata?,(%implementation-condition;)*,var*,(load|implementation|DOMImplementationRegistry.newInstance),(%statement;)*) >
-<!ATTLIST test
- xmlns CDATA #FIXED "http://www.w3.org/2001/DOM-Test-Suite/Level-1"
- id ID #IMPLIED
- name CDATA #REQUIRED
- xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation CDATA "http://www.w3.org/2001/DOM-Test-Suite/Level-1 dom1.xsd"
->
-
-<!ELEMENT package (metadata?, (test|suite)*)>
-<!ATTLIST package
- xmlns CDATA #FIXED "http://www.w3.org/2001/DOM-Test-Suite/Level-1"
- id ID #IMPLIED
->
-
-<!ELEMENT suite (metadata?,(%implementation-condition;)*,(suite.member)*)>
-<!ATTLIST suite
- xmlns CDATA #FIXED "http://www.w3.org/2001/DOM-Test-Suite/Level-1"
- id ID #IMPLIED
- name CDATA #REQUIRED
- xmlns:xsi CDATA #FIXED "http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation CDATA "http://www.w3.org/2001/DOM-Test-Suite/Level-1 dom1.xsd"
->
-
-<!ELEMENT suite.member EMPTY>
-<!ATTLIST suite.member
- href CDATA #REQUIRED
->
-
-
-<!ELEMENT comment (#PCDATA)>
-<!ATTLIST comment
- id ID #IMPLIED
->
-
-<!ELEMENT wait EMPTY>
-<!ATTLIST wait
- id ID #IMPLIED
- milliseconds CDATA #REQUIRED
->
-
-<!ELEMENT append EMPTY>
-<!ATTLIST append
- id ID #IMPLIED
- collection CDATA #REQUIRED
- item CDATA #REQUIRED
->
-
-<!ELEMENT assign ((%condition;)?)?>
-<!ATTLIST assign
- id ID #IMPLIED
- var CDATA #REQUIRED
- value CDATA #IMPLIED
->
-
-<!ELEMENT increment EMPTY>
-<!ATTLIST increment
- id ID #IMPLIED
- var CDATA #REQUIRED
- value CDATA #REQUIRED
->
-
-<!ELEMENT decrement EMPTY>
-<!ATTLIST decrement
- id ID #IMPLIED
- var CDATA #REQUIRED
- value CDATA #REQUIRED
->
-
-<!ELEMENT plus EMPTY>
-<!ATTLIST plus
- id ID #IMPLIED
- var CDATA #REQUIRED
- op1 CDATA #REQUIRED
- op2 CDATA #REQUIRED
->
-
-<!ELEMENT subtract EMPTY>
-<!ATTLIST subtract
- id ID #IMPLIED
- var CDATA #REQUIRED
- op1 CDATA #REQUIRED
- op2 CDATA #REQUIRED
->
-
-<!ELEMENT mult EMPTY>
-<!ATTLIST mult
- id ID #IMPLIED
- var CDATA #REQUIRED
- op1 CDATA #REQUIRED
- op2 CDATA #REQUIRED
->
-
-<!ELEMENT divide EMPTY>
-<!ATTLIST divide
- id ID #IMPLIED
- var CDATA #REQUIRED
- op1 CDATA #REQUIRED
- op2 CDATA #REQUIRED
->
-
-<!ELEMENT return EMPTY>
-<!ATTLIST return
- id ID #IMPLIED
- value CDATA #IMPLIED
->
-
-<!ELEMENT get (var*, (%statement;)* )>
-<!ELEMENT set (var*, (%statement;)* )>
-
-
-<!ELEMENT var (member*) >
-<!ATTLIST var
- id ID #IMPLIED
- name CDATA #REQUIRED
- type (%variable-type;) #REQUIRED
- value CDATA #IMPLIED
- isNull (true|false) #IMPLIED
->
-
-
-<!ELEMENT member (#PCDATA)>
-<!ATTLIST member
- type (int|short|double|boolean|DOMString) #IMPLIED
->
-
-
-<!ELEMENT load EMPTY>
-<!ATTLIST load
- var CDATA #REQUIRED
- href CDATA #IMPLIED
- uri CDATA #IMPLIED
- obj CDATA #IMPLIED
- interface (DocumentLS) #IMPLIED
- willBeModified (true | false) #IMPLIED
->
-
-<!ELEMENT implementation EMPTY>
-<!ATTLIST implementation
- var CDATA #REQUIRED
- obj CDATA #IMPLIED
->
-
-<!ELEMENT DOMImplementationRegistry.newInstance EMPTY>
-<!ATTLIST DOMImplementationRegistry.newInstance
- var CDATA #REQUIRED
->
-
-
-<!-- since title is used both as a metadata element and
- a read-write attribute, it is hard coded here -->
-<!ELEMENT title (#PCDATA)>
-<!ATTLIST title
- id ID #IMPLIED
- obj CDATA #IMPLIED
- var CDATA #IMPLIED
- value CDATA #IMPLIED
- interface CDATA #IMPLIED
->
-
-
-<!ELEMENT metadata (metadata | title | creator | subject | description | contributor | date | source | relation)*>
-<!ATTLIST metadata
- xmlns CDATA #FIXED "http://www.w3.org/2001/DOM-Test-Suite/Level-1"
- id ID #IMPLIED
- about CDATA #IMPLIED
->
-
-<!ELEMENT creator (#PCDATA)>
-<!ATTLIST creator
- id ID #IMPLIED
- resource CDATA #IMPLIED
- type CDATA #IMPLIED
->
-
-<!ELEMENT subject (#PCDATA)>
-<!ATTLIST subject
- id ID #IMPLIED
- resource CDATA #IMPLIED
- type CDATA #IMPLIED
->
-
-<!ELEMENT description (#PCDATA)>
-<!ATTLIST description
- id ID #IMPLIED
- resource CDATA #IMPLIED
- type CDATA #IMPLIED
->
-
-<!ELEMENT contributor (#PCDATA)>
-<!ATTLIST contributor
- id ID #IMPLIED
- resource CDATA #IMPLIED
- type CDATA #IMPLIED
->
-
-<!ELEMENT date (#PCDATA)>
-<!ATTLIST date
- id ID #IMPLIED
- qualifier (created | valid | available | issued | modified) #REQUIRED
->
-
-<!ELEMENT source (#PCDATA)>
-<!ATTLIST source
- id ID #IMPLIED
- resource CDATA #IMPLIED
- type CDATA #IMPLIED
->
-
-<!ELEMENT relation (#PCDATA)>
-<!ATTLIST relation
- id ID #IMPLIED
- resource CDATA #IMPLIED
- type CDATA #IMPLIED
- qualifier (isVersionOf | hasVersion | isReplacedBy | isRequiredBy | requires | isPartOf | hasPart | isReferenceBy | references) #REQUIRED
->
-
-<!ELEMENT fail EMPTY>
-<!ATTLIST fail
- id ID #REQUIRED
->
-
-<!ELEMENT assertTrue ((%condition;)?)>
-<!ATTLIST assertTrue
- id ID #REQUIRED
- actual CDATA #IMPLIED
->
-
-<!ELEMENT assertFalse ((%condition;)?)>
-<!ATTLIST assertFalse
- id ID #REQUIRED
- actual CDATA #IMPLIED
->
-
-<!ELEMENT assertNull (metadata?, (%statement;)*)>
-<!ATTLIST assertNull
- actual CDATA #REQUIRED
- id ID #REQUIRED
->
-
-<!ELEMENT assertNotNull (metadata?, (%statement;)*)>
-<!ATTLIST assertNotNull
- actual CDATA #REQUIRED
- id ID #REQUIRED
->
-
-<!ELEMENT assertSame (metadata?, (%statement;)*)>
-<!ATTLIST assertSame
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
- id ID #REQUIRED
->
-
-<!ELEMENT assertInstanceOf (metadata?, (%statement;)*)>
-<!ATTLIST assertInstanceOf
- obj CDATA #REQUIRED
- type (%variable-type;) #REQUIRED
- id ID #REQUIRED
->
-
-
-<!ELEMENT assertSize (metadata?, (%statement;)*)>
-<!ATTLIST assertSize
- collection CDATA #REQUIRED
- size CDATA #REQUIRED
- id ID #REQUIRED
->
-
-<!ELEMENT assertEquals (metadata?, (%statement;)*)>
-<!ATTLIST assertEquals
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
- id ID #REQUIRED
- ignoreCase (true|false|auto) #REQUIRED
- context (attribute|element) #IMPLIED
- bitmask CDATA #IMPLIED
->
-
-<!ELEMENT assertNotEquals (metadata?, (%statement;)*)>
-<!ATTLIST assertNotEquals
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
- id ID #REQUIRED
- ignoreCase (true|false|auto) #REQUIRED
- context (attribute|element) #IMPLIED
- bitmask CDATA #IMPLIED
->
-
-<!ELEMENT assertEventCount (metadata?, (%statement;)*)>
-<!ATTLIST assertEventCount
- atCount CDATA #IMPLIED
- captureCount CDATA #IMPLIED
- bubbleCount CDATA #IMPLIED
- totalCount CDATA #IMPLIED
- monitor CDATA #REQUIRED
- id ID #REQUIRED
->
-
-<!ELEMENT assertURIEquals (metadata?)>
-<!ATTLIST assertURIEquals
- actual CDATA #REQUIRED
- scheme CDATA #IMPLIED
- path CDATA #IMPLIED
- host CDATA #IMPLIED
- file CDATA #IMPLIED
- name CDATA #IMPLIED
- query CDATA #IMPLIED
- fragment CDATA #IMPLIED
- isAbsolute CDATA #IMPLIED
- id ID #REQUIRED
->
-
-<!ELEMENT assertImplementationException (metadata?, (%statement;))>
-<!ATTLIST assertImplementationException
- id ID #REQUIRED
->
-
-
-<!ELEMENT same EMPTY>
-<!ATTLIST same
- id ID #IMPLIED
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
->
-
-<!ELEMENT equals EMPTY>
-<!ATTLIST equals
- id ID #IMPLIED
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
- ignoreCase (true|false|auto) "false"
- context (attribute|element) #IMPLIED
- bitmask CDATA #IMPLIED
->
-
-<!ELEMENT notEquals EMPTY>
-<!ATTLIST notEquals
- id ID #IMPLIED
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
- ignoreCase (true|false|auto) "false"
- context (attribute|element) #IMPLIED
- bitmask CDATA #IMPLIED
->
-
-<!ELEMENT less EMPTY>
-<!ATTLIST less
- id ID #IMPLIED
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
->
-
-<!ELEMENT lessOrEquals EMPTY>
-<!ATTLIST lessOrEquals
- id ID #IMPLIED
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
->
-
-<!ELEMENT greater EMPTY>
-<!ATTLIST greater
- id ID #IMPLIED
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
->
-
-<!ELEMENT greaterOrEquals EMPTY>
-<!ATTLIST greaterOrEquals
- id ID #IMPLIED
- actual CDATA #REQUIRED
- expected CDATA #REQUIRED
->
-
-<!ELEMENT isNull EMPTY>
-<!ATTLIST isNull
- id ID #IMPLIED
- obj CDATA #REQUIRED
->
-
-<!ELEMENT notNull EMPTY>
-<!ATTLIST notNull
- id ID #IMPLIED
- obj CDATA #REQUIRED
->
-
-<!ELEMENT instanceOf EMPTY>
-<!ATTLIST instanceOf
- id ID #IMPLIED
- obj CDATA #REQUIRED
- type (%variable-type;) #REQUIRED
->
-
-<!ELEMENT hasSize EMPTY>
-<!ATTLIST hasSize
- id ID #IMPLIED
- obj CDATA #REQUIRED
- expected CDATA #REQUIRED
->
-
-<!ELEMENT contentType EMPTY>
-<!ATTLIST contentType
- id ID #IMPLIED
- type CDATA #IMPLIED
- obj CDATA #IMPLIED
- var CDATA #IMPLIED
- interface (ElementEditVAL) #IMPLIED
->
-
-
-<!ELEMENT contains EMPTY>
-<!ATTLIST contains
- id ID #IMPLIED
- obj CDATA #REQUIRED
- str CDATA #REQUIRED
- var CDATA #IMPLIED
- interface (DOMStringList|NameList|DOMString) #REQUIRED
-
->
-
-<!ELEMENT implementationAttribute EMPTY>
-<!ATTLIST implementationAttribute
- id ID #IMPLIED
- value (true|false) #REQUIRED
- name (validating|coalescing|expandEntityReferences|namespaceAware|ignoringElementContentWhitespace|signed|hasNullString|schemaValidating|ignoringComments) #REQUIRED
->
-
-
-<!ELEMENT hasFeature EMPTY>
-<!ATTLIST hasFeature
- id ID #IMPLIED
- feature CDATA #REQUIRED
- version CDATA #IMPLIED
- value (true | false) #IMPLIED
- var CDATA #IMPLIED
- obj CDATA #IMPLIED
->
-
-<!ELEMENT not ((%condition;))>
-<!ATTLIST not
- id ID #IMPLIED
->
-
-<!ELEMENT isTrue EMPTY>
-<!ATTLIST isTrue
- id ID #IMPLIED
- value CDATA #REQUIRED
->
-
-<!ELEMENT isFalse EMPTY>
-<!ATTLIST isFalse
- id ID #IMPLIED
- value CDATA #REQUIRED
->
-
-<!ELEMENT or ((%condition;),(%condition;)+)>
-<!ATTLIST or
- id ID #IMPLIED
->
-
-<!ELEMENT and ((%condition;),(%condition;)+)>
-<!ATTLIST and
- id ID #IMPLIED
->
-
-<!ELEMENT xor ((%condition;),(%condition;))>
-<!ATTLIST xor
- id ID #IMPLIED
->
-
-<!ELEMENT else ((%statement;)+)>
-<!ATTLIST else
- id ID #IMPLIED
->
-
-<!ELEMENT if ((%condition;), (%statement;)+, else?)>
-<!ATTLIST if
- id ID #IMPLIED
->
-
-<!ELEMENT while ((%condition;),(%statement;)+)>
-<!ATTLIST while
- id ID #IMPLIED
->
-
-<!ELEMENT for-each ((%statement;)*)>
-<!ATTLIST for-each
- collection CDATA #REQUIRED
- member CDATA #REQUIRED
- id ID #IMPLIED
->
-
-<!ELEMENT try ((%statement;)+, catch)>
-<!ATTLIST try
- id ID #IMPLIED
->
-
-
-<!ELEMENT catch ((DOMException*,ImplementationException?))>
-<!ATTLIST catch
- id ID #IMPLIED>
-
-<!ELEMENT ImplementationException ((%statement;)*)>
-<!ATTLIST ImplementationException
- id ID #IMPLIED>
-
- <!ELEMENT DOMException ((%statement;)*)>
- <!ATTLIST DOMException code (INDEX_SIZE_ERR|DOMSTRING_SIZE_ERR|HIERARCHY_REQUEST_ERR|WRONG_DOCUMENT_ERR|INVALID_CHARACTER_ERR|NO_DATA_ALLOWED_ERR|NO_MODIFICATION_ALLOWED_ERR|NOT_FOUND_ERR|NOT_SUPPORTED_ERR|INUSE_ATTRIBUTE_ERR) #REQUIRED>
-
-
-
-<!ELEMENT atEvents EMPTY>
-<!ATTLIST atEvents
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (EventMonitor) #IMPLIED
- var CDATA #REQUIRED
->
-
-<!ELEMENT bubbledEvents EMPTY>
-<!ATTLIST bubbledEvents
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (EventMonitor) #IMPLIED
- var CDATA #REQUIRED
->
-
-<!ELEMENT capturedEvents EMPTY>
-<!ATTLIST capturedEvents
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (EventMonitor) #IMPLIED
- var CDATA #REQUIRED
->
-
-
-<!ELEMENT allEvents EMPTY>
-<!ATTLIST allEvents
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (EventMonitor) #IMPLIED
- var CDATA #REQUIRED
->
-
-<!ELEMENT allNotifications EMPTY>
-<!ATTLIST allNotifications
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (UserDataMonitor) #IMPLIED
- var CDATA #REQUIRED
->
-
-<!ELEMENT operation EMPTY>
-<!ATTLIST operation
- id ID #IMPLIED
- var CDATA #REQUIRED
- obj CDATA #REQUIRED
- interface (UserDataNotification) #IMPLIED
->
-
-<!ELEMENT key EMPTY>
-<!ATTLIST key
- id ID #IMPLIED
- var CDATA #REQUIRED
- obj CDATA #REQUIRED
- interface (UserDataNotification) #IMPLIED
->
-
-<!ELEMENT dst EMPTY>
-<!ATTLIST dst
- id ID #IMPLIED
- var CDATA #REQUIRED
- obj CDATA #REQUIRED
- interface (UserDataNotification) #IMPLIED
->
-
-
-
-
-
-<!ELEMENT allErrors EMPTY>
-<!ATTLIST allErrors
- id ID #IMPLIED
- obj CDATA #REQUIRED
- interface (DOMErrorMonitor) #IMPLIED
- var CDATA #REQUIRED
->
-
-<!ELEMENT assertLowerSeverity EMPTY>
-<!ATTLIST assertLowerSeverity
- id ID #REQUIRED
- obj CDATA #REQUIRED
- interface (DOMErrorMonitor) #IMPLIED
- severity (SEVERITY_WARNING|SEVERITY_ERROR|SEVERITY_FATAL_ERROR) #REQUIRED
->
-
-<!ELEMENT createXPathEvaluator EMPTY>
-<!ATTLIST createXPathEvaluator
- id ID #IMPLIED
- var CDATA #REQUIRED
- document CDATA #REQUIRED
->
-
-<!ELEMENT getResourceURI EMPTY>
-<!ATTLIST getResourceURI
- id ID #IMPLIED
- var CDATA #REQUIRED
- href CDATA #REQUIRED
- scheme (file|http) #IMPLIED
- contentType CDATA #IMPLIED
->
-
-
-<!ELEMENT substring EMPTY>
-<!ATTLIST substring
- id ID #IMPLIED
- var CDATA #REQUIRED
- obj CDATA #REQUIRED
- beginIndex CDATA #REQUIRED
- endIndex CDATA #IMPLIED
->
-
-<!ELEMENT createTempURI EMPTY>
-<!ATTLIST createTempURI
- id ID #IMPLIED
- var CDATA #REQUIRED
- scheme (file|http) #REQUIRED
->
-
-
-
-
16 years, 2 months
r3451 jshaw - in /trunk/dom/test: transform/test-to-c.xsl xml/documentcreateelement.xml
by netsurf@semichrome.net
Author: jshaw
Date: Sat Jul 21 17:28:14 2007
New Revision: 3451
URL: http://source.netsurf-browser.org?rev=3451&view=rev
Log:
Add cast for attribute result variable
Added:
trunk/dom/test/xml/documentcreateelement.xml
Modified:
trunk/dom/test/transform/test-to-c.xsl
Modified: trunk/dom/test/transform/test-to-c.xsl
URL: http://source.netsurf-browser.org/trunk/dom/test/transform/test-to-c.xsl?...
==============================================================================
--- trunk/dom/test/transform/test-to-c.xsl (original)
+++ trunk/dom/test/transform/test-to-c.xsl Sat Jul 21 17:28:14 2007
@@ -140,8 +140,11 @@
-->
<xsl:template match="*[local-name() = 'var']" mode="body">
-<xsl:text> struct </xsl:text><xsl:call-template name="convert_var_type"> <xsl:with-param name="var_type" select="@type"/>
-</xsl:call-template> *<xsl:value-of select="@name"/>;
+ <xsl:text> </xsl:text>
+ <xsl:call-template name="convert_var_declaration">
+ <xsl:with-param name="var_type" select="@type"/>
+ </xsl:call-template>
+ <xsl:value-of select="@name"/>;
</xsl:template>
<xsl:template match="*[local-name() = 'if']" mode="body">
@@ -191,17 +194,18 @@
<xsl:param name="method"/>
<xsl:variable name="current" select="."/>
<xsl:variable name="obj" select="@obj"/>
- <!--<xsl:variable name="var" select="@var"/>-->
+ <xsl:variable name="var" select="//*[local-name() = 'var' and @name = $obj]"/>
<xsl:text> </xsl:text>
<xsl:call-template name="convert_method_name">
- <xsl:with-param name="method_target"><xsl:value-of select="//*[local-name() = 'var' and @name = $obj]/@type"/></xsl:with-param>
+ <xsl:with-param name="method_target"><xsl:value-of select="$var/@type"/></xsl:with-param>
<xsl:with-param name="method_name"><xsl:value-of select="$method/@name"/></xsl:with-param>
</xsl:call-template>
<xsl:text>(</xsl:text><xsl:value-of select="@obj"/>
<xsl:for-each select="$method/parameters/param">
<xsl:variable name="paramDef" select="."/>
- <xsl:text>, </xsl:text><xsl:value-of select="$current/@*[name() = $paramDef/@name]"/>
+ <xsl:text>, </xsl:text>
+ <xsl:value-of select="$current/@*[name() = $paramDef/@name]"/>
</xsl:for-each>
<xsl:if test="@var">
<xsl:text>, &</xsl:text><xsl:value-of select="@var"/>
@@ -233,8 +237,9 @@
<xsl:template name="produce-specific-attribute">
<!-- <xsl:param name="vardefs"/> -->
<xsl:param name="attribute"/>
- <xsl:variable name="obj" select="@obj"/>
+ <xsl:variable name="obj" select="@obj"/>
<xsl:variable name="value" select="@value"/>
+ <xsl:variable name="var" select="@var"/>
<xsl:variable name="obj_type" select="//*[local-name() = 'var' and @name = $obj]/@type"/>
<xsl:variable name="interface_type" select="$domspec/library/interface[attribute = $attribute]/@name"/>
<!-- check if attribute name starts with is -->
@@ -257,20 +262,58 @@
</xsl:call-template>
<xsl:text>(</xsl:text>
<!-- cast to target interface if this is different from the type of the variable @obj -->
- <xsl:if test="$obj_type != $interface_type">
- <xsl:text>(struct </xsl:text>
- <xsl:call-template name="convert_var_type">
- <xsl:with-param name="var_type"><xsl:value-of select="$interface_type"/></xsl:with-param>
- </xsl:call-template>
- <xsl:text> *) </xsl:text>
- </xsl:if>
- <!-- TODO: cast to the type expected by the interface if necessary -->
- <xsl:value-of select="@obj"/><xsl:text>, &</xsl:text><xsl:value-of select="@var"/>
+ <xsl:call-template name="cast">
+ <xsl:with-param name="vartype" select="$obj_type"/>
+ <xsl:with-param name="reqtype" select="$interface_type"/>
+ </xsl:call-template>
+ <xsl:value-of select="@obj"/>
+ <xsl:text>, </xsl:text>
+ <!-- TODO: cast the result to the that expected by the function
+ e.g. int nodeType; dom_node_get_node_type(node, (dom_node_type *) &nodeType);
+ -->
+ <xsl:call-template name="attribute-result-cast">
+ <xsl:with-param name="vartype" select="//*[local-name() = 'var' and @name = $var]/@type"/>
+ <xsl:with-param name="attribute" select="$attribute"/>
+ </xsl:call-template>
+ <xsl:text>&</xsl:text><xsl:value-of select="@var"/>
<xsl:text>);
assert(err == DOM_NO_ERR);
</xsl:text>
</xsl:if>
+</xsl:template>
+
+<xsl:template name="cast">
+ <xsl:param name="vartype"/>
+ <xsl:param name="reqtype"/>
+ <xsl:choose>
+ <xsl:when test="$vartype = $reqtype">
+
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:text>(</xsl:text>
+ <xsl:call-template name="convert_var_declaration">
+ <xsl:with-param name="var_type"><xsl:value-of select="$reqtype"/></xsl:with-param>
+ </xsl:call-template>
+ <xsl:text>) </xsl:text>
+ </xsl:otherwise>
+ </xsl:choose>
+</xsl:template>
+
+<xsl:template name="attribute-result-cast">
+ <!-- the type of the target result variable, as defined by <var @type> -->
+ <xsl:param name="vartype"/>
+ <!-- an <attribute> from the $domspec -->
+ <xsl:param name="attribute"/>
+ <xsl:choose>
+ <xsl:when test="$attribute/@name = 'nodeType'">
+ <xsl:text>(</xsl:text>
+ <xsl:call-template name="convert_var_declaration">
+ <xsl:with-param name="var_type" select="'NodeType'"/>
+ </xsl:call-template>
+ <xsl:text>) </xsl:text>
+ </xsl:when>
+ </xsl:choose>
</xsl:template>
@@ -346,6 +389,28 @@
<!-- helper templates -->
+<xsl:template name="convert_var_declaration">
+ <xsl:param name="var_type"/>
+ <!-- TODO: move these definitions out to a separate XML file -->
+ <xsl:variable name="is_struct" select="$var_type != 'int' and $var_type != 'NodeType'"/>
+ <xsl:variable name="is_pointer" select="$var_type != 'int'"/>
+ <xsl:message>is_struct <xsl:value-of select="$is_struct"/></xsl:message>
+ <xsl:if test="$is_struct">
+ <xsl:text>struct </xsl:text>
+ </xsl:if>
+ <xsl:call-template name="convert_var_type">
+ <xsl:with-param name="var_type" select="$var_type"/>
+ </xsl:call-template>
+ <xsl:text> </xsl:text>
+ <xsl:if test="$is_pointer">
+ <xsl:text>*</xsl:text>
+ </xsl:if>
+</xsl:template>
+
+<!--
+Convert a variable type to its equivalent C name. C names are lower case
+separated by underscores.
+-->
<xsl:template name="convert_var_type">
<!-- TODO: convert certain types, e.g. from DocumentType to dom_document_type -->
<xsl:param name="var_type"/>
@@ -365,6 +430,9 @@
<xsl:when test="$var_type = 'Node'">
<xsl:text>dom_node</xsl:text>
</xsl:when>
+ <xsl:when test="$var_type = 'NodeType'">
+ <xsl:text>dom_node_type</xsl:text>
+ </xsl:when>
<xsl:otherwise>
<xsl:value-of select="$var_type"/>
</xsl:otherwise>
@@ -398,7 +466,7 @@
<xsl:template name="convert_method_name">
<xsl:param name="method_target"/>
<xsl:param name="method_name"/>
- <xsl:message><xsl:value-of select="$method_name"/></xsl:message>
+
<xsl:call-template name="convert_var_type">
<xsl:with-param name="var_type"><xsl:value-of select="$method_target"/></xsl:with-param>
</xsl:call-template>
Added: trunk/dom/test/xml/documentcreateelement.xml
URL: http://source.netsurf-browser.org/trunk/dom/test/xml/documentcreateelemen...
==============================================================================
--- trunk/dom/test/xml/documentcreateelement.xml (added)
+++ trunk/dom/test/xml/documentcreateelement.xml Sat Jul 21 17:28:14 2007
@@ -1,0 +1,44 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+Copyright (c) 2001 World Wide Web Consortium,
+(Massachusetts Institute of Technology, Institut National de
+Recherche en Informatique et en Automatique, Keio University). All
+Rights Reserved. This program is distributed under the W3C's Software
+Intellectual Property License. This program is distributed in the
+hope that it will be useful, but WITHOUT ANY WARRANTY; without even
+the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
+PURPOSE.
+See W3C License http://www.w3.org/Consortium/Legal/ for more details.
+--><!DOCTYPE test SYSTEM "dom1.dtd">
+
+<test xmlns="http://www.w3.org/2001/DOM-Test-Suite/Level-1" name="documentcreateelement">
+<metadata>
+<title>documentCreateElement</title>
+<creator>NIST</creator>
+<description>
+ The "createElement(tagName)" method creates an Element
+ of the type specified.
+ Retrieve the entire DOM document and invoke its
+ "createElement(tagName)" method with tagName="address".
+ The method should create an instance of an Element node
+ whose tagName is "address". The NodeName, NodeType
+ and NodeValue are returned.
+</description>
+<contributor>Mary Brady</contributor>
+<date qualifier="created">2001-08-17</date>
+<subject resource="http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001/level-one-core#ID-2141..."/>
+</metadata>
+<var name="doc" type="Document"/>
+<var name="newElement" type="Element"/>
+<var name="newElementName" type="DOMString"/>
+<var name="newElementType" type="int"/>
+<var name="newElementValue" type="DOMString"/>
+<load var="doc" href="staff" willBeModified="true"/>
+<createElement obj="doc" var="newElement" tagName=""address""/>
+<nodeName obj="newElement" var="newElementName"/>
+<assertEquals actual="newElementName" expected=""address"" ignoreCase="false" id="name"/>
+<nodeType obj="newElement" var="newElementType"/>
+<assertEquals actual="newElementType" expected="1" ignoreCase="false" id="type"/>
+<nodeValue obj="newElement" var="newElementValue"/>
+<assertNull actual="newElementValue" id="valueInitiallyNull"/>
+</test>
16 years, 2 months