summaryrefslogtreecommitdiff
path: root/libjava/classpath/external/w3c_dom
diff options
context:
space:
mode:
authorupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
committerupstream source tree <ports@midipix.org>2015-03-15 20:14:05 -0400
commit554fd8c5195424bdbcabf5de30fdc183aba391bd (patch)
tree976dc5ab7fddf506dadce60ae936f43f58787092 /libjava/classpath/external/w3c_dom
downloadcbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.bz2
cbb-gcc-4.6.4-554fd8c5195424bdbcabf5de30fdc183aba391bd.tar.xz
obtained gcc-4.6.4.tar.bz2 from upstream website;upstream
verified gcc-4.6.4.tar.bz2.sig; imported gcc-4.6.4 source tree from verified upstream tarball. downloading a git-generated archive based on the 'upstream' tag should provide you with a source tree that is binary identical to the one extracted from the above tarball. if you have obtained the source via the command 'git clone', however, do note that line-endings of files in your working directory might differ from line-endings of the respective files in the upstream repository.
Diffstat (limited to 'libjava/classpath/external/w3c_dom')
-rw-r--r--libjava/classpath/external/w3c_dom/.cvsignore2
-rw-r--r--libjava/classpath/external/w3c_dom/Makefile.am149
-rw-r--r--libjava/classpath/external/w3c_dom/Makefile.in585
-rw-r--r--libjava/classpath/external/w3c_dom/README97
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java275
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java54
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java153
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java30
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java413
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java87
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java45
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java131
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java136
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java43
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java58
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java58
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java50
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java814
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java53
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java83
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java439
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/Entity.java90
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java43
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java68
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java183
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java900
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java41
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java40
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java51
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java126
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java185
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java72
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java387
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java1777
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java51
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java28
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java44
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java76
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java44
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java296
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java97
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java43
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java162
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java47
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java85
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java22
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java71
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java46
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java38
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java40
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java50
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java32
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java47
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java44
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java43
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java56
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java141
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java36
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java41
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java102
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java156
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java108
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java58
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java156
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java156
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java111
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java40
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java56
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java94
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java88
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java59
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java32
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java237
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java87
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java28
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java54
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java116
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java117
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java42
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java66
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java32
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java137
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java176
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java303
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java39
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java44
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java51
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java52
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java116
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java36
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java32
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java63
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java43
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java53
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java230
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java43
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java104
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java68
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java67
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java32
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java91
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java179
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java53
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java181
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java85
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java254
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java130
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java103
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java154
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java29
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java42
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java122
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java47
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java218
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java35
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java106
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java466
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java172
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java48
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java81
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java436
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java63
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java33
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java416
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java39
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java34
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java31
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java85
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java103
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java42
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java93
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java144
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java109
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java179
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java27
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java30
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java134
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java39
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java65
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java34
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java67
-rw-r--r--libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java214
150 files changed, 18343 insertions, 0 deletions
diff --git a/libjava/classpath/external/w3c_dom/.cvsignore b/libjava/classpath/external/w3c_dom/.cvsignore
new file mode 100644
index 000000000..282522db0
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/.cvsignore
@@ -0,0 +1,2 @@
+Makefile
+Makefile.in
diff --git a/libjava/classpath/external/w3c_dom/Makefile.am b/libjava/classpath/external/w3c_dom/Makefile.am
new file mode 100644
index 000000000..701cbe474
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/Makefile.am
@@ -0,0 +1,149 @@
+## Input file for automake to generate the Makefile.in used by configure
+
+EXTRA_DIST = README \
+org/w3c/dom/Attr.java \
+org/w3c/dom/CDATASection.java \
+org/w3c/dom/CharacterData.java \
+org/w3c/dom/Comment.java \
+org/w3c/dom/DOMConfiguration.java \
+org/w3c/dom/DOMError.java \
+org/w3c/dom/DOMErrorHandler.java \
+org/w3c/dom/DOMException.java \
+org/w3c/dom/DOMImplementation.java \
+org/w3c/dom/DOMImplementationList.java \
+org/w3c/dom/DOMImplementationSource.java \
+org/w3c/dom/DOMLocator.java \
+org/w3c/dom/DOMStringList.java \
+org/w3c/dom/Document.java \
+org/w3c/dom/DocumentFragment.java \
+org/w3c/dom/DocumentType.java \
+org/w3c/dom/Element.java \
+org/w3c/dom/Entity.java \
+org/w3c/dom/EntityReference.java \
+org/w3c/dom/NameList.java \
+org/w3c/dom/NamedNodeMap.java \
+org/w3c/dom/Node.java \
+org/w3c/dom/NodeList.java \
+org/w3c/dom/Notation.java \
+org/w3c/dom/ProcessingInstruction.java \
+org/w3c/dom/Text.java \
+org/w3c/dom/TypeInfo.java \
+org/w3c/dom/UserDataHandler.java \
+org/w3c/dom/bootstrap/DOMImplementationRegistry.java \
+org/w3c/dom/css/CSS2Properties.java \
+org/w3c/dom/css/CSSCharsetRule.java \
+org/w3c/dom/css/CSSFontFaceRule.java \
+org/w3c/dom/css/CSSImportRule.java \
+org/w3c/dom/css/CSSMediaRule.java \
+org/w3c/dom/css/CSSPageRule.java \
+org/w3c/dom/css/CSSPrimitiveValue.java \
+org/w3c/dom/css/CSSRule.java \
+org/w3c/dom/css/CSSRuleList.java \
+org/w3c/dom/css/CSSStyleDeclaration.java \
+org/w3c/dom/css/CSSStyleRule.java \
+org/w3c/dom/css/CSSStyleSheet.java \
+org/w3c/dom/css/CSSUnknownRule.java \
+org/w3c/dom/css/CSSValue.java \
+org/w3c/dom/css/CSSValueList.java \
+org/w3c/dom/css/Counter.java \
+org/w3c/dom/css/DOMImplementationCSS.java \
+org/w3c/dom/css/DocumentCSS.java \
+org/w3c/dom/css/ElementCSSInlineStyle.java \
+org/w3c/dom/css/RGBColor.java \
+org/w3c/dom/css/Rect.java \
+org/w3c/dom/css/ViewCSS.java \
+org/w3c/dom/events/DocumentEvent.java \
+org/w3c/dom/events/Event.java \
+org/w3c/dom/events/EventException.java \
+org/w3c/dom/events/EventListener.java \
+org/w3c/dom/events/EventTarget.java \
+org/w3c/dom/events/MouseEvent.java \
+org/w3c/dom/events/MutationEvent.java \
+org/w3c/dom/events/UIEvent.java \
+org/w3c/dom/html2/HTMLAnchorElement.java \
+org/w3c/dom/html2/HTMLAppletElement.java \
+org/w3c/dom/html2/HTMLAreaElement.java \
+org/w3c/dom/html2/HTMLBRElement.java \
+org/w3c/dom/html2/HTMLBaseElement.java \
+org/w3c/dom/html2/HTMLBaseFontElement.java \
+org/w3c/dom/html2/HTMLBodyElement.java \
+org/w3c/dom/html2/HTMLButtonElement.java \
+org/w3c/dom/html2/HTMLCollection.java \
+org/w3c/dom/html2/HTMLDListElement.java \
+org/w3c/dom/html2/HTMLDirectoryElement.java \
+org/w3c/dom/html2/HTMLDivElement.java \
+org/w3c/dom/html2/HTMLDocument.java \
+org/w3c/dom/html2/HTMLElement.java \
+org/w3c/dom/html2/HTMLFieldSetElement.java \
+org/w3c/dom/html2/HTMLFontElement.java \
+org/w3c/dom/html2/HTMLFormElement.java \
+org/w3c/dom/html2/HTMLFrameElement.java \
+org/w3c/dom/html2/HTMLFrameSetElement.java \
+org/w3c/dom/html2/HTMLHRElement.java \
+org/w3c/dom/html2/HTMLHeadElement.java \
+org/w3c/dom/html2/HTMLHeadingElement.java \
+org/w3c/dom/html2/HTMLHtmlElement.java \
+org/w3c/dom/html2/HTMLIFrameElement.java \
+org/w3c/dom/html2/HTMLImageElement.java \
+org/w3c/dom/html2/HTMLInputElement.java \
+org/w3c/dom/html2/HTMLIsIndexElement.java \
+org/w3c/dom/html2/HTMLLIElement.java \
+org/w3c/dom/html2/HTMLLabelElement.java \
+org/w3c/dom/html2/HTMLLegendElement.java \
+org/w3c/dom/html2/HTMLLinkElement.java \
+org/w3c/dom/html2/HTMLMapElement.java \
+org/w3c/dom/html2/HTMLMenuElement.java \
+org/w3c/dom/html2/HTMLMetaElement.java \
+org/w3c/dom/html2/HTMLModElement.java \
+org/w3c/dom/html2/HTMLOListElement.java \
+org/w3c/dom/html2/HTMLObjectElement.java \
+org/w3c/dom/html2/HTMLOptGroupElement.java \
+org/w3c/dom/html2/HTMLOptionElement.java \
+org/w3c/dom/html2/HTMLOptionsCollection.java \
+org/w3c/dom/html2/HTMLParagraphElement.java \
+org/w3c/dom/html2/HTMLParamElement.java \
+org/w3c/dom/html2/HTMLPreElement.java \
+org/w3c/dom/html2/HTMLQuoteElement.java \
+org/w3c/dom/html2/HTMLScriptElement.java \
+org/w3c/dom/html2/HTMLSelectElement.java \
+org/w3c/dom/html2/HTMLStyleElement.java \
+org/w3c/dom/html2/HTMLTableCaptionElement.java \
+org/w3c/dom/html2/HTMLTableCellElement.java \
+org/w3c/dom/html2/HTMLTableColElement.java \
+org/w3c/dom/html2/HTMLTableElement.java \
+org/w3c/dom/html2/HTMLTableRowElement.java \
+org/w3c/dom/html2/HTMLTableSectionElement.java \
+org/w3c/dom/html2/HTMLTextAreaElement.java \
+org/w3c/dom/html2/HTMLTitleElement.java \
+org/w3c/dom/html2/HTMLUListElement.java \
+org/w3c/dom/ls/DOMImplementationLS.java \
+org/w3c/dom/ls/LSException.java \
+org/w3c/dom/ls/LSInput.java \
+org/w3c/dom/ls/LSLoadEvent.java \
+org/w3c/dom/ls/LSOutput.java \
+org/w3c/dom/ls/LSParser.java \
+org/w3c/dom/ls/LSParserFilter.java \
+org/w3c/dom/ls/LSProgressEvent.java \
+org/w3c/dom/ls/LSResourceResolver.java \
+org/w3c/dom/ls/LSSerializer.java \
+org/w3c/dom/ls/LSSerializerFilter.java \
+org/w3c/dom/ranges/DocumentRange.java \
+org/w3c/dom/ranges/Range.java \
+org/w3c/dom/ranges/RangeException.java \
+org/w3c/dom/stylesheets/DocumentStyle.java \
+org/w3c/dom/stylesheets/LinkStyle.java \
+org/w3c/dom/stylesheets/MediaList.java \
+org/w3c/dom/stylesheets/StyleSheet.java \
+org/w3c/dom/stylesheets/StyleSheetList.java \
+org/w3c/dom/traversal/DocumentTraversal.java \
+org/w3c/dom/traversal/NodeFilter.java \
+org/w3c/dom/traversal/NodeIterator.java \
+org/w3c/dom/traversal/TreeWalker.java \
+org/w3c/dom/views/AbstractView.java \
+org/w3c/dom/views/DocumentView.java \
+org/w3c/dom/xpath/XPathEvaluator.java \
+org/w3c/dom/xpath/XPathException.java \
+org/w3c/dom/xpath/XPathExpression.java \
+org/w3c/dom/xpath/XPathNSResolver.java \
+org/w3c/dom/xpath/XPathNamespace.java \
+org/w3c/dom/xpath/XPathResult.java
diff --git a/libjava/classpath/external/w3c_dom/Makefile.in b/libjava/classpath/external/w3c_dom/Makefile.in
new file mode 100644
index 000000000..68eecef99
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/Makefile.in
@@ -0,0 +1,585 @@
+# Makefile.in generated by automake 1.11.1 from Makefile.am.
+# @configure_input@
+
+# Copyright (C) 1994, 1995, 1996, 1997, 1998, 1999, 2000, 2001, 2002,
+# 2003, 2004, 2005, 2006, 2007, 2008, 2009 Free Software Foundation,
+# Inc.
+# This Makefile.in is free software; the Free Software Foundation
+# gives unlimited permission to copy and/or distribute it,
+# with or without modifications, as long as this notice is preserved.
+
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY, to the extent permitted by law; without
+# even the implied warranty of MERCHANTABILITY or FITNESS FOR A
+# PARTICULAR PURPOSE.
+
+@SET_MAKE@
+VPATH = @srcdir@
+pkgdatadir = $(datadir)/@PACKAGE@
+pkgincludedir = $(includedir)/@PACKAGE@
+pkglibdir = $(libdir)/@PACKAGE@
+pkglibexecdir = $(libexecdir)/@PACKAGE@
+am__cd = CDPATH="$${ZSH_VERSION+.}$(PATH_SEPARATOR)" && cd
+install_sh_DATA = $(install_sh) -c -m 644
+install_sh_PROGRAM = $(install_sh) -c
+install_sh_SCRIPT = $(install_sh) -c
+INSTALL_HEADER = $(INSTALL_DATA)
+transform = $(program_transform_name)
+NORMAL_INSTALL = :
+PRE_INSTALL = :
+POST_INSTALL = :
+NORMAL_UNINSTALL = :
+PRE_UNINSTALL = :
+POST_UNINSTALL = :
+build_triplet = @build@
+host_triplet = @host@
+target_triplet = @target@
+subdir = external/w3c_dom
+DIST_COMMON = $(srcdir)/Makefile.in $(srcdir)/Makefile.am
+ACLOCAL_M4 = $(top_srcdir)/aclocal.m4
+am__aclocal_m4_deps = $(top_srcdir)/../../config/depstand.m4 \
+ $(top_srcdir)/../../config/lead-dot.m4 \
+ $(top_srcdir)/../../config/lib-ld.m4 \
+ $(top_srcdir)/../../config/lib-link.m4 \
+ $(top_srcdir)/../../config/lib-prefix.m4 \
+ $(top_srcdir)/../../config/multi.m4 \
+ $(top_srcdir)/../../config/no-executables.m4 \
+ $(top_srcdir)/../../config/override.m4 \
+ $(top_srcdir)/../../libtool.m4 \
+ $(top_srcdir)/../../ltoptions.m4 \
+ $(top_srcdir)/../../ltsugar.m4 \
+ $(top_srcdir)/../../ltversion.m4 \
+ $(top_srcdir)/../../lt~obsolete.m4 \
+ $(top_srcdir)/m4/ac_prog_antlr.m4 \
+ $(top_srcdir)/m4/ac_prog_java.m4 \
+ $(top_srcdir)/m4/ac_prog_java_works.m4 \
+ $(top_srcdir)/m4/ac_prog_javac.m4 \
+ $(top_srcdir)/m4/ac_prog_javac_works.m4 \
+ $(top_srcdir)/m4/acattribute.m4 $(top_srcdir)/m4/accross.m4 \
+ $(top_srcdir)/m4/acinclude.m4 \
+ $(top_srcdir)/m4/ax_create_stdint_h.m4 \
+ $(top_srcdir)/m4/ax_func_which_gethostbyname_r.m4 \
+ $(top_srcdir)/m4/gcc_attribute.m4 $(top_srcdir)/m4/iconv.m4 \
+ $(top_srcdir)/m4/pkg.m4 $(top_srcdir)/configure.ac
+am__configure_deps = $(am__aclocal_m4_deps) $(CONFIGURE_DEPENDENCIES) \
+ $(ACLOCAL_M4)
+mkinstalldirs = $(SHELL) $(top_srcdir)/../../mkinstalldirs
+CONFIG_HEADER = $(top_builddir)/include/config.h
+CONFIG_CLEAN_FILES =
+CONFIG_CLEAN_VPATH_FILES =
+SOURCES =
+ACLOCAL = @ACLOCAL@
+AMTAR = @AMTAR@
+ANTLR = @ANTLR@
+ANTLR_JAR = @ANTLR_JAR@
+AR = @AR@
+AUTOCONF = @AUTOCONF@
+AUTOHEADER = @AUTOHEADER@
+AUTOMAKE = @AUTOMAKE@
+AWK = @AWK@
+CAIRO_CFLAGS = @CAIRO_CFLAGS@
+CAIRO_LIBS = @CAIRO_LIBS@
+CC = @CC@
+CCDEPMODE = @CCDEPMODE@
+CFLAGS = @CFLAGS@
+CLASSPATH_CONVENIENCE = @CLASSPATH_CONVENIENCE@
+CLASSPATH_INCLUDES = @CLASSPATH_INCLUDES@
+CLASSPATH_MODULE = @CLASSPATH_MODULE@
+COLLECTIONS_PREFIX = @COLLECTIONS_PREFIX@
+CP = @CP@
+CPP = @CPP@
+CPPFLAGS = @CPPFLAGS@
+CXX = @CXX@
+CXXCPP = @CXXCPP@
+CXXDEPMODE = @CXXDEPMODE@
+CXXFLAGS = @CXXFLAGS@
+CYGPATH_W = @CYGPATH_W@
+DATE = @DATE@
+DEFAULT_PREFS_PEER = @DEFAULT_PREFS_PEER@
+DEFS = @DEFS@
+DEPDIR = @DEPDIR@
+DSYMUTIL = @DSYMUTIL@
+DUMPBIN = @DUMPBIN@
+ECHO_C = @ECHO_C@
+ECHO_N = @ECHO_N@
+ECHO_T = @ECHO_T@
+ECJ_JAR = @ECJ_JAR@
+EGREP = @EGREP@
+ERROR_CFLAGS = @ERROR_CFLAGS@
+EXAMPLESDIR = @EXAMPLESDIR@
+EXEEXT = @EXEEXT@
+EXTRA_CFLAGS = @EXTRA_CFLAGS@
+FGREP = @FGREP@
+FIND = @FIND@
+FREETYPE2_CFLAGS = @FREETYPE2_CFLAGS@
+FREETYPE2_LIBS = @FREETYPE2_LIBS@
+GCONF_CFLAGS = @GCONF_CFLAGS@
+GCONF_LIBS = @GCONF_LIBS@
+GDK_CFLAGS = @GDK_CFLAGS@
+GDK_LIBS = @GDK_LIBS@
+GJDOC = @GJDOC@
+GLIB_CFLAGS = @GLIB_CFLAGS@
+GLIB_LIBS = @GLIB_LIBS@
+GMP_CFLAGS = @GMP_CFLAGS@
+GMP_LIBS = @GMP_LIBS@
+GREP = @GREP@
+GSTREAMER_BASE_CFLAGS = @GSTREAMER_BASE_CFLAGS@
+GSTREAMER_BASE_LIBS = @GSTREAMER_BASE_LIBS@
+GSTREAMER_CFLAGS = @GSTREAMER_CFLAGS@
+GSTREAMER_FILE_READER = @GSTREAMER_FILE_READER@
+GSTREAMER_LIBS = @GSTREAMER_LIBS@
+GSTREAMER_MIXER_PROVIDER = @GSTREAMER_MIXER_PROVIDER@
+GSTREAMER_PLUGINS_BASE_CFLAGS = @GSTREAMER_PLUGINS_BASE_CFLAGS@
+GSTREAMER_PLUGINS_BASE_LIBS = @GSTREAMER_PLUGINS_BASE_LIBS@
+GST_PLUGIN_LDFLAGS = @GST_PLUGIN_LDFLAGS@
+GTK_CFLAGS = @GTK_CFLAGS@
+GTK_LIBS = @GTK_LIBS@
+INIT_LOAD_LIBRARY = @INIT_LOAD_LIBRARY@
+INSTALL = @INSTALL@
+INSTALL_DATA = @INSTALL_DATA@
+INSTALL_PROGRAM = @INSTALL_PROGRAM@
+INSTALL_SCRIPT = @INSTALL_SCRIPT@
+INSTALL_STRIP_PROGRAM = @INSTALL_STRIP_PROGRAM@
+JAR = @JAR@
+JAVA = @JAVA@
+JAVAC = @JAVAC@
+JAVAC_IS_GCJ = @JAVAC_IS_GCJ@
+JAVAC_MEM_OPT = @JAVAC_MEM_OPT@
+JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION = @JAVA_LANG_SYSTEM_EXPLICIT_INITIALIZATION@
+JAY = @JAY@
+JAY_SKELETON = @JAY_SKELETON@
+LD = @LD@
+LDFLAGS = @LDFLAGS@
+LIBDEBUG = @LIBDEBUG@
+LIBICONV = @LIBICONV@
+LIBMAGIC = @LIBMAGIC@
+LIBOBJS = @LIBOBJS@
+LIBS = @LIBS@
+LIBTOOL = @LIBTOOL@
+LIBVERSION = @LIBVERSION@
+LIPO = @LIPO@
+LN_S = @LN_S@
+LTLIBICONV = @LTLIBICONV@
+LTLIBOBJS = @LTLIBOBJS@
+MAINT = @MAINT@
+MAKEINFO = @MAKEINFO@
+MKDIR = @MKDIR@
+MKDIR_P = @MKDIR_P@
+MOC = @MOC@
+MOZILLA_CFLAGS = @MOZILLA_CFLAGS@
+MOZILLA_LIBS = @MOZILLA_LIBS@
+NM = @NM@
+NMEDIT = @NMEDIT@
+OBJDUMP = @OBJDUMP@
+OBJEXT = @OBJEXT@
+OTOOL = @OTOOL@
+OTOOL64 = @OTOOL64@
+PACKAGE = @PACKAGE@
+PACKAGE_BUGREPORT = @PACKAGE_BUGREPORT@
+PACKAGE_NAME = @PACKAGE_NAME@
+PACKAGE_STRING = @PACKAGE_STRING@
+PACKAGE_TARNAME = @PACKAGE_TARNAME@
+PACKAGE_URL = @PACKAGE_URL@
+PACKAGE_VERSION = @PACKAGE_VERSION@
+PANGOFT2_CFLAGS = @PANGOFT2_CFLAGS@
+PANGOFT2_LIBS = @PANGOFT2_LIBS@
+PATH_SEPARATOR = @PATH_SEPARATOR@
+PATH_TO_ESCHER = @PATH_TO_ESCHER@
+PATH_TO_GLIBJ_ZIP = @PATH_TO_GLIBJ_ZIP@
+PERL = @PERL@
+PKG_CONFIG = @PKG_CONFIG@
+PLUGIN_DIR = @PLUGIN_DIR@
+QT_CFLAGS = @QT_CFLAGS@
+QT_LIBS = @QT_LIBS@
+RANLIB = @RANLIB@
+REMOVE = @REMOVE@
+SED = @SED@
+SET_MAKE = @SET_MAKE@
+SHELL = @SHELL@
+STRICT_WARNING_CFLAGS = @STRICT_WARNING_CFLAGS@
+STRIP = @STRIP@
+TOOLSDIR = @TOOLSDIR@
+USER_JAVAH = @USER_JAVAH@
+VERSION = @VERSION@
+WANT_NATIVE_BIG_INTEGER = @WANT_NATIVE_BIG_INTEGER@
+WARNING_CFLAGS = @WARNING_CFLAGS@
+XMKMF = @XMKMF@
+XML_CFLAGS = @XML_CFLAGS@
+XML_LIBS = @XML_LIBS@
+XSLT_CFLAGS = @XSLT_CFLAGS@
+XSLT_LIBS = @XSLT_LIBS@
+XTEST_LIBS = @XTEST_LIBS@
+X_CFLAGS = @X_CFLAGS@
+X_EXTRA_LIBS = @X_EXTRA_LIBS@
+X_LIBS = @X_LIBS@
+X_PRE_LIBS = @X_PRE_LIBS@
+ZIP = @ZIP@
+abs_builddir = @abs_builddir@
+abs_srcdir = @abs_srcdir@
+abs_top_builddir = @abs_top_builddir@
+abs_top_srcdir = @abs_top_srcdir@
+ac_ct_ANTLR = @ac_ct_ANTLR@
+ac_ct_CC = @ac_ct_CC@
+ac_ct_CXX = @ac_ct_CXX@
+ac_ct_DUMPBIN = @ac_ct_DUMPBIN@
+am__include = @am__include@
+am__leading_dot = @am__leading_dot@
+am__quote = @am__quote@
+am__tar = @am__tar@
+am__untar = @am__untar@
+bindir = @bindir@
+build = @build@
+build_alias = @build_alias@
+build_cpu = @build_cpu@
+build_os = @build_os@
+build_vendor = @build_vendor@
+builddir = @builddir@
+datadir = @datadir@
+datarootdir = @datarootdir@
+default_toolkit = @default_toolkit@
+docdir = @docdir@
+dvidir = @dvidir@
+exec_prefix = @exec_prefix@
+glibjdir = @glibjdir@
+host = @host@
+host_alias = @host_alias@
+host_cpu = @host_cpu@
+host_os = @host_os@
+host_vendor = @host_vendor@
+htmldir = @htmldir@
+includedir = @includedir@
+infodir = @infodir@
+install_sh = @install_sh@
+libdir = @libdir@
+libexecdir = @libexecdir@
+localedir = @localedir@
+localstatedir = @localstatedir@
+mandir = @mandir@
+mkdir_p = @mkdir_p@
+multi_basedir = @multi_basedir@
+nativeexeclibdir = @nativeexeclibdir@
+oldincludedir = @oldincludedir@
+pdfdir = @pdfdir@
+prefix = @prefix@
+program_transform_name = @program_transform_name@
+psdir = @psdir@
+sbindir = @sbindir@
+sharedstatedir = @sharedstatedir@
+srcdir = @srcdir@
+sysconfdir = @sysconfdir@
+target = @target@
+target_alias = @target_alias@
+target_cpu = @target_cpu@
+target_os = @target_os@
+target_vendor = @target_vendor@
+toolexeclibdir = @toolexeclibdir@
+top_build_prefix = @top_build_prefix@
+top_builddir = @top_builddir@
+top_srcdir = @top_srcdir@
+uudecode = @uudecode@
+vm_classes = @vm_classes@
+EXTRA_DIST = README \
+org/w3c/dom/Attr.java \
+org/w3c/dom/CDATASection.java \
+org/w3c/dom/CharacterData.java \
+org/w3c/dom/Comment.java \
+org/w3c/dom/DOMConfiguration.java \
+org/w3c/dom/DOMError.java \
+org/w3c/dom/DOMErrorHandler.java \
+org/w3c/dom/DOMException.java \
+org/w3c/dom/DOMImplementation.java \
+org/w3c/dom/DOMImplementationList.java \
+org/w3c/dom/DOMImplementationSource.java \
+org/w3c/dom/DOMLocator.java \
+org/w3c/dom/DOMStringList.java \
+org/w3c/dom/Document.java \
+org/w3c/dom/DocumentFragment.java \
+org/w3c/dom/DocumentType.java \
+org/w3c/dom/Element.java \
+org/w3c/dom/Entity.java \
+org/w3c/dom/EntityReference.java \
+org/w3c/dom/NameList.java \
+org/w3c/dom/NamedNodeMap.java \
+org/w3c/dom/Node.java \
+org/w3c/dom/NodeList.java \
+org/w3c/dom/Notation.java \
+org/w3c/dom/ProcessingInstruction.java \
+org/w3c/dom/Text.java \
+org/w3c/dom/TypeInfo.java \
+org/w3c/dom/UserDataHandler.java \
+org/w3c/dom/bootstrap/DOMImplementationRegistry.java \
+org/w3c/dom/css/CSS2Properties.java \
+org/w3c/dom/css/CSSCharsetRule.java \
+org/w3c/dom/css/CSSFontFaceRule.java \
+org/w3c/dom/css/CSSImportRule.java \
+org/w3c/dom/css/CSSMediaRule.java \
+org/w3c/dom/css/CSSPageRule.java \
+org/w3c/dom/css/CSSPrimitiveValue.java \
+org/w3c/dom/css/CSSRule.java \
+org/w3c/dom/css/CSSRuleList.java \
+org/w3c/dom/css/CSSStyleDeclaration.java \
+org/w3c/dom/css/CSSStyleRule.java \
+org/w3c/dom/css/CSSStyleSheet.java \
+org/w3c/dom/css/CSSUnknownRule.java \
+org/w3c/dom/css/CSSValue.java \
+org/w3c/dom/css/CSSValueList.java \
+org/w3c/dom/css/Counter.java \
+org/w3c/dom/css/DOMImplementationCSS.java \
+org/w3c/dom/css/DocumentCSS.java \
+org/w3c/dom/css/ElementCSSInlineStyle.java \
+org/w3c/dom/css/RGBColor.java \
+org/w3c/dom/css/Rect.java \
+org/w3c/dom/css/ViewCSS.java \
+org/w3c/dom/events/DocumentEvent.java \
+org/w3c/dom/events/Event.java \
+org/w3c/dom/events/EventException.java \
+org/w3c/dom/events/EventListener.java \
+org/w3c/dom/events/EventTarget.java \
+org/w3c/dom/events/MouseEvent.java \
+org/w3c/dom/events/MutationEvent.java \
+org/w3c/dom/events/UIEvent.java \
+org/w3c/dom/html2/HTMLAnchorElement.java \
+org/w3c/dom/html2/HTMLAppletElement.java \
+org/w3c/dom/html2/HTMLAreaElement.java \
+org/w3c/dom/html2/HTMLBRElement.java \
+org/w3c/dom/html2/HTMLBaseElement.java \
+org/w3c/dom/html2/HTMLBaseFontElement.java \
+org/w3c/dom/html2/HTMLBodyElement.java \
+org/w3c/dom/html2/HTMLButtonElement.java \
+org/w3c/dom/html2/HTMLCollection.java \
+org/w3c/dom/html2/HTMLDListElement.java \
+org/w3c/dom/html2/HTMLDirectoryElement.java \
+org/w3c/dom/html2/HTMLDivElement.java \
+org/w3c/dom/html2/HTMLDocument.java \
+org/w3c/dom/html2/HTMLElement.java \
+org/w3c/dom/html2/HTMLFieldSetElement.java \
+org/w3c/dom/html2/HTMLFontElement.java \
+org/w3c/dom/html2/HTMLFormElement.java \
+org/w3c/dom/html2/HTMLFrameElement.java \
+org/w3c/dom/html2/HTMLFrameSetElement.java \
+org/w3c/dom/html2/HTMLHRElement.java \
+org/w3c/dom/html2/HTMLHeadElement.java \
+org/w3c/dom/html2/HTMLHeadingElement.java \
+org/w3c/dom/html2/HTMLHtmlElement.java \
+org/w3c/dom/html2/HTMLIFrameElement.java \
+org/w3c/dom/html2/HTMLImageElement.java \
+org/w3c/dom/html2/HTMLInputElement.java \
+org/w3c/dom/html2/HTMLIsIndexElement.java \
+org/w3c/dom/html2/HTMLLIElement.java \
+org/w3c/dom/html2/HTMLLabelElement.java \
+org/w3c/dom/html2/HTMLLegendElement.java \
+org/w3c/dom/html2/HTMLLinkElement.java \
+org/w3c/dom/html2/HTMLMapElement.java \
+org/w3c/dom/html2/HTMLMenuElement.java \
+org/w3c/dom/html2/HTMLMetaElement.java \
+org/w3c/dom/html2/HTMLModElement.java \
+org/w3c/dom/html2/HTMLOListElement.java \
+org/w3c/dom/html2/HTMLObjectElement.java \
+org/w3c/dom/html2/HTMLOptGroupElement.java \
+org/w3c/dom/html2/HTMLOptionElement.java \
+org/w3c/dom/html2/HTMLOptionsCollection.java \
+org/w3c/dom/html2/HTMLParagraphElement.java \
+org/w3c/dom/html2/HTMLParamElement.java \
+org/w3c/dom/html2/HTMLPreElement.java \
+org/w3c/dom/html2/HTMLQuoteElement.java \
+org/w3c/dom/html2/HTMLScriptElement.java \
+org/w3c/dom/html2/HTMLSelectElement.java \
+org/w3c/dom/html2/HTMLStyleElement.java \
+org/w3c/dom/html2/HTMLTableCaptionElement.java \
+org/w3c/dom/html2/HTMLTableCellElement.java \
+org/w3c/dom/html2/HTMLTableColElement.java \
+org/w3c/dom/html2/HTMLTableElement.java \
+org/w3c/dom/html2/HTMLTableRowElement.java \
+org/w3c/dom/html2/HTMLTableSectionElement.java \
+org/w3c/dom/html2/HTMLTextAreaElement.java \
+org/w3c/dom/html2/HTMLTitleElement.java \
+org/w3c/dom/html2/HTMLUListElement.java \
+org/w3c/dom/ls/DOMImplementationLS.java \
+org/w3c/dom/ls/LSException.java \
+org/w3c/dom/ls/LSInput.java \
+org/w3c/dom/ls/LSLoadEvent.java \
+org/w3c/dom/ls/LSOutput.java \
+org/w3c/dom/ls/LSParser.java \
+org/w3c/dom/ls/LSParserFilter.java \
+org/w3c/dom/ls/LSProgressEvent.java \
+org/w3c/dom/ls/LSResourceResolver.java \
+org/w3c/dom/ls/LSSerializer.java \
+org/w3c/dom/ls/LSSerializerFilter.java \
+org/w3c/dom/ranges/DocumentRange.java \
+org/w3c/dom/ranges/Range.java \
+org/w3c/dom/ranges/RangeException.java \
+org/w3c/dom/stylesheets/DocumentStyle.java \
+org/w3c/dom/stylesheets/LinkStyle.java \
+org/w3c/dom/stylesheets/MediaList.java \
+org/w3c/dom/stylesheets/StyleSheet.java \
+org/w3c/dom/stylesheets/StyleSheetList.java \
+org/w3c/dom/traversal/DocumentTraversal.java \
+org/w3c/dom/traversal/NodeFilter.java \
+org/w3c/dom/traversal/NodeIterator.java \
+org/w3c/dom/traversal/TreeWalker.java \
+org/w3c/dom/views/AbstractView.java \
+org/w3c/dom/views/DocumentView.java \
+org/w3c/dom/xpath/XPathEvaluator.java \
+org/w3c/dom/xpath/XPathException.java \
+org/w3c/dom/xpath/XPathExpression.java \
+org/w3c/dom/xpath/XPathNSResolver.java \
+org/w3c/dom/xpath/XPathNamespace.java \
+org/w3c/dom/xpath/XPathResult.java
+
+all: all-am
+
+.SUFFIXES:
+$(srcdir)/Makefile.in: @MAINTAINER_MODE_TRUE@ $(srcdir)/Makefile.am $(am__configure_deps)
+ @for dep in $?; do \
+ case '$(am__configure_deps)' in \
+ *$$dep*) \
+ ( cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh ) \
+ && { if test -f $@; then exit 0; else break; fi; }; \
+ exit 1;; \
+ esac; \
+ done; \
+ echo ' cd $(top_srcdir) && $(AUTOMAKE) --gnu external/w3c_dom/Makefile'; \
+ $(am__cd) $(top_srcdir) && \
+ $(AUTOMAKE) --gnu external/w3c_dom/Makefile
+.PRECIOUS: Makefile
+Makefile: $(srcdir)/Makefile.in $(top_builddir)/config.status
+ @case '$?' in \
+ *config.status*) \
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh;; \
+ *) \
+ echo ' cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe)'; \
+ cd $(top_builddir) && $(SHELL) ./config.status $(subdir)/$@ $(am__depfiles_maybe);; \
+ esac;
+
+$(top_builddir)/config.status: $(top_srcdir)/configure $(CONFIG_STATUS_DEPENDENCIES)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+
+$(top_srcdir)/configure: @MAINTAINER_MODE_TRUE@ $(am__configure_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(ACLOCAL_M4): @MAINTAINER_MODE_TRUE@ $(am__aclocal_m4_deps)
+ cd $(top_builddir) && $(MAKE) $(AM_MAKEFLAGS) am--refresh
+$(am__aclocal_m4_deps):
+
+mostlyclean-libtool:
+ -rm -f *.lo
+
+clean-libtool:
+ -rm -rf .libs _libs
+tags: TAGS
+TAGS:
+
+ctags: CTAGS
+CTAGS:
+
+check-am: all-am
+check: check-am
+all-am: Makefile
+installdirs:
+install: install-am
+install-exec: install-exec-am
+install-data: install-data-am
+uninstall: uninstall-am
+
+install-am: all-am
+ @$(MAKE) $(AM_MAKEFLAGS) install-exec-am install-data-am
+
+installcheck: installcheck-am
+install-strip:
+ $(MAKE) $(AM_MAKEFLAGS) INSTALL_PROGRAM="$(INSTALL_STRIP_PROGRAM)" \
+ install_sh_PROGRAM="$(INSTALL_STRIP_PROGRAM)" INSTALL_STRIP_FLAG=-s \
+ `test -z '$(STRIP)' || \
+ echo "INSTALL_PROGRAM_ENV=STRIPPROG='$(STRIP)'"` install
+mostlyclean-generic:
+
+clean-generic:
+
+distclean-generic:
+ -test -z "$(CONFIG_CLEAN_FILES)" || rm -f $(CONFIG_CLEAN_FILES)
+ -test . = "$(srcdir)" || test -z "$(CONFIG_CLEAN_VPATH_FILES)" || rm -f $(CONFIG_CLEAN_VPATH_FILES)
+
+maintainer-clean-generic:
+ @echo "This command is intended for maintainers to use"
+ @echo "it deletes files that may require special tools to rebuild."
+clean: clean-am
+
+clean-am: clean-generic clean-libtool mostlyclean-am
+
+distclean: distclean-am
+ -rm -f Makefile
+distclean-am: clean-am distclean-generic
+
+dvi: dvi-am
+
+dvi-am:
+
+html: html-am
+
+html-am:
+
+info: info-am
+
+info-am:
+
+install-data-am:
+
+install-dvi: install-dvi-am
+
+install-dvi-am:
+
+install-exec-am:
+
+install-html: install-html-am
+
+install-html-am:
+
+install-info: install-info-am
+
+install-info-am:
+
+install-man:
+
+install-pdf: install-pdf-am
+
+install-pdf-am:
+
+install-ps: install-ps-am
+
+install-ps-am:
+
+installcheck-am:
+
+maintainer-clean: maintainer-clean-am
+ -rm -f Makefile
+maintainer-clean-am: distclean-am maintainer-clean-generic
+
+mostlyclean: mostlyclean-am
+
+mostlyclean-am: mostlyclean-generic mostlyclean-libtool
+
+pdf: pdf-am
+
+pdf-am:
+
+ps: ps-am
+
+ps-am:
+
+uninstall-am:
+
+.MAKE: install-am install-strip
+
+.PHONY: all all-am check check-am clean clean-generic clean-libtool \
+ distclean distclean-generic distclean-libtool dvi dvi-am html \
+ html-am info info-am install install-am install-data \
+ install-data-am install-dvi install-dvi-am install-exec \
+ install-exec-am install-html install-html-am install-info \
+ install-info-am install-man install-pdf install-pdf-am \
+ install-ps install-ps-am install-strip installcheck \
+ installcheck-am installdirs maintainer-clean \
+ maintainer-clean-generic mostlyclean mostlyclean-generic \
+ mostlyclean-libtool pdf pdf-am ps ps-am uninstall uninstall-am
+
+
+# Tell versions [3.59,3.63) of GNU make to not export all variables.
+# Otherwise a system limit (for SysV at least) may be exceeded.
+.NOEXPORT:
diff --git a/libjava/classpath/external/w3c_dom/README b/libjava/classpath/external/w3c_dom/README
new file mode 100644
index 000000000..6670651ef
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/README
@@ -0,0 +1,97 @@
+Bindings for the Document Object Model (DOM).
+DOM is not maintained as part of GNU Classpath, but is used with GNU Classpath.
+
+The packages includes are:
+
+Document Object Model (DOM) Level 3 Core Specification
+http://www.w3.org/TR/DOM-Level-3-Core/
+(07 April 2004)
+
+Document Object Model (DOM) Level 3 Load and Save Specification
+http://www.w3.org/TR/DOM-Level-3-LS/
+(07 April 2004)
+
+Document Object Model (DOM) Level 2 Events Specification
+http://www.w3.org/TR/DOM-Level-2-Events/
+(13 November 2000)
+Latest errata: 20021016
+
+Document Object Model (DOM) Level 2 Views Specification
+http://www.w3.org/TR/DOM-Level-2-Views/
+(13 November 2000)
+Latest errata: 20021016
+
+Document Object Model (DOM) Level 2 Style Specification
+http://www.w3.org/TR/DOM-Level-2-Style/
+(13 November 2000)
+Latest errata: 20021016
+
+Document Object Model (DOM) Level 2 Traversal and Range Specification
+http://www.w3.org/TR/DOM-Level-2-Traversal-Range/
+(13 November 2000)
+Latest errata: 20021016
+
+Document Object Model (DOM) Level 2 HTML Specification
+http://www.w3.org/TR/DOM-Level-2-HTML/
+(09 January 2003)
+
+Document Object Model (DOM) Level 3 XPath Specification
+http://www.w3.org/TR/DOM-Level-3-XPath/
+(26 February 2004)
+
+Errata can be found at:
+http://www.w3.org/2000/11/DOM-Level-2-errata
+http://www.w3.org/2004/01/DOM-Level-3-errata
+
+The only change to the sources is setting the additional fallback for
+org.w3c.dom.bootstrap.DOMImplementationRegistry.newInstance() to
+gnu.xml.dom.ImplementationSource.
+
+When importing new versions don't forget to update the Makefile.am
+to list any new files (or to remove old ones).
+
+All files are distributed under the following
+W3C Software Short Notice:
+
+ Copyright (c) 2004 World Wide Web Consortium,
+
+ (Massachusetts Institute of Technology, European Research Consortium for
+ Informatics and Mathematics, Keio University). All Rights Reserved. This
+ work is distributed under the W3C(r) Software License [1] 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.
+
+ [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+
+ Permission to copy, modify, and distribute this software and its
+ documentation, with or without modification, for any purpose and
+ without fee or royalty is hereby granted, provided that you include
+ the following on ALL copies of the software and documentation or
+ portions thereof, including modifications:
+
+ 1. The full text of this NOTICE in a location viewable to users of
+ the redistributed or derivative work.
+ 2. Any pre-existing intellectual property disclaimers, notices, or
+ terms and conditions. If none exist, the W3C Software Short Notice
+ should be included (hypertext is preferred, text is permitted) within
+ the body of any redistributed or derivative code.
+ 3. Notice of any changes or modifications to the files, including
+ the date changes were made. (We recommend you provide URIs to the
+ location from which the code is derived.)
+
+ THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT
+ HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED,
+ INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS
+ FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR
+ DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS,
+ TRADEMARKS OR OTHER RIGHTS.
+
+ COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL
+ OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR
+ DOCUMENTATION.
+
+ The name and trademarks of copyright holders may NOT be used in
+ advertising or publicity pertaining to the software without specific,
+ written prior permission. Title to copyright in this software and any
+ associated documentation will at all times remain with copyright
+ holders.
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java
new file mode 100644
index 000000000..944045129
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Attr.java
@@ -0,0 +1,275 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>Attr</code> interface represents an attribute in an
+ * <code>Element</code> object. Typically the allowable values for the
+ * attribute are defined in a schema associated with the document.
+ * <p><code>Attr</code> objects inherit the <code>Node</code> interface, but
+ * since they are not actually child nodes of the element they describe, the
+ * DOM does not consider them part of the document tree. Thus, the
+ * <code>Node</code> attributes <code>parentNode</code>,
+ * <code>previousSibling</code>, and <code>nextSibling</code> have a
+ * <code>null</code> value for <code>Attr</code> objects. The DOM takes the
+ * view that attributes are properties of elements rather than having a
+ * separate identity from the elements they are associated with; this should
+ * make it more efficient to implement such features as default attributes
+ * associated with all elements of a given type. Furthermore,
+ * <code>Attr</code> nodes may not be immediate children of a
+ * <code>DocumentFragment</code>. However, they can be associated with
+ * <code>Element</code> nodes contained within a
+ * <code>DocumentFragment</code>. In short, users and implementors of the
+ * DOM need to be aware that <code>Attr</code> nodes have some things in
+ * common with other objects inheriting the <code>Node</code> interface, but
+ * they also are quite distinct.
+ * <p>The attribute's effective value is determined as follows: if this
+ * attribute has been explicitly assigned any value, that value is the
+ * attribute's effective value; otherwise, if there is a declaration for
+ * this attribute, and that declaration includes a default value, then that
+ * default value is the attribute's effective value; otherwise, the
+ * attribute does not exist on this element in the structure model until it
+ * has been explicitly added. Note that the <code>Node.nodeValue</code>
+ * attribute on the <code>Attr</code> instance can also be used to retrieve
+ * the string version of the attribute's value(s).
+ * <p> If the attribute was not explicitly given a value in the instance
+ * document but has a default value provided by the schema associated with
+ * the document, an attribute node will be created with
+ * <code>specified</code> set to <code>false</code>. Removing attribute
+ * nodes for which a default value is defined in the schema generates a new
+ * attribute node with the default value and <code>specified</code> set to
+ * <code>false</code>. If validation occurred while invoking
+ * <code>Document.normalizeDocument()</code>, attribute nodes with
+ * <code>specified</code> equals to <code>false</code> are recomputed
+ * according to the default attribute values provided by the schema. If no
+ * default value is associate with this attribute in the schema, the
+ * attribute node is discarded.
+ * <p>In XML, where the value of an attribute can contain entity references,
+ * the child nodes of the <code>Attr</code> node may be either
+ * <code>Text</code> or <code>EntityReference</code> nodes (when these are
+ * in use; see the description of <code>EntityReference</code> for
+ * discussion).
+ * <p>The DOM Core represents all attribute values as simple strings, even if
+ * the DTD or schema associated with the document declares them of some
+ * specific type such as tokenized.
+ * <p>The way attribute value normalization is performed by the DOM
+ * implementation depends on how much the implementation knows about the
+ * schema in use. Typically, the <code>value</code> and
+ * <code>nodeValue</code> attributes of an <code>Attr</code> node initially
+ * returns the normalized value given by the parser. It is also the case
+ * after <code>Document.normalizeDocument()</code> is called (assuming the
+ * right options have been set). But this may not be the case after
+ * mutation, independently of whether the mutation is performed by setting
+ * the string value directly or by changing the <code>Attr</code> child
+ * nodes. In particular, this is true when <a href='http://www.w3.org/TR/2004/REC-xml-20040204#dt-charref'>character
+ * references</a> are involved, given that they are not represented in the DOM and they
+ * impact attribute value normalization. On the other hand, if the
+ * implementation knows about the schema in use when the attribute value is
+ * changed, and it is of a different type than CDATA, it may normalize it
+ * again at that time. This is especially true of specialized DOM
+ * implementations, such as SVG DOM implementations, which store attribute
+ * values in an internal form different from a string.
+ * <p>The following table gives some examples of the relations between the
+ * attribute value in the original document (parsed attribute), the value as
+ * exposed in the DOM, and the serialization of the value:
+ * <table border='1' cellpadding='3'>
+ * <tr>
+ * <th>Examples</th>
+ * <th>Parsed
+ * attribute value</th>
+ * <th>Initial <code>Attr.value</code></th>
+ * <th>Serialized attribute value</th>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * Character reference</td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"x&amp;#178;=5"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"x\u00b2=5"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"x&amp;#178;=5"</pre>
+ * </td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>Built-in
+ * character entity</td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"y&amp;lt;6"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"y&lt;6"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"y&amp;lt;6"</pre>
+ * </td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>Literal newline between</td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>
+ * "x=5&amp;#10;y=6"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"x=5 y=6"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"x=5&amp;#10;y=6"</pre>
+ * </td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>Normalized newline between</td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"x=5
+ * y=6"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"x=5 y=6"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>"x=5 y=6"</pre>
+ * </td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>Entity <code>e</code> with literal newline</td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <pre>
+ * &lt;!ENTITY e '...&amp;#10;...'&gt; [...]&gt; "x=5&amp;e;y=6"</pre>
+ * </td>
+ * <td valign='top' rowspan='1' colspan='1'><em>Dependent on Implementation and Load Options</em></td>
+ * <td valign='top' rowspan='1' colspan='1'><em>Dependent on Implementation and Load/Save Options</em></td>
+ * </tr>
+ * </table>
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface Attr extends Node {
+ /**
+ * Returns the name of this attribute. If <code>Node.localName</code> is
+ * different from <code>null</code>, this attribute is a qualified name.
+ */
+ public String getName();
+
+ /**
+ * <code>True</code> if this attribute was explicitly given a value in
+ * the instance document, <code>false</code> otherwise. If the
+ * application changed the value of this attribute node (even if it ends
+ * up having the same value as the default value) then it is set to
+ * <code>true</code>. The implementation may handle attributes with
+ * default values from other schemas similarly but applications should
+ * use <code>Document.normalizeDocument()</code> to guarantee this
+ * information is up-to-date.
+ */
+ public boolean getSpecified();
+
+ /**
+ * On retrieval, the value of the attribute is returned as a string.
+ * Character and general entity references are replaced with their
+ * values. See also the method <code>getAttribute</code> on the
+ * <code>Element</code> interface.
+ * <br>On setting, this creates a <code>Text</code> node with the unparsed
+ * contents of the string, i.e. any characters that an XML processor
+ * would recognize as markup are instead treated as literal text. See
+ * also the method <code>Element.setAttribute()</code>.
+ * <br> Some specialized implementations, such as some [<a href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'>SVG 1.1</a>]
+ * implementations, may do normalization automatically, even after
+ * mutation; in such case, the value on retrieval may differ from the
+ * value on setting.
+ */
+ public String getValue();
+ /**
+ * On retrieval, the value of the attribute is returned as a string.
+ * Character and general entity references are replaced with their
+ * values. See also the method <code>getAttribute</code> on the
+ * <code>Element</code> interface.
+ * <br>On setting, this creates a <code>Text</code> node with the unparsed
+ * contents of the string, i.e. any characters that an XML processor
+ * would recognize as markup are instead treated as literal text. See
+ * also the method <code>Element.setAttribute()</code>.
+ * <br> Some specialized implementations, such as some [<a href='http://www.w3.org/TR/2003/REC-SVG11-20030114/'>SVG 1.1</a>]
+ * implementations, may do normalization automatically, even after
+ * mutation; in such case, the value on retrieval may differ from the
+ * value on setting.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+ */
+ public void setValue(String value)
+ throws DOMException;
+
+ /**
+ * The <code>Element</code> node this attribute is attached to or
+ * <code>null</code> if this attribute is not in use.
+ * @since DOM Level 2
+ */
+ public Element getOwnerElement();
+
+ /**
+ * The type information associated with this attribute. While the type
+ * information contained in this attribute is guarantee to be correct
+ * after loading the document or invoking
+ * <code>Document.normalizeDocument()</code>, <code>schemaTypeInfo</code>
+ * may not be reliable if the node was moved.
+ * @since DOM Level 3
+ */
+ public TypeInfo getSchemaTypeInfo();
+
+ /**
+ * Returns whether this attribute is known to be of type ID (i.e. to
+ * contain an identifier for its owner element) or not. When it is and
+ * its value is unique, the <code>ownerElement</code> of this attribute
+ * can be retrieved using the method <code>Document.getElementById</code>
+ * . The implementation could use several ways to determine if an
+ * attribute node is known to contain an identifier:
+ * <ul>
+ * <li> If validation
+ * occurred using an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * while loading the document or while invoking
+ * <code>Document.normalizeDocument()</code>, the post-schema-validation
+ * infoset contributions (PSVI contributions) values are used to
+ * determine if this attribute is a schema-determined ID attribute using
+ * the <a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/#term-sdi'>
+ * schema-determined ID</a> definition in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>]
+ * .
+ * </li>
+ * <li> If validation occurred using a DTD while loading the document or
+ * while invoking <code>Document.normalizeDocument()</code>, the infoset <b>[type definition]</b> value is used to determine if this attribute is a DTD-determined ID
+ * attribute using the <a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/#term-ddi'>
+ * DTD-determined ID</a> definition in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>]
+ * .
+ * </li>
+ * <li> from the use of the methods <code>Element.setIdAttribute()</code>,
+ * <code>Element.setIdAttributeNS()</code>, or
+ * <code>Element.setIdAttributeNode()</code>, i.e. it is an
+ * user-determined ID attribute;
+ * <p ><b>Note:</b> XPointer framework (see section 3.2 in [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>]
+ * ) consider the DOM user-determined ID attribute as being part of the
+ * XPointer externally-determined ID definition.
+ * </li>
+ * <li> using mechanisms that
+ * are outside the scope of this specification, it is then an
+ * externally-determined ID attribute. This includes using schema
+ * languages different from XML schema and DTD.
+ * </li>
+ * </ul>
+ * <br> If validation occurred while invoking
+ * <code>Document.normalizeDocument()</code>, all user-determined ID
+ * attributes are reset and all attribute nodes ID information are then
+ * reevaluated in accordance to the schema used. As a consequence, if
+ * the <code>Attr.schemaTypeInfo</code> attribute contains an ID type,
+ * <code>isId</code> will always return true.
+ * @since DOM Level 3
+ */
+ public boolean isId();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java
new file mode 100644
index 000000000..ce4b346eb
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/CDATASection.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * CDATA sections are used to escape blocks of text containing characters that
+ * would otherwise be regarded as markup. The only delimiter that is
+ * recognized in a CDATA section is the "]]&gt;" string that ends the CDATA
+ * section. CDATA sections cannot be nested. Their primary purpose is for
+ * including material such as XML fragments, without needing to escape all
+ * the delimiters.
+ * <p>The <code>CharacterData.data</code> attribute holds the text that is
+ * contained by the CDATA section. Note that this <em>may</em> contain characters that need to be escaped outside of CDATA sections and
+ * that, depending on the character encoding ("charset") chosen for
+ * serialization, it may be impossible to write out some characters as part
+ * of a CDATA section.
+ * <p>The <code>CDATASection</code> interface inherits from the
+ * <code>CharacterData</code> interface through the <code>Text</code>
+ * interface. Adjacent <code>CDATASection</code> nodes are not merged by use
+ * of the <code>normalize</code> method of the <code>Node</code> interface.
+ * <p> No lexical check is done on the content of a CDATA section and it is
+ * therefore possible to have the character sequence <code>"]]&gt;"</code>
+ * in the content, which is illegal in a CDATA section per section 2.7 of [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. The
+ * presence of this character sequence must generate a fatal error during
+ * serialization or the cdata section must be splitted before the
+ * serialization (see also the parameter <code>"split-cdata-sections"</code>
+ * in the <code>DOMConfiguration</code> interface).
+ * <p ><b>Note:</b> Because no markup is recognized within a
+ * <code>CDATASection</code>, character numeric references cannot be used as
+ * an escape mechanism when serializing. Therefore, action needs to be taken
+ * when serializing a <code>CDATASection</code> with a character encoding
+ * where some of the contained characters cannot be represented. Failure to
+ * do so would not produce well-formed XML.
+ * <p ><b>Note:</b> One potential solution in the serialization process is to
+ * end the CDATA section before the character, output the character using a
+ * character reference or entity reference, and open a new CDATA section for
+ * any further characters in the text node. Note, however, that some code
+ * conversion libraries at the time of writing do not return an error or
+ * exception when a character is missing from the encoding, making the task
+ * of ensuring that data is not corrupted on serialization more difficult.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface CDATASection extends Text {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java
new file mode 100644
index 000000000..37aa8dffa
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/CharacterData.java
@@ -0,0 +1,153 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>CharacterData</code> interface extends Node with a set of
+ * attributes and methods for accessing character data in the DOM. For
+ * clarity this set is defined here rather than on each object that uses
+ * these attributes and methods. No DOM objects correspond directly to
+ * <code>CharacterData</code>, though <code>Text</code> and others do
+ * inherit the interface from it. All <code>offsets</code> in this interface
+ * start from <code>0</code>.
+ * <p>As explained in the <code>DOMString</code> interface, text strings in
+ * the DOM are represented in UTF-16, i.e. as a sequence of 16-bit units. In
+ * the following, the term 16-bit units is used whenever necessary to
+ * indicate that indexing on CharacterData is done in 16-bit units.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface CharacterData extends Node {
+ /**
+ * The character data of the node that implements this interface. The DOM
+ * implementation may not put arbitrary limits on the amount of data
+ * that may be stored in a <code>CharacterData</code> node. However,
+ * implementation limits may mean that the entirety of a node's data may
+ * not fit into a single <code>DOMString</code>. In such cases, the user
+ * may call <code>substringData</code> to retrieve the data in
+ * appropriately sized pieces.
+ * @exception DOMException
+ * DOMSTRING_SIZE_ERR: Raised when it would return more characters than
+ * fit in a <code>DOMString</code> variable on the implementation
+ * platform.
+ */
+ public String getData()
+ throws DOMException;
+ /**
+ * The character data of the node that implements this interface. The DOM
+ * implementation may not put arbitrary limits on the amount of data
+ * that may be stored in a <code>CharacterData</code> node. However,
+ * implementation limits may mean that the entirety of a node's data may
+ * not fit into a single <code>DOMString</code>. In such cases, the user
+ * may call <code>substringData</code> to retrieve the data in
+ * appropriately sized pieces.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+ */
+ public void setData(String data)
+ throws DOMException;
+
+ /**
+ * The number of 16-bit units that are available through <code>data</code>
+ * and the <code>substringData</code> method below. This may have the
+ * value zero, i.e., <code>CharacterData</code> nodes may be empty.
+ */
+ public int getLength();
+
+ /**
+ * Extracts a range of data from the node.
+ * @param offset Start offset of substring to extract.
+ * @param count The number of 16-bit units to extract.
+ * @return The specified substring. If the sum of <code>offset</code> and
+ * <code>count</code> exceeds the <code>length</code>, then all 16-bit
+ * units to the end of the data are returned.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is
+ * negative or greater than the number of 16-bit units in
+ * <code>data</code>, or if the specified <code>count</code> is
+ * negative.
+ * <br>DOMSTRING_SIZE_ERR: Raised if the specified range of text does
+ * not fit into a <code>DOMString</code>.
+ */
+ public String substringData(int offset,
+ int count)
+ throws DOMException;
+
+ /**
+ * Append the string to the end of the character data of the node. Upon
+ * success, <code>data</code> provides access to the concatenation of
+ * <code>data</code> and the <code>DOMString</code> specified.
+ * @param arg The <code>DOMString</code> to append.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void appendData(String arg)
+ throws DOMException;
+
+ /**
+ * Insert a string at the specified 16-bit unit offset.
+ * @param offset The character offset at which to insert.
+ * @param arg The <code>DOMString</code> to insert.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is
+ * negative or greater than the number of 16-bit units in
+ * <code>data</code>.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void insertData(int offset,
+ String arg)
+ throws DOMException;
+
+ /**
+ * Remove a range of 16-bit units from the node. Upon success,
+ * <code>data</code> and <code>length</code> reflect the change.
+ * @param offset The offset from which to start removing.
+ * @param count The number of 16-bit units to delete. If the sum of
+ * <code>offset</code> and <code>count</code> exceeds
+ * <code>length</code> then all 16-bit units from <code>offset</code>
+ * to the end of the data are deleted.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is
+ * negative or greater than the number of 16-bit units in
+ * <code>data</code>, or if the specified <code>count</code> is
+ * negative.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void deleteData(int offset,
+ int count)
+ throws DOMException;
+
+ /**
+ * Replace the characters starting at the specified 16-bit unit offset
+ * with the specified string.
+ * @param offset The offset from which to start replacing.
+ * @param count The number of 16-bit units to replace. If the sum of
+ * <code>offset</code> and <code>count</code> exceeds
+ * <code>length</code>, then all 16-bit units to the end of the data
+ * are replaced; (i.e., the effect is the same as a <code>remove</code>
+ * method call with the same range, followed by an <code>append</code>
+ * method invocation).
+ * @param arg The <code>DOMString</code> with which the range must be
+ * replaced.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified <code>offset</code> is
+ * negative or greater than the number of 16-bit units in
+ * <code>data</code>, or if the specified <code>count</code> is
+ * negative.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void replaceData(int offset,
+ int count,
+ String arg)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java
new file mode 100644
index 000000000..40b75274b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Comment.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * This interface inherits from <code>CharacterData</code> and represents the
+ * content of a comment, i.e., all the characters between the starting '
+ * <code>&lt;!--</code>' and ending '<code>--&gt;</code>'. Note that this is
+ * the definition of a comment in XML, and, in practice, HTML, although some
+ * HTML tools may implement the full SGML comment structure.
+ * <p> No lexical check is done on the content of a comment and it is
+ * therefore possible to have the character sequence <code>"--"</code>
+ * (double-hyphen) in the content, which is illegal in a comment per section
+ * 2.5 of [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. The
+ * presence of this character sequence must generate a fatal error during
+ * serialization.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface Comment extends CharacterData {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java
new file mode 100644
index 000000000..d05257868
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMConfiguration.java
@@ -0,0 +1,413 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>DOMConfiguration</code> interface represents the configuration
+ * of a document and maintains a table of recognized parameters. Using the
+ * configuration, it is possible to change
+ * <code>Document.normalizeDocument()</code> behavior, such as replacing the
+ * <code>CDATASection</code> nodes with <code>Text</code> nodes or
+ * specifying the type of the schema that must be used when the validation
+ * of the <code>Document</code> is requested. <code>DOMConfiguration</code>
+ * objects are also used in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>DOM Level 3 Load and Save</a>]
+ * in the <code>DOMParser</code> and <code>DOMSerializer</code> interfaces.
+ * <p> The parameter names used by the <code>DOMConfiguration</code> object
+ * are defined throughout the DOM Level 3 specifications. Names are
+ * case-insensitive. To avoid possible conflicts, as a convention, names
+ * referring to parameters defined outside the DOM specification should be
+ * made unique. Because parameters are exposed as properties in the , names
+ * are recommended to follow the section 5.16 Identifiers of [Unicode] with the addition of the character '-' (HYPHEN-MINUS) but it is not
+ * enforced by the DOM implementation. DOM Level 3 Core Implementations are
+ * required to recognize all parameters defined in this specification. Some
+ * parameter values may also be required to be supported by the
+ * implementation. Refer to the definition of the parameter to know if a
+ * value must be supported or not.
+ * <p ><b>Note:</b> Parameters are similar to features and properties used in
+ * SAX2 [<a href='http://www.saxproject.org/'>SAX</a>].
+ * <p> The following list of parameters defined in the DOM:
+ * <dl>
+ * <dt>
+ * <code>"canonical-form"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>optional</em>] Canonicalize the document according to the rules specified in [<a href='http://www.w3.org/TR/2001/REC-xml-c14n-20010315'>Canonical XML</a>],
+ * such as removing the <code>DocumentType</code> node (if any) from the
+ * tree, or removing superfluous namespace declarations from each element.
+ * Note that this is limited to what can be represented in the DOM; in
+ * particular, there is no way to specify the order of the attributes in the
+ * DOM. In addition, Setting this parameter to <code>true</code> will also
+ * set the state of the parameters listed below. Later changes to the state
+ * of one of those parameters will revert "canonical-form" back to
+ * <code>false</code>. Parameters set to <code>false</code>: "entities", "
+ * normalize-characters", "cdata-sections". Parameters set to
+ * <code>true</code>: "namespaces", "namespace-declarations", "well-formed",
+ * "element-content-whitespace". Other parameters are not changed unless
+ * explicitly specified in the description of the parameters.</dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>)Do not canonicalize the document.</dd>
+ * </dl></dd>
+ * <dt><code>"cdata-sections"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>)Keep <code>CDATASection</code> nodes in the document.</dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>]Transform <code>CDATASection</code> nodes in the document into
+ * <code>Text</code> nodes. The new <code>Text</code> node is then combined
+ * with any adjacent <code>Text</code> node.</dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"check-character-normalization"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>optional</em>] Check if the characters in the document are <a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>fully
+ * normalized</a>, as defined in appendix B of [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]. When a
+ * sequence of characters is encountered that fails normalization checking,
+ * an error with the <code>DOMError.type</code> equals to
+ * "check-character-normalization-failure" is issued. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>)Do not check if characters are normalized.</dd>
+ * </dl></dd>
+ * <dt><code>"comments"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>)Keep <code>Comment</code> nodes in the document.</dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>]Discard <code>Comment</code> nodes in the document.</dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"datatype-normalization"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>optional</em>] Expose schema normalized values in the tree, such as <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#key-nv'>XML
+ * Schema normalized values</a> in the case of XML Schema. Since this parameter requires to have schema
+ * information, the "validate" parameter will also be set to
+ * <code>true</code>. Having this parameter activated when "validate" is
+ * <code>false</code> has no effect and no schema-normalization will happen.
+ * <p ><b>Note:</b> Since the document contains the result of the XML 1.0
+ * processing, this parameter does not apply to attribute value
+ * normalization as defined in section 3.3.3 of [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] and is only
+ * meant for schema languages other than Document Type Definition (DTD). </dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Do not perform schema normalization on the tree. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"element-content-whitespace"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>)Keep all whitespaces in the document.</dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>optional</em>] Discard all <code>Text</code> nodes that contain whitespaces in element
+ * content, as described in <a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'>
+ * [element content whitespace]</a>. The implementation is expected to use the attribute
+ * <code>Text.isElementContentWhitespace</code> to determine if a
+ * <code>Text</code> node should be discarded or not.</dd>
+ * </dl></dd>
+ * <dt><code>"entities"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>)Keep <code>EntityReference</code> nodes in the document.</dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>required</em>] Remove all <code>EntityReference</code> nodes from the document,
+ * putting the entity expansions directly in their place. <code>Text</code>
+ * nodes are normalized, as defined in <code>Node.normalize</code>. Only <a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204/#infoitem.rse'>
+ * unexpanded entity references</a> are kept in the document. </dd>
+ * </dl>
+ * <p ><b>Note:</b> This parameter does not affect <code>Entity</code> nodes. </dd>
+ * <dt>
+ * <code>"error-handler"</code></dt>
+ * <dd>[<em>required</em>] Contains a <code>DOMErrorHandler</code> object. If an error is
+ * encountered in the document, the implementation will call back the
+ * <code>DOMErrorHandler</code> registered using this parameter. The
+ * implementation may provide a default <code>DOMErrorHandler</code> object.
+ * When called, <code>DOMError.relatedData</code> will contain the closest
+ * node to where the error occurred. If the implementation is unable to
+ * determine the node where the error occurs,
+ * <code>DOMError.relatedData</code> will contain the <code>Document</code>
+ * node. Mutations to the document from within an error handler will result
+ * in implementation dependent behavior. </dd>
+ * <dt><code>"infoset"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>]Keep in the document the information defined in the XML Information Set [<a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204/'>XML Information Set</a>]
+ * .This forces the following parameters to <code>false</code>: "
+ * validate-if-schema", "entities", "datatype-normalization", "cdata-sections
+ * ".This forces the following parameters to <code>true</code>: "
+ * namespace-declarations", "well-formed", "element-content-whitespace", "
+ * comments", "namespaces".Other parameters are not changed unless
+ * explicitly specified in the description of the parameters. Note that
+ * querying this parameter with <code>getParameter</code> returns
+ * <code>true</code> only if the individual parameters specified above are
+ * appropriately set.</dd>
+ * <dt><code>false</code></dt>
+ * <dd>Setting <code>infoset</code> to
+ * <code>false</code> has no effect.</dd>
+ * </dl></dd>
+ * <dt><code>"namespaces"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Perform the namespace processing as defined in . </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>optional</em>] Do not perform the namespace processing. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"namespace-declarations"</code></dt>
+ * <dd> This parameter has no effect if the
+ * parameter "namespaces" is set to <code>false</code>.
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Include namespace declaration attributes, specified or defaulted from
+ * the schema, in the document. See also the sections "Declaring Namespaces"
+ * in [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * and [<a href='http://www.w3.org/TR/2004/REC-xml-names11-20040204/'>XML Namespaces 1.1</a>]
+ * .</dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>]Discard all namespace declaration attributes. The namespace prefixes (
+ * <code>Node.prefix</code>) are retained even if this parameter is set to
+ * <code>false</code>.</dd>
+ * </dl></dd>
+ * <dt><code>"normalize-characters"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>optional</em>] <a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>Fully
+ * normalized</a> the characters in the document as defined in appendix B of [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]. </dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>)Do not perform character normalization.</dd>
+ * </dl></dd>
+ * <dt><code>"schema-location"</code></dt>
+ * <dd>[<em>optional</em>] Represent a <code>DOMString</code> object containing a list of URIs,
+ * separated by whitespaces (characters matching the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-S'>nonterminal
+ * production S</a> defined in section 2.3 [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]), that
+ * represents the schemas against which validation should occur, i.e. the
+ * current schema. The types of schemas referenced in this list must match
+ * the type specified with <code>schema-type</code>, otherwise the behavior
+ * of an implementation is undefined. The schemas specified using this
+ * property take precedence to the schema information specified in the
+ * document itself. For namespace aware schema, if a schema specified using
+ * this property and a schema specified in the document instance (i.e. using
+ * the <code>schemaLocation</code> attribute) in a schema document (i.e.
+ * using schema <code>import</code> mechanisms) share the same
+ * <code>targetNamespace</code>, the schema specified by the user using this
+ * property will be used. If two schemas specified using this property share
+ * the same <code>targetNamespace</code> or have no namespace, the behavior
+ * is implementation dependent. If no location has been provided, this
+ * parameter is <code>null</code>.
+ * <p ><b>Note:</b> The <code>"schema-location"</code> parameter is ignored
+ * unless the "schema-type" parameter value is set. It is strongly
+ * recommended that <code>Document.documentURI</code> will be set so that an
+ * implementation can successfully resolve any external entities referenced. </dd>
+ * <dt>
+ * <code>"schema-type"</code></dt>
+ * <dd>[<em>optional</em>] Represent a <code>DOMString</code> object containing an absolute URI
+ * and representing the type of the schema language used to validate a
+ * document against. Note that no lexical checking is done on the absolute
+ * URI. If this parameter is not set, a default value may be provided by
+ * the implementation, based on the schema languages supported and on the
+ * schema language used at load time. If no value is provided, this
+ * parameter is <code>null</code>.
+ * <p ><b>Note:</b> For XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * , applications must use the value
+ * <code>"http://www.w3.org/2001/XMLSchema"</code>. For XML DTD [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>],
+ * applications must use the value
+ * <code>"http://www.w3.org/TR/REC-xml"</code>. Other schema languages are
+ * outside the scope of the W3C and therefore should recommend an absolute
+ * URI in order to use this method. </dd>
+ * <dt><code>"split-cdata-sections"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>)Split CDATA sections containing the CDATA section termination marker
+ * ']]&gt;'. When a CDATA section is split a warning is issued with a
+ * <code>DOMError.type</code> equals to
+ * <code>"cdata-sections-splitted"</code> and
+ * <code>DOMError.relatedData</code> equals to the first
+ * <code>CDATASection</code> node in document order resulting from the split.</dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>required</em>]Signal an error if a <code>CDATASection</code> contains an
+ * unrepresentable character.</dd>
+ * </dl></dd>
+ * <dt><code>"validate"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>optional</em>] Require the validation against a schema (i.e. XML schema, DTD, any
+ * other type or representation of schema) of the document as it is being
+ * normalized as defined by [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. If
+ * validation errors are found, or no schema was found, the error handler is
+ * notified. Schema-normalized values will not be exposed according to the
+ * schema in used unless the parameter "datatype-normalization" is
+ * <code>true</code>. This parameter will reevaluate:
+ * <ul>
+ * <li> Attribute nodes with
+ * <code>Attr.specified</code> equals to <code>false</code>, as specified in
+ * the description of the <code>Attr</code> interface;
+ * </li>
+ * <li> The value of the
+ * attribute <code>Text.isElementContentWhitespace</code> for all
+ * <code>Text</code> nodes;
+ * </li>
+ * <li> The value of the attribute
+ * <code>Attr.isId</code> for all <code>Attr</code> nodes;
+ * </li>
+ * <li> The attributes
+ * <code>Element.schemaTypeInfo</code> and <code>Attr.schemaTypeInfo</code>.
+ * </li>
+ * </ul>
+ * <p ><b>Note:</b> "validate-if-schema" and "validate" are mutually
+ * exclusive, setting one of them to <code>true</code> will set the other
+ * one to <code>false</code>. Applications should also consider setting the
+ * parameter "well-formed" to <code>true</code>, which is the default for
+ * that option, when validating the document. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Do not accomplish schema processing, including the internal subset
+ * processing. Default attribute values information are kept. Note that
+ * validation might still happen if "validate-if-schema" is <code>true</code>
+ * . </dd>
+ * </dl></dd>
+ * <dt><code>"validate-if-schema"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>optional</em>]Enable validation only if a declaration for the document element can be
+ * found in a schema (independently of where it is found, i.e. XML schema,
+ * DTD, or any other type or representation of schema). If validation is
+ * enabled, this parameter has the same behavior as the parameter "validate"
+ * set to <code>true</code>.
+ * <p ><b>Note:</b> "validate-if-schema" and "validate" are mutually
+ * exclusive, setting one of them to <code>true</code> will set the other
+ * one to <code>false</code>. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) No schema processing should be performed if the document has a schema,
+ * including internal subset processing. Default attribute values
+ * information are kept. Note that validation must still happen if "validate
+ * " is <code>true</code>. </dd>
+ * </dl></dd>
+ * <dt><code>"well-formed"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Check if all nodes are XML well formed according to the XML version in
+ * use in <code>Document.xmlVersion</code>:
+ * <ul>
+ * <li> check if the attribute
+ * <code>Node.nodeName</code> contains invalid characters according to its
+ * node type and generate a <code>DOMError</code> of type
+ * <code>"wf-invalid-character-in-node-name"</code>, with a
+ * <code>DOMError.SEVERITY_ERROR</code> severity, if necessary;
+ * </li>
+ * <li> check if
+ * the text content inside <code>Attr</code>, <code>Element</code>,
+ * <code>Comment</code>, <code>Text</code>, <code>CDATASection</code> nodes
+ * for invalid characters and generate a <code>DOMError</code> of type
+ * <code>"wf-invalid-character"</code>, with a
+ * <code>DOMError.SEVERITY_ERROR</code> severity, if necessary;
+ * </li>
+ * <li> check if
+ * the data inside <code>ProcessingInstruction</code> nodes for invalid
+ * characters and generate a <code>DOMError</code> of type
+ * <code>"wf-invalid-character"</code>, with a
+ * <code>DOMError.SEVERITY_ERROR</code> severity, if necessary;
+ * </li>
+ * </ul></dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>optional</em>] Do not check for XML well-formedness. </dd>
+ * </dl></dd>
+ * </dl>
+ * <p> The resolution of the system identifiers associated with entities is
+ * done using <code>Document.documentURI</code>. However, when the feature
+ * "LS" defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>DOM Level 3 Load and Save</a>]
+ * is supported by the DOM implementation, the parameter
+ * "resource-resolver" can also be used on <code>DOMConfiguration</code>
+ * objects attached to <code>Document</code> nodes. If this parameter is
+ * set, <code>Document.normalizeDocument()</code> will invoke the resource
+ * resolver instead of using <code>Document.documentURI</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface DOMConfiguration {
+ /**
+ * Set the value of a parameter.
+ * @param name The name of the parameter to set.
+ * @param value The new value or <code>null</code> if the user wishes to
+ * unset the parameter. While the type of the value parameter is
+ * defined as <code>DOMUserData</code>, the object type must match the
+ * type defined by the definition of the parameter. For example, if
+ * the parameter is "error-handler", the value must be of type
+ * <code>DOMErrorHandler</code>.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised when the parameter name is not recognized.
+ * <br> NOT_SUPPORTED_ERR: Raised when the parameter name is recognized
+ * but the requested value cannot be set.
+ * <br> TYPE_MISMATCH_ERR: Raised if the value type for this parameter
+ * name is incompatible with the expected value type.
+ */
+ public void setParameter(String name,
+ Object value)
+ throws DOMException;
+
+ /**
+ * Return the value of a parameter if known.
+ * @param name The name of the parameter.
+ * @return The current object associated with the specified parameter or
+ * <code>null</code> if no object has been associated or if the
+ * parameter is not supported.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised when the parameter name is not recognized.
+ */
+ public Object getParameter(String name)
+ throws DOMException;
+
+ /**
+ * Check if setting a parameter to a specific value is supported.
+ * @param name The name of the parameter to check.
+ * @param value An object. if <code>null</code>, the returned value is
+ * <code>true</code>.
+ * @return <code>true</code> if the parameter could be successfully set
+ * to the specified value, or <code>false</code> if the parameter is
+ * not recognized or the requested value is not supported. This does
+ * not change the current value of the parameter itself.
+ */
+ public boolean canSetParameter(String name,
+ Object value);
+
+ /**
+ * The list of the parameters supported by this
+ * <code>DOMConfiguration</code> object and for which at least one value
+ * can be set by the application. Note that this list can also contain
+ * parameter names defined outside this specification.
+ */
+ public DOMStringList getParameterNames();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java
new file mode 100644
index 000000000..2634df37c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMError.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * <code>DOMError</code> is an interface that describes an error.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface DOMError {
+ // ErrorSeverity
+ /**
+ * The severity of the error described by the <code>DOMError</code> is
+ * warning. A <code>SEVERITY_WARNING</code> will not cause the
+ * processing to stop, unless <code>DOMErrorHandler.handleError()</code>
+ * returns <code>false</code>.
+ */
+ public static final short SEVERITY_WARNING = 1;
+ /**
+ * The severity of the error described by the <code>DOMError</code> is
+ * error. A <code>SEVERITY_ERROR</code> may not cause the processing to
+ * stop if the error can be recovered, unless
+ * <code>DOMErrorHandler.handleError()</code> returns <code>false</code>.
+ */
+ public static final short SEVERITY_ERROR = 2;
+ /**
+ * The severity of the error described by the <code>DOMError</code> is
+ * fatal error. A <code>SEVERITY_FATAL_ERROR</code> will cause the
+ * normal processing to stop. The return value of
+ * <code>DOMErrorHandler.handleError()</code> is ignored unless the
+ * implementation chooses to continue, in which case the behavior
+ * becomes undefined.
+ */
+ public static final short SEVERITY_FATAL_ERROR = 3;
+
+ /**
+ * The severity of the error, either <code>SEVERITY_WARNING</code>,
+ * <code>SEVERITY_ERROR</code>, or <code>SEVERITY_FATAL_ERROR</code>.
+ */
+ public short getSeverity();
+
+ /**
+ * An implementation specific string describing the error that occurred.
+ */
+ public String getMessage();
+
+ /**
+ * A <code>DOMString</code> indicating which related data is expected in
+ * <code>relatedData</code>. Users should refer to the specification of
+ * the error in order to find its <code>DOMString</code> type and
+ * <code>relatedData</code> definitions if any.
+ * <p ><b>Note:</b> As an example,
+ * <code>Document.normalizeDocument()</code> does generate warnings when
+ * the "split-cdata-sections" parameter is in use. Therefore, the method
+ * generates a <code>SEVERITY_WARNING</code> with <code>type</code>
+ * <code>"cdata-sections-splitted"</code> and the first
+ * <code>CDATASection</code> node in document order resulting from the
+ * split is returned by the <code>relatedData</code> attribute.
+ */
+ public String getType();
+
+ /**
+ * The related platform dependent exception if any.
+ */
+ public Object getRelatedException();
+
+ /**
+ * The related <code>DOMError.type</code> dependent data if any.
+ */
+ public Object getRelatedData();
+
+ /**
+ * The location of the error.
+ */
+ public DOMLocator getLocation();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java
new file mode 100644
index 000000000..7dcc90152
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMErrorHandler.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * <code>DOMErrorHandler</code> is a callback interface that the DOM
+ * implementation can call when reporting errors that happens while
+ * processing XML data, or when doing some other processing (e.g. validating
+ * a document). A <code>DOMErrorHandler</code> object can be attached to a
+ * <code>Document</code> using the "error-handler" on the
+ * <code>DOMConfiguration</code> interface. If more than one error needs to
+ * be reported during an operation, the sequence and numbers of the errors
+ * passed to the error handler are implementation dependent.
+ * <p> The application that is using the DOM implementation is expected to
+ * implement this interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface DOMErrorHandler {
+ /**
+ * This method is called on the error handler when an error occurs.
+ * <br> If an exception is thrown from this method, it is considered to be
+ * equivalent of returning <code>true</code>.
+ * @param error The error object that describes the error. This object
+ * may be reused by the DOM implementation across multiple calls to
+ * the <code>handleError</code> method.
+ * @return If the <code>handleError</code> method returns
+ * <code>false</code>, the DOM implementation should stop the current
+ * processing when possible. If the method returns <code>true</code>,
+ * the processing may continue depending on
+ * <code>DOMError.severity</code>.
+ */
+ public boolean handleError(DOMError error);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java
new file mode 100644
index 000000000..23c70c400
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMException.java
@@ -0,0 +1,131 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * DOM operations only raise exceptions in "exceptional" circumstances, i.e.,
+ * when an operation is impossible to perform (either for logical reasons,
+ * because data is lost, or because the implementation has become unstable).
+ * In general, DOM methods return specific error values in ordinary
+ * processing situations, such as out-of-bound errors when using
+ * <code>NodeList</code>.
+ * <p>Implementations should raise other exceptions under other circumstances.
+ * For example, implementations should raise an implementation-dependent
+ * exception if a <code>null</code> argument is passed when <code>null</code>
+ * was not expected.
+ * <p>Some languages and object systems do not support the concept of
+ * exceptions. For such systems, error conditions may be indicated using
+ * native error reporting mechanisms. For some bindings, for example,
+ * methods may return error codes similar to those listed in the
+ * corresponding method descriptions.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public class DOMException extends RuntimeException {
+ public DOMException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // ExceptionCode
+ /**
+ * If index or size is negative, or greater than the allowed value.
+ */
+ public static final short INDEX_SIZE_ERR = 1;
+ /**
+ * If the specified range of text does not fit into a
+ * <code>DOMString</code>.
+ */
+ public static final short DOMSTRING_SIZE_ERR = 2;
+ /**
+ * If any <code>Node</code> is inserted somewhere it doesn't belong.
+ */
+ public static final short HIERARCHY_REQUEST_ERR = 3;
+ /**
+ * If a <code>Node</code> is used in a different document than the one
+ * that created it (that doesn't support it).
+ */
+ public static final short WRONG_DOCUMENT_ERR = 4;
+ /**
+ * If an invalid or illegal character is specified, such as in an XML name.
+ */
+ public static final short INVALID_CHARACTER_ERR = 5;
+ /**
+ * If data is specified for a <code>Node</code> which does not support
+ * data.
+ */
+ public static final short NO_DATA_ALLOWED_ERR = 6;
+ /**
+ * If an attempt is made to modify an object where modifications are not
+ * allowed.
+ */
+ public static final short NO_MODIFICATION_ALLOWED_ERR = 7;
+ /**
+ * If an attempt is made to reference a <code>Node</code> in a context
+ * where it does not exist.
+ */
+ public static final short NOT_FOUND_ERR = 8;
+ /**
+ * If the implementation does not support the requested type of object or
+ * operation.
+ */
+ public static final short NOT_SUPPORTED_ERR = 9;
+ /**
+ * If an attempt is made to add an attribute that is already in use
+ * elsewhere.
+ */
+ public static final short INUSE_ATTRIBUTE_ERR = 10;
+ /**
+ * If an attempt is made to use an object that is not, or is no longer,
+ * usable.
+ * @since DOM Level 2
+ */
+ public static final short INVALID_STATE_ERR = 11;
+ /**
+ * If an invalid or illegal string is specified.
+ * @since DOM Level 2
+ */
+ public static final short SYNTAX_ERR = 12;
+ /**
+ * If an attempt is made to modify the type of the underlying object.
+ * @since DOM Level 2
+ */
+ public static final short INVALID_MODIFICATION_ERR = 13;
+ /**
+ * If an attempt is made to create or change an object in a way which is
+ * incorrect with regard to namespaces.
+ * @since DOM Level 2
+ */
+ public static final short NAMESPACE_ERR = 14;
+ /**
+ * If a parameter or an operation is not supported by the underlying
+ * object.
+ * @since DOM Level 2
+ */
+ public static final short INVALID_ACCESS_ERR = 15;
+ /**
+ * If a call to a method such as <code>insertBefore</code> or
+ * <code>removeChild</code> would make the <code>Node</code> invalid
+ * with respect to "partial validity", this exception would be raised
+ * and the operation would not be done. This code is used in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Val-20040127/'>DOM Level 3 Validation</a>]
+ * . Refer to this specification for further information.
+ * @since DOM Level 3
+ */
+ public static final short VALIDATION_ERR = 16;
+ /**
+ * If the type of an object is incompatible with the expected type of the
+ * parameter associated to the object.
+ * @since DOM Level 3
+ */
+ public static final short TYPE_MISMATCH_ERR = 17;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java
new file mode 100644
index 000000000..9b0757433
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementation.java
@@ -0,0 +1,136 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>DOMImplementation</code> interface provides a number of methods
+ * for performing operations that are independent of any particular instance
+ * of the document object model.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface DOMImplementation {
+ /**
+ * Test if the DOM implementation implements a specific feature and
+ * version, as specified in .
+ * @param feature The name of the feature to test.
+ * @param version This is the version number of the feature to test.
+ * @return <code>true</code> if the feature is implemented in the
+ * specified version, <code>false</code> otherwise.
+ */
+ public boolean hasFeature(String feature,
+ String version);
+
+ /**
+ * Creates an empty <code>DocumentType</code> node. Entity declarations
+ * and notations are not made available. Entity reference expansions and
+ * default attribute additions do not occur..
+ * @param qualifiedName The qualified name of the document type to be
+ * created.
+ * @param publicId The external subset public identifier.
+ * @param systemId The external subset system identifier.
+ * @return A new <code>DocumentType</code> node with
+ * <code>Node.ownerDocument</code> set to <code>null</code>.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not
+ * an XML name according to [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>].
+ * <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
+ * malformed.
+ * <br>NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public DocumentType createDocumentType(String qualifiedName,
+ String publicId,
+ String systemId)
+ throws DOMException;
+
+ /**
+ * Creates a DOM Document object of the specified type with its document
+ * element.
+ * <br>Note that based on the <code>DocumentType</code> given to create
+ * the document, the implementation may instantiate specialized
+ * <code>Document</code> objects that support additional features than
+ * the "Core", such as "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>]
+ * . On the other hand, setting the <code>DocumentType</code> after the
+ * document was created makes this very unlikely to happen.
+ * Alternatively, specialized <code>Document</code> creation methods,
+ * such as <code>createHTMLDocument</code> [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>]
+ * , can be used to obtain specific types of <code>Document</code>
+ * objects.
+ * @param namespaceURI The namespace URI of the document element to
+ * create or <code>null</code>.
+ * @param qualifiedName The qualified name of the document element to be
+ * created or <code>null</code>.
+ * @param doctype The type of document to be created or <code>null</code>.
+ * When <code>doctype</code> is not <code>null</code>, its
+ * <code>Node.ownerDocument</code> attribute is set to the document
+ * being created.
+ * @return A new <code>Document</code> object with its document element.
+ * If the <code>NamespaceURI</code>, <code>qualifiedName</code>, and
+ * <code>doctype</code> are <code>null</code>, the returned
+ * <code>Document</code> is empty with no document element.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not
+ * an XML name according to [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>].
+ * <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
+ * malformed, if the <code>qualifiedName</code> has a prefix and the
+ * <code>namespaceURI</code> is <code>null</code>, or if the
+ * <code>qualifiedName</code> is <code>null</code> and the
+ * <code>namespaceURI</code> is different from <code>null</code>, or
+ * if the <code>qualifiedName</code> has a prefix that is "xml" and
+ * the <code>namespaceURI</code> is different from "<a href='http://www.w3.org/XML/1998/namespace'>
+ * http://www.w3.org/XML/1998/namespace</a>" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , or if the DOM implementation does not support the
+ * <code>"XML"</code> feature but a non-null namespace URI was
+ * provided, since namespaces were defined by XML.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>doctype</code> has already
+ * been used with a different document or was created from a different
+ * implementation.
+ * <br>NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public Document createDocument(String namespaceURI,
+ String qualifiedName,
+ DocumentType doctype)
+ throws DOMException;
+
+ /**
+ * This method returns a specialized object which implements the
+ * specialized APIs of the specified feature and version, as specified
+ * in . The specialized object may also be obtained by using
+ * binding-specific casting methods but is not necessarily expected to,
+ * as discussed in . This method also allow the implementation to
+ * provide specialized objects which do not support the
+ * <code>DOMImplementation</code> interface.
+ * @param feature The name of the feature requested. Note that any plus
+ * sign "+" prepended to the name of the feature will be ignored since
+ * it is not significant in the context of this method.
+ * @param version This is the version number of the feature to test.
+ * @return Returns an object which implements the specialized APIs of
+ * the specified feature and version, if any, or <code>null</code> if
+ * there is no object which implements interfaces associated with that
+ * feature. If the <code>DOMObject</code> returned by this method
+ * implements the <code>DOMImplementation</code> interface, it must
+ * delegate to the primary core <code>DOMImplementation</code> and not
+ * return results inconsistent with the primary core
+ * <code>DOMImplementation</code> such as <code>hasFeature</code>,
+ * <code>getFeature</code>, etc.
+ * @since DOM Level 3
+ */
+ public Object getFeature(String feature,
+ String version);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java
new file mode 100644
index 000000000..877de6efe
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationList.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>DOMImplementationList</code> interface provides the abstraction
+ * of an ordered collection of DOM implementations, without defining or
+ * constraining how this collection is implemented. The items in the
+ * <code>DOMImplementationList</code> are accessible via an integral index,
+ * starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface DOMImplementationList {
+ /**
+ * Returns the <code>index</code>th item in the collection. If
+ * <code>index</code> is greater than or equal to the number of
+ * <code>DOMImplementation</code>s in the list, this returns
+ * <code>null</code>.
+ * @param index Index into the collection.
+ * @return The <code>DOMImplementation</code> at the <code>index</code>
+ * th position in the <code>DOMImplementationList</code>, or
+ * <code>null</code> if that is not a valid index.
+ */
+ public DOMImplementation item(int index);
+
+ /**
+ * The number of <code>DOMImplementation</code>s in the list. The range
+ * of valid child node indices is 0 to <code>length-1</code> inclusive.
+ */
+ public int getLength();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java
new file mode 100644
index 000000000..1c5c0b2fe
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMImplementationSource.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * This interface permits a DOM implementer to supply one or more
+ * implementations, based upon requested features and versions, as specified
+ * in . Each implemented <code>DOMImplementationSource</code> object is
+ * listed in the binding-specific list of available sources so that its
+ * <code>DOMImplementation</code> objects are made available.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface DOMImplementationSource {
+ /**
+ * A method to request the first DOM implementation that supports the
+ * specified features.
+ * @param features A string that specifies which features and versions
+ * are required. This is a space separated list in which each feature
+ * is specified by its name optionally followed by a space and a
+ * version number. This method returns the first item of the list
+ * returned by <code>getDOMImplementationList</code>. As an example,
+ * the string <code>"XML 3.0 Traversal +Events 2.0"</code> will
+ * request a DOM implementation that supports the module "XML" for its
+ * 3.0 version, a module that support of the "Traversal" module for
+ * any version, and the module "Events" for its 2.0 version. The
+ * module "Events" must be accessible using the method
+ * <code>Node.getFeature()</code> and
+ * <code>DOMImplementation.getFeature()</code>.
+ * @return The first DOM implementation that support the desired
+ * features, or <code>null</code> if this source has none.
+ */
+ public DOMImplementation getDOMImplementation(String features);
+
+ /**
+ * A method to request a list of DOM implementations that support the
+ * specified features and versions, as specified in .
+ * @param features A string that specifies which features and versions
+ * are required. This is a space separated list in which each feature
+ * is specified by its name optionally followed by a space and a
+ * version number. This is something like: "XML 3.0 Traversal +Events
+ * 2.0"
+ * @return A list of DOM implementations that support the desired
+ * features.
+ */
+ public DOMImplementationList getDOMImplementationList(String features);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java
new file mode 100644
index 000000000..50cd7d240
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMLocator.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * <code>DOMLocator</code> is an interface that describes a location (e.g.
+ * where an error occurred).
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface DOMLocator {
+ /**
+ * The line number this locator is pointing to, or <code>-1</code> if
+ * there is no column number available.
+ */
+ public int getLineNumber();
+
+ /**
+ * The column number this locator is pointing to, or <code>-1</code> if
+ * there is no column number available.
+ */
+ public int getColumnNumber();
+
+ /**
+ * The byte offset into the input source this locator is pointing to or
+ * <code>-1</code> if there is no byte offset available.
+ */
+ public int getByteOffset();
+
+ /**
+ * The UTF-16, as defined in [Unicode] and Amendment 1 of [ISO/IEC 10646], offset into the input source this locator is pointing to or
+ * <code>-1</code> if there is no UTF-16 offset available.
+ */
+ public int getUtf16Offset();
+
+ /**
+ * The node this locator is pointing to, or <code>null</code> if no node
+ * is available.
+ */
+ public Node getRelatedNode();
+
+ /**
+ * The URI this locator is pointing to, or <code>null</code> if no URI is
+ * available.
+ */
+ public String getUri();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java
new file mode 100644
index 000000000..53a40964e
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DOMStringList.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>DOMStringList</code> interface provides the abstraction of an
+ * ordered collection of <code>DOMString</code> values, without defining or
+ * constraining how this collection is implemented. The items in the
+ * <code>DOMStringList</code> are accessible via an integral index, starting
+ * from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface DOMStringList {
+ /**
+ * Returns the <code>index</code>th item in the collection. If
+ * <code>index</code> is greater than or equal to the number of
+ * <code>DOMString</code>s in the list, this returns <code>null</code>.
+ * @param index Index into the collection.
+ * @return The <code>DOMString</code> at the <code>index</code>th
+ * position in the <code>DOMStringList</code>, or <code>null</code> if
+ * that is not a valid index.
+ */
+ public String item(int index);
+
+ /**
+ * The number of <code>DOMString</code>s in the list. The range of valid
+ * child node indices is 0 to <code>length-1</code> inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Test if a string is part of this <code>DOMStringList</code>.
+ * @param str The string to look for.
+ * @return <code>true</code> if the string has been found,
+ * <code>false</code> otherwise.
+ */
+ public boolean contains(String str);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java
new file mode 100644
index 000000000..3193fa260
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Document.java
@@ -0,0 +1,814 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>Document</code> interface represents the entire HTML or XML
+ * document. Conceptually, it is the root of the document tree, and provides
+ * the primary access to the document's data.
+ * <p>Since elements, text nodes, comments, processing instructions, etc.
+ * cannot exist outside the context of a <code>Document</code>, the
+ * <code>Document</code> interface also contains the factory methods needed
+ * to create these objects. The <code>Node</code> objects created have a
+ * <code>ownerDocument</code> attribute which associates them with the
+ * <code>Document</code> within whose context they were created.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface Document extends Node {
+ /**
+ * The Document Type Declaration (see <code>DocumentType</code>)
+ * associated with this document. For XML documents without a document
+ * type declaration this returns <code>null</code>. For HTML documents,
+ * a <code>DocumentType</code> object may be returned, independently of
+ * the presence or absence of document type declaration in the HTML
+ * document.
+ * <br>This provides direct access to the <code>DocumentType</code> node,
+ * child node of this <code>Document</code>. This node can be set at
+ * document creation time and later changed through the use of child
+ * nodes manipulation methods, such as <code>Node.insertBefore</code>,
+ * or <code>Node.replaceChild</code>. Note, however, that while some
+ * implementations may instantiate different types of
+ * <code>Document</code> objects supporting additional features than the
+ * "Core", such as "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>]
+ * , based on the <code>DocumentType</code> specified at creation time,
+ * changing it afterwards is very unlikely to result in a change of the
+ * features supported.
+ * @version DOM Level 3
+ */
+ public DocumentType getDoctype();
+
+ /**
+ * The <code>DOMImplementation</code> object that handles this document. A
+ * DOM application may use objects from multiple implementations.
+ */
+ public DOMImplementation getImplementation();
+
+ /**
+ * This is a convenience attribute that allows direct access to the child
+ * node that is the document element of the document.
+ */
+ public Element getDocumentElement();
+
+ /**
+ * Creates an element of the type specified. Note that the instance
+ * returned implements the <code>Element</code> interface, so attributes
+ * can be specified directly on the returned object.
+ * <br>In addition, if there are known attributes with default values,
+ * <code>Attr</code> nodes representing them are automatically created
+ * and attached to the element.
+ * <br>To create an element with a qualified name and namespace URI, use
+ * the <code>createElementNS</code> method.
+ * @param tagName The name of the element type to instantiate. For XML,
+ * this is case-sensitive, otherwise it depends on the
+ * case-sensitivity of the markup language in use. In that case, the
+ * name is mapped to the canonical form of that markup by the DOM
+ * implementation.
+ * @return A new <code>Element</code> object with the
+ * <code>nodeName</code> attribute set to <code>tagName</code>, and
+ * <code>localName</code>, <code>prefix</code>, and
+ * <code>namespaceURI</code> set to <code>null</code>.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML
+ * name according to the XML version in use specified in the
+ * <code>Document.xmlVersion</code> attribute.
+ */
+ public Element createElement(String tagName)
+ throws DOMException;
+
+ /**
+ * Creates an empty <code>DocumentFragment</code> object.
+ * @return A new <code>DocumentFragment</code>.
+ */
+ public DocumentFragment createDocumentFragment();
+
+ /**
+ * Creates a <code>Text</code> node given the specified string.
+ * @param data The data for the node.
+ * @return The new <code>Text</code> object.
+ */
+ public Text createTextNode(String data);
+
+ /**
+ * Creates a <code>Comment</code> node given the specified string.
+ * @param data The data for the node.
+ * @return The new <code>Comment</code> object.
+ */
+ public Comment createComment(String data);
+
+ /**
+ * Creates a <code>CDATASection</code> node whose value is the specified
+ * string.
+ * @param data The data for the <code>CDATASection</code> contents.
+ * @return The new <code>CDATASection</code> object.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
+ */
+ public CDATASection createCDATASection(String data)
+ throws DOMException;
+
+ /**
+ * Creates a <code>ProcessingInstruction</code> node given the specified
+ * name and data strings.
+ * @param target The target part of the processing instruction.Unlike
+ * <code>Document.createElementNS</code> or
+ * <code>Document.createAttributeNS</code>, no namespace well-formed
+ * checking is done on the target name. Applications should invoke
+ * <code>Document.normalizeDocument()</code> with the parameter "
+ * namespaces" set to <code>true</code> in order to ensure that the
+ * target name is namespace well-formed.
+ * @param data The data for the node.
+ * @return The new <code>ProcessingInstruction</code> object.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified target is not an XML
+ * name according to the XML version in use specified in the
+ * <code>Document.xmlVersion</code> attribute.
+ * <br>NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
+ */
+ public ProcessingInstruction createProcessingInstruction(String target,
+ String data)
+ throws DOMException;
+
+ /**
+ * Creates an <code>Attr</code> of the given name. Note that the
+ * <code>Attr</code> instance can then be set on an <code>Element</code>
+ * using the <code>setAttributeNode</code> method.
+ * <br>To create an attribute with a qualified name and namespace URI, use
+ * the <code>createAttributeNS</code> method.
+ * @param name The name of the attribute.
+ * @return A new <code>Attr</code> object with the <code>nodeName</code>
+ * attribute set to <code>name</code>, and <code>localName</code>,
+ * <code>prefix</code>, and <code>namespaceURI</code> set to
+ * <code>null</code>. The value of the attribute is the empty string.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML
+ * name according to the XML version in use specified in the
+ * <code>Document.xmlVersion</code> attribute.
+ */
+ public Attr createAttribute(String name)
+ throws DOMException;
+
+ /**
+ * Creates an <code>EntityReference</code> object. In addition, if the
+ * referenced entity is known, the child list of the
+ * <code>EntityReference</code> node is made the same as that of the
+ * corresponding <code>Entity</code> node.
+ * <p ><b>Note:</b> If any descendant of the <code>Entity</code> node has
+ * an unbound namespace prefix, the corresponding descendant of the
+ * created <code>EntityReference</code> node is also unbound; (its
+ * <code>namespaceURI</code> is <code>null</code>). The DOM Level 2 and
+ * 3 do not support any mechanism to resolve namespace prefixes in this
+ * case.
+ * @param name The name of the entity to reference.Unlike
+ * <code>Document.createElementNS</code> or
+ * <code>Document.createAttributeNS</code>, no namespace well-formed
+ * checking is done on the entity name. Applications should invoke
+ * <code>Document.normalizeDocument()</code> with the parameter "
+ * namespaces" set to <code>true</code> in order to ensure that the
+ * entity name is namespace well-formed.
+ * @return The new <code>EntityReference</code> object.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML
+ * name according to the XML version in use specified in the
+ * <code>Document.xmlVersion</code> attribute.
+ * <br>NOT_SUPPORTED_ERR: Raised if this document is an HTML document.
+ */
+ public EntityReference createEntityReference(String name)
+ throws DOMException;
+
+ /**
+ * Returns a <code>NodeList</code> of all the <code>Elements</code> in
+ * document order with a given tag name and are contained in the
+ * document.
+ * @param tagname The name of the tag to match on. The special value "*"
+ * matches all tags. For XML, the <code>tagname</code> parameter is
+ * case-sensitive, otherwise it depends on the case-sensitivity of the
+ * markup language in use.
+ * @return A new <code>NodeList</code> object containing all the matched
+ * <code>Elements</code>.
+ */
+ public NodeList getElementsByTagName(String tagname);
+
+ /**
+ * Imports a node from another document to this document, without altering
+ * or removing the source node from the original document; this method
+ * creates a new copy of the source node. The returned node has no
+ * parent; (<code>parentNode</code> is <code>null</code>).
+ * <br>For all nodes, importing a node creates a node object owned by the
+ * importing document, with attribute values identical to the source
+ * node's <code>nodeName</code> and <code>nodeType</code>, plus the
+ * attributes related to namespaces (<code>prefix</code>,
+ * <code>localName</code>, and <code>namespaceURI</code>). As in the
+ * <code>cloneNode</code> operation, the source node is not altered.
+ * User data associated to the imported node is not carried over.
+ * However, if any <code>UserDataHandlers</code> has been specified
+ * along with the associated data these handlers will be called with the
+ * appropriate parameters before this method returns.
+ * <br>Additional information is copied as appropriate to the
+ * <code>nodeType</code>, attempting to mirror the behavior expected if
+ * a fragment of XML or HTML source was copied from one document to
+ * another, recognizing that the two documents may have different DTDs
+ * in the XML case. The following list describes the specifics for each
+ * type of node.
+ * <dl>
+ * <dt>ATTRIBUTE_NODE</dt>
+ * <dd>The <code>ownerElement</code> attribute
+ * is set to <code>null</code> and the <code>specified</code> flag is
+ * set to <code>true</code> on the generated <code>Attr</code>. The
+ * descendants of the source <code>Attr</code> are recursively imported
+ * and the resulting nodes reassembled to form the corresponding subtree.
+ * Note that the <code>deep</code> parameter has no effect on
+ * <code>Attr</code> nodes; they always carry their children with them
+ * when imported.</dd>
+ * <dt>DOCUMENT_FRAGMENT_NODE</dt>
+ * <dd>If the <code>deep</code> option
+ * was set to <code>true</code>, the descendants of the source
+ * <code>DocumentFragment</code> are recursively imported and the
+ * resulting nodes reassembled under the imported
+ * <code>DocumentFragment</code> to form the corresponding subtree.
+ * Otherwise, this simply generates an empty
+ * <code>DocumentFragment</code>.</dd>
+ * <dt>DOCUMENT_NODE</dt>
+ * <dd><code>Document</code>
+ * nodes cannot be imported.</dd>
+ * <dt>DOCUMENT_TYPE_NODE</dt>
+ * <dd><code>DocumentType</code>
+ * nodes cannot be imported.</dd>
+ * <dt>ELEMENT_NODE</dt>
+ * <dd><em>Specified</em> attribute nodes of the source element are imported, and the generated
+ * <code>Attr</code> nodes are attached to the generated
+ * <code>Element</code>. Default attributes are <em>not</em> copied, though if the document being imported into defines default
+ * attributes for this element name, those are assigned. If the
+ * <code>importNode</code> <code>deep</code> parameter was set to
+ * <code>true</code>, the descendants of the source element are
+ * recursively imported and the resulting nodes reassembled to form the
+ * corresponding subtree.</dd>
+ * <dt>ENTITY_NODE</dt>
+ * <dd><code>Entity</code> nodes can be
+ * imported, however in the current release of the DOM the
+ * <code>DocumentType</code> is readonly. Ability to add these imported
+ * nodes to a <code>DocumentType</code> will be considered for addition
+ * to a future release of the DOM.On import, the <code>publicId</code>,
+ * <code>systemId</code>, and <code>notationName</code> attributes are
+ * copied. If a <code>deep</code> import is requested, the descendants
+ * of the the source <code>Entity</code> are recursively imported and
+ * the resulting nodes reassembled to form the corresponding subtree.</dd>
+ * <dt>
+ * ENTITY_REFERENCE_NODE</dt>
+ * <dd>Only the <code>EntityReference</code> itself is
+ * copied, even if a <code>deep</code> import is requested, since the
+ * source and destination documents might have defined the entity
+ * differently. If the document being imported into provides a
+ * definition for this entity name, its value is assigned.</dd>
+ * <dt>NOTATION_NODE</dt>
+ * <dd>
+ * <code>Notation</code> nodes can be imported, however in the current
+ * release of the DOM the <code>DocumentType</code> is readonly. Ability
+ * to add these imported nodes to a <code>DocumentType</code> will be
+ * considered for addition to a future release of the DOM.On import, the
+ * <code>publicId</code> and <code>systemId</code> attributes are copied.
+ * Note that the <code>deep</code> parameter has no effect on this type
+ * of nodes since they cannot have any children.</dd>
+ * <dt>
+ * PROCESSING_INSTRUCTION_NODE</dt>
+ * <dd>The imported node copies its
+ * <code>target</code> and <code>data</code> values from those of the
+ * source node.Note that the <code>deep</code> parameter has no effect
+ * on this type of nodes since they cannot have any children.</dd>
+ * <dt>TEXT_NODE,
+ * CDATA_SECTION_NODE, COMMENT_NODE</dt>
+ * <dd>These three types of nodes inheriting
+ * from <code>CharacterData</code> copy their <code>data</code> and
+ * <code>length</code> attributes from those of the source node.Note
+ * that the <code>deep</code> parameter has no effect on these types of
+ * nodes since they cannot have any children.</dd>
+ * </dl>
+ * @param importedNode The node to import.
+ * @param deep If <code>true</code>, recursively import the subtree under
+ * the specified node; if <code>false</code>, import only the node
+ * itself, as explained above. This has no effect on nodes that cannot
+ * have any children, and on <code>Attr</code>, and
+ * <code>EntityReference</code> nodes.
+ * @return The imported node that belongs to this <code>Document</code>.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the type of node being imported is not
+ * supported.
+ * <br>INVALID_CHARACTER_ERR: Raised if one of the imported names is not
+ * an XML name according to the XML version in use specified in the
+ * <code>Document.xmlVersion</code> attribute. This may happen when
+ * importing an XML 1.1 [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>] element
+ * into an XML 1.0 document, for instance.
+ * @since DOM Level 2
+ */
+ public Node importNode(Node importedNode,
+ boolean deep)
+ throws DOMException;
+
+ /**
+ * Creates an element of the given qualified name and namespace URI.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value <code>null</code> as the
+ * namespaceURI parameter for methods if they wish to have no namespace.
+ * @param namespaceURI The namespace URI of the element to create.
+ * @param qualifiedName The qualified name of the element type to
+ * instantiate.
+ * @return A new <code>Element</code> object with the following
+ * attributes:
+ * <table border='1' cellpadding='3'>
+ * <tr>
+ * <th>Attribute</th>
+ * <th>Value</th>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Node.nodeName</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>qualifiedName</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Node.namespaceURI</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>namespaceURI</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Node.prefix</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>prefix, extracted
+ * from <code>qualifiedName</code>, or <code>null</code> if there is
+ * no prefix</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Node.localName</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>local name, extracted from
+ * <code>qualifiedName</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Element.tagName</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>qualifiedName</code></td>
+ * </tr>
+ * </table>
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified
+ * <code>qualifiedName</code> is not an XML name according to the XML
+ * version in use specified in the <code>Document.xmlVersion</code>
+ * attribute.
+ * <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is a
+ * malformed qualified name, if the <code>qualifiedName</code> has a
+ * prefix and the <code>namespaceURI</code> is <code>null</code>, or
+ * if the <code>qualifiedName</code> has a prefix that is "xml" and
+ * the <code>namespaceURI</code> is different from "<a href='http://www.w3.org/XML/1998/namespace'>
+ * http://www.w3.org/XML/1998/namespace</a>" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , or if the <code>qualifiedName</code> or its prefix is "xmlns" and
+ * the <code>namespaceURI</code> is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if the <code>namespaceURI</code> is "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>" and neither the <code>qualifiedName</code> nor its prefix is "xmlns".
+ * <br>NOT_SUPPORTED_ERR: Always thrown if the current document does not
+ * support the <code>"XML"</code> feature, since namespaces were
+ * defined by XML.
+ * @since DOM Level 2
+ */
+ public Element createElementNS(String namespaceURI,
+ String qualifiedName)
+ throws DOMException;
+
+ /**
+ * Creates an attribute of the given qualified name and namespace URI.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value <code>null</code> as the
+ * <code>namespaceURI</code> parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to create.
+ * @param qualifiedName The qualified name of the attribute to
+ * instantiate.
+ * @return A new <code>Attr</code> object with the following attributes:
+ * <table border='1' cellpadding='3'>
+ * <tr>
+ * <th>
+ * Attribute</th>
+ * <th>Value</th>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Node.nodeName</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>qualifiedName</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>Node.namespaceURI</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>namespaceURI</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>Node.prefix</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>prefix, extracted from
+ * <code>qualifiedName</code>, or <code>null</code> if there is no
+ * prefix</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Node.localName</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>local name, extracted from
+ * <code>qualifiedName</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Attr.name</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>qualifiedName</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Node.nodeValue</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>the empty
+ * string</td>
+ * </tr>
+ * </table>
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified
+ * <code>qualifiedName</code> is not an XML name according to the XML
+ * version in use specified in the <code>Document.xmlVersion</code>
+ * attribute.
+ * <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is a
+ * malformed qualified name, if the <code>qualifiedName</code> has a
+ * prefix and the <code>namespaceURI</code> is <code>null</code>, if
+ * the <code>qualifiedName</code> has a prefix that is "xml" and the
+ * <code>namespaceURI</code> is different from "<a href='http://www.w3.org/XML/1998/namespace'>
+ * http://www.w3.org/XML/1998/namespace</a>", if the <code>qualifiedName</code> or its prefix is "xmlns" and the
+ * <code>namespaceURI</code> is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if the <code>namespaceURI</code> is "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>" and neither the <code>qualifiedName</code> nor its prefix is "xmlns".
+ * <br>NOT_SUPPORTED_ERR: Always thrown if the current document does not
+ * support the <code>"XML"</code> feature, since namespaces were
+ * defined by XML.
+ * @since DOM Level 2
+ */
+ public Attr createAttributeNS(String namespaceURI,
+ String qualifiedName)
+ throws DOMException;
+
+ /**
+ * Returns a <code>NodeList</code> of all the <code>Elements</code> with a
+ * given local name and namespace URI in document order.
+ * @param namespaceURI The namespace URI of the elements to match on. The
+ * special value <code>"*"</code> matches all namespaces.
+ * @param localName The local name of the elements to match on. The
+ * special value "*" matches all local names.
+ * @return A new <code>NodeList</code> object containing all the matched
+ * <code>Elements</code>.
+ * @since DOM Level 2
+ */
+ public NodeList getElementsByTagNameNS(String namespaceURI,
+ String localName);
+
+ /**
+ * Returns the <code>Element</code> that has an ID attribute with the
+ * given value. If no such element exists, this returns <code>null</code>
+ * . If more than one element has an ID attribute with that value, what
+ * is returned is undefined.
+ * <br> The DOM implementation is expected to use the attribute
+ * <code>Attr.isId</code> to determine if an attribute is of type ID.
+ * <p ><b>Note:</b> Attributes with the name "ID" or "id" are not of type
+ * ID unless so defined.
+ * @param elementId The unique <code>id</code> value for an element.
+ * @return The matching element or <code>null</code> if there is none.
+ * @since DOM Level 2
+ */
+ public Element getElementById(String elementId);
+
+ /**
+ * An attribute specifying the encoding used for this document at the time
+ * of the parsing. This is <code>null</code> when it is not known, such
+ * as when the <code>Document</code> was created in memory.
+ * @since DOM Level 3
+ */
+ public String getInputEncoding();
+
+ /**
+ * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the encoding of this document. This is <code>null</code> when
+ * unspecified or when it is not known, such as when the
+ * <code>Document</code> was created in memory.
+ * @since DOM Level 3
+ */
+ public String getXmlEncoding();
+
+ /**
+ * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, whether this document is standalone. This is <code>false</code> when
+ * unspecified.
+ * <p ><b>Note:</b> No verification is done on the value when setting
+ * this attribute. Applications should use
+ * <code>Document.normalizeDocument()</code> with the "validate"
+ * parameter to verify if the value matches the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-rmd'>validity
+ * constraint for standalone document declaration</a> as defined in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>].
+ * @since DOM Level 3
+ */
+ public boolean getXmlStandalone();
+ /**
+ * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, whether this document is standalone. This is <code>false</code> when
+ * unspecified.
+ * <p ><b>Note:</b> No verification is done on the value when setting
+ * this attribute. Applications should use
+ * <code>Document.normalizeDocument()</code> with the "validate"
+ * parameter to verify if the value matches the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-rmd'>validity
+ * constraint for standalone document declaration</a> as defined in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>].
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if this document does not support the
+ * "XML" feature.
+ * @since DOM Level 3
+ */
+ public void setXmlStandalone(boolean xmlStandalone)
+ throws DOMException;
+
+ /**
+ * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the version number of this document. If there is no declaration and if
+ * this document supports the "XML" feature, the value is
+ * <code>"1.0"</code>. If this document does not support the "XML"
+ * feature, the value is always <code>null</code>. Changing this
+ * attribute will affect methods that check for invalid characters in
+ * XML names. Application should invoke
+ * <code>Document.normalizeDocument()</code> in order to check for
+ * invalid characters in the <code>Node</code>s that are already part of
+ * this <code>Document</code>.
+ * <br> DOM applications may use the
+ * <code>DOMImplementation.hasFeature(feature, version)</code> method
+ * with parameter values "XMLVersion" and "1.0" (respectively) to
+ * determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOM
+ * applications may use the same method with parameter values
+ * "XMLVersion" and "1.1" (respectively) to determine if an
+ * implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]. In both
+ * cases, in order to support XML, an implementation must also support
+ * the "XML" feature defined in this specification. <code>Document</code>
+ * objects supporting a version of the "XMLVersion" feature must not
+ * raise a <code>NOT_SUPPORTED_ERR</code> exception for the same version
+ * number when using <code>Document.xmlVersion</code>.
+ * @since DOM Level 3
+ */
+ public String getXmlVersion();
+ /**
+ * An attribute specifying, as part of the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#NT-XMLDecl'>XML declaration</a>, the version number of this document. If there is no declaration and if
+ * this document supports the "XML" feature, the value is
+ * <code>"1.0"</code>. If this document does not support the "XML"
+ * feature, the value is always <code>null</code>. Changing this
+ * attribute will affect methods that check for invalid characters in
+ * XML names. Application should invoke
+ * <code>Document.normalizeDocument()</code> in order to check for
+ * invalid characters in the <code>Node</code>s that are already part of
+ * this <code>Document</code>.
+ * <br> DOM applications may use the
+ * <code>DOMImplementation.hasFeature(feature, version)</code> method
+ * with parameter values "XMLVersion" and "1.0" (respectively) to
+ * determine if an implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. DOM
+ * applications may use the same method with parameter values
+ * "XMLVersion" and "1.1" (respectively) to determine if an
+ * implementation supports [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]. In both
+ * cases, in order to support XML, an implementation must also support
+ * the "XML" feature defined in this specification. <code>Document</code>
+ * objects supporting a version of the "XMLVersion" feature must not
+ * raise a <code>NOT_SUPPORTED_ERR</code> exception for the same version
+ * number when using <code>Document.xmlVersion</code>.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the version is set to a value that is
+ * not supported by this <code>Document</code> or if this document
+ * does not support the "XML" feature.
+ * @since DOM Level 3
+ */
+ public void setXmlVersion(String xmlVersion)
+ throws DOMException;
+
+ /**
+ * An attribute specifying whether error checking is enforced or not. When
+ * set to <code>false</code>, the implementation is free to not test
+ * every possible error case normally defined on DOM operations, and not
+ * raise any <code>DOMException</code> on DOM operations or report
+ * errors while using <code>Document.normalizeDocument()</code>. In case
+ * of error, the behavior is undefined. This attribute is
+ * <code>true</code> by default.
+ * @since DOM Level 3
+ */
+ public boolean getStrictErrorChecking();
+ /**
+ * An attribute specifying whether error checking is enforced or not. When
+ * set to <code>false</code>, the implementation is free to not test
+ * every possible error case normally defined on DOM operations, and not
+ * raise any <code>DOMException</code> on DOM operations or report
+ * errors while using <code>Document.normalizeDocument()</code>. In case
+ * of error, the behavior is undefined. This attribute is
+ * <code>true</code> by default.
+ * @since DOM Level 3
+ */
+ public void setStrictErrorChecking(boolean strictErrorChecking);
+
+ /**
+ * The location of the document or <code>null</code> if undefined or if
+ * the <code>Document</code> was created using
+ * <code>DOMImplementation.createDocument</code>. No lexical checking is
+ * performed when setting this attribute; this could result in a
+ * <code>null</code> value returned when using <code>Node.baseURI</code>
+ * .
+ * <br> Beware that when the <code>Document</code> supports the feature
+ * "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>]
+ * , the href attribute of the HTML BASE element takes precedence over
+ * this attribute when computing <code>Node.baseURI</code>.
+ * @since DOM Level 3
+ */
+ public String getDocumentURI();
+ /**
+ * The location of the document or <code>null</code> if undefined or if
+ * the <code>Document</code> was created using
+ * <code>DOMImplementation.createDocument</code>. No lexical checking is
+ * performed when setting this attribute; this could result in a
+ * <code>null</code> value returned when using <code>Node.baseURI</code>
+ * .
+ * <br> Beware that when the <code>Document</code> supports the feature
+ * "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>]
+ * , the href attribute of the HTML BASE element takes precedence over
+ * this attribute when computing <code>Node.baseURI</code>.
+ * @since DOM Level 3
+ */
+ public void setDocumentURI(String documentURI);
+
+ /**
+ * Attempts to adopt a node from another document to this document. If
+ * supported, it changes the <code>ownerDocument</code> of the source
+ * node, its children, as well as the attached attribute nodes if there
+ * are any. If the source node has a parent it is first removed from the
+ * child list of its parent. This effectively allows moving a subtree
+ * from one document to another (unlike <code>importNode()</code> which
+ * create a copy of the source node instead of moving it). When it
+ * fails, applications should use <code>Document.importNode()</code>
+ * instead. Note that if the adopted node is already part of this
+ * document (i.e. the source and target document are the same), this
+ * method still has the effect of removing the source node from the
+ * child list of its parent, if any. The following list describes the
+ * specifics for each type of node.
+ * <dl>
+ * <dt>ATTRIBUTE_NODE</dt>
+ * <dd>The
+ * <code>ownerElement</code> attribute is set to <code>null</code> and
+ * the <code>specified</code> flag is set to <code>true</code> on the
+ * adopted <code>Attr</code>. The descendants of the source
+ * <code>Attr</code> are recursively adopted.</dd>
+ * <dt>DOCUMENT_FRAGMENT_NODE</dt>
+ * <dd>The
+ * descendants of the source node are recursively adopted.</dd>
+ * <dt>DOCUMENT_NODE</dt>
+ * <dd>
+ * <code>Document</code> nodes cannot be adopted.</dd>
+ * <dt>DOCUMENT_TYPE_NODE</dt>
+ * <dd>
+ * <code>DocumentType</code> nodes cannot be adopted.</dd>
+ * <dt>ELEMENT_NODE</dt>
+ * <dd><em>Specified</em> attribute nodes of the source element are adopted. Default attributes
+ * are discarded, though if the document being adopted into defines
+ * default attributes for this element name, those are assigned. The
+ * descendants of the source element are recursively adopted.</dd>
+ * <dt>ENTITY_NODE</dt>
+ * <dd>
+ * <code>Entity</code> nodes cannot be adopted.</dd>
+ * <dt>ENTITY_REFERENCE_NODE</dt>
+ * <dd>Only
+ * the <code>EntityReference</code> node itself is adopted, the
+ * descendants are discarded, since the source and destination documents
+ * might have defined the entity differently. If the document being
+ * imported into provides a definition for this entity name, its value
+ * is assigned.</dd>
+ * <dt>NOTATION_NODE</dt>
+ * <dd><code>Notation</code> nodes cannot be
+ * adopted.</dd>
+ * <dt>PROCESSING_INSTRUCTION_NODE, TEXT_NODE, CDATA_SECTION_NODE,
+ * COMMENT_NODE</dt>
+ * <dd>These nodes can all be adopted. No specifics.</dd>
+ * </dl>
+ * <p ><b>Note:</b> Since it does not create new nodes unlike the
+ * <code>Document.importNode()</code> method, this method does not raise
+ * an <code>INVALID_CHARACTER_ERR</code> exception, and applications
+ * should use the <code>Document.normalizeDocument()</code> method to
+ * check if an imported name is not an XML name according to the XML
+ * version in use.
+ * @param source The node to move into this document.
+ * @return The adopted node, or <code>null</code> if this operation
+ * fails, such as when the source node comes from a different
+ * implementation.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the source node is of type
+ * <code>DOCUMENT</code>, <code>DOCUMENT_TYPE</code>.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised when the source node is
+ * readonly.
+ * @since DOM Level 3
+ */
+ public Node adoptNode(Node source)
+ throws DOMException;
+
+ /**
+ * The configuration used when <code>Document.normalizeDocument()</code>
+ * is invoked.
+ * @since DOM Level 3
+ */
+ public DOMConfiguration getDomConfig();
+
+ /**
+ * This method acts as if the document was going through a save and load
+ * cycle, putting the document in a "normal" form. As a consequence,
+ * this method updates the replacement tree of
+ * <code>EntityReference</code> nodes and normalizes <code>Text</code>
+ * nodes, as defined in the method <code>Node.normalize()</code>.
+ * <br> Otherwise, the actual result depends on the features being set on
+ * the <code>Document.domConfig</code> object and governing what
+ * operations actually take place. Noticeably this method could also
+ * make the document namespace well-formed according to the algorithm
+ * described in , check the character normalization, remove the
+ * <code>CDATASection</code> nodes, etc. See
+ * <code>DOMConfiguration</code> for details.
+ * <pre>// Keep in the document
+ * the information defined // in the XML Information Set (Java example)
+ * DOMConfiguration docConfig = myDocument.getDomConfig();
+ * docConfig.setParameter("infoset", Boolean.TRUE);
+ * myDocument.normalizeDocument();</pre>
+ *
+ * <br>Mutation events, when supported, are generated to reflect the
+ * changes occurring on the document.
+ * <br> If errors occur during the invocation of this method, such as an
+ * attempt to update a read-only node or a <code>Node.nodeName</code>
+ * contains an invalid character according to the XML version in use,
+ * errors or warnings (<code>DOMError.SEVERITY_ERROR</code> or
+ * <code>DOMError.SEVERITY_WARNING</code>) will be reported using the
+ * <code>DOMErrorHandler</code> object associated with the "error-handler
+ * " parameter. Note this method might also report fatal errors (
+ * <code>DOMError.SEVERITY_FATAL_ERROR</code>) if an implementation
+ * cannot recover from an error.
+ * @since DOM Level 3
+ */
+ public void normalizeDocument();
+
+ /**
+ * Rename an existing node of type <code>ELEMENT_NODE</code> or
+ * <code>ATTRIBUTE_NODE</code>.
+ * <br>When possible this simply changes the name of the given node,
+ * otherwise this creates a new node with the specified name and
+ * replaces the existing node with the new node as described below.
+ * <br>If simply changing the name of the given node is not possible, the
+ * following operations are performed: a new node is created, any
+ * registered event listener is registered on the new node, any user
+ * data attached to the old node is removed from that node, the old node
+ * is removed from its parent if it has one, the children are moved to
+ * the new node, if the renamed node is an <code>Element</code> its
+ * attributes are moved to the new node, the new node is inserted at the
+ * position the old node used to have in its parent's child nodes list
+ * if it has one, the user data that was attached to the old node is
+ * attached to the new node.
+ * <br>When the node being renamed is an <code>Element</code> only the
+ * specified attributes are moved, default attributes originated from
+ * the DTD are updated according to the new element name. In addition,
+ * the implementation may update default attributes from other schemas.
+ * Applications should use <code>Document.normalizeDocument()</code> to
+ * guarantee these attributes are up-to-date.
+ * <br>When the node being renamed is an <code>Attr</code> that is
+ * attached to an <code>Element</code>, the node is first removed from
+ * the <code>Element</code> attributes map. Then, once renamed, either
+ * by modifying the existing node or creating a new one as described
+ * above, it is put back.
+ * <br>In addition,
+ * <ul>
+ * <li> a user data event <code>NODE_RENAMED</code> is fired,
+ * </li>
+ * <li>
+ * when the implementation supports the feature "MutationNameEvents",
+ * each mutation operation involved in this method fires the appropriate
+ * event, and in the end the event {
+ * <code>http://www.w3.org/2001/xml-events</code>,
+ * <code>DOMElementNameChanged</code>} or {
+ * <code>http://www.w3.org/2001/xml-events</code>,
+ * <code>DOMAttributeNameChanged</code>} is fired.
+ * </li>
+ * </ul>
+ * @param n The node to rename.
+ * @param namespaceURI The new namespace URI.
+ * @param qualifiedName The new qualified name.
+ * @return The renamed node. This is either the specified node or the new
+ * node that was created to replace the specified node.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised when the type of the specified node is
+ * neither <code>ELEMENT_NODE</code> nor <code>ATTRIBUTE_NODE</code>,
+ * or if the implementation does not support the renaming of the
+ * document element.
+ * <br>INVALID_CHARACTER_ERR: Raised if the new qualified name is not an
+ * XML name according to the XML version in use specified in the
+ * <code>Document.xmlVersion</code> attribute.
+ * <br>WRONG_DOCUMENT_ERR: Raised when the specified node was created
+ * from a different document than this document.
+ * <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is a
+ * malformed qualified name, if the <code>qualifiedName</code> has a
+ * prefix and the <code>namespaceURI</code> is <code>null</code>, or
+ * if the <code>qualifiedName</code> has a prefix that is "xml" and
+ * the <code>namespaceURI</code> is different from "<a href='http://www.w3.org/XML/1998/namespace'>
+ * http://www.w3.org/XML/1998/namespace</a>" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * . Also raised, when the node being renamed is an attribute, if the
+ * <code>qualifiedName</code>, or its prefix, is "xmlns" and the
+ * <code>namespaceURI</code> is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>".
+ * @since DOM Level 3
+ */
+ public Node renameNode(Node n,
+ String namespaceURI,
+ String qualifiedName)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java
new file mode 100644
index 000000000..68739154e
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentFragment.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * <code>DocumentFragment</code> is a "lightweight" or "minimal"
+ * <code>Document</code> object. It is very common to want to be able to
+ * extract a portion of a document's tree or to create a new fragment of a
+ * document. Imagine implementing a user command like cut or rearranging a
+ * document by moving fragments around. It is desirable to have an object
+ * which can hold such fragments and it is quite natural to use a Node for
+ * this purpose. While it is true that a <code>Document</code> object could
+ * fulfill this role, a <code>Document</code> object can potentially be a
+ * heavyweight object, depending on the underlying implementation. What is
+ * really needed for this is a very lightweight object.
+ * <code>DocumentFragment</code> is such an object.
+ * <p>Furthermore, various operations -- such as inserting nodes as children
+ * of another <code>Node</code> -- may take <code>DocumentFragment</code>
+ * objects as arguments; this results in all the child nodes of the
+ * <code>DocumentFragment</code> being moved to the child list of this node.
+ * <p>The children of a <code>DocumentFragment</code> node are zero or more
+ * nodes representing the tops of any sub-trees defining the structure of
+ * the document. <code>DocumentFragment</code> nodes do not need to be
+ * well-formed XML documents (although they do need to follow the rules
+ * imposed upon well-formed XML parsed entities, which can have multiple top
+ * nodes). For example, a <code>DocumentFragment</code> might have only one
+ * child and that child node could be a <code>Text</code> node. Such a
+ * structure model represents neither an HTML document nor a well-formed XML
+ * document.
+ * <p>When a <code>DocumentFragment</code> is inserted into a
+ * <code>Document</code> (or indeed any other <code>Node</code> that may
+ * take children) the children of the <code>DocumentFragment</code> and not
+ * the <code>DocumentFragment</code> itself are inserted into the
+ * <code>Node</code>. This makes the <code>DocumentFragment</code> very
+ * useful when the user wishes to create nodes that are siblings; the
+ * <code>DocumentFragment</code> acts as the parent of these nodes so that
+ * the user can use the standard methods from the <code>Node</code>
+ * interface, such as <code>Node.insertBefore</code> and
+ * <code>Node.appendChild</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface DocumentFragment extends Node {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java
new file mode 100644
index 000000000..785578171
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/DocumentType.java
@@ -0,0 +1,83 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * Each <code>Document</code> has a <code>doctype</code> attribute whose value
+ * is either <code>null</code> or a <code>DocumentType</code> object. The
+ * <code>DocumentType</code> interface in the DOM Core provides an interface
+ * to the list of entities that are defined for the document, and little
+ * else because the effect of namespaces and the various XML schema efforts
+ * on DTD representation are not clearly understood as of this writing.
+ * <p>DOM Level 3 doesn't support editing <code>DocumentType</code> nodes.
+ * <code>DocumentType</code> nodes are read-only.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface DocumentType extends Node {
+ /**
+ * The name of DTD; i.e., the name immediately following the
+ * <code>DOCTYPE</code> keyword.
+ */
+ public String getName();
+
+ /**
+ * A <code>NamedNodeMap</code> containing the general entities, both
+ * external and internal, declared in the DTD. Parameter entities are
+ * not contained. Duplicates are discarded. For example in:
+ * <pre>&lt;!DOCTYPE
+ * ex SYSTEM "ex.dtd" [ &lt;!ENTITY foo "foo"&gt; &lt;!ENTITY bar
+ * "bar"&gt; &lt;!ENTITY bar "bar2"&gt; &lt;!ENTITY % baz "baz"&gt;
+ * ]&gt; &lt;ex/&gt;</pre>
+ * the interface provides access to <code>foo</code>
+ * and the first declaration of <code>bar</code> but not the second
+ * declaration of <code>bar</code> or <code>baz</code>. Every node in
+ * this map also implements the <code>Entity</code> interface.
+ * <br>The DOM Level 2 does not support editing entities, therefore
+ * <code>entities</code> cannot be altered in any way.
+ */
+ public NamedNodeMap getEntities();
+
+ /**
+ * A <code>NamedNodeMap</code> containing the notations declared in the
+ * DTD. Duplicates are discarded. Every node in this map also implements
+ * the <code>Notation</code> interface.
+ * <br>The DOM Level 2 does not support editing notations, therefore
+ * <code>notations</code> cannot be altered in any way.
+ */
+ public NamedNodeMap getNotations();
+
+ /**
+ * The public identifier of the external subset.
+ * @since DOM Level 2
+ */
+ public String getPublicId();
+
+ /**
+ * The system identifier of the external subset. This may be an absolute
+ * URI or not.
+ * @since DOM Level 2
+ */
+ public String getSystemId();
+
+ /**
+ * The internal subset as a string, or <code>null</code> if there is none.
+ * This is does not contain the delimiting square brackets.
+ * <p ><b>Note:</b> The actual content returned depends on how much
+ * information is available to the implementation. This may vary
+ * depending on various parameters, including the XML processor used to
+ * build the document.
+ * @since DOM Level 2
+ */
+ public String getInternalSubset();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java
new file mode 100644
index 000000000..beca7fc87
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Element.java
@@ -0,0 +1,439 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>Element</code> interface represents an element in an HTML or XML
+ * document. Elements may have attributes associated with them; since the
+ * <code>Element</code> interface inherits from <code>Node</code>, the
+ * generic <code>Node</code> interface attribute <code>attributes</code> may
+ * be used to retrieve the set of all attributes for an element. There are
+ * methods on the <code>Element</code> interface to retrieve either an
+ * <code>Attr</code> object by name or an attribute value by name. In XML,
+ * where an attribute value may contain entity references, an
+ * <code>Attr</code> object should be retrieved to examine the possibly
+ * fairly complex sub-tree representing the attribute value. On the other
+ * hand, in HTML, where all attributes have simple string values, methods to
+ * directly access an attribute value can safely be used as a convenience.
+ * <p ><b>Note:</b> In DOM Level 2, the method <code>normalize</code> is
+ * inherited from the <code>Node</code> interface where it was moved.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface Element extends Node {
+ /**
+ * The name of the element. If <code>Node.localName</code> is different
+ * from <code>null</code>, this attribute is a qualified name. For
+ * example, in:
+ * <pre> &lt;elementExample id="demo"&gt; ...
+ * &lt;/elementExample&gt; , </pre>
+ * <code>tagName</code> has the value
+ * <code>"elementExample"</code>. Note that this is case-preserving in
+ * XML, as are all of the operations of the DOM. The HTML DOM returns
+ * the <code>tagName</code> of an HTML element in the canonical
+ * uppercase form, regardless of the case in the source HTML document.
+ */
+ public String getTagName();
+
+ /**
+ * Retrieves an attribute value by name.
+ * @param name The name of the attribute to retrieve.
+ * @return The <code>Attr</code> value as a string, or the empty string
+ * if that attribute does not have a specified or default value.
+ */
+ public String getAttribute(String name);
+
+ /**
+ * Adds a new attribute. If an attribute with that name is already present
+ * in the element, its value is changed to be that of the value
+ * parameter. This value is a simple string; it is not parsed as it is
+ * being set. So any markup (such as syntax to be recognized as an
+ * entity reference) is treated as literal text, and needs to be
+ * appropriately escaped by the implementation when it is written out.
+ * In order to assign an attribute value that contains entity
+ * references, the user must create an <code>Attr</code> node plus any
+ * <code>Text</code> and <code>EntityReference</code> nodes, build the
+ * appropriate subtree, and use <code>setAttributeNode</code> to assign
+ * it as the value of an attribute.
+ * <br>To set an attribute with a qualified name and namespace URI, use
+ * the <code>setAttributeNS</code> method.
+ * @param name The name of the attribute to create or alter.
+ * @param value Value to set in string form.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified name is not an XML
+ * name according to the XML version in use specified in the
+ * <code>Document.xmlVersion</code> attribute.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void setAttribute(String name,
+ String value)
+ throws DOMException;
+
+ /**
+ * Removes an attribute by name. If a default value for the removed
+ * attribute is defined in the DTD, a new attribute immediately appears
+ * with the default value as well as the corresponding namespace URI,
+ * local name, and prefix when applicable. The implementation may handle
+ * default values from other schemas similarly but applications should
+ * use <code>Document.normalizeDocument()</code> to guarantee this
+ * information is up-to-date.
+ * <br>If no attribute with this name is found, this method has no effect.
+ * <br>To remove an attribute by local name and namespace URI, use the
+ * <code>removeAttributeNS</code> method.
+ * @param name The name of the attribute to remove.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public void removeAttribute(String name)
+ throws DOMException;
+
+ /**
+ * Retrieves an attribute node by name.
+ * <br>To retrieve an attribute node by qualified name and namespace URI,
+ * use the <code>getAttributeNodeNS</code> method.
+ * @param name The name (<code>nodeName</code>) of the attribute to
+ * retrieve.
+ * @return The <code>Attr</code> node with the specified name (
+ * <code>nodeName</code>) or <code>null</code> if there is no such
+ * attribute.
+ */
+ public Attr getAttributeNode(String name);
+
+ /**
+ * Adds a new attribute node. If an attribute with that name (
+ * <code>nodeName</code>) is already present in the element, it is
+ * replaced by the new one. Replacing an attribute node by itself has no
+ * effect.
+ * <br>To add a new attribute node with a qualified name and namespace
+ * URI, use the <code>setAttributeNodeNS</code> method.
+ * @param newAttr The <code>Attr</code> node to add to the attribute list.
+ * @return If the <code>newAttr</code> attribute replaces an existing
+ * attribute, the replaced <code>Attr</code> node is returned,
+ * otherwise <code>null</code> is returned.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a
+ * different document than the one that created the element.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an
+ * attribute of another <code>Element</code> object. The DOM user must
+ * explicitly clone <code>Attr</code> nodes to re-use them in other
+ * elements.
+ */
+ public Attr setAttributeNode(Attr newAttr)
+ throws DOMException;
+
+ /**
+ * Removes the specified attribute node. If a default value for the
+ * removed <code>Attr</code> node is defined in the DTD, a new node
+ * immediately appears with the default value as well as the
+ * corresponding namespace URI, local name, and prefix when applicable.
+ * The implementation may handle default values from other schemas
+ * similarly but applications should use
+ * <code>Document.normalizeDocument()</code> to guarantee this
+ * information is up-to-date.
+ * @param oldAttr The <code>Attr</code> node to remove from the attribute
+ * list.
+ * @return The <code>Attr</code> node that was removed.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>NOT_FOUND_ERR: Raised if <code>oldAttr</code> is not an attribute
+ * of the element.
+ */
+ public Attr removeAttributeNode(Attr oldAttr)
+ throws DOMException;
+
+ /**
+ * Returns a <code>NodeList</code> of all descendant <code>Elements</code>
+ * with a given tag name, in document order.
+ * @param name The name of the tag to match on. The special value "*"
+ * matches all tags.
+ * @return A list of matching <code>Element</code> nodes.
+ */
+ public NodeList getElementsByTagName(String name);
+
+ /**
+ * Retrieves an attribute value by local name and namespace URI.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value <code>null</code> as the
+ * <code>namespaceURI</code> parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to retrieve.
+ * @param localName The local name of the attribute to retrieve.
+ * @return The <code>Attr</code> value as a string, or the empty string
+ * if that attribute does not have a specified or default value.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature <code>"XML"</code> and the language exposed
+ * through the Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public String getAttributeNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Adds a new attribute. If an attribute with the same local name and
+ * namespace URI is already present on the element, its prefix is
+ * changed to be the prefix part of the <code>qualifiedName</code>, and
+ * its value is changed to be the <code>value</code> parameter. This
+ * value is a simple string; it is not parsed as it is being set. So any
+ * markup (such as syntax to be recognized as an entity reference) is
+ * treated as literal text, and needs to be appropriately escaped by the
+ * implementation when it is written out. In order to assign an
+ * attribute value that contains entity references, the user must create
+ * an <code>Attr</code> node plus any <code>Text</code> and
+ * <code>EntityReference</code> nodes, build the appropriate subtree,
+ * and use <code>setAttributeNodeNS</code> or
+ * <code>setAttributeNode</code> to assign it as the value of an
+ * attribute.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value <code>null</code> as the
+ * <code>namespaceURI</code> parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to create or
+ * alter.
+ * @param qualifiedName The qualified name of the attribute to create or
+ * alter.
+ * @param value The value to set in string form.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified qualified name is not
+ * an XML name according to the XML version in use specified in the
+ * <code>Document.xmlVersion</code> attribute.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is
+ * malformed per the Namespaces in XML specification, if the
+ * <code>qualifiedName</code> has a prefix and the
+ * <code>namespaceURI</code> is <code>null</code>, if the
+ * <code>qualifiedName</code> has a prefix that is "xml" and the
+ * <code>namespaceURI</code> is different from "<a href='http://www.w3.org/XML/1998/namespace'>
+ * http://www.w3.org/XML/1998/namespace</a>", if the <code>qualifiedName</code> or its prefix is "xmlns" and the
+ * <code>namespaceURI</code> is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if the <code>namespaceURI</code> is "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>" and neither the <code>qualifiedName</code> nor its prefix is "xmlns".
+ * <br>NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature <code>"XML"</code> and the language exposed
+ * through the Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public void setAttributeNS(String namespaceURI,
+ String qualifiedName,
+ String value)
+ throws DOMException;
+
+ /**
+ * Removes an attribute by local name and namespace URI. If a default
+ * value for the removed attribute is defined in the DTD, a new
+ * attribute immediately appears with the default value as well as the
+ * corresponding namespace URI, local name, and prefix when applicable.
+ * The implementation may handle default values from other schemas
+ * similarly but applications should use
+ * <code>Document.normalizeDocument()</code> to guarantee this
+ * information is up-to-date.
+ * <br>If no attribute with this local name and namespace URI is found,
+ * this method has no effect.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value <code>null</code> as the
+ * <code>namespaceURI</code> parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to remove.
+ * @param localName The local name of the attribute to remove.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature <code>"XML"</code> and the language exposed
+ * through the Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public void removeAttributeNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Retrieves an <code>Attr</code> node by local name and namespace URI.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value <code>null</code> as the
+ * <code>namespaceURI</code> parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to retrieve.
+ * @param localName The local name of the attribute to retrieve.
+ * @return The <code>Attr</code> node with the specified attribute local
+ * name and namespace URI or <code>null</code> if there is no such
+ * attribute.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature <code>"XML"</code> and the language exposed
+ * through the Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public Attr getAttributeNodeNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Adds a new attribute. If an attribute with that local name and that
+ * namespace URI is already present in the element, it is replaced by
+ * the new one. Replacing an attribute node by itself has no effect.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value <code>null</code> as the
+ * <code>namespaceURI</code> parameter for methods if they wish to have
+ * no namespace.
+ * @param newAttr The <code>Attr</code> node to add to the attribute list.
+ * @return If the <code>newAttr</code> attribute replaces an existing
+ * attribute with the same local name and namespace URI, the replaced
+ * <code>Attr</code> node is returned, otherwise <code>null</code> is
+ * returned.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if <code>newAttr</code> was created from a
+ * different document than the one that created the element.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>INUSE_ATTRIBUTE_ERR: Raised if <code>newAttr</code> is already an
+ * attribute of another <code>Element</code> object. The DOM user must
+ * explicitly clone <code>Attr</code> nodes to re-use them in other
+ * elements.
+ * <br>NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature <code>"XML"</code> and the language exposed
+ * through the Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public Attr setAttributeNodeNS(Attr newAttr)
+ throws DOMException;
+
+ /**
+ * Returns a <code>NodeList</code> of all the descendant
+ * <code>Elements</code> with a given local name and namespace URI in
+ * document order.
+ * @param namespaceURI The namespace URI of the elements to match on. The
+ * special value "*" matches all namespaces.
+ * @param localName The local name of the elements to match on. The
+ * special value "*" matches all local names.
+ * @return A new <code>NodeList</code> object containing all the matched
+ * <code>Elements</code>.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature <code>"XML"</code> and the language exposed
+ * through the Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public NodeList getElementsByTagNameNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Returns <code>true</code> when an attribute with a given name is
+ * specified on this element or has a default value, <code>false</code>
+ * otherwise.
+ * @param name The name of the attribute to look for.
+ * @return <code>true</code> if an attribute with the given name is
+ * specified on this element or has a default value, <code>false</code>
+ * otherwise.
+ * @since DOM Level 2
+ */
+ public boolean hasAttribute(String name);
+
+ /**
+ * Returns <code>true</code> when an attribute with a given local name and
+ * namespace URI is specified on this element or has a default value,
+ * <code>false</code> otherwise.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value <code>null</code> as the
+ * <code>namespaceURI</code> parameter for methods if they wish to have
+ * no namespace.
+ * @param namespaceURI The namespace URI of the attribute to look for.
+ * @param localName The local name of the attribute to look for.
+ * @return <code>true</code> if an attribute with the given local name
+ * and namespace URI is specified or has a default value on this
+ * element, <code>false</code> otherwise.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature <code>"XML"</code> and the language exposed
+ * through the Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public boolean hasAttributeNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * The type information associated with this element.
+ * @since DOM Level 3
+ */
+ public TypeInfo getSchemaTypeInfo();
+
+ /**
+ * If the parameter <code>isId</code> is <code>true</code>, this method
+ * declares the specified attribute to be a user-determined ID attribute
+ * . This affects the value of <code>Attr.isId</code> and the behavior
+ * of <code>Document.getElementById</code>, but does not change any
+ * schema that may be in use, in particular this does not affect the
+ * <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code>
+ * node. Use the value <code>false</code> for the parameter
+ * <code>isId</code> to undeclare an attribute for being a
+ * user-determined ID attribute.
+ * <br> To specify an attribute by local name and namespace URI, use the
+ * <code>setIdAttributeNS</code> method.
+ * @param name The name of the attribute.
+ * @param isId Whether the attribute is a of type ID.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>NOT_FOUND_ERR: Raised if the specified node is not an attribute
+ * of this element.
+ * @since DOM Level 3
+ */
+ public void setIdAttribute(String name,
+ boolean isId)
+ throws DOMException;
+
+ /**
+ * If the parameter <code>isId</code> is <code>true</code>, this method
+ * declares the specified attribute to be a user-determined ID attribute
+ * . This affects the value of <code>Attr.isId</code> and the behavior
+ * of <code>Document.getElementById</code>, but does not change any
+ * schema that may be in use, in particular this does not affect the
+ * <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code>
+ * node. Use the value <code>false</code> for the parameter
+ * <code>isId</code> to undeclare an attribute for being a
+ * user-determined ID attribute.
+ * @param namespaceURI The namespace URI of the attribute.
+ * @param localName The local name of the attribute.
+ * @param isId Whether the attribute is a of type ID.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>NOT_FOUND_ERR: Raised if the specified node is not an attribute
+ * of this element.
+ * @since DOM Level 3
+ */
+ public void setIdAttributeNS(String namespaceURI,
+ String localName,
+ boolean isId)
+ throws DOMException;
+
+ /**
+ * If the parameter <code>isId</code> is <code>true</code>, this method
+ * declares the specified attribute to be a user-determined ID attribute
+ * . This affects the value of <code>Attr.isId</code> and the behavior
+ * of <code>Document.getElementById</code>, but does not change any
+ * schema that may be in use, in particular this does not affect the
+ * <code>Attr.schemaTypeInfo</code> of the specified <code>Attr</code>
+ * node. Use the value <code>false</code> for the parameter
+ * <code>isId</code> to undeclare an attribute for being a
+ * user-determined ID attribute.
+ * @param idAttr The attribute node.
+ * @param isId Whether the attribute is a of type ID.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>NOT_FOUND_ERR: Raised if the specified node is not an attribute
+ * of this element.
+ * @since DOM Level 3
+ */
+ public void setIdAttributeNode(Attr idAttr,
+ boolean isId)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Entity.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Entity.java
new file mode 100644
index 000000000..fc89248d9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Entity.java
@@ -0,0 +1,90 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * This interface represents a known entity, either parsed or unparsed, in an
+ * XML document. Note that this models the entity itself <em>not</em> the entity declaration.
+ * <p>The <code>nodeName</code> attribute that is inherited from
+ * <code>Node</code> contains the name of the entity.
+ * <p>An XML processor may choose to completely expand entities before the
+ * structure model is passed to the DOM; in this case there will be no
+ * <code>EntityReference</code> nodes in the document tree.
+ * <p>XML does not mandate that a non-validating XML processor read and
+ * process entity declarations made in the external subset or declared in
+ * parameter entities. This means that parsed entities declared in the
+ * external subset need not be expanded by some classes of applications, and
+ * that the replacement text of the entity may not be available. When the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#intern-replacement'>
+ * replacement text</a> is available, the corresponding <code>Entity</code> node's child list
+ * represents the structure of that replacement value. Otherwise, the child
+ * list is empty.
+ * <p>DOM Level 3 does not support editing <code>Entity</code> nodes; if a
+ * user wants to make changes to the contents of an <code>Entity</code>,
+ * every related <code>EntityReference</code> node has to be replaced in the
+ * structure model by a clone of the <code>Entity</code>'s contents, and
+ * then the desired changes must be made to each of those clones instead.
+ * <code>Entity</code> nodes and all their descendants are readonly.
+ * <p>An <code>Entity</code> node does not have any parent.
+ * <p ><b>Note:</b> If the entity contains an unbound namespace prefix, the
+ * <code>namespaceURI</code> of the corresponding node in the
+ * <code>Entity</code> node subtree is <code>null</code>. The same is true
+ * for <code>EntityReference</code> nodes that refer to this entity, when
+ * they are created using the <code>createEntityReference</code> method of
+ * the <code>Document</code> interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface Entity extends Node {
+ /**
+ * The public identifier associated with the entity if specified, and
+ * <code>null</code> otherwise.
+ */
+ public String getPublicId();
+
+ /**
+ * The system identifier associated with the entity if specified, and
+ * <code>null</code> otherwise. This may be an absolute URI or not.
+ */
+ public String getSystemId();
+
+ /**
+ * For unparsed entities, the name of the notation for the entity. For
+ * parsed entities, this is <code>null</code>.
+ */
+ public String getNotationName();
+
+ /**
+ * An attribute specifying the encoding used for this entity at the time
+ * of parsing, when it is an external parsed entity. This is
+ * <code>null</code> if it an entity from the internal subset or if it
+ * is not known.
+ * @since DOM Level 3
+ */
+ public String getInputEncoding();
+
+ /**
+ * An attribute specifying, as part of the text declaration, the encoding
+ * of this entity, when it is an external parsed entity. This is
+ * <code>null</code> otherwise.
+ * @since DOM Level 3
+ */
+ public String getXmlEncoding();
+
+ /**
+ * An attribute specifying, as part of the text declaration, the version
+ * number of this entity, when it is an external parsed entity. This is
+ * <code>null</code> otherwise.
+ * @since DOM Level 3
+ */
+ public String getXmlVersion();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java
new file mode 100644
index 000000000..66cc66168
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/EntityReference.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * <code>EntityReference</code> nodes may be used to represent an entity
+ * reference in the tree. Note that character references and references to
+ * predefined entities are considered to be expanded by the HTML or XML
+ * processor so that characters are represented by their Unicode equivalent
+ * rather than by an entity reference. Moreover, the XML processor may
+ * completely expand references to entities while building the
+ * <code>Document</code>, instead of providing <code>EntityReference</code>
+ * nodes. If it does provide such nodes, then for an
+ * <code>EntityReference</code> node that represents a reference to a known
+ * entity an <code>Entity</code> exists, and the subtree of the
+ * <code>EntityReference</code> node is a copy of the <code>Entity</code>
+ * node subtree. However, the latter may not be true when an entity contains
+ * an unbound namespace prefix. In such a case, because the namespace prefix
+ * resolution depends on where the entity reference is, the descendants of
+ * the <code>EntityReference</code> node may be bound to different namespace
+ * URIs. When an <code>EntityReference</code> node represents a reference to
+ * an unknown entity, the node has no children and its replacement value,
+ * when used by <code>Attr.value</code> for example, is empty.
+ * <p>As for <code>Entity</code> nodes, <code>EntityReference</code> nodes and
+ * all their descendants are readonly.
+ * <p ><b>Note:</b> <code>EntityReference</code> nodes may cause element
+ * content and attribute value normalization problems when, such as in XML
+ * 1.0 and XML Schema, the normalization is performed after entity reference
+ * are expanded.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface EntityReference extends Node {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java
new file mode 100644
index 000000000..e94433f98
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/NameList.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>NameList</code> interface provides the abstraction of an ordered
+ * collection of parallel pairs of name and namespace values (which could be
+ * null values), without defining or constraining how this collection is
+ * implemented. The items in the <code>NameList</code> are accessible via an
+ * integral index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface NameList {
+ /**
+ * Returns the <code>index</code>th name item in the collection.
+ * @param index Index into the collection.
+ * @return The name at the <code>index</code>th position in the
+ * <code>NameList</code>, or <code>null</code> if there is no name for
+ * the specified index or if the index is out of range.
+ */
+ public String getName(int index);
+
+ /**
+ * Returns the <code>index</code>th namespaceURI item in the collection.
+ * @param index Index into the collection.
+ * @return The namespace URI at the <code>index</code>th position in the
+ * <code>NameList</code>, or <code>null</code> if there is no name for
+ * the specified index or if the index is out of range.
+ */
+ public String getNamespaceURI(int index);
+
+ /**
+ * The number of pairs (name and namespaceURI) in the list. The range of
+ * valid child node indices is 0 to <code>length-1</code> inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Test if a name is part of this <code>NameList</code>.
+ * @param str The name to look for.
+ * @return <code>true</code> if the name has been found,
+ * <code>false</code> otherwise.
+ */
+ public boolean contains(String str);
+
+ /**
+ * Test if the pair namespaceURI/name is part of this
+ * <code>NameList</code>.
+ * @param namespaceURI The namespace URI to look for.
+ * @param name The name to look for.
+ * @return <code>true</code> if the pair namespaceURI/name has been
+ * found, <code>false</code> otherwise.
+ */
+ public boolean containsNS(String namespaceURI,
+ String name);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java
new file mode 100644
index 000000000..d74ace7a3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/NamedNodeMap.java
@@ -0,0 +1,183 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * Objects implementing the <code>NamedNodeMap</code> interface are used to
+ * represent collections of nodes that can be accessed by name. Note that
+ * <code>NamedNodeMap</code> does not inherit from <code>NodeList</code>;
+ * <code>NamedNodeMaps</code> are not maintained in any particular order.
+ * Objects contained in an object implementing <code>NamedNodeMap</code> may
+ * also be accessed by an ordinal index, but this is simply to allow
+ * convenient enumeration of the contents of a <code>NamedNodeMap</code>,
+ * and does not imply that the DOM specifies an order to these Nodes.
+ * <p><code>NamedNodeMap</code> objects in the DOM are live.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface NamedNodeMap {
+ /**
+ * Retrieves a node specified by name.
+ * @param name The <code>nodeName</code> of a node to retrieve.
+ * @return A <code>Node</code> (of any type) with the specified
+ * <code>nodeName</code>, or <code>null</code> if it does not identify
+ * any node in this map.
+ */
+ public Node getNamedItem(String name);
+
+ /**
+ * Adds a node using its <code>nodeName</code> attribute. If a node with
+ * that name is already present in this map, it is replaced by the new
+ * one. Replacing a node by itself has no effect.
+ * <br>As the <code>nodeName</code> attribute is used to derive the name
+ * which the node must be stored under, multiple nodes of certain types
+ * (those that have a "special" string value) cannot be stored as the
+ * names would clash. This is seen as preferable to allowing nodes to be
+ * aliased.
+ * @param arg A node to store in this map. The node will later be
+ * accessible using the value of its <code>nodeName</code> attribute.
+ * @return If the new <code>Node</code> replaces an existing node the
+ * replaced <code>Node</code> is returned, otherwise <code>null</code>
+ * is returned.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
+ * different document than the one that created this map.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
+ * <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
+ * <code>Attr</code> that is already an attribute of another
+ * <code>Element</code> object. The DOM user must explicitly clone
+ * <code>Attr</code> nodes to re-use them in other elements.
+ * <br>HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node
+ * doesn't belong in this NamedNodeMap. Examples would include trying
+ * to insert something other than an Attr node into an Element's map
+ * of attributes, or a non-Entity node into the DocumentType's map of
+ * Entities.
+ */
+ public Node setNamedItem(Node arg)
+ throws DOMException;
+
+ /**
+ * Removes a node specified by name. When this map contains the attributes
+ * attached to an element, if the removed attribute is known to have a
+ * default value, an attribute immediately appears containing the
+ * default value as well as the corresponding namespace URI, local name,
+ * and prefix when applicable.
+ * @param name The <code>nodeName</code> of the node to remove.
+ * @return The node removed from this map if a node with such a name
+ * exists.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised if there is no node named <code>name</code> in
+ * this map.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
+ */
+ public Node removeNamedItem(String name)
+ throws DOMException;
+
+ /**
+ * Returns the <code>index</code>th item in the map. If <code>index</code>
+ * is greater than or equal to the number of nodes in this map, this
+ * returns <code>null</code>.
+ * @param index Index into this map.
+ * @return The node at the <code>index</code>th position in the map, or
+ * <code>null</code> if that is not a valid index.
+ */
+ public Node item(int index);
+
+ /**
+ * The number of nodes in this map. The range of valid child node indices
+ * is <code>0</code> to <code>length-1</code> inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Retrieves a node specified by local name and namespace URI.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value null as the namespaceURI parameter
+ * for methods if they wish to have no namespace.
+ * @param namespaceURI The namespace URI of the node to retrieve.
+ * @param localName The local name of the node to retrieve.
+ * @return A <code>Node</code> (of any type) with the specified local
+ * name and namespace URI, or <code>null</code> if they do not
+ * identify any node in this map.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public Node getNamedItemNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+ /**
+ * Adds a node using its <code>namespaceURI</code> and
+ * <code>localName</code>. If a node with that namespace URI and that
+ * local name is already present in this map, it is replaced by the new
+ * one. Replacing a node by itself has no effect.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value null as the namespaceURI parameter
+ * for methods if they wish to have no namespace.
+ * @param arg A node to store in this map. The node will later be
+ * accessible using the value of its <code>namespaceURI</code> and
+ * <code>localName</code> attributes.
+ * @return If the new <code>Node</code> replaces an existing node the
+ * replaced <code>Node</code> is returned, otherwise <code>null</code>
+ * is returned.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if <code>arg</code> was created from a
+ * different document than the one that created this map.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
+ * <br>INUSE_ATTRIBUTE_ERR: Raised if <code>arg</code> is an
+ * <code>Attr</code> that is already an attribute of another
+ * <code>Element</code> object. The DOM user must explicitly clone
+ * <code>Attr</code> nodes to re-use them in other elements.
+ * <br>HIERARCHY_REQUEST_ERR: Raised if an attempt is made to add a node
+ * doesn't belong in this NamedNodeMap. Examples would include trying
+ * to insert something other than an Attr node into an Element's map
+ * of attributes, or a non-Entity node into the DocumentType's map of
+ * Entities.
+ * <br>NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public Node setNamedItemNS(Node arg)
+ throws DOMException;
+
+ /**
+ * Removes a node specified by local name and namespace URI. A removed
+ * attribute may be known to have a default value when this map contains
+ * the attributes attached to an element, as returned by the attributes
+ * attribute of the <code>Node</code> interface. If so, an attribute
+ * immediately appears containing the default value as well as the
+ * corresponding namespace URI, local name, and prefix when applicable.
+ * <br>Per [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * , applications must use the value null as the namespaceURI parameter
+ * for methods if they wish to have no namespace.
+ * @param namespaceURI The namespace URI of the node to remove.
+ * @param localName The local name of the node to remove.
+ * @return The node removed from this map if a node with such a local
+ * name and namespace URI exists.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised if there is no node with the specified
+ * <code>namespaceURI</code> and <code>localName</code> in this map.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this map is readonly.
+ * <br>NOT_SUPPORTED_ERR: May be raised if the implementation does not
+ * support the feature "XML" and the language exposed through the
+ * Document does not support XML Namespaces (such as [<a href='http://www.w3.org/TR/1999/REC-html401-19991224/'>HTML 4.01</a>]).
+ * @since DOM Level 2
+ */
+ public Node removeNamedItemNS(String namespaceURI,
+ String localName)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java
new file mode 100644
index 000000000..c9a6d0098
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Node.java
@@ -0,0 +1,900 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>Node</code> interface is the primary datatype for the entire
+ * Document Object Model. It represents a single node in the document tree.
+ * While all objects implementing the <code>Node</code> interface expose
+ * methods for dealing with children, not all objects implementing the
+ * <code>Node</code> interface may have children. For example,
+ * <code>Text</code> nodes may not have children, and adding children to
+ * such nodes results in a <code>DOMException</code> being raised.
+ * <p>The attributes <code>nodeName</code>, <code>nodeValue</code> and
+ * <code>attributes</code> are included as a mechanism to get at node
+ * information without casting down to the specific derived interface. In
+ * cases where there is no obvious mapping of these attributes for a
+ * specific <code>nodeType</code> (e.g., <code>nodeValue</code> for an
+ * <code>Element</code> or <code>attributes</code> for a <code>Comment</code>
+ * ), this returns <code>null</code>. Note that the specialized interfaces
+ * may contain additional and more convenient mechanisms to get and set the
+ * relevant information.
+ * <p>The values of <code>nodeName</code>,
+ * <code>nodeValue</code>, and <code>attributes</code> vary according to the
+ * node type as follows:
+ * <table border='1' cellpadding='3'>
+ * <tr>
+ * <th>Interface</th>
+ * <th>nodeName</th>
+ * <th>nodeValue</th>
+ * <th>attributes</th>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>Attr</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same as <code>Attr.name</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same as
+ * <code>Attr.value</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>CDATASection</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>"#cdata-section"</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same as <code>CharacterData.data</code>, the
+ * content of the CDATA Section</td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Comment</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>"#comment"</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same as <code>CharacterData.data</code>, the
+ * content of the comment</td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Document</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>"#document"</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>DocumentFragment</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>"#document-fragment"</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>null</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>DocumentType</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same as
+ * <code>DocumentType.name</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>Element</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same as <code>Element.tagName</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>NamedNodeMap</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Entity</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>entity name</td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>EntityReference</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>name of entity referenced</td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>null</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Notation</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>notation name</td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>null</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>ProcessingInstruction</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same
+ * as <code>ProcessingInstruction.target</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same as
+ * <code>ProcessingInstruction.data</code></td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'><code>Text</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * <code>"#text"</code></td>
+ * <td valign='top' rowspan='1' colspan='1'>same as <code>CharacterData.data</code>, the content
+ * of the text node</td>
+ * <td valign='top' rowspan='1' colspan='1'><code>null</code></td>
+ * </tr>
+ * </table>
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface Node {
+ // NodeType
+ /**
+ * The node is an <code>Element</code>.
+ */
+ public static final short ELEMENT_NODE = 1;
+ /**
+ * The node is an <code>Attr</code>.
+ */
+ public static final short ATTRIBUTE_NODE = 2;
+ /**
+ * The node is a <code>Text</code> node.
+ */
+ public static final short TEXT_NODE = 3;
+ /**
+ * The node is a <code>CDATASection</code>.
+ */
+ public static final short CDATA_SECTION_NODE = 4;
+ /**
+ * The node is an <code>EntityReference</code>.
+ */
+ public static final short ENTITY_REFERENCE_NODE = 5;
+ /**
+ * The node is an <code>Entity</code>.
+ */
+ public static final short ENTITY_NODE = 6;
+ /**
+ * The node is a <code>ProcessingInstruction</code>.
+ */
+ public static final short PROCESSING_INSTRUCTION_NODE = 7;
+ /**
+ * The node is a <code>Comment</code>.
+ */
+ public static final short COMMENT_NODE = 8;
+ /**
+ * The node is a <code>Document</code>.
+ */
+ public static final short DOCUMENT_NODE = 9;
+ /**
+ * The node is a <code>DocumentType</code>.
+ */
+ public static final short DOCUMENT_TYPE_NODE = 10;
+ /**
+ * The node is a <code>DocumentFragment</code>.
+ */
+ public static final short DOCUMENT_FRAGMENT_NODE = 11;
+ /**
+ * The node is a <code>Notation</code>.
+ */
+ public static final short NOTATION_NODE = 12;
+
+ /**
+ * The name of this node, depending on its type; see the table above.
+ */
+ public String getNodeName();
+
+ /**
+ * The value of this node, depending on its type; see the table above.
+ * When it is defined to be <code>null</code>, setting it has no effect,
+ * including if the node is read-only.
+ * @exception DOMException
+ * DOMSTRING_SIZE_ERR: Raised when it would return more characters than
+ * fit in a <code>DOMString</code> variable on the implementation
+ * platform.
+ */
+ public String getNodeValue()
+ throws DOMException;
+ /**
+ * The value of this node, depending on its type; see the table above.
+ * When it is defined to be <code>null</code>, setting it has no effect,
+ * including if the node is read-only.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly and if
+ * it is not defined to be <code>null</code>.
+ */
+ public void setNodeValue(String nodeValue)
+ throws DOMException;
+
+ /**
+ * A code representing the type of the underlying object, as defined above.
+ */
+ public short getNodeType();
+
+ /**
+ * The parent of this node. All nodes, except <code>Attr</code>,
+ * <code>Document</code>, <code>DocumentFragment</code>,
+ * <code>Entity</code>, and <code>Notation</code> may have a parent.
+ * However, if a node has just been created and not yet added to the
+ * tree, or if it has been removed from the tree, this is
+ * <code>null</code>.
+ */
+ public Node getParentNode();
+
+ /**
+ * A <code>NodeList</code> that contains all children of this node. If
+ * there are no children, this is a <code>NodeList</code> containing no
+ * nodes.
+ */
+ public NodeList getChildNodes();
+
+ /**
+ * The first child of this node. If there is no such node, this returns
+ * <code>null</code>.
+ */
+ public Node getFirstChild();
+
+ /**
+ * The last child of this node. If there is no such node, this returns
+ * <code>null</code>.
+ */
+ public Node getLastChild();
+
+ /**
+ * The node immediately preceding this node. If there is no such node,
+ * this returns <code>null</code>.
+ */
+ public Node getPreviousSibling();
+
+ /**
+ * The node immediately following this node. If there is no such node,
+ * this returns <code>null</code>.
+ */
+ public Node getNextSibling();
+
+ /**
+ * A <code>NamedNodeMap</code> containing the attributes of this node (if
+ * it is an <code>Element</code>) or <code>null</code> otherwise.
+ */
+ public NamedNodeMap getAttributes();
+
+ /**
+ * The <code>Document</code> object associated with this node. This is
+ * also the <code>Document</code> object used to create new nodes. When
+ * this node is a <code>Document</code> or a <code>DocumentType</code>
+ * which is not used with any <code>Document</code> yet, this is
+ * <code>null</code>.
+ * @version DOM Level 2
+ */
+ public Document getOwnerDocument();
+
+ /**
+ * Inserts the node <code>newChild</code> before the existing child node
+ * <code>refChild</code>. If <code>refChild</code> is <code>null</code>,
+ * insert <code>newChild</code> at the end of the list of children.
+ * <br>If <code>newChild</code> is a <code>DocumentFragment</code> object,
+ * all of its children are inserted, in the same order, before
+ * <code>refChild</code>. If the <code>newChild</code> is already in the
+ * tree, it is first removed.
+ * <p ><b>Note:</b> Inserting a node before itself is implementation
+ * dependent.
+ * @param newChild The node to insert.
+ * @param refChild The reference node, i.e., the node before which the
+ * new node must be inserted.
+ * @return The node being inserted.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+ * allow children of the type of the <code>newChild</code> node, or if
+ * the node to insert is one of this node's ancestors or this node
+ * itself, or if this node is of type <code>Document</code> and the
+ * DOM application attempts to insert a second
+ * <code>DocumentType</code> or <code>Element</code> node.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+ * from a different document than the one that created this node.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or
+ * if the parent of the node being inserted is readonly.
+ * <br>NOT_FOUND_ERR: Raised if <code>refChild</code> is not a child of
+ * this node.
+ * <br>NOT_SUPPORTED_ERR: if this node is of type <code>Document</code>,
+ * this exception might be raised if the DOM implementation doesn't
+ * support the insertion of a <code>DocumentType</code> or
+ * <code>Element</code> node.
+ * @version DOM Level 3
+ */
+ public Node insertBefore(Node newChild,
+ Node refChild)
+ throws DOMException;
+
+ /**
+ * Replaces the child node <code>oldChild</code> with <code>newChild</code>
+ * in the list of children, and returns the <code>oldChild</code> node.
+ * <br>If <code>newChild</code> is a <code>DocumentFragment</code> object,
+ * <code>oldChild</code> is replaced by all of the
+ * <code>DocumentFragment</code> children, which are inserted in the
+ * same order. If the <code>newChild</code> is already in the tree, it
+ * is first removed.
+ * <p ><b>Note:</b> Replacing a node with itself is implementation
+ * dependent.
+ * @param newChild The new node to put in the child list.
+ * @param oldChild The node being replaced in the list.
+ * @return The node replaced.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+ * allow children of the type of the <code>newChild</code> node, or if
+ * the node to put in is one of this node's ancestors or this node
+ * itself, or if this node is of type <code>Document</code> and the
+ * result of the replacement operation would add a second
+ * <code>DocumentType</code> or <code>Element</code> on the
+ * <code>Document</code> node.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+ * from a different document than the one that created this node.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node or the parent of
+ * the new node is readonly.
+ * <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
+ * this node.
+ * <br>NOT_SUPPORTED_ERR: if this node is of type <code>Document</code>,
+ * this exception might be raised if the DOM implementation doesn't
+ * support the replacement of the <code>DocumentType</code> child or
+ * <code>Element</code> child.
+ * @version DOM Level 3
+ */
+ public Node replaceChild(Node newChild,
+ Node oldChild)
+ throws DOMException;
+
+ /**
+ * Removes the child node indicated by <code>oldChild</code> from the list
+ * of children, and returns it.
+ * @param oldChild The node being removed.
+ * @return The node removed.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>NOT_FOUND_ERR: Raised if <code>oldChild</code> is not a child of
+ * this node.
+ * <br>NOT_SUPPORTED_ERR: if this node is of type <code>Document</code>,
+ * this exception might be raised if the DOM implementation doesn't
+ * support the removal of the <code>DocumentType</code> child or the
+ * <code>Element</code> child.
+ * @version DOM Level 3
+ */
+ public Node removeChild(Node oldChild)
+ throws DOMException;
+
+ /**
+ * Adds the node <code>newChild</code> to the end of the list of children
+ * of this node. If the <code>newChild</code> is already in the tree, it
+ * is first removed.
+ * @param newChild The node to add.If it is a
+ * <code>DocumentFragment</code> object, the entire contents of the
+ * document fragment are moved into the child list of this node
+ * @return The node added.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if this node is of a type that does not
+ * allow children of the type of the <code>newChild</code> node, or if
+ * the node to append is one of this node's ancestors or this node
+ * itself, or if this node is of type <code>Document</code> and the
+ * DOM application attempts to append a second
+ * <code>DocumentType</code> or <code>Element</code> node.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>newChild</code> was created
+ * from a different document than the one that created this node.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly or
+ * if the previous parent of the node being inserted is readonly.
+ * <br>NOT_SUPPORTED_ERR: if the <code>newChild</code> node is a child
+ * of the <code>Document</code> node, this exception might be raised
+ * if the DOM implementation doesn't support the removal of the
+ * <code>DocumentType</code> child or <code>Element</code> child.
+ * @version DOM Level 3
+ */
+ public Node appendChild(Node newChild)
+ throws DOMException;
+
+ /**
+ * Returns whether this node has any children.
+ * @return Returns <code>true</code> if this node has any children,
+ * <code>false</code> otherwise.
+ */
+ public boolean hasChildNodes();
+
+ /**
+ * Returns a duplicate of this node, i.e., serves as a generic copy
+ * constructor for nodes. The duplicate node has no parent (
+ * <code>parentNode</code> is <code>null</code>) and no user data. User
+ * data associated to the imported node is not carried over. However, if
+ * any <code>UserDataHandlers</code> has been specified along with the
+ * associated data these handlers will be called with the appropriate
+ * parameters before this method returns.
+ * <br>Cloning an <code>Element</code> copies all attributes and their
+ * values, including those generated by the XML processor to represent
+ * defaulted attributes, but this method does not copy any children it
+ * contains unless it is a deep clone. This includes text contained in
+ * an the <code>Element</code> since the text is contained in a child
+ * <code>Text</code> node. Cloning an <code>Attr</code> directly, as
+ * opposed to be cloned as part of an <code>Element</code> cloning
+ * operation, returns a specified attribute (<code>specified</code> is
+ * <code>true</code>). Cloning an <code>Attr</code> always clones its
+ * children, since they represent its value, no matter whether this is a
+ * deep clone or not. Cloning an <code>EntityReference</code>
+ * automatically constructs its subtree if a corresponding
+ * <code>Entity</code> is available, no matter whether this is a deep
+ * clone or not. Cloning any other type of node simply returns a copy of
+ * this node.
+ * <br>Note that cloning an immutable subtree results in a mutable copy,
+ * but the children of an <code>EntityReference</code> clone are readonly
+ * . In addition, clones of unspecified <code>Attr</code> nodes are
+ * specified. And, cloning <code>Document</code>,
+ * <code>DocumentType</code>, <code>Entity</code>, and
+ * <code>Notation</code> nodes is implementation dependent.
+ * @param deep If <code>true</code>, recursively clone the subtree under
+ * the specified node; if <code>false</code>, clone only the node
+ * itself (and its attributes, if it is an <code>Element</code>).
+ * @return The duplicate node.
+ */
+ public Node cloneNode(boolean deep);
+
+ /**
+ * Puts all <code>Text</code> nodes in the full depth of the sub-tree
+ * underneath this <code>Node</code>, including attribute nodes, into a
+ * "normal" form where only structure (e.g., elements, comments,
+ * processing instructions, CDATA sections, and entity references)
+ * separates <code>Text</code> nodes, i.e., there are neither adjacent
+ * <code>Text</code> nodes nor empty <code>Text</code> nodes. This can
+ * be used to ensure that the DOM view of a document is the same as if
+ * it were saved and re-loaded, and is useful when operations (such as
+ * XPointer [<a href='http://www.w3.org/TR/2003/REC-xptr-framework-20030325/'>XPointer</a>]
+ * lookups) that depend on a particular document tree structure are to
+ * be used. If the parameter "normalize-characters" of the
+ * <code>DOMConfiguration</code> object attached to the
+ * <code>Node.ownerDocument</code> is <code>true</code>, this method
+ * will also fully normalize the characters of the <code>Text</code>
+ * nodes.
+ * <p ><b>Note:</b> In cases where the document contains
+ * <code>CDATASections</code>, the normalize operation alone may not be
+ * sufficient, since XPointers do not differentiate between
+ * <code>Text</code> nodes and <code>CDATASection</code> nodes.
+ * @version DOM Level 3
+ */
+ public void normalize();
+
+ /**
+ * Tests whether the DOM implementation implements a specific feature and
+ * that feature is supported by this node, as specified in .
+ * @param feature The name of the feature to test.
+ * @param version This is the version number of the feature to test.
+ * @return Returns <code>true</code> if the specified feature is
+ * supported on this node, <code>false</code> otherwise.
+ * @since DOM Level 2
+ */
+ public boolean isSupported(String feature,
+ String version);
+
+ /**
+ * The namespace URI of this node, or <code>null</code> if it is
+ * unspecified (see ).
+ * <br>This is not a computed value that is the result of a namespace
+ * lookup based on an examination of the namespace declarations in
+ * scope. It is merely the namespace URI given at creation time.
+ * <br>For nodes of any type other than <code>ELEMENT_NODE</code> and
+ * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1
+ * method, such as <code>Document.createElement()</code>, this is always
+ * <code>null</code>.
+ * <p ><b>Note:</b> Per the <em>Namespaces in XML</em> Specification [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * an attribute does not inherit its namespace from the element it is
+ * attached to. If an attribute is not explicitly given a namespace, it
+ * simply has no namespace.
+ * @since DOM Level 2
+ */
+ public String getNamespaceURI();
+
+ /**
+ * The namespace prefix of this node, or <code>null</code> if it is
+ * unspecified. When it is defined to be <code>null</code>, setting it
+ * has no effect, including if the node is read-only.
+ * <br>Note that setting this attribute, when permitted, changes the
+ * <code>nodeName</code> attribute, which holds the qualified name, as
+ * well as the <code>tagName</code> and <code>name</code> attributes of
+ * the <code>Element</code> and <code>Attr</code> interfaces, when
+ * applicable.
+ * <br>Setting the prefix to <code>null</code> makes it unspecified,
+ * setting it to an empty string is implementation dependent.
+ * <br>Note also that changing the prefix of an attribute that is known to
+ * have a default value, does not make a new attribute with the default
+ * value and the original prefix appear, since the
+ * <code>namespaceURI</code> and <code>localName</code> do not change.
+ * <br>For nodes of any type other than <code>ELEMENT_NODE</code> and
+ * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1
+ * method, such as <code>createElement</code> from the
+ * <code>Document</code> interface, this is always <code>null</code>.
+ * @since DOM Level 2
+ */
+ public String getPrefix();
+ /**
+ * The namespace prefix of this node, or <code>null</code> if it is
+ * unspecified. When it is defined to be <code>null</code>, setting it
+ * has no effect, including if the node is read-only.
+ * <br>Note that setting this attribute, when permitted, changes the
+ * <code>nodeName</code> attribute, which holds the qualified name, as
+ * well as the <code>tagName</code> and <code>name</code> attributes of
+ * the <code>Element</code> and <code>Attr</code> interfaces, when
+ * applicable.
+ * <br>Setting the prefix to <code>null</code> makes it unspecified,
+ * setting it to an empty string is implementation dependent.
+ * <br>Note also that changing the prefix of an attribute that is known to
+ * have a default value, does not make a new attribute with the default
+ * value and the original prefix appear, since the
+ * <code>namespaceURI</code> and <code>localName</code> do not change.
+ * <br>For nodes of any type other than <code>ELEMENT_NODE</code> and
+ * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1
+ * method, such as <code>createElement</code> from the
+ * <code>Document</code> interface, this is always <code>null</code>.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: Raised if the specified prefix contains an
+ * illegal character according to the XML version in use specified in
+ * the <code>Document.xmlVersion</code> attribute.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ * <br>NAMESPACE_ERR: Raised if the specified <code>prefix</code> is
+ * malformed per the Namespaces in XML specification, if the
+ * <code>namespaceURI</code> of this node is <code>null</code>, if the
+ * specified prefix is "xml" and the <code>namespaceURI</code> of this
+ * node is different from "<a href='http://www.w3.org/XML/1998/namespace'>
+ * http://www.w3.org/XML/1998/namespace</a>", if this node is an attribute and the specified prefix is "xmlns" and
+ * the <code>namespaceURI</code> of this node is different from "<a href='http://www.w3.org/2000/xmlns/'>http://www.w3.org/2000/xmlns/</a>", or if this node is an attribute and the <code>qualifiedName</code> of
+ * this node is "xmlns" [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * .
+ * @since DOM Level 2
+ */
+ public void setPrefix(String prefix)
+ throws DOMException;
+
+ /**
+ * Returns the local part of the qualified name of this node.
+ * <br>For nodes of any type other than <code>ELEMENT_NODE</code> and
+ * <code>ATTRIBUTE_NODE</code> and nodes created with a DOM Level 1
+ * method, such as <code>Document.createElement()</code>, this is always
+ * <code>null</code>.
+ * @since DOM Level 2
+ */
+ public String getLocalName();
+
+ /**
+ * Returns whether this node (if it is an element) has any attributes.
+ * @return Returns <code>true</code> if this node has any attributes,
+ * <code>false</code> otherwise.
+ * @since DOM Level 2
+ */
+ public boolean hasAttributes();
+
+ /**
+ * The absolute base URI of this node or <code>null</code> if the
+ * implementation wasn't able to obtain an absolute URI. This value is
+ * computed as described in . However, when the <code>Document</code>
+ * supports the feature "HTML" [<a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>DOM Level 2 HTML</a>]
+ * , the base URI is computed using first the value of the href
+ * attribute of the HTML BASE element if any, and the value of the
+ * <code>documentURI</code> attribute from the <code>Document</code>
+ * interface otherwise.
+ * @since DOM Level 3
+ */
+ public String getBaseURI();
+
+ // DocumentPosition
+ /**
+ * The two nodes are disconnected. Order between disconnected nodes is
+ * always implementation-specific.
+ */
+ public static final short DOCUMENT_POSITION_DISCONNECTED = 0x01;
+ /**
+ * The second node precedes the reference node.
+ */
+ public static final short DOCUMENT_POSITION_PRECEDING = 0x02;
+ /**
+ * The node follows the reference node.
+ */
+ public static final short DOCUMENT_POSITION_FOLLOWING = 0x04;
+ /**
+ * The node contains the reference node. A node which contains is always
+ * preceding, too.
+ */
+ public static final short DOCUMENT_POSITION_CONTAINS = 0x08;
+ /**
+ * The node is contained by the reference node. A node which is contained
+ * is always following, too.
+ */
+ public static final short DOCUMENT_POSITION_CONTAINED_BY = 0x10;
+ /**
+ * The determination of preceding versus following is
+ * implementation-specific.
+ */
+ public static final short DOCUMENT_POSITION_IMPLEMENTATION_SPECIFIC = 0x20;
+
+ /**
+ * Compares the reference node, i.e. the node on which this method is
+ * being called, with a node, i.e. the one passed as a parameter, with
+ * regard to their position in the document and according to the
+ * document order.
+ * @param other The node to compare against the reference node.
+ * @return Returns how the node is positioned relatively to the reference
+ * node.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: when the compared nodes are from different DOM
+ * implementations that do not coordinate to return consistent
+ * implementation-specific results.
+ * @since DOM Level 3
+ */
+ public short compareDocumentPosition(Node other)
+ throws DOMException;
+
+ /**
+ * This attribute returns the text content of this node and its
+ * descendants. When it is defined to be <code>null</code>, setting it
+ * has no effect. On setting, any possible children this node may have
+ * are removed and, if it the new string is not empty or
+ * <code>null</code>, replaced by a single <code>Text</code> node
+ * containing the string this attribute is set to.
+ * <br> On getting, no serialization is performed, the returned string
+ * does not contain any markup. No whitespace normalization is performed
+ * and the returned string does not contain the white spaces in element
+ * content (see the attribute
+ * <code>Text.isElementContentWhitespace</code>). Similarly, on setting,
+ * no parsing is performed either, the input string is taken as pure
+ * textual content.
+ * <br>The string returned is made of the text content of this node
+ * depending on its type, as defined below:
+ * <table border='1' cellpadding='3'>
+ * <tr>
+ * <th>Node type</th>
+ * <th>Content</th>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
+ * DOCUMENT_FRAGMENT_NODE</td>
+ * <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code>
+ * attribute value of every child node, excluding COMMENT_NODE and
+ * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the
+ * node has no children.</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE,
+ * PROCESSING_INSTRUCTION_NODE</td>
+ * <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE,
+ * DOCUMENT_TYPE_NODE, NOTATION_NODE</td>
+ * <td valign='top' rowspan='1' colspan='1'><em>null</em></td>
+ * </tr>
+ * </table>
+ * @exception DOMException
+ * DOMSTRING_SIZE_ERR: Raised when it would return more characters than
+ * fit in a <code>DOMString</code> variable on the implementation
+ * platform.
+ * @since DOM Level 3
+ */
+ public String getTextContent()
+ throws DOMException;
+ /**
+ * This attribute returns the text content of this node and its
+ * descendants. When it is defined to be <code>null</code>, setting it
+ * has no effect. On setting, any possible children this node may have
+ * are removed and, if it the new string is not empty or
+ * <code>null</code>, replaced by a single <code>Text</code> node
+ * containing the string this attribute is set to.
+ * <br> On getting, no serialization is performed, the returned string
+ * does not contain any markup. No whitespace normalization is performed
+ * and the returned string does not contain the white spaces in element
+ * content (see the attribute
+ * <code>Text.isElementContentWhitespace</code>). Similarly, on setting,
+ * no parsing is performed either, the input string is taken as pure
+ * textual content.
+ * <br>The string returned is made of the text content of this node
+ * depending on its type, as defined below:
+ * <table border='1' cellpadding='3'>
+ * <tr>
+ * <th>Node type</th>
+ * <th>Content</th>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>
+ * ELEMENT_NODE, ATTRIBUTE_NODE, ENTITY_NODE, ENTITY_REFERENCE_NODE,
+ * DOCUMENT_FRAGMENT_NODE</td>
+ * <td valign='top' rowspan='1' colspan='1'>concatenation of the <code>textContent</code>
+ * attribute value of every child node, excluding COMMENT_NODE and
+ * PROCESSING_INSTRUCTION_NODE nodes. This is the empty string if the
+ * node has no children.</td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>TEXT_NODE, CDATA_SECTION_NODE, COMMENT_NODE,
+ * PROCESSING_INSTRUCTION_NODE</td>
+ * <td valign='top' rowspan='1' colspan='1'><code>nodeValue</code></td>
+ * </tr>
+ * <tr>
+ * <td valign='top' rowspan='1' colspan='1'>DOCUMENT_NODE,
+ * DOCUMENT_TYPE_NODE, NOTATION_NODE</td>
+ * <td valign='top' rowspan='1' colspan='1'><em>null</em></td>
+ * </tr>
+ * </table>
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+ * @since DOM Level 3
+ */
+ public void setTextContent(String textContent)
+ throws DOMException;
+
+ /**
+ * Returns whether this node is the same node as the given one.
+ * <br>This method provides a way to determine whether two
+ * <code>Node</code> references returned by the implementation reference
+ * the same object. When two <code>Node</code> references are references
+ * to the same object, even if through a proxy, the references may be
+ * used completely interchangeably, such that all attributes have the
+ * same values and calling the same DOM method on either reference
+ * always has exactly the same effect.
+ * @param other The node to test against.
+ * @return Returns <code>true</code> if the nodes are the same,
+ * <code>false</code> otherwise.
+ * @since DOM Level 3
+ */
+ public boolean isSameNode(Node other);
+
+ /**
+ * Look up the prefix associated to the given namespace URI, starting from
+ * this node. The default namespace declarations are ignored by this
+ * method.
+ * <br>See for details on the algorithm used by this method.
+ * @param namespaceURI The namespace URI to look for.
+ * @return Returns an associated namespace prefix if found or
+ * <code>null</code> if none is found. If more than one prefix are
+ * associated to the namespace prefix, the returned namespace prefix
+ * is implementation dependent.
+ * @since DOM Level 3
+ */
+ public String lookupPrefix(String namespaceURI);
+
+ /**
+ * This method checks if the specified <code>namespaceURI</code> is the
+ * default namespace or not.
+ * @param namespaceURI The namespace URI to look for.
+ * @return Returns <code>true</code> if the specified
+ * <code>namespaceURI</code> is the default namespace,
+ * <code>false</code> otherwise.
+ * @since DOM Level 3
+ */
+ public boolean isDefaultNamespace(String namespaceURI);
+
+ /**
+ * Look up the namespace URI associated to the given prefix, starting from
+ * this node.
+ * <br>See for details on the algorithm used by this method.
+ * @param prefix The prefix to look for. If this parameter is
+ * <code>null</code>, the method will return the default namespace URI
+ * if any.
+ * @return Returns the associated namespace URI or <code>null</code> if
+ * none is found.
+ * @since DOM Level 3
+ */
+ public String lookupNamespaceURI(String prefix);
+
+ /**
+ * Tests whether two nodes are equal.
+ * <br>This method tests for equality of nodes, not sameness (i.e.,
+ * whether the two nodes are references to the same object) which can be
+ * tested with <code>Node.isSameNode()</code>. All nodes that are the
+ * same will also be equal, though the reverse may not be true.
+ * <br>Two nodes are equal if and only if the following conditions are
+ * satisfied:
+ * <ul>
+ * <li>The two nodes are of the same type.
+ * </li>
+ * <li>The following string
+ * attributes are equal: <code>nodeName</code>, <code>localName</code>,
+ * <code>namespaceURI</code>, <code>prefix</code>, <code>nodeValue</code>
+ * . This is: they are both <code>null</code>, or they have the same
+ * length and are character for character identical.
+ * </li>
+ * <li>The
+ * <code>attributes</code> <code>NamedNodeMaps</code> are equal. This
+ * is: they are both <code>null</code>, or they have the same length and
+ * for each node that exists in one map there is a node that exists in
+ * the other map and is equal, although not necessarily at the same
+ * index.
+ * </li>
+ * <li>The <code>childNodes</code> <code>NodeLists</code> are equal.
+ * This is: they are both <code>null</code>, or they have the same
+ * length and contain equal nodes at the same index. Note that
+ * normalization can affect equality; to avoid this, nodes should be
+ * normalized before being compared.
+ * </li>
+ * </ul>
+ * <br>For two <code>DocumentType</code> nodes to be equal, the following
+ * conditions must also be satisfied:
+ * <ul>
+ * <li>The following string attributes
+ * are equal: <code>publicId</code>, <code>systemId</code>,
+ * <code>internalSubset</code>.
+ * </li>
+ * <li>The <code>entities</code>
+ * <code>NamedNodeMaps</code> are equal.
+ * </li>
+ * <li>The <code>notations</code>
+ * <code>NamedNodeMaps</code> are equal.
+ * </li>
+ * </ul>
+ * <br>On the other hand, the following do not affect equality: the
+ * <code>ownerDocument</code>, <code>baseURI</code>, and
+ * <code>parentNode</code> attributes, the <code>specified</code>
+ * attribute for <code>Attr</code> nodes, the <code>schemaTypeInfo</code>
+ * attribute for <code>Attr</code> and <code>Element</code> nodes, the
+ * <code>Text.isElementContentWhitespace</code> attribute for
+ * <code>Text</code> nodes, as well as any user data or event listeners
+ * registered on the nodes.
+ * <p ><b>Note:</b> As a general rule, anything not mentioned in the
+ * description above is not significant in consideration of equality
+ * checking. Note that future versions of this specification may take
+ * into account more attributes and implementations conform to this
+ * specification are expected to be updated accordingly.
+ * @param arg The node to compare equality with.
+ * @return Returns <code>true</code> if the nodes are equal,
+ * <code>false</code> otherwise.
+ * @since DOM Level 3
+ */
+ public boolean isEqualNode(Node arg);
+
+ /**
+ * This method returns a specialized object which implements the
+ * specialized APIs of the specified feature and version, as specified
+ * in . The specialized object may also be obtained by using
+ * binding-specific casting methods but is not necessarily expected to,
+ * as discussed in . This method also allow the implementation to
+ * provide specialized objects which do not support the <code>Node</code>
+ * interface.
+ * @param feature The name of the feature requested. Note that any plus
+ * sign "+" prepended to the name of the feature will be ignored since
+ * it is not significant in the context of this method.
+ * @param version This is the version number of the feature to test.
+ * @return Returns an object which implements the specialized APIs of
+ * the specified feature and version, if any, or <code>null</code> if
+ * there is no object which implements interfaces associated with that
+ * feature. If the <code>DOMObject</code> returned by this method
+ * implements the <code>Node</code> interface, it must delegate to the
+ * primary core <code>Node</code> and not return results inconsistent
+ * with the primary core <code>Node</code> such as attributes,
+ * childNodes, etc.
+ * @since DOM Level 3
+ */
+ public Object getFeature(String feature,
+ String version);
+
+ /**
+ * Associate an object to a key on this node. The object can later be
+ * retrieved from this node by calling <code>getUserData</code> with the
+ * same key.
+ * @param key The key to associate the object to.
+ * @param data The object to associate to the given key, or
+ * <code>null</code> to remove any existing association to that key.
+ * @param handler The handler to associate to that key, or
+ * <code>null</code>.
+ * @return Returns the <code>DOMUserData</code> previously associated to
+ * the given key on this node, or <code>null</code> if there was none.
+ * @since DOM Level 3
+ */
+ public Object setUserData(String key,
+ Object data,
+ UserDataHandler handler);
+
+ /**
+ * Retrieves the object associated to a key on a this node. The object
+ * must first have been set to this node by calling
+ * <code>setUserData</code> with the same key.
+ * @param key The key the object is associated to.
+ * @return Returns the <code>DOMUserData</code> associated to the given
+ * key on this node, or <code>null</code> if there was none.
+ * @since DOM Level 3
+ */
+ public Object getUserData(String key);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java
new file mode 100644
index 000000000..4a98a9030
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/NodeList.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>NodeList</code> interface provides the abstraction of an ordered
+ * collection of nodes, without defining or constraining how this collection
+ * is implemented. <code>NodeList</code> objects in the DOM are live.
+ * <p>The items in the <code>NodeList</code> are accessible via an integral
+ * index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface NodeList {
+ /**
+ * Returns the <code>index</code>th item in the collection. If
+ * <code>index</code> is greater than or equal to the number of nodes in
+ * the list, this returns <code>null</code>.
+ * @param index Index into the collection.
+ * @return The node at the <code>index</code>th position in the
+ * <code>NodeList</code>, or <code>null</code> if that is not a valid
+ * index.
+ */
+ public Node item(int index);
+
+ /**
+ * The number of nodes in the list. The range of valid child node indices
+ * is 0 to <code>length-1</code> inclusive.
+ */
+ public int getLength();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java
new file mode 100644
index 000000000..a7ad40992
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Notation.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * This interface represents a notation declared in the DTD. A notation either
+ * declares, by name, the format of an unparsed entity (see <a href='http://www.w3.org/TR/2004/REC-xml-20040204#Notations'>section 4.7</a> of the XML 1.0 specification [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]), or is
+ * used for formal declaration of processing instruction targets (see <a href='http://www.w3.org/TR/2004/REC-xml-20040204#sec-pi'>section 2.6</a> of the XML 1.0 specification [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]). The
+ * <code>nodeName</code> attribute inherited from <code>Node</code> is set
+ * to the declared name of the notation.
+ * <p>The DOM Core does not support editing <code>Notation</code> nodes; they
+ * are therefore readonly.
+ * <p>A <code>Notation</code> node does not have any parent.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface Notation extends Node {
+ /**
+ * The public identifier of this notation. If the public identifier was
+ * not specified, this is <code>null</code>.
+ */
+ public String getPublicId();
+
+ /**
+ * The system identifier of this notation. If the system identifier was
+ * not specified, this is <code>null</code>. This may be an absolute URI
+ * or not.
+ */
+ public String getSystemId();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java
new file mode 100644
index 000000000..61b789231
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ProcessingInstruction.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>ProcessingInstruction</code> interface represents a "processing
+ * instruction", used in XML as a way to keep processor-specific information
+ * in the text of the document.
+ * <p> No lexical check is done on the content of a processing instruction and
+ * it is therefore possible to have the character sequence
+ * <code>"?&gt;"</code> in the content, which is illegal a processing
+ * instruction per section 2.6 of [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. The
+ * presence of this character sequence must generate a fatal error during
+ * serialization.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface ProcessingInstruction extends Node {
+ /**
+ * The target of this processing instruction. XML defines this as being
+ * the first token following the markup that begins the processing
+ * instruction.
+ */
+ public String getTarget();
+
+ /**
+ * The content of this processing instruction. This is from the first non
+ * white space character after the target to the character immediately
+ * preceding the <code>?&gt;</code>.
+ */
+ public String getData();
+ /**
+ * The content of this processing instruction. This is from the first non
+ * white space character after the target to the character immediately
+ * preceding the <code>?&gt;</code>.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly.
+ */
+ public void setData(String data)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java
new file mode 100644
index 000000000..872c5499d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/Text.java
@@ -0,0 +1,126 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>Text</code> interface inherits from <code>CharacterData</code>
+ * and represents the textual content (termed <a href='http://www.w3.org/TR/2004/REC-xml-20040204#syntax'>character data</a> in XML) of an <code>Element</code> or <code>Attr</code>. If there is no
+ * markup inside an element's content, the text is contained in a single
+ * object implementing the <code>Text</code> interface that is the only
+ * child of the element. If there is markup, it is parsed into the
+ * information items (elements, comments, etc.) and <code>Text</code> nodes
+ * that form the list of children of the element.
+ * <p>When a document is first made available via the DOM, there is only one
+ * <code>Text</code> node for each block of text. Users may create adjacent
+ * <code>Text</code> nodes that represent the contents of a given element
+ * without any intervening markup, but should be aware that there is no way
+ * to represent the separations between these nodes in XML or HTML, so they
+ * will not (in general) persist between DOM editing sessions. The
+ * <code>Node.normalize()</code> method merges any such adjacent
+ * <code>Text</code> objects into a single node for each block of text.
+ * <p> No lexical check is done on the content of a <code>Text</code> node
+ * and, depending on its position in the document, some characters must be
+ * escaped during serialization using character references; e.g. the
+ * characters "&lt;&amp;" if the textual content is part of an element or of
+ * an attribute, the character sequence "]]&gt;" when part of an element,
+ * the quotation mark character " or the apostrophe character ' when part of
+ * an attribute.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ */
+public interface Text extends CharacterData {
+ /**
+ * Breaks this node into two nodes at the specified <code>offset</code>,
+ * keeping both in the tree as siblings. After being split, this node
+ * will contain all the content up to the <code>offset</code> point. A
+ * new node of the same type, which contains all the content at and
+ * after the <code>offset</code> point, is returned. If the original
+ * node had a parent node, the new node is inserted as the next sibling
+ * of the original node. When the <code>offset</code> is equal to the
+ * length of this node, the new node has no data.
+ * @param offset The 16-bit unit offset at which to split, starting from
+ * <code>0</code>.
+ * @return The new node, of the same type as this node.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified offset is negative or greater
+ * than the number of 16-bit units in <code>data</code>.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this node is readonly.
+ */
+ public Text splitText(int offset)
+ throws DOMException;
+
+ /**
+ * Returns whether this text node contains <a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204#infoitem.character'>
+ * element content whitespace</a>, often abusively called "ignorable whitespace". The text node is
+ * determined to contain whitespace in element content during the load
+ * of the document or if validation occurs while using
+ * <code>Document.normalizeDocument()</code>.
+ * @since DOM Level 3
+ */
+ public boolean isElementContentWhitespace();
+
+ /**
+ * Returns all text of <code>Text</code> nodes logically-adjacent text
+ * nodes to this node, concatenated in document order.
+ * <br>For instance, in the example below <code>wholeText</code> on the
+ * <code>Text</code> node that contains "bar" returns "barfoo", while on
+ * the <code>Text</code> node that contains "foo" it returns "barfoo".
+ * @since DOM Level 3
+ */
+ public String getWholeText();
+
+ /**
+ * Replaces the text of the current node and all logically-adjacent text
+ * nodes with the specified text. All logically-adjacent text nodes are
+ * removed including the current node unless it was the recipient of the
+ * replacement text.
+ * <br>This method returns the node which received the replacement text.
+ * The returned node is:
+ * <ul>
+ * <li><code>null</code>, when the replacement text is
+ * the empty string;
+ * </li>
+ * <li>the current node, except when the current node is
+ * read-only;
+ * </li>
+ * <li> a new <code>Text</code> node of the same type (
+ * <code>Text</code> or <code>CDATASection</code>) as the current node
+ * inserted at the location of the replacement.
+ * </li>
+ * </ul>
+ * <br>For instance, in the above example calling
+ * <code>replaceWholeText</code> on the <code>Text</code> node that
+ * contains "bar" with "yo" in argument results in the following:
+ * <br>Where the nodes to be removed are read-only descendants of an
+ * <code>EntityReference</code>, the <code>EntityReference</code> must
+ * be removed instead of the read-only nodes. If any
+ * <code>EntityReference</code> to be removed has descendants that are
+ * not <code>EntityReference</code>, <code>Text</code>, or
+ * <code>CDATASection</code> nodes, the <code>replaceWholeText</code>
+ * method must fail before performing any modification of the document,
+ * raising a <code>DOMException</code> with the code
+ * <code>NO_MODIFICATION_ALLOWED_ERR</code>.
+ * <br>For instance, in the example below calling
+ * <code>replaceWholeText</code> on the <code>Text</code> node that
+ * contains "bar" fails, because the <code>EntityReference</code> node
+ * "ent" contains an <code>Element</code> node which cannot be removed.
+ * @param content The content of the replacing <code>Text</code> node.
+ * @return The <code>Text</code> node created with the specified content.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if one of the <code>Text</code>
+ * nodes being replaced is readonly.
+ * @since DOM Level 3
+ */
+ public Text replaceWholeText(String content)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java
new file mode 100644
index 000000000..d36f3cc37
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/TypeInfo.java
@@ -0,0 +1,185 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * The <code>TypeInfo</code> interface represents a type referenced from
+ * <code>Element</code> or <code>Attr</code> nodes, specified in the schemas
+ * associated with the document. The type is a pair of a namespace URI and
+ * name properties, and depends on the document's schema.
+ * <p> If the document's schema is an XML DTD [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], the values
+ * are computed as follows:
+ * <ul>
+ * <li> If this type is referenced from an
+ * <code>Attr</code> node, <code>typeNamespace</code> is
+ * <code>"http://www.w3.org/TR/REC-xml"</code> and <code>typeName</code>
+ * represents the <b>[attribute type]</b> property in the [<a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204/'>XML Information Set</a>]
+ * . If there is no declaration for the attribute, <code>typeNamespace</code>
+ * and <code>typeName</code> are <code>null</code>.
+ * </li>
+ * <li> If this type is
+ * referenced from an <code>Element</code> node, <code>typeNamespace</code>
+ * and <code>typeName</code> are <code>null</code>.
+ * </li>
+ * </ul>
+ * <p> If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * , the values are computed as follows using the post-schema-validation
+ * infoset contributions (also called PSVI contributions):
+ * <ul>
+ * <li> If the <b>[validity]</b> property exists AND is <em>"invalid"</em> or <em>"notKnown"</em>: the {target namespace} and {name} properties of the declared type if
+ * available, otherwise <code>null</code>.
+ * <p ><b>Note:</b> At the time of writing, the XML Schema specification does
+ * not require exposing the declared type. Thus, DOM implementations might
+ * choose not to provide type information if validity is not valid.
+ * </li>
+ * <li> If the <b>[validity]</b> property exists and is <em>"valid"</em>:
+ * <ol>
+ * <li> If <b>[member type definition]</b> exists:
+ * <ol>
+ * <li>If {name} is not absent, then expose {name} and {target
+ * namespace} properties of the <b>[member type definition]</b> property;
+ * </li>
+ * <li>Otherwise, expose the namespace and local name of the
+ * corresponding anonymous type name.
+ * </li>
+ * </ol>
+ * </li>
+ * <li> If the <b>[type definition]</b> property exists:
+ * <ol>
+ * <li>If {name} is not absent, then expose {name} and {target
+ * namespace} properties of the <b>[type definition]</b> property;
+ * </li>
+ * <li>Otherwise, expose the namespace and local name of the
+ * corresponding anonymous type name.
+ * </li>
+ * </ol>
+ * </li>
+ * <li> If the <b>[member type definition anonymous]</b> exists:
+ * <ol>
+ * <li>If it is false, then expose <b>[member type definition name]</b> and <b>[member type definition namespace]</b> properties;
+ * </li>
+ * <li>Otherwise, expose the namespace and local name of the
+ * corresponding anonymous type name.
+ * </li>
+ * </ol>
+ * </li>
+ * <li> If the <b>[type definition anonymous]</b> exists:
+ * <ol>
+ * <li>If it is false, then expose <b>[type definition name]</b> and <b>[type definition namespace]</b> properties;
+ * </li>
+ * <li>Otherwise, expose the namespace and local name of the
+ * corresponding anonymous type name.
+ * </li>
+ * </ol>
+ * </li>
+ * </ol>
+ * </li>
+ * </ul>
+ * <p ><b>Note:</b> Other schema languages are outside the scope of the W3C
+ * and therefore should define how to represent their type systems using
+ * <code>TypeInfo</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface TypeInfo {
+ /**
+ * The name of a type declared for the associated element or attribute,
+ * or <code>null</code> if unknown.
+ */
+ public String getTypeName();
+
+ /**
+ * The namespace of the type declared for the associated element or
+ * attribute or <code>null</code> if the element does not have
+ * declaration or if no namespace information is available.
+ */
+ public String getTypeNamespace();
+
+ // DerivationMethods
+ /**
+ * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * , this constant represents the derivation by <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#key-typeRestriction'>
+ * restriction</a> if complex types are involved, or a <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-restriction'>
+ * restriction</a> if simple types are involved.
+ * <br> The reference type definition is derived by restriction from the
+ * other type definition if the other type definition is the same as the
+ * reference type definition, or if the other type definition can be
+ * reached recursively following the {base type definition} property
+ * from the reference type definition, and all the <em>derivation methods</em> involved are restriction.
+ */
+ public static final int DERIVATION_RESTRICTION = 0x00000001;
+ /**
+ * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * , this constant represents the derivation by <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#key-typeExtension'>
+ * extension</a>.
+ * <br> The reference type definition is derived by extension from the
+ * other type definition if the other type definition can be reached
+ * recursively following the {base type definition} property from the
+ * reference type definition, and at least one of the <em>derivation methods</em> involved is an extension.
+ */
+ public static final int DERIVATION_EXTENSION = 0x00000002;
+ /**
+ * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * , this constant represents the <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-union'>
+ * union</a> if simple types are involved.
+ * <br> The reference type definition is derived by union from the other
+ * type definition if there exists two type definitions T1 and T2 such
+ * as the reference type definition is derived from T1 by
+ * <code>DERIVATION_RESTRICTION</code> or
+ * <code>DERIVATION_EXTENSION</code>, T2 is derived from the other type
+ * definition by <code>DERIVATION_RESTRICTION</code>, T1 has {variety} <em>union</em>, and one of the {member type definitions} is T2. Note that T1 could be
+ * the same as the reference type definition, and T2 could be the same
+ * as the other type definition.
+ */
+ public static final int DERIVATION_UNION = 0x00000004;
+ /**
+ * If the document's schema is an XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * , this constant represents the <a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/#element-list'>list</a>.
+ * <br> The reference type definition is derived by list from the other
+ * type definition if there exists two type definitions T1 and T2 such
+ * as the reference type definition is derived from T1 by
+ * <code>DERIVATION_RESTRICTION</code> or
+ * <code>DERIVATION_EXTENSION</code>, T2 is derived from the other type
+ * definition by <code>DERIVATION_RESTRICTION</code>, T1 has {variety} <em>list</em>, and T2 is the {item type definition}. Note that T1 could be the same as
+ * the reference type definition, and T2 could be the same as the other
+ * type definition.
+ */
+ public static final int DERIVATION_LIST = 0x00000008;
+
+ /**
+ * This method returns if there is a derivation between the reference
+ * type definition, i.e. the <code>TypeInfo</code> on which the method
+ * is being called, and the other type definition, i.e. the one passed
+ * as parameters.
+ * @param typeNamespaceArg the namespace of the other type definition.
+ * @param typeNameArg the name of the other type definition.
+ * @param derivationMethod the type of derivation and conditions applied
+ * between two types, as described in the list of constants provided
+ * in this interface.
+ * @return If the document's schema is a DTD or no schema is associated
+ * with the document, this method will always return <code>false</code>
+ * . If the document's schema is an XML Schema, the method will
+ * <code>true</code> if the reference type definition is derived from
+ * the other type definition according to the derivation parameter. If
+ * the value of the parameter is <code>0</code> (no bit is set to
+ * <code>1</code> for the <code>derivationMethod</code> parameter),
+ * the method will return <code>true</code> if the other type
+ * definition can be reached by recursing any combination of {base
+ * type definition}, {item type definition}, or {member type
+ * definitions} from the reference type definition.
+ */
+ public boolean isDerivedFrom(String typeNamespaceArg,
+ String typeNameArg,
+ int derivationMethod);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java
new file mode 100644
index 000000000..cf6ee5669
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/UserDataHandler.java
@@ -0,0 +1,72 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom;
+
+/**
+ * When associating an object to a key on a node using
+ * <code>Node.setUserData()</code> the application can provide a handler
+ * that gets called when the node the object is associated to is being
+ * cloned, imported, or renamed. This can be used by the application to
+ * implement various behaviors regarding the data it associates to the DOM
+ * nodes. This interface defines that handler.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>Document Object Model (DOM) Level 3 Core Specification</a>.
+ * @since DOM Level 3
+ */
+public interface UserDataHandler {
+ // OperationType
+ /**
+ * The node is cloned, using <code>Node.cloneNode()</code>.
+ */
+ public static final short NODE_CLONED = 1;
+ /**
+ * The node is imported, using <code>Document.importNode()</code>.
+ */
+ public static final short NODE_IMPORTED = 2;
+ /**
+ * The node is deleted.
+ * <p ><b>Note:</b> This may not be supported or may not be reliable in
+ * certain environments, such as Java, where the implementation has no
+ * real control over when objects are actually deleted.
+ */
+ public static final short NODE_DELETED = 3;
+ /**
+ * The node is renamed, using <code>Document.renameNode()</code>.
+ */
+ public static final short NODE_RENAMED = 4;
+ /**
+ * The node is adopted, using <code>Document.adoptNode()</code>.
+ */
+ public static final short NODE_ADOPTED = 5;
+
+ /**
+ * This method is called whenever the node for which this handler is
+ * registered is imported or cloned.
+ * <br> DOM applications must not raise exceptions in a
+ * <code>UserDataHandler</code>. The effect of throwing exceptions from
+ * the handler is DOM implementation dependent.
+ * @param operation Specifies the type of operation that is being
+ * performed on the node.
+ * @param key Specifies the key for which this handler is being called.
+ * @param data Specifies the data for which this handler is being called.
+ * @param src Specifies the node being cloned, adopted, imported, or
+ * renamed. This is <code>null</code> when the node is being deleted.
+ * @param dst Specifies the node newly created if any, or
+ * <code>null</code>.
+ */
+ public void handle(short operation,
+ String key,
+ Object data,
+ Node src,
+ Node dst);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java
new file mode 100644
index 000000000..5be8c3ab1
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/bootstrap/DOMImplementationRegistry.java
@@ -0,0 +1,387 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+
+package org.w3c.dom.bootstrap;
+
+import java.util.StringTokenizer;
+import java.util.Vector;
+import org.w3c.dom.DOMImplementationSource;
+import org.w3c.dom.DOMImplementationList;
+import org.w3c.dom.DOMImplementation;
+import java.io.InputStream;
+import java.io.BufferedReader;
+import java.io.InputStreamReader;
+import java.security.AccessController;
+import java.security.PrivilegedAction;
+
+/**
+ * A factory that enables applications to obtain instances of
+ * <code>DOMImplementation</code>.
+ *
+ * <p>
+ * Example:
+ * </p>
+ *
+ * <pre class='example'>
+ * // get an instance of the DOMImplementation registry
+ * DOMImplementationRegistry registry =
+ * DOMImplementationRegistry.newInstance();
+ * // get a DOM implementation the Level 3 XML module
+ * DOMImplementation domImpl =
+ * registry.getDOMImplementation("XML 3.0");
+ * </pre>
+ *
+ * <p>
+ * This provides an application with an implementation-independent starting
+ * point. DOM implementations may modify this class to meet new security
+ * standards or to provide *additional* fallbacks for the list of
+ * DOMImplementationSources.
+ * </p>
+ *
+ * @see DOMImplementation
+ * @see DOMImplementationSource
+ * @since DOM Level 3
+ */
+public final class DOMImplementationRegistry {
+ /**
+ * The system property to specify the
+ * DOMImplementationSource class names.
+ */
+ public static final String PROPERTY =
+ "org.w3c.dom.DOMImplementationSourceList";
+
+ /**
+ * Default columns per line.
+ */
+ private static final int DEFAULT_LINE_LENGTH = 80;
+
+ /**
+ * The list of DOMImplementationSources.
+ */
+ private Vector sources;
+
+ /**
+ * Private constructor.
+ * @param srcs Vector List of DOMImplementationSources
+ */
+ private DOMImplementationRegistry(final Vector srcs) {
+ sources = srcs;
+ }
+
+ /**
+ * Obtain a new instance of a <code>DOMImplementationRegistry</code>.
+ *
+
+ * The <code>DOMImplementationRegistry</code> is initialized by the
+ * application or the implementation, depending on the context, by
+ * first checking the value of the Java system property
+ * <code>org.w3c.dom.DOMImplementationSourceList</code> and
+ * the the service provider whose contents are at
+ * "<code>META_INF/services/org.w3c.dom.DOMImplementationSourceList</code>"
+ * The value of this property is a white-space separated list of
+ * names of availables classes implementing the
+ * <code>DOMImplementationSource</code> interface. Each class listed
+ * in the class name list is instantiated and any exceptions
+ * encountered are thrown to the application.
+ *
+ * @return an initialized instance of DOMImplementationRegistry
+ * @throws ClassNotFoundException
+ * If any specified class can not be found
+ * @throws InstantiationException
+ * If any specified class is an interface or abstract class
+ * @throws IllegalAccessException
+ * If the default constructor of a specified class is not accessible
+ * @throws ClassCastException
+ * If any specified class does not implement
+ * <code>DOMImplementationSource</code>
+ */
+ public static DOMImplementationRegistry newInstance()
+ throws
+ ClassNotFoundException,
+ InstantiationException,
+ IllegalAccessException,
+ ClassCastException {
+ Vector sources = new Vector();
+
+ ClassLoader classLoader = getClassLoader();
+ // fetch system property:
+ String p = getSystemProperty(PROPERTY);
+
+ //
+ // if property is not specified then use contents of
+ // META_INF/org.w3c.dom.DOMImplementationSourceList from classpath
+ if (p == null) {
+ p = getServiceValue(classLoader);
+ }
+ if (p == null) {
+ //
+ // DOM Implementations can modify here to add *additional* fallback
+ // mechanisms to access a list of default DOMImplementationSources.
+ p = "gnu.xml.dom.ImplementationSource";
+ }
+ if (p != null) {
+ StringTokenizer st = new StringTokenizer(p);
+ while (st.hasMoreTokens()) {
+ String sourceName = st.nextToken();
+ // Use context class loader, falling back to Class.forName
+ // if and only if this fails...
+ Class sourceClass = null;
+ if (classLoader != null) {
+ sourceClass = classLoader.loadClass(sourceName);
+ } else {
+ sourceClass = Class.forName(sourceName);
+ }
+ DOMImplementationSource source =
+ (DOMImplementationSource) sourceClass.newInstance();
+ sources.addElement(source);
+ }
+ }
+ return new DOMImplementationRegistry(sources);
+ }
+
+ /**
+ * Return the first implementation that has the desired
+ * features, or <code>null</code> if none is found.
+ *
+ * @param features
+ * A string that specifies which features are required. This is
+ * a space separated list in which each feature is specified by
+ * its name optionally followed by a space and a version number.
+ * This is something like: "XML 1.0 Traversal +Events 2.0"
+ * @return An implementation that has the desired features,
+ * or <code>null</code> if none found.
+ */
+ public DOMImplementation getDOMImplementation(final String features) {
+ int size = sources.size();
+ String name = null;
+ for (int i = 0; i < size; i++) {
+ DOMImplementationSource source =
+ (DOMImplementationSource) sources.elementAt(i);
+ DOMImplementation impl = source.getDOMImplementation(features);
+ if (impl != null) {
+ return impl;
+ }
+ }
+ return null;
+ }
+
+ /**
+ * Return a list of implementations that support the
+ * desired features.
+ *
+ * @param features
+ * A string that specifies which features are required. This is
+ * a space separated list in which each feature is specified by
+ * its name optionally followed by a space and a version number.
+ * This is something like: "XML 1.0 Traversal +Events 2.0"
+ * @return A list of DOMImplementations that support the desired features.
+ */
+ public DOMImplementationList getDOMImplementationList(final String features) {
+ final Vector implementations = new Vector();
+ int size = sources.size();
+ for (int i = 0; i < size; i++) {
+ DOMImplementationSource source =
+ (DOMImplementationSource) sources.elementAt(i);
+ DOMImplementationList impls =
+ source.getDOMImplementationList(features);
+ for (int j = 0; j < impls.getLength(); j++) {
+ DOMImplementation impl = impls.item(j);
+ implementations.addElement(impl);
+ }
+ }
+ return new DOMImplementationList() {
+ public DOMImplementation item(final int index) {
+ if (index >= 0 && index < implementations.size()) {
+ try {
+ return (DOMImplementation)
+ implementations.elementAt(index);
+ } catch (ArrayIndexOutOfBoundsException e) {
+ return null;
+ }
+ }
+ return null;
+ }
+
+ public int getLength() {
+ return implementations.size();
+ }
+ };
+ }
+
+ /**
+ * Register an implementation.
+ *
+ * @param s The source to be registered, may not be <code>null</code>
+ */
+ public void addSource(final DOMImplementationSource s) {
+ if (s == null) {
+ throw new NullPointerException();
+ }
+ if (!sources.contains(s)) {
+ sources.addElement(s);
+ }
+ }
+
+ /**
+ *
+ * Gets a class loader.
+ *
+ * @return A class loader, possibly <code>null</code>
+ */
+ private static ClassLoader getClassLoader() {
+ try {
+ ClassLoader contextClassLoader = getContextClassLoader();
+
+ if (contextClassLoader != null) {
+ return contextClassLoader;
+ }
+ } catch (Exception e) {
+ // Assume that the DOM application is in a JRE 1.1, use the
+ // current ClassLoader
+ return DOMImplementationRegistry.class.getClassLoader();
+ }
+ return DOMImplementationRegistry.class.getClassLoader();
+ }
+
+ /**
+ * This method attempts to return the first line of the resource
+ * META_INF/services/org.w3c.dom.DOMImplementationSourceList
+ * from the provided ClassLoader.
+ *
+ * @param classLoader classLoader, may not be <code>null</code>.
+ * @return first line of resource, or <code>null</code>
+ */
+ private static String getServiceValue(final ClassLoader classLoader) {
+ String serviceId = "META-INF/services/" + PROPERTY;
+ // try to find services in CLASSPATH
+ try {
+ InputStream is = getResourceAsStream(classLoader, serviceId);
+
+ if (is != null) {
+ BufferedReader rd;
+ try {
+ rd =
+ new BufferedReader(new InputStreamReader(is, "UTF-8"),
+ DEFAULT_LINE_LENGTH);
+ } catch (java.io.UnsupportedEncodingException e) {
+ rd =
+ new BufferedReader(new InputStreamReader(is),
+ DEFAULT_LINE_LENGTH);
+ }
+ String serviceValue = rd.readLine();
+ rd.close();
+ if (serviceValue != null && serviceValue.length() > 0) {
+ return serviceValue;
+ }
+ }
+ } catch (Exception ex) {
+ return null;
+ }
+ return null;
+ }
+
+ /**
+ * A simple JRE (Java Runtime Environment) 1.1 test
+ *
+ * @return <code>true</code> if JRE 1.1
+ */
+ private static boolean isJRE11() {
+ try {
+ Class c = Class.forName("java.security.AccessController");
+ // java.security.AccessController existed since 1.2 so, if no
+ // exception was thrown, the DOM application is running in a JRE
+ // 1.2 or higher
+ return false;
+ } catch (Exception ex) {
+ // ignore
+ }
+ return true;
+ }
+
+ /**
+ * This method returns the ContextClassLoader or <code>null</code> if
+ * running in a JRE 1.1
+ *
+ * @return The Context Classloader
+ */
+ private static ClassLoader getContextClassLoader() {
+ return isJRE11()
+ ? null
+ : (ClassLoader)
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ ClassLoader classLoader = null;
+ try {
+ classLoader =
+ Thread.currentThread().getContextClassLoader();
+ } catch (SecurityException ex) {
+ }
+ return classLoader;
+ }
+ });
+ }
+
+ /**
+ * This method returns the system property indicated by the specified name
+ * after checking access control privileges. For a JRE 1.1, this check is
+ * not done.
+ *
+ * @param name the name of the system property
+ * @return the system property
+ */
+ private static String getSystemProperty(final String name) {
+ return isJRE11()
+ ? (String) System.getProperty(name)
+ : (String) AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ return System.getProperty(name);
+ }
+ });
+ }
+
+ /**
+ * This method returns an Inputstream for the reading resource
+ * META_INF/services/org.w3c.dom.DOMImplementationSourceList after checking
+ * access control privileges. For a JRE 1.1, this check is not done.
+ *
+ * @param classLoader classLoader
+ * @param name the resource
+ * @return an Inputstream for the resource specified
+ */
+ private static InputStream getResourceAsStream(final ClassLoader classLoader,
+ final String name) {
+ if (isJRE11()) {
+ InputStream ris;
+ if (classLoader == null) {
+ ris = ClassLoader.getSystemResourceAsStream(name);
+ } else {
+ ris = classLoader.getResourceAsStream(name);
+ }
+ return ris;
+ } else {
+ return (InputStream)
+ AccessController.doPrivileged(new PrivilegedAction() {
+ public Object run() {
+ InputStream ris;
+ if (classLoader == null) {
+ ris =
+ ClassLoader.getSystemResourceAsStream(name);
+ } else {
+ ris = classLoader.getResourceAsStream(name);
+ }
+ return ris;
+ }
+ });
+ }
+ }
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java
new file mode 100644
index 000000000..238eea342
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSS2Properties.java
@@ -0,0 +1,1777 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>CSS2Properties</code> interface represents a convenience
+ * mechanism for retrieving and setting properties within a
+ * <code>CSSStyleDeclaration</code>. The attributes of this interface
+ * correspond to all the properties specified in CSS2. Getting an attribute
+ * of this interface is equivalent to calling the
+ * <code>getPropertyValue</code> method of the
+ * <code>CSSStyleDeclaration</code> interface. Setting an attribute of this
+ * interface is equivalent to calling the <code>setProperty</code> method of
+ * the <code>CSSStyleDeclaration</code> interface.
+ * <p> A conformant implementation of the CSS module is not required to
+ * implement the <code>CSS2Properties</code> interface. If an implementation
+ * does implement this interface, the expectation is that language-specific
+ * methods can be used to cast from an instance of the
+ * <code>CSSStyleDeclaration</code> interface to the
+ * <code>CSS2Properties</code> interface.
+ * <p> If an implementation does implement this interface, it is expected to
+ * understand the specific syntax of the shorthand properties, and apply
+ * their semantics; when the <code>margin</code> property is set, for
+ * example, the <code>marginTop</code>, <code>marginRight</code>,
+ * <code>marginBottom</code> and <code>marginLeft</code> properties are
+ * actually being set by the underlying implementation.
+ * <p> When dealing with CSS "shorthand" properties, the shorthand properties
+ * should be decomposed into their component longhand properties as
+ * appropriate, and when querying for their value, the form returned should
+ * be the shortest form exactly equivalent to the declarations made in the
+ * ruleset. However, if there is no shorthand declaration that could be
+ * added to the ruleset without changing in any way the rules already
+ * declared in the ruleset (i.e., by adding longhand rules that were
+ * previously not declared in the ruleset), then the empty string should be
+ * returned for the shorthand property.
+ * <p> For example, querying for the <code>font</code> property should not
+ * return "normal normal normal 14pt/normal Arial, sans-serif", when "14pt
+ * Arial, sans-serif" suffices. (The normals are initial values, and are
+ * implied by use of the longhand property.)
+ * <p> If the values for all the longhand properties that compose a particular
+ * string are the initial values, then a string consisting of all the
+ * initial values should be returned (e.g. a <code>border-width</code> value
+ * of "medium" should be returned as such, not as "").
+ * <p> For some shorthand properties that take missing values from other
+ * sides, such as the <code>margin</code>, <code>padding</code>, and
+ * <code>border-[width|style|color]</code> properties, the minimum number of
+ * sides possible should be used; i.e., "0px 10px" will be returned instead
+ * of "0px 10px 0px 10px".
+ * <p> If the value of a shorthand property can not be decomposed into its
+ * component longhand properties, as is the case for the <code>font</code>
+ * property with a value of "menu", querying for the values of the component
+ * longhand properties should return the empty string.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSS2Properties {
+ /**
+ * See the azimuth property definition in CSS2.
+ */
+ public String getAzimuth();
+ /**
+ * See the azimuth property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setAzimuth(String azimuth)
+ throws DOMException;
+
+ /**
+ * See the background property definition in CSS2.
+ */
+ public String getBackground();
+ /**
+ * See the background property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackground(String background)
+ throws DOMException;
+
+ /**
+ * See the background-attachment property definition in CSS2.
+ */
+ public String getBackgroundAttachment();
+ /**
+ * See the background-attachment property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundAttachment(String backgroundAttachment)
+ throws DOMException;
+
+ /**
+ * See the background-color property definition in CSS2.
+ */
+ public String getBackgroundColor();
+ /**
+ * See the background-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundColor(String backgroundColor)
+ throws DOMException;
+
+ /**
+ * See the background-image property definition in CSS2.
+ */
+ public String getBackgroundImage();
+ /**
+ * See the background-image property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundImage(String backgroundImage)
+ throws DOMException;
+
+ /**
+ * See the background-position property definition in CSS2.
+ */
+ public String getBackgroundPosition();
+ /**
+ * See the background-position property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundPosition(String backgroundPosition)
+ throws DOMException;
+
+ /**
+ * See the background-repeat property definition in CSS2.
+ */
+ public String getBackgroundRepeat();
+ /**
+ * See the background-repeat property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBackgroundRepeat(String backgroundRepeat)
+ throws DOMException;
+
+ /**
+ * See the border property definition in CSS2.
+ */
+ public String getBorder();
+ /**
+ * See the border property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorder(String border)
+ throws DOMException;
+
+ /**
+ * See the border-collapse property definition in CSS2.
+ */
+ public String getBorderCollapse();
+ /**
+ * See the border-collapse property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderCollapse(String borderCollapse)
+ throws DOMException;
+
+ /**
+ * See the border-color property definition in CSS2.
+ */
+ public String getBorderColor();
+ /**
+ * See the border-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderColor(String borderColor)
+ throws DOMException;
+
+ /**
+ * See the border-spacing property definition in CSS2.
+ */
+ public String getBorderSpacing();
+ /**
+ * See the border-spacing property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderSpacing(String borderSpacing)
+ throws DOMException;
+
+ /**
+ * See the border-style property definition in CSS2.
+ */
+ public String getBorderStyle();
+ /**
+ * See the border-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderStyle(String borderStyle)
+ throws DOMException;
+
+ /**
+ * See the border-top property definition in CSS2.
+ */
+ public String getBorderTop();
+ /**
+ * See the border-top property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderTop(String borderTop)
+ throws DOMException;
+
+ /**
+ * See the border-right property definition in CSS2.
+ */
+ public String getBorderRight();
+ /**
+ * See the border-right property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderRight(String borderRight)
+ throws DOMException;
+
+ /**
+ * See the border-bottom property definition in CSS2.
+ */
+ public String getBorderBottom();
+ /**
+ * See the border-bottom property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderBottom(String borderBottom)
+ throws DOMException;
+
+ /**
+ * See the border-left property definition in CSS2.
+ */
+ public String getBorderLeft();
+ /**
+ * See the border-left property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderLeft(String borderLeft)
+ throws DOMException;
+
+ /**
+ * See the border-top-color property definition in CSS2.
+ */
+ public String getBorderTopColor();
+ /**
+ * See the border-top-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderTopColor(String borderTopColor)
+ throws DOMException;
+
+ /**
+ * See the border-right-color property definition in CSS2.
+ */
+ public String getBorderRightColor();
+ /**
+ * See the border-right-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderRightColor(String borderRightColor)
+ throws DOMException;
+
+ /**
+ * See the border-bottom-color property definition in CSS2.
+ */
+ public String getBorderBottomColor();
+ /**
+ * See the border-bottom-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderBottomColor(String borderBottomColor)
+ throws DOMException;
+
+ /**
+ * See the border-left-color property definition in CSS2.
+ */
+ public String getBorderLeftColor();
+ /**
+ * See the border-left-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderLeftColor(String borderLeftColor)
+ throws DOMException;
+
+ /**
+ * See the border-top-style property definition in CSS2.
+ */
+ public String getBorderTopStyle();
+ /**
+ * See the border-top-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderTopStyle(String borderTopStyle)
+ throws DOMException;
+
+ /**
+ * See the border-right-style property definition in CSS2.
+ */
+ public String getBorderRightStyle();
+ /**
+ * See the border-right-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderRightStyle(String borderRightStyle)
+ throws DOMException;
+
+ /**
+ * See the border-bottom-style property definition in CSS2.
+ */
+ public String getBorderBottomStyle();
+ /**
+ * See the border-bottom-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderBottomStyle(String borderBottomStyle)
+ throws DOMException;
+
+ /**
+ * See the border-left-style property definition in CSS2.
+ */
+ public String getBorderLeftStyle();
+ /**
+ * See the border-left-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderLeftStyle(String borderLeftStyle)
+ throws DOMException;
+
+ /**
+ * See the border-top-width property definition in CSS2.
+ */
+ public String getBorderTopWidth();
+ /**
+ * See the border-top-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderTopWidth(String borderTopWidth)
+ throws DOMException;
+
+ /**
+ * See the border-right-width property definition in CSS2.
+ */
+ public String getBorderRightWidth();
+ /**
+ * See the border-right-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderRightWidth(String borderRightWidth)
+ throws DOMException;
+
+ /**
+ * See the border-bottom-width property definition in CSS2.
+ */
+ public String getBorderBottomWidth();
+ /**
+ * See the border-bottom-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderBottomWidth(String borderBottomWidth)
+ throws DOMException;
+
+ /**
+ * See the border-left-width property definition in CSS2.
+ */
+ public String getBorderLeftWidth();
+ /**
+ * See the border-left-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderLeftWidth(String borderLeftWidth)
+ throws DOMException;
+
+ /**
+ * See the border-width property definition in CSS2.
+ */
+ public String getBorderWidth();
+ /**
+ * See the border-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBorderWidth(String borderWidth)
+ throws DOMException;
+
+ /**
+ * See the bottom property definition in CSS2.
+ */
+ public String getBottom();
+ /**
+ * See the bottom property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setBottom(String bottom)
+ throws DOMException;
+
+ /**
+ * See the caption-side property definition in CSS2.
+ */
+ public String getCaptionSide();
+ /**
+ * See the caption-side property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCaptionSide(String captionSide)
+ throws DOMException;
+
+ /**
+ * See the clear property definition in CSS2.
+ */
+ public String getClear();
+ /**
+ * See the clear property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setClear(String clear)
+ throws DOMException;
+
+ /**
+ * See the clip property definition in CSS2.
+ */
+ public String getClip();
+ /**
+ * See the clip property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setClip(String clip)
+ throws DOMException;
+
+ /**
+ * See the color property definition in CSS2.
+ */
+ public String getColor();
+ /**
+ * See the color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setColor(String color)
+ throws DOMException;
+
+ /**
+ * See the content property definition in CSS2.
+ */
+ public String getContent();
+ /**
+ * See the content property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setContent(String content)
+ throws DOMException;
+
+ /**
+ * See the counter-increment property definition in CSS2.
+ */
+ public String getCounterIncrement();
+ /**
+ * See the counter-increment property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCounterIncrement(String counterIncrement)
+ throws DOMException;
+
+ /**
+ * See the counter-reset property definition in CSS2.
+ */
+ public String getCounterReset();
+ /**
+ * See the counter-reset property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCounterReset(String counterReset)
+ throws DOMException;
+
+ /**
+ * See the cue property definition in CSS2.
+ */
+ public String getCue();
+ /**
+ * See the cue property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCue(String cue)
+ throws DOMException;
+
+ /**
+ * See the cue-after property definition in CSS2.
+ */
+ public String getCueAfter();
+ /**
+ * See the cue-after property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCueAfter(String cueAfter)
+ throws DOMException;
+
+ /**
+ * See the cue-before property definition in CSS2.
+ */
+ public String getCueBefore();
+ /**
+ * See the cue-before property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCueBefore(String cueBefore)
+ throws DOMException;
+
+ /**
+ * See the cursor property definition in CSS2.
+ */
+ public String getCursor();
+ /**
+ * See the cursor property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCursor(String cursor)
+ throws DOMException;
+
+ /**
+ * See the direction property definition in CSS2.
+ */
+ public String getDirection();
+ /**
+ * See the direction property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setDirection(String direction)
+ throws DOMException;
+
+ /**
+ * See the display property definition in CSS2.
+ */
+ public String getDisplay();
+ /**
+ * See the display property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setDisplay(String display)
+ throws DOMException;
+
+ /**
+ * See the elevation property definition in CSS2.
+ */
+ public String getElevation();
+ /**
+ * See the elevation property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setElevation(String elevation)
+ throws DOMException;
+
+ /**
+ * See the empty-cells property definition in CSS2.
+ */
+ public String getEmptyCells();
+ /**
+ * See the empty-cells property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setEmptyCells(String emptyCells)
+ throws DOMException;
+
+ /**
+ * See the float property definition in CSS2.
+ */
+ public String getCssFloat();
+ /**
+ * See the float property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setCssFloat(String cssFloat)
+ throws DOMException;
+
+ /**
+ * See the font property definition in CSS2.
+ */
+ public String getFont();
+ /**
+ * See the font property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFont(String font)
+ throws DOMException;
+
+ /**
+ * See the font-family property definition in CSS2.
+ */
+ public String getFontFamily();
+ /**
+ * See the font-family property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontFamily(String fontFamily)
+ throws DOMException;
+
+ /**
+ * See the font-size property definition in CSS2.
+ */
+ public String getFontSize();
+ /**
+ * See the font-size property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontSize(String fontSize)
+ throws DOMException;
+
+ /**
+ * See the font-size-adjust property definition in CSS2.
+ */
+ public String getFontSizeAdjust();
+ /**
+ * See the font-size-adjust property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontSizeAdjust(String fontSizeAdjust)
+ throws DOMException;
+
+ /**
+ * See the font-stretch property definition in CSS2.
+ */
+ public String getFontStretch();
+ /**
+ * See the font-stretch property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontStretch(String fontStretch)
+ throws DOMException;
+
+ /**
+ * See the font-style property definition in CSS2.
+ */
+ public String getFontStyle();
+ /**
+ * See the font-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontStyle(String fontStyle)
+ throws DOMException;
+
+ /**
+ * See the font-variant property definition in CSS2.
+ */
+ public String getFontVariant();
+ /**
+ * See the font-variant property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontVariant(String fontVariant)
+ throws DOMException;
+
+ /**
+ * See the font-weight property definition in CSS2.
+ */
+ public String getFontWeight();
+ /**
+ * See the font-weight property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFontWeight(String fontWeight)
+ throws DOMException;
+
+ /**
+ * See the height property definition in CSS2.
+ */
+ public String getHeight();
+ /**
+ * See the height property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setHeight(String height)
+ throws DOMException;
+
+ /**
+ * See the left property definition in CSS2.
+ */
+ public String getLeft();
+ /**
+ * See the left property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setLeft(String left)
+ throws DOMException;
+
+ /**
+ * See the letter-spacing property definition in CSS2.
+ */
+ public String getLetterSpacing();
+ /**
+ * See the letter-spacing property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setLetterSpacing(String letterSpacing)
+ throws DOMException;
+
+ /**
+ * See the line-height property definition in CSS2.
+ */
+ public String getLineHeight();
+ /**
+ * See the line-height property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setLineHeight(String lineHeight)
+ throws DOMException;
+
+ /**
+ * See the list-style property definition in CSS2.
+ */
+ public String getListStyle();
+ /**
+ * See the list-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setListStyle(String listStyle)
+ throws DOMException;
+
+ /**
+ * See the list-style-image property definition in CSS2.
+ */
+ public String getListStyleImage();
+ /**
+ * See the list-style-image property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setListStyleImage(String listStyleImage)
+ throws DOMException;
+
+ /**
+ * See the list-style-position property definition in CSS2.
+ */
+ public String getListStylePosition();
+ /**
+ * See the list-style-position property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setListStylePosition(String listStylePosition)
+ throws DOMException;
+
+ /**
+ * See the list-style-type property definition in CSS2.
+ */
+ public String getListStyleType();
+ /**
+ * See the list-style-type property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setListStyleType(String listStyleType)
+ throws DOMException;
+
+ /**
+ * See the margin property definition in CSS2.
+ */
+ public String getMargin();
+ /**
+ * See the margin property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMargin(String margin)
+ throws DOMException;
+
+ /**
+ * See the margin-top property definition in CSS2.
+ */
+ public String getMarginTop();
+ /**
+ * See the margin-top property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarginTop(String marginTop)
+ throws DOMException;
+
+ /**
+ * See the margin-right property definition in CSS2.
+ */
+ public String getMarginRight();
+ /**
+ * See the margin-right property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarginRight(String marginRight)
+ throws DOMException;
+
+ /**
+ * See the margin-bottom property definition in CSS2.
+ */
+ public String getMarginBottom();
+ /**
+ * See the margin-bottom property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarginBottom(String marginBottom)
+ throws DOMException;
+
+ /**
+ * See the margin-left property definition in CSS2.
+ */
+ public String getMarginLeft();
+ /**
+ * See the margin-left property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarginLeft(String marginLeft)
+ throws DOMException;
+
+ /**
+ * See the marker-offset property definition in CSS2.
+ */
+ public String getMarkerOffset();
+ /**
+ * See the marker-offset property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarkerOffset(String markerOffset)
+ throws DOMException;
+
+ /**
+ * See the marks property definition in CSS2.
+ */
+ public String getMarks();
+ /**
+ * See the marks property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMarks(String marks)
+ throws DOMException;
+
+ /**
+ * See the max-height property definition in CSS2.
+ */
+ public String getMaxHeight();
+ /**
+ * See the max-height property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMaxHeight(String maxHeight)
+ throws DOMException;
+
+ /**
+ * See the max-width property definition in CSS2.
+ */
+ public String getMaxWidth();
+ /**
+ * See the max-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMaxWidth(String maxWidth)
+ throws DOMException;
+
+ /**
+ * See the min-height property definition in CSS2.
+ */
+ public String getMinHeight();
+ /**
+ * See the min-height property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMinHeight(String minHeight)
+ throws DOMException;
+
+ /**
+ * See the min-width property definition in CSS2.
+ */
+ public String getMinWidth();
+ /**
+ * See the min-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setMinWidth(String minWidth)
+ throws DOMException;
+
+ /**
+ * See the orphans property definition in CSS2.
+ */
+ public String getOrphans();
+ /**
+ * See the orphans property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOrphans(String orphans)
+ throws DOMException;
+
+ /**
+ * See the outline property definition in CSS2.
+ */
+ public String getOutline();
+ /**
+ * See the outline property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOutline(String outline)
+ throws DOMException;
+
+ /**
+ * See the outline-color property definition in CSS2.
+ */
+ public String getOutlineColor();
+ /**
+ * See the outline-color property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOutlineColor(String outlineColor)
+ throws DOMException;
+
+ /**
+ * See the outline-style property definition in CSS2.
+ */
+ public String getOutlineStyle();
+ /**
+ * See the outline-style property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOutlineStyle(String outlineStyle)
+ throws DOMException;
+
+ /**
+ * See the outline-width property definition in CSS2.
+ */
+ public String getOutlineWidth();
+ /**
+ * See the outline-width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOutlineWidth(String outlineWidth)
+ throws DOMException;
+
+ /**
+ * See the overflow property definition in CSS2.
+ */
+ public String getOverflow();
+ /**
+ * See the overflow property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setOverflow(String overflow)
+ throws DOMException;
+
+ /**
+ * See the padding property definition in CSS2.
+ */
+ public String getPadding();
+ /**
+ * See the padding property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPadding(String padding)
+ throws DOMException;
+
+ /**
+ * See the padding-top property definition in CSS2.
+ */
+ public String getPaddingTop();
+ /**
+ * See the padding-top property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPaddingTop(String paddingTop)
+ throws DOMException;
+
+ /**
+ * See the padding-right property definition in CSS2.
+ */
+ public String getPaddingRight();
+ /**
+ * See the padding-right property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPaddingRight(String paddingRight)
+ throws DOMException;
+
+ /**
+ * See the padding-bottom property definition in CSS2.
+ */
+ public String getPaddingBottom();
+ /**
+ * See the padding-bottom property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPaddingBottom(String paddingBottom)
+ throws DOMException;
+
+ /**
+ * See the padding-left property definition in CSS2.
+ */
+ public String getPaddingLeft();
+ /**
+ * See the padding-left property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPaddingLeft(String paddingLeft)
+ throws DOMException;
+
+ /**
+ * See the page property definition in CSS2.
+ */
+ public String getPage();
+ /**
+ * See the page property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPage(String page)
+ throws DOMException;
+
+ /**
+ * See the page-break-after property definition in CSS2.
+ */
+ public String getPageBreakAfter();
+ /**
+ * See the page-break-after property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPageBreakAfter(String pageBreakAfter)
+ throws DOMException;
+
+ /**
+ * See the page-break-before property definition in CSS2.
+ */
+ public String getPageBreakBefore();
+ /**
+ * See the page-break-before property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPageBreakBefore(String pageBreakBefore)
+ throws DOMException;
+
+ /**
+ * See the page-break-inside property definition in CSS2.
+ */
+ public String getPageBreakInside();
+ /**
+ * See the page-break-inside property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPageBreakInside(String pageBreakInside)
+ throws DOMException;
+
+ /**
+ * See the pause property definition in CSS2.
+ */
+ public String getPause();
+ /**
+ * See the pause property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPause(String pause)
+ throws DOMException;
+
+ /**
+ * See the pause-after property definition in CSS2.
+ */
+ public String getPauseAfter();
+ /**
+ * See the pause-after property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPauseAfter(String pauseAfter)
+ throws DOMException;
+
+ /**
+ * See the pause-before property definition in CSS2.
+ */
+ public String getPauseBefore();
+ /**
+ * See the pause-before property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPauseBefore(String pauseBefore)
+ throws DOMException;
+
+ /**
+ * See the pitch property definition in CSS2.
+ */
+ public String getPitch();
+ /**
+ * See the pitch property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPitch(String pitch)
+ throws DOMException;
+
+ /**
+ * See the pitch-range property definition in CSS2.
+ */
+ public String getPitchRange();
+ /**
+ * See the pitch-range property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPitchRange(String pitchRange)
+ throws DOMException;
+
+ /**
+ * See the play-during property definition in CSS2.
+ */
+ public String getPlayDuring();
+ /**
+ * See the play-during property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPlayDuring(String playDuring)
+ throws DOMException;
+
+ /**
+ * See the position property definition in CSS2.
+ */
+ public String getPosition();
+ /**
+ * See the position property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setPosition(String position)
+ throws DOMException;
+
+ /**
+ * See the quotes property definition in CSS2.
+ */
+ public String getQuotes();
+ /**
+ * See the quotes property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setQuotes(String quotes)
+ throws DOMException;
+
+ /**
+ * See the richness property definition in CSS2.
+ */
+ public String getRichness();
+ /**
+ * See the richness property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setRichness(String richness)
+ throws DOMException;
+
+ /**
+ * See the right property definition in CSS2.
+ */
+ public String getRight();
+ /**
+ * See the right property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setRight(String right)
+ throws DOMException;
+
+ /**
+ * See the size property definition in CSS2.
+ */
+ public String getSize();
+ /**
+ * See the size property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSize(String size)
+ throws DOMException;
+
+ /**
+ * See the speak property definition in CSS2.
+ */
+ public String getSpeak();
+ /**
+ * See the speak property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeak(String speak)
+ throws DOMException;
+
+ /**
+ * See the speak-header property definition in CSS2.
+ */
+ public String getSpeakHeader();
+ /**
+ * See the speak-header property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeakHeader(String speakHeader)
+ throws DOMException;
+
+ /**
+ * See the speak-numeral property definition in CSS2.
+ */
+ public String getSpeakNumeral();
+ /**
+ * See the speak-numeral property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeakNumeral(String speakNumeral)
+ throws DOMException;
+
+ /**
+ * See the speak-punctuation property definition in CSS2.
+ */
+ public String getSpeakPunctuation();
+ /**
+ * See the speak-punctuation property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeakPunctuation(String speakPunctuation)
+ throws DOMException;
+
+ /**
+ * See the speech-rate property definition in CSS2.
+ */
+ public String getSpeechRate();
+ /**
+ * See the speech-rate property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setSpeechRate(String speechRate)
+ throws DOMException;
+
+ /**
+ * See the stress property definition in CSS2.
+ */
+ public String getStress();
+ /**
+ * See the stress property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setStress(String stress)
+ throws DOMException;
+
+ /**
+ * See the table-layout property definition in CSS2.
+ */
+ public String getTableLayout();
+ /**
+ * See the table-layout property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTableLayout(String tableLayout)
+ throws DOMException;
+
+ /**
+ * See the text-align property definition in CSS2.
+ */
+ public String getTextAlign();
+ /**
+ * See the text-align property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextAlign(String textAlign)
+ throws DOMException;
+
+ /**
+ * See the text-decoration property definition in CSS2.
+ */
+ public String getTextDecoration();
+ /**
+ * See the text-decoration property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextDecoration(String textDecoration)
+ throws DOMException;
+
+ /**
+ * See the text-indent property definition in CSS2.
+ */
+ public String getTextIndent();
+ /**
+ * See the text-indent property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextIndent(String textIndent)
+ throws DOMException;
+
+ /**
+ * See the text-shadow property definition in CSS2.
+ */
+ public String getTextShadow();
+ /**
+ * See the text-shadow property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextShadow(String textShadow)
+ throws DOMException;
+
+ /**
+ * See the text-transform property definition in CSS2.
+ */
+ public String getTextTransform();
+ /**
+ * See the text-transform property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTextTransform(String textTransform)
+ throws DOMException;
+
+ /**
+ * See the top property definition in CSS2.
+ */
+ public String getTop();
+ /**
+ * See the top property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setTop(String top)
+ throws DOMException;
+
+ /**
+ * See the unicode-bidi property definition in CSS2.
+ */
+ public String getUnicodeBidi();
+ /**
+ * See the unicode-bidi property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setUnicodeBidi(String unicodeBidi)
+ throws DOMException;
+
+ /**
+ * See the vertical-align property definition in CSS2.
+ */
+ public String getVerticalAlign();
+ /**
+ * See the vertical-align property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setVerticalAlign(String verticalAlign)
+ throws DOMException;
+
+ /**
+ * See the visibility property definition in CSS2.
+ */
+ public String getVisibility();
+ /**
+ * See the visibility property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setVisibility(String visibility)
+ throws DOMException;
+
+ /**
+ * See the voice-family property definition in CSS2.
+ */
+ public String getVoiceFamily();
+ /**
+ * See the voice-family property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setVoiceFamily(String voiceFamily)
+ throws DOMException;
+
+ /**
+ * See the volume property definition in CSS2.
+ */
+ public String getVolume();
+ /**
+ * See the volume property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setVolume(String volume)
+ throws DOMException;
+
+ /**
+ * See the white-space property definition in CSS2.
+ */
+ public String getWhiteSpace();
+ /**
+ * See the white-space property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setWhiteSpace(String whiteSpace)
+ throws DOMException;
+
+ /**
+ * See the widows property definition in CSS2.
+ */
+ public String getWidows();
+ /**
+ * See the widows property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setWidows(String widows)
+ throws DOMException;
+
+ /**
+ * See the width property definition in CSS2.
+ */
+ public String getWidth();
+ /**
+ * See the width property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setWidth(String width)
+ throws DOMException;
+
+ /**
+ * See the word-spacing property definition in CSS2.
+ */
+ public String getWordSpacing();
+ /**
+ * See the word-spacing property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setWordSpacing(String wordSpacing)
+ throws DOMException;
+
+ /**
+ * See the z-index property definition in CSS2.
+ */
+ public String getZIndex();
+ /**
+ * See the z-index property definition in CSS2.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the new value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setZIndex(String zIndex)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java
new file mode 100644
index 000000000..55dc6f8cc
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSCharsetRule.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>CSSCharsetRule</code> interface represents a @charset rule in a
+ * CSS style sheet. The value of the <code>encoding</code> attribute does
+ * not affect the encoding of text data in the DOM objects; this encoding is
+ * always UTF-16. After a stylesheet is loaded, the value of the
+ * <code>encoding</code> attribute is the value found in the
+ * <code>@charset</code> rule. If there was no <code>@charset</code> in the
+ * original document, then no <code>CSSCharsetRule</code> is created. The
+ * value of the <code>encoding</code> attribute may also be used as a hint
+ * for the encoding used on serialization of the style sheet.
+ * <p> The value of the @charset rule (and therefore of the
+ * <code>CSSCharsetRule</code>) may not correspond to the encoding the
+ * document actually came in; character encoding information e.g. in an HTTP
+ * header, has priority (see CSS document representation) but this is not
+ * reflected in the <code>CSSCharsetRule</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSCharsetRule extends CSSRule {
+ /**
+ * The encoding information used in this <code>@charset</code> rule.
+ */
+ public String getEncoding();
+ /**
+ * The encoding information used in this <code>@charset</code> rule.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified encoding value has a syntax error
+ * and is unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this encoding rule is
+ * readonly.
+ */
+ public void setEncoding(String encoding)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java
new file mode 100644
index 000000000..e446ea8c5
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSFontFaceRule.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The <code>CSSFontFaceRule</code> interface represents a @font-face rule in
+ * a CSS style sheet. The <code>@font-face</code> rule is used to hold a set
+ * of font descriptions.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSFontFaceRule extends CSSRule {
+ /**
+ * The declaration-block of this rule.
+ */
+ public CSSStyleDeclaration getStyle();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java
new file mode 100644
index 000000000..3dee5d80b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSImportRule.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.stylesheets.MediaList;
+
+/**
+ * The <code>CSSImportRule</code> interface represents a @import rule within
+ * a CSS style sheet. The <code>@import</code> rule is used to import style
+ * rules from other style sheets.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSImportRule extends CSSRule {
+ /**
+ * The location of the style sheet to be imported. The attribute will not
+ * contain the <code>"url(...)"</code> specifier around the URI.
+ */
+ public String getHref();
+
+ /**
+ * A list of media types for which this style sheet may be used.
+ */
+ public MediaList getMedia();
+
+ /**
+ * The style sheet referred to by this rule, if it has been loaded. The
+ * value of this attribute is <code>null</code> if the style sheet has
+ * not yet been loaded or if it will not be loaded (e.g. if the style
+ * sheet is for a media type not supported by the user agent).
+ */
+ public CSSStyleSheet getStyleSheet();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java
new file mode 100644
index 000000000..6e977923d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSMediaRule.java
@@ -0,0 +1,76 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+import org.w3c.dom.stylesheets.MediaList;
+
+/**
+ * The <code>CSSMediaRule</code> interface represents a @media rule in a CSS
+ * style sheet. A <code>@media</code> rule can be used to delimit style
+ * rules for specific media types.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSMediaRule extends CSSRule {
+ /**
+ * A list of media types for this rule.
+ */
+ public MediaList getMedia();
+
+ /**
+ * A list of all CSS rules contained within the media block.
+ */
+ public CSSRuleList getCssRules();
+
+ /**
+ * Used to insert a new rule into the media block.
+ * @param rule The parsable text representing the rule. For rule sets
+ * this contains both the selector and the style declaration. For
+ * at-rules, this specifies both the at-identifier and the rule
+ * content.
+ * @param index The index within the media block's rule collection of
+ * the rule before which to insert the specified rule. If the
+ * specified index is equal to the length of the media blocks's rule
+ * collection, the rule will be added to the end of the media block.
+ * @return The index within the media block's rule collection of the
+ * newly inserted rule.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the
+ * specified index, e.g., if an <code>@import</code> rule is inserted
+ * after a standard rule set or other at-rule.
+ * <br>INDEX_SIZE_ERR: Raised if the specified index is not a valid
+ * insertion point.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
+ * readonly.
+ * <br>SYNTAX_ERR: Raised if the specified rule has a syntax error and
+ * is unparsable.
+ */
+ public int insertRule(String rule,
+ int index)
+ throws DOMException;
+
+ /**
+ * Used to delete a rule from the media block.
+ * @param index The index within the media block's rule collection of
+ * the rule to remove.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index does not correspond to
+ * a rule in the media rule list.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media rule is
+ * readonly.
+ */
+ public void deleteRule(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java
new file mode 100644
index 000000000..eb8f783f5
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPageRule.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>CSSPageRule</code> interface represents a @page rule within a
+ * CSS style sheet. The <code>@page</code> rule is used to specify the
+ * dimensions, orientation, margins, etc. of a page box for paged media.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSPageRule extends CSSRule {
+ /**
+ * The parsable textual representation of the page selector for the rule.
+ */
+ public String getSelectorText();
+ /**
+ * The parsable textual representation of the page selector for the rule.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error and is unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
+ */
+ public void setSelectorText(String selectorText)
+ throws DOMException;
+
+ /**
+ * The declaration-block of this rule.
+ */
+ public CSSStyleDeclaration getStyle();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java
new file mode 100644
index 000000000..25f906a70
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSPrimitiveValue.java
@@ -0,0 +1,296 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>CSSPrimitiveValue</code> interface represents a single CSS value
+ * . This interface may be used to determine the value of a specific style
+ * property currently set in a block or to set a specific style property
+ * explicitly within the block. An instance of this interface might be
+ * obtained from the <code>getPropertyCSSValue</code> method of the
+ * <code>CSSStyleDeclaration</code> interface. A
+ * <code>CSSPrimitiveValue</code> object only occurs in a context of a CSS
+ * property.
+ * <p> Conversions are allowed between absolute values (from millimeters to
+ * centimeters, from degrees to radians, and so on) but not between relative
+ * values. (For example, a pixel value cannot be converted to a centimeter
+ * value.) Percentage values can't be converted since they are relative to
+ * the parent value (or another property value). There is one exception for
+ * color percentage values: since a color percentage value is relative to
+ * the range 0-255, a color percentage value can be converted to a number;
+ * (see also the <code>RGBColor</code> interface).
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSPrimitiveValue extends CSSValue {
+ // UnitTypes
+ /**
+ * The value is not a recognized CSS2 value. The value can only be
+ * obtained by using the <code>cssText</code> attribute.
+ */
+ public static final short CSS_UNKNOWN = 0;
+ /**
+ * The value is a simple number. The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_NUMBER = 1;
+ /**
+ * The value is a percentage. The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_PERCENTAGE = 2;
+ /**
+ * The value is a length (ems). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_EMS = 3;
+ /**
+ * The value is a length (exs). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_EXS = 4;
+ /**
+ * The value is a length (px). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_PX = 5;
+ /**
+ * The value is a length (cm). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_CM = 6;
+ /**
+ * The value is a length (mm). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_MM = 7;
+ /**
+ * The value is a length (in). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_IN = 8;
+ /**
+ * The value is a length (pt). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_PT = 9;
+ /**
+ * The value is a length (pc). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_PC = 10;
+ /**
+ * The value is an angle (deg). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_DEG = 11;
+ /**
+ * The value is an angle (rad). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_RAD = 12;
+ /**
+ * The value is an angle (grad). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_GRAD = 13;
+ /**
+ * The value is a time (ms). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_MS = 14;
+ /**
+ * The value is a time (s). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_S = 15;
+ /**
+ * The value is a frequency (Hz). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_HZ = 16;
+ /**
+ * The value is a frequency (kHz). The value can be obtained by using the
+ * <code>getFloatValue</code> method.
+ */
+ public static final short CSS_KHZ = 17;
+ /**
+ * The value is a number with an unknown dimension. The value can be
+ * obtained by using the <code>getFloatValue</code> method.
+ */
+ public static final short CSS_DIMENSION = 18;
+ /**
+ * The value is a STRING. The value can be obtained by using the
+ * <code>getStringValue</code> method.
+ */
+ public static final short CSS_STRING = 19;
+ /**
+ * The value is a URI. The value can be obtained by using the
+ * <code>getStringValue</code> method.
+ */
+ public static final short CSS_URI = 20;
+ /**
+ * The value is an identifier. The value can be obtained by using the
+ * <code>getStringValue</code> method.
+ */
+ public static final short CSS_IDENT = 21;
+ /**
+ * The value is a attribute function. The value can be obtained by using
+ * the <code>getStringValue</code> method.
+ */
+ public static final short CSS_ATTR = 22;
+ /**
+ * The value is a counter or counters function. The value can be obtained
+ * by using the <code>getCounterValue</code> method.
+ */
+ public static final short CSS_COUNTER = 23;
+ /**
+ * The value is a rect function. The value can be obtained by using the
+ * <code>getRectValue</code> method.
+ */
+ public static final short CSS_RECT = 24;
+ /**
+ * The value is a RGB color. The value can be obtained by using the
+ * <code>getRGBColorValue</code> method.
+ */
+ public static final short CSS_RGBCOLOR = 25;
+
+ /**
+ * The type of the value as defined by the constants specified above.
+ */
+ public short getPrimitiveType();
+
+ /**
+ * A method to set the float value with a specified unit. If the property
+ * attached with this value can not accept the specified unit or the
+ * float value, the value will be unchanged and a
+ * <code>DOMException</code> will be raised.
+ * @param unitType A unit code as defined above. The unit code can only
+ * be a float unit type (i.e. <code>CSS_NUMBER</code>,
+ * <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
+ * <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
+ * <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
+ * <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
+ * <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
+ * <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
+ * <code>CSS_DIMENSION</code>).
+ * @param floatValue The new float value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the attached property doesn't support
+ * the float value or the unit type.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setFloatValue(short unitType,
+ float floatValue)
+ throws DOMException;
+
+ /**
+ * This method is used to get a float value in a specified unit. If this
+ * CSS value doesn't contain a float value or can't be converted into
+ * the specified unit, a <code>DOMException</code> is raised.
+ * @param unitType A unit code to get the float value. The unit code can
+ * only be a float unit type (i.e. <code>CSS_NUMBER</code>,
+ * <code>CSS_PERCENTAGE</code>, <code>CSS_EMS</code>,
+ * <code>CSS_EXS</code>, <code>CSS_PX</code>, <code>CSS_CM</code>,
+ * <code>CSS_MM</code>, <code>CSS_IN</code>, <code>CSS_PT</code>,
+ * <code>CSS_PC</code>, <code>CSS_DEG</code>, <code>CSS_RAD</code>,
+ * <code>CSS_GRAD</code>, <code>CSS_MS</code>, <code>CSS_S</code>,
+ * <code>CSS_HZ</code>, <code>CSS_KHZ</code>,
+ * <code>CSS_DIMENSION</code>).
+ * @return The float value in the specified unit.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a float
+ * value or if the float value can't be converted into the specified
+ * unit.
+ */
+ public float getFloatValue(short unitType)
+ throws DOMException;
+
+ /**
+ * A method to set the string value with the specified unit. If the
+ * property attached to this value can't accept the specified unit or
+ * the string value, the value will be unchanged and a
+ * <code>DOMException</code> will be raised.
+ * @param stringType A string code as defined above. The string code can
+ * only be a string unit type (i.e. <code>CSS_STRING</code>,
+ * <code>CSS_URI</code>, <code>CSS_IDENT</code>, and
+ * <code>CSS_ATTR</code>).
+ * @param stringValue The new string value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
+ * value or if the string value can't be converted into the specified
+ * unit.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this property is readonly.
+ */
+ public void setStringValue(short stringType,
+ String stringValue)
+ throws DOMException;
+
+ /**
+ * This method is used to get the string value. If the CSS value doesn't
+ * contain a string value, a <code>DOMException</code> is raised. Some
+ * properties (like 'font-family' or 'voice-family') convert a
+ * whitespace separated list of idents to a string.
+ * @return The string value in the current unit. The current
+ * <code>primitiveType</code> can only be a string unit type (i.e.
+ * <code>CSS_STRING</code>, <code>CSS_URI</code>,
+ * <code>CSS_IDENT</code> and <code>CSS_ATTR</code>).
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a string
+ * value.
+ */
+ public String getStringValue()
+ throws DOMException;
+
+ /**
+ * This method is used to get the Counter value. If this CSS value
+ * doesn't contain a counter value, a <code>DOMException</code> is
+ * raised. Modification to the corresponding style property can be
+ * achieved using the <code>Counter</code> interface.
+ * @return The Counter value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a
+ * Counter value (e.g. this is not <code>CSS_COUNTER</code>).
+ */
+ public Counter getCounterValue()
+ throws DOMException;
+
+ /**
+ * This method is used to get the Rect value. If this CSS value doesn't
+ * contain a rect value, a <code>DOMException</code> is raised.
+ * Modification to the corresponding style property can be achieved
+ * using the <code>Rect</code> interface.
+ * @return The Rect value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the CSS value doesn't contain a Rect
+ * value. (e.g. this is not <code>CSS_RECT</code>).
+ */
+ public Rect getRectValue()
+ throws DOMException;
+
+ /**
+ * This method is used to get the RGB color. If this CSS value doesn't
+ * contain a RGB color value, a <code>DOMException</code> is raised.
+ * Modification to the corresponding style property can be achieved
+ * using the <code>RGBColor</code> interface.
+ * @return the RGB color value.
+ * @exception DOMException
+ * INVALID_ACCESS_ERR: Raised if the attached property can't return a
+ * RGB color value (e.g. this is not <code>CSS_RGBCOLOR</code>).
+ */
+ public RGBColor getRGBColorValue()
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java
new file mode 100644
index 000000000..dfd98aed9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRule.java
@@ -0,0 +1,97 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>CSSRule</code> interface is the abstract base interface for any
+ * type of CSS statement. This includes both rule sets and at-rules. An
+ * implementation is expected to preserve all rules specified in a CSS style
+ * sheet, even if the rule is not recognized by the parser. Unrecognized
+ * rules are represented using the <code>CSSUnknownRule</code> interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSRule {
+ // RuleType
+ /**
+ * The rule is a <code>CSSUnknownRule</code>.
+ */
+ public static final short UNKNOWN_RULE = 0;
+ /**
+ * The rule is a <code>CSSStyleRule</code>.
+ */
+ public static final short STYLE_RULE = 1;
+ /**
+ * The rule is a <code>CSSCharsetRule</code>.
+ */
+ public static final short CHARSET_RULE = 2;
+ /**
+ * The rule is a <code>CSSImportRule</code>.
+ */
+ public static final short IMPORT_RULE = 3;
+ /**
+ * The rule is a <code>CSSMediaRule</code>.
+ */
+ public static final short MEDIA_RULE = 4;
+ /**
+ * The rule is a <code>CSSFontFaceRule</code>.
+ */
+ public static final short FONT_FACE_RULE = 5;
+ /**
+ * The rule is a <code>CSSPageRule</code>.
+ */
+ public static final short PAGE_RULE = 6;
+
+ /**
+ * The type of the rule, as defined above. The expectation is that
+ * binding-specific casting methods can be used to cast down from an
+ * instance of the <code>CSSRule</code> interface to the specific
+ * derived interface implied by the <code>type</code>.
+ */
+ public short getType();
+
+ /**
+ * The parsable textual representation of the rule. This reflects the
+ * current state of the rule and not its initial value.
+ */
+ public String getCssText();
+ /**
+ * The parsable textual representation of the rule. This reflects the
+ * current state of the rule and not its initial value.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error and is unparsable.
+ * <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
+ * value represents a different type of rule than the current one.
+ * <br>HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at
+ * this point in the style sheet.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if the rule is readonly.
+ */
+ public void setCssText(String cssText)
+ throws DOMException;
+
+ /**
+ * The style sheet that contains this rule.
+ */
+ public CSSStyleSheet getParentStyleSheet();
+
+ /**
+ * If this rule is contained inside another rule (e.g. a style rule
+ * inside an @media block), this is the containing rule. If this rule is
+ * not nested inside any other rules, this returns <code>null</code>.
+ */
+ public CSSRule getParentRule();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java
new file mode 100644
index 000000000..b875210cc
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSRuleList.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The <code>CSSRuleList</code> interface provides the abstraction of an
+ * ordered collection of CSS rules.
+ * <p> The items in the <code>CSSRuleList</code> are accessible via an
+ * integral index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSRuleList {
+ /**
+ * The number of <code>CSSRules</code> in the list. The range of valid
+ * child rule indices is <code>0</code> to <code>length-1</code>
+ * inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Used to retrieve a CSS rule by ordinal index. The order in this
+ * collection represents the order of the rules in the CSS style sheet.
+ * If index is greater than or equal to the number of rules in the list,
+ * this returns <code>null</code>.
+ * @param index Index into the collection
+ * @return The style rule at the <code>index</code> position in the
+ * <code>CSSRuleList</code>, or <code>null</code> if that is not a
+ * valid index.
+ */
+ public CSSRule item(int index);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java
new file mode 100644
index 000000000..91b9d9adf
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleDeclaration.java
@@ -0,0 +1,162 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>CSSStyleDeclaration</code> interface represents a single CSS
+ * declaration block. This interface may be used to determine the style
+ * properties currently set in a block or to set style properties explicitly
+ * within the block.
+ * <p> While an implementation may not recognize all CSS properties within a
+ * CSS declaration block, it is expected to provide access to all specified
+ * properties in the style sheet through the <code>CSSStyleDeclaration</code>
+ * interface. Furthermore, implementations that support a specific level of
+ * CSS should correctly handle CSS shorthand properties for that level. For
+ * a further discussion of shorthand properties, see the
+ * <code>CSS2Properties</code> interface.
+ * <p> This interface is also used to provide a read-only access to the
+ * computed values of an element. See also the <code>ViewCSS</code>
+ * interface. The CSS Object Model doesn't provide an access to the
+ * specified or actual values of the CSS cascade.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSStyleDeclaration {
+ /**
+ * The parsable textual representation of the declaration block
+ * (excluding the surrounding curly braces). Setting this attribute will
+ * result in the parsing of the new value and resetting of all the
+ * properties in the declaration block including the removal or addition
+ * of properties.
+ */
+ public String getCssText();
+ /**
+ * The parsable textual representation of the declaration block
+ * (excluding the surrounding curly braces). Setting this attribute will
+ * result in the parsing of the new value and resetting of all the
+ * properties in the declaration block including the removal or addition
+ * of properties.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error and is unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
+ * readonly or a property is readonly.
+ */
+ public void setCssText(String cssText)
+ throws DOMException;
+
+ /**
+ * Used to retrieve the value of a CSS property if it has been explicitly
+ * set within this declaration block.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @return Returns the value of the property if it has been explicitly
+ * set for this declaration block. Returns the empty string if the
+ * property has not been set.
+ */
+ public String getPropertyValue(String propertyName);
+
+ /**
+ * Used to retrieve the object representation of the value of a CSS
+ * property if it has been explicitly set within this declaration block.
+ * This method returns <code>null</code> if the property is a shorthand
+ * property. Shorthand property values can only be accessed and modified
+ * as strings, using the <code>getPropertyValue</code> and
+ * <code>setProperty</code> methods.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @return Returns the value of the property if it has been explicitly
+ * set for this declaration block. Returns <code>null</code> if the
+ * property has not been set.
+ */
+ public CSSValue getPropertyCSSValue(String propertyName);
+
+ /**
+ * Used to remove a CSS property if it has been explicitly set within
+ * this declaration block.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @return Returns the value of the property if it has been explicitly
+ * set for this declaration block. Returns the empty string if the
+ * property has not been set or the property name does not correspond
+ * to a known CSS property.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly
+ * or the property is readonly.
+ */
+ public String removeProperty(String propertyName)
+ throws DOMException;
+
+ /**
+ * Used to retrieve the priority of a CSS property (e.g. the
+ * <code>"important"</code> qualifier) if the priority has been
+ * explicitly set in this declaration block.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @return A string representing the priority (e.g.
+ * <code>"important"</code>) if the property has been explicitly set
+ * in this declaration block and has a priority specified. The empty
+ * string otherwise.
+ */
+ public String getPropertyPriority(String propertyName);
+
+ /**
+ * Used to set a property value and priority within this declaration
+ * block. <code>setProperty</code> permits to modify a property or add a
+ * new one in the declaration block. Any call to this method may modify
+ * the order of properties in the <code>item</code> method.
+ * @param propertyName The name of the CSS property. See the CSS
+ * property index.
+ * @param value The new value of the property.
+ * @param priority The new priority of the property (e.g.
+ * <code>"important"</code>) or the empty string if none.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified value has a syntax error and is
+ * unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is
+ * readonly or the property is readonly.
+ */
+ public void setProperty(String propertyName,
+ String value,
+ String priority)
+ throws DOMException;
+
+ /**
+ * The number of properties that have been explicitly set in this
+ * declaration block. The range of valid indices is 0 to length-1
+ * inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Used to retrieve the properties that have been explicitly set in this
+ * declaration block. The order of the properties retrieved using this
+ * method does not have to be the order in which they were set. This
+ * method can be used to iterate over all properties in this declaration
+ * block.
+ * @param index Index of the property name to retrieve.
+ * @return The name of the property at this ordinal position. The empty
+ * string if no property exists at this position.
+ */
+ public String item(int index);
+
+ /**
+ * The CSS rule that contains this declaration block or <code>null</code>
+ * if this <code>CSSStyleDeclaration</code> is not attached to a
+ * <code>CSSRule</code>.
+ */
+ public CSSRule getParentRule();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java
new file mode 100644
index 000000000..e7377dcbe
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleRule.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>CSSStyleRule</code> interface represents a single rule set in a
+ * CSS style sheet.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSStyleRule extends CSSRule {
+ /**
+ * The textual representation of the selector for the rule set. The
+ * implementation may have stripped out insignificant whitespace while
+ * parsing the selector.
+ */
+ public String getSelectorText();
+ /**
+ * The textual representation of the selector for the rule set. The
+ * implementation may have stripped out insignificant whitespace while
+ * parsing the selector.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error and is unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this rule is readonly.
+ */
+ public void setSelectorText(String selectorText)
+ throws DOMException;
+
+ /**
+ * The declaration-block of this rule set.
+ */
+ public CSSStyleDeclaration getStyle();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java
new file mode 100644
index 000000000..c9538e436
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSStyleSheet.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+import org.w3c.dom.stylesheets.StyleSheet;
+
+/**
+ * The <code>CSSStyleSheet</code> interface is a concrete interface used to
+ * represent a CSS style sheet i.e., a style sheet whose content type is
+ * "text/css".
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSStyleSheet extends StyleSheet {
+ /**
+ * If this style sheet comes from an <code>@import</code> rule, the
+ * <code>ownerRule</code> attribute will contain the
+ * <code>CSSImportRule</code>. In that case, the <code>ownerNode</code>
+ * attribute in the <code>StyleSheet</code> interface will be
+ * <code>null</code>. If the style sheet comes from an element or a
+ * processing instruction, the <code>ownerRule</code> attribute will be
+ * <code>null</code> and the <code>ownerNode</code> attribute will
+ * contain the <code>Node</code>.
+ */
+ public CSSRule getOwnerRule();
+
+ /**
+ * The list of all CSS rules contained within the style sheet. This
+ * includes both rule sets and at-rules.
+ */
+ public CSSRuleList getCssRules();
+
+ /**
+ * Used to insert a new rule into the style sheet. The new rule now
+ * becomes part of the cascade.
+ * @param rule The parsable text representing the rule. For rule sets
+ * this contains both the selector and the style declaration. For
+ * at-rules, this specifies both the at-identifier and the rule
+ * content.
+ * @param index The index within the style sheet's rule list of the rule
+ * before which to insert the specified rule. If the specified index
+ * is equal to the length of the style sheet's rule collection, the
+ * rule will be added to the end of the style sheet.
+ * @return The index within the style sheet's rule collection of the
+ * newly inserted rule.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if the rule cannot be inserted at the
+ * specified index e.g. if an <code>@import</code> rule is inserted
+ * after a standard rule set or other at-rule.
+ * <br>INDEX_SIZE_ERR: Raised if the specified index is not a valid
+ * insertion point.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
+ * readonly.
+ * <br>SYNTAX_ERR: Raised if the specified rule has a syntax error and
+ * is unparsable.
+ */
+ public int insertRule(String rule,
+ int index)
+ throws DOMException;
+
+ /**
+ * Used to delete a rule from the style sheet.
+ * @param index The index within the style sheet's rule list of the rule
+ * to remove.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index does not correspond to
+ * a rule in the style sheet's rule list.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this style sheet is
+ * readonly.
+ */
+ public void deleteRule(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java
new file mode 100644
index 000000000..d01c1ac27
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSUnknownRule.java
@@ -0,0 +1,22 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The <code>CSSUnknownRule</code> interface represents an at-rule not
+ * supported by this user agent.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSUnknownRule extends CSSRule {
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java
new file mode 100644
index 000000000..3a43a17f1
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValue.java
@@ -0,0 +1,71 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>CSSValue</code> interface represents a simple or a complex
+ * value. A <code>CSSValue</code> object only occurs in a context of a CSS
+ * property.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSValue {
+ // UnitTypes
+ /**
+ * The value is inherited and the <code>cssText</code> contains "inherit".
+ */
+ public static final short CSS_INHERIT = 0;
+ /**
+ * The value is a primitive value and an instance of the
+ * <code>CSSPrimitiveValue</code> interface can be obtained by using
+ * binding-specific casting methods on this instance of the
+ * <code>CSSValue</code> interface.
+ */
+ public static final short CSS_PRIMITIVE_VALUE = 1;
+ /**
+ * The value is a <code>CSSValue</code> list and an instance of the
+ * <code>CSSValueList</code> interface can be obtained by using
+ * binding-specific casting methods on this instance of the
+ * <code>CSSValue</code> interface.
+ */
+ public static final short CSS_VALUE_LIST = 2;
+ /**
+ * The value is a custom value.
+ */
+ public static final short CSS_CUSTOM = 3;
+
+ /**
+ * A string representation of the current value.
+ */
+ public String getCssText();
+ /**
+ * A string representation of the current value.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified CSS string value has a syntax
+ * error (according to the attached property) or is unparsable.
+ * <br>INVALID_MODIFICATION_ERR: Raised if the specified CSS string
+ * value represents a different type of values than the values allowed
+ * by the CSS property.
+ * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this value is readonly.
+ */
+ public void setCssText(String cssText)
+ throws DOMException;
+
+ /**
+ * A code defining the type of the value as defined above.
+ */
+ public short getCssValueType();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java
new file mode 100644
index 000000000..4e29bfa3f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/CSSValueList.java
@@ -0,0 +1,46 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The <code>CSSValueList</code> interface provides the abstraction of an
+ * ordered collection of CSS values.
+ * <p> Some properties allow an empty list into their syntax. In that case,
+ * these properties take the <code>none</code> identifier. So, an empty list
+ * means that the property has the value <code>none</code>.
+ * <p> The items in the <code>CSSValueList</code> are accessible via an
+ * integral index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface CSSValueList extends CSSValue {
+ /**
+ * The number of <code>CSSValues</code> in the list. The range of valid
+ * values of the indices is <code>0</code> to <code>length-1</code>
+ * inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Used to retrieve a <code>CSSValue</code> by ordinal index. The order in
+ * this collection represents the order of the values in the CSS style
+ * property. If index is greater than or equal to the number of values
+ * in the list, this returns <code>null</code>.
+ * @param index Index into the collection.
+ * @return The <code>CSSValue</code> at the <code>index</code> position
+ * in the <code>CSSValueList</code>, or <code>null</code> if that is
+ * not a valid index.
+ */
+ public CSSValue item(int index);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java
new file mode 100644
index 000000000..7bfcc79f8
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Counter.java
@@ -0,0 +1,38 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The <code>Counter</code> interface is used to represent any counter or
+ * counters function value. This interface reflects the values in the
+ * underlying style property.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface Counter {
+ /**
+ * This attribute is used for the identifier of the counter.
+ */
+ public String getIdentifier();
+
+ /**
+ * This attribute is used for the style of the list.
+ */
+ public String getListStyle();
+
+ /**
+ * This attribute is used for the separator of the nested counters.
+ */
+ public String getSeparator();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java
new file mode 100644
index 000000000..90c6c135d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DOMImplementationCSS.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.DOMImplementation;
+import org.w3c.dom.DOMException;
+
+/**
+ * This interface allows the DOM user to create a <code>CSSStyleSheet</code>
+ * outside the context of a document. There is no way to associate the new
+ * <code>CSSStyleSheet</code> with a document in DOM Level 2.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DOMImplementationCSS extends DOMImplementation {
+ /**
+ * Creates a new <code>CSSStyleSheet</code>.
+ * @param title The advisory title. See also the section.
+ * @param media The comma-separated list of media associated with the
+ * new style sheet. See also the section.
+ * @return A new CSS style sheet.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified media string value has a syntax
+ * error and is unparsable.
+ */
+ public CSSStyleSheet createCSSStyleSheet(String title,
+ String media)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java
new file mode 100644
index 000000000..68a910754
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/DocumentCSS.java
@@ -0,0 +1,50 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.stylesheets.DocumentStyle;
+
+/**
+ * This interface represents a document with a CSS view.
+ * <p> The <code>getOverrideStyle</code> method provides a mechanism through
+ * which a DOM author could effect immediate change to the style of an
+ * element without modifying the explicitly linked style sheets of a
+ * document or the inline style of elements in the style sheets. This style
+ * sheet comes after the author style sheet in the cascade algorithm and is
+ * called override style sheet. The override style sheet takes precedence
+ * over author style sheets. An "!important" declaration still takes
+ * precedence over a normal declaration. Override, author, and user style
+ * sheets all may contain "!important" declarations. User "!important" rules
+ * take precedence over both override and author "!important" rules, and
+ * override "!important" rules take precedence over author "!important"
+ * rules.
+ * <p> The expectation is that an instance of the <code>DocumentCSS</code>
+ * interface can be obtained by using binding-specific casting methods on an
+ * instance of the <code>Document</code> interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentCSS extends DocumentStyle {
+ /**
+ * This method is used to retrieve the override style declaration for a
+ * specified element and a specified pseudo-element.
+ * @param elt The element whose style is to be modified. This parameter
+ * cannot be null.
+ * @param pseudoElt The pseudo-element or <code>null</code> if none.
+ * @return The override style declaration.
+ */
+ public CSSStyleDeclaration getOverrideStyle(Element elt,
+ String pseudoElt);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java
new file mode 100644
index 000000000..e1f25060c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ElementCSSInlineStyle.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * Inline style information attached to elements is exposed through the
+ * <code>style</code> attribute. This represents the contents of the STYLE
+ * attribute for HTML elements (or elements in other schemas or DTDs which
+ * use the STYLE attribute in the same way). The expectation is that an
+ * instance of the ElementCSSInlineStyle interface can be obtained by using
+ * binding-specific casting methods on an instance of the Element interface
+ * when the element supports inline CSS style informations.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface ElementCSSInlineStyle {
+ /**
+ * The style attribute.
+ */
+ public CSSStyleDeclaration getStyle();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java
new file mode 100644
index 000000000..215e291da
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/RGBColor.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The <code>RGBColor</code> interface is used to represent any RGB color
+ * value. This interface reflects the values in the underlying style
+ * property. Hence, modifications made to the <code>CSSPrimitiveValue</code>
+ * objects modify the style property.
+ * <p> A specified RGB color is not clipped (even if the number is outside the
+ * range 0-255 or 0%-100%). A computed RGB color is clipped depending on the
+ * device.
+ * <p> Even if a style sheet can only contain an integer for a color value,
+ * the internal storage of this integer is a float, and this can be used as
+ * a float in the specified or the computed style.
+ * <p> A color percentage value can always be converted to a number and vice
+ * versa.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface RGBColor {
+ /**
+ * This attribute is used for the red value of the RGB color.
+ */
+ public CSSPrimitiveValue getRed();
+
+ /**
+ * This attribute is used for the green value of the RGB color.
+ */
+ public CSSPrimitiveValue getGreen();
+
+ /**
+ * This attribute is used for the blue value of the RGB color.
+ */
+ public CSSPrimitiveValue getBlue();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java
new file mode 100644
index 000000000..ffbf96547
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/Rect.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+/**
+ * The <code>Rect</code> interface is used to represent any rect value. This
+ * interface reflects the values in the underlying style property. Hence,
+ * modifications made to the <code>CSSPrimitiveValue</code> objects modify
+ * the style property.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface Rect {
+ /**
+ * This attribute is used for the top of the rect.
+ */
+ public CSSPrimitiveValue getTop();
+
+ /**
+ * This attribute is used for the right of the rect.
+ */
+ public CSSPrimitiveValue getRight();
+
+ /**
+ * This attribute is used for the bottom of the rect.
+ */
+ public CSSPrimitiveValue getBottom();
+
+ /**
+ * This attribute is used for the left of the rect.
+ */
+ public CSSPrimitiveValue getLeft();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java
new file mode 100644
index 000000000..1db9ac44c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/css/ViewCSS.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.css;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * This interface represents a CSS view. The <code>getComputedStyle</code>
+ * method provides a read only access to the computed values of an element.
+ * <p> The expectation is that an instance of the <code>ViewCSS</code>
+ * interface can be obtained by using binding-specific casting methods on an
+ * instance of the <code>AbstractView</code> interface.
+ * <p> Since a computed style is related to an <code>Element</code> node, if
+ * this element is removed from the document, the associated
+ * <code>CSSStyleDeclaration</code> and <code>CSSValue</code> related to
+ * this declaration are no longer valid.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface ViewCSS extends AbstractView {
+ /**
+ * This method is used to get the computed style as it is defined in [<a href='http://www.w3.org/TR/1998/REC-CSS2-19980512'>CSS2</a>].
+ * @param elt The element whose style is to be computed. This parameter
+ * cannot be null.
+ * @param pseudoElt The pseudo-element or <code>null</code> if none.
+ * @return The computed style. The <code>CSSStyleDeclaration</code> is
+ * read-only and contains only absolute values.
+ */
+ public CSSStyleDeclaration getComputedStyle(Element elt,
+ String pseudoElt);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java
new file mode 100644
index 000000000..55c838603
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/DocumentEvent.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>DocumentEvent</code> interface provides a mechanism by which the
+ * user can create an Event of a type supported by the implementation. It is
+ * expected that the <code>DocumentEvent</code> interface will be
+ * implemented on the same object which implements the <code>Document</code>
+ * interface in an implementation which supports the Event model.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentEvent {
+ /**
+ *
+ * @param eventType The <code>eventType</code> parameter specifies the
+ * type of <code>Event</code> interface to be created. If the
+ * <code>Event</code> interface specified is supported by the
+ * implementation this method will return a new <code>Event</code> of
+ * the interface type requested. If the <code>Event</code> is to be
+ * dispatched via the <code>dispatchEvent</code> method the
+ * appropriate event init method must be called after creation in
+ * order to initialize the <code>Event</code>'s values. As an example,
+ * a user wishing to synthesize some kind of <code>UIEvent</code>
+ * would call <code>createEvent</code> with the parameter "UIEvents".
+ * The <code>initUIEvent</code> method could then be called on the
+ * newly created <code>UIEvent</code> to set the specific type of
+ * UIEvent to be dispatched and set its context information.The
+ * <code>createEvent</code> method is used in creating
+ * <code>Event</code>s when it is either inconvenient or unnecessary
+ * for the user to create an <code>Event</code> themselves. In cases
+ * where the implementation provided <code>Event</code> is
+ * insufficient, users may supply their own <code>Event</code>
+ * implementations for use with the <code>dispatchEvent</code> method.
+ * @return The newly created <code>Event</code>
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the implementation does not support the
+ * type of <code>Event</code> interface requested
+ */
+ public Event createEvent(String eventType)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java
new file mode 100644
index 000000000..29a96c50a
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/Event.java
@@ -0,0 +1,141 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The <code>Event</code> interface is used to provide contextual information
+ * about an event to the handler processing the event. An object which
+ * implements the <code>Event</code> interface is generally passed as the
+ * first parameter to an event handler. More specific context information is
+ * passed to event handlers by deriving additional interfaces from
+ * <code>Event</code> which contain information directly relating to the
+ * type of event they accompany. These derived interfaces are also
+ * implemented by the object passed to the event listener.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface Event {
+ // PhaseType
+ /**
+ * The current event phase is the capturing phase.
+ */
+ public static final short CAPTURING_PHASE = 1;
+ /**
+ * The event is currently being evaluated at the target
+ * <code>EventTarget</code>.
+ */
+ public static final short AT_TARGET = 2;
+ /**
+ * The current event phase is the bubbling phase.
+ */
+ public static final short BUBBLING_PHASE = 3;
+
+ /**
+ * The name of the event (case-insensitive). The name must be an XML name.
+ */
+ public String getType();
+
+ /**
+ * Used to indicate the <code>EventTarget</code> to which the event was
+ * originally dispatched.
+ */
+ public EventTarget getTarget();
+
+ /**
+ * Used to indicate the <code>EventTarget</code> whose
+ * <code>EventListeners</code> are currently being processed. This is
+ * particularly useful during capturing and bubbling.
+ */
+ public EventTarget getCurrentTarget();
+
+ /**
+ * Used to indicate which phase of event flow is currently being
+ * evaluated.
+ */
+ public short getEventPhase();
+
+ /**
+ * Used to indicate whether or not an event is a bubbling event. If the
+ * event can bubble the value is true, else the value is false.
+ */
+ public boolean getBubbles();
+
+ /**
+ * Used to indicate whether or not an event can have its default action
+ * prevented. If the default action can be prevented the value is true,
+ * else the value is false.
+ */
+ public boolean getCancelable();
+
+ /**
+ * Used to specify the time (in milliseconds relative to the epoch) at
+ * which the event was created. Due to the fact that some systems may
+ * not provide this information the value of <code>timeStamp</code> may
+ * be not available for all events. When not available, a value of 0
+ * will be returned. Examples of epoch time are the time of the system
+ * start or 0:0:0 UTC 1st January 1970.
+ */
+ public long getTimeStamp();
+
+ /**
+ * The <code>stopPropagation</code> method is used prevent further
+ * propagation of an event during event flow. If this method is called
+ * by any <code>EventListener</code> the event will cease propagating
+ * through the tree. The event will complete dispatch to all listeners
+ * on the current <code>EventTarget</code> before event flow stops. This
+ * method may be used during any stage of event flow.
+ */
+ public void stopPropagation();
+
+ /**
+ * If an event is cancelable, the <code>preventDefault</code> method is
+ * used to signify that the event is to be canceled, meaning any default
+ * action normally taken by the implementation as a result of the event
+ * will not occur. If, during any stage of event flow, the
+ * <code>preventDefault</code> method is called the event is canceled.
+ * Any default action associated with the event will not occur. Calling
+ * this method for a non-cancelable event has no effect. Once
+ * <code>preventDefault</code> has been called it will remain in effect
+ * throughout the remainder of the event's propagation. This method may
+ * be used during any stage of event flow.
+ */
+ public void preventDefault();
+
+ /**
+ * The <code>initEvent</code> method is used to initialize the value of an
+ * <code>Event</code> created through the <code>DocumentEvent</code>
+ * interface. This method may only be called before the
+ * <code>Event</code> has been dispatched via the
+ * <code>dispatchEvent</code> method, though it may be called multiple
+ * times during that phase if necessary. If called multiple times the
+ * final invocation takes precedence. If called from a subclass of
+ * <code>Event</code> interface only the values specified in the
+ * <code>initEvent</code> method are modified, all other attributes are
+ * left unchanged.
+ * @param eventTypeArg Specifies the event type. This type may be any
+ * event type currently defined in this specification or a new event
+ * type.. The string must be an XML name. Any new event type must not
+ * begin with any upper, lower, or mixed case version of the string
+ * "DOM". This prefix is reserved for future DOM event sets. It is
+ * also strongly recommended that third parties adding their own
+ * events use their own prefix to avoid confusion and lessen the
+ * probability of conflicts with other new events.
+ * @param canBubbleArg Specifies whether or not the event can bubble.
+ * @param cancelableArg Specifies whether or not the event's default
+ * action can be prevented.
+ */
+ public void initEvent(String eventTypeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java
new file mode 100644
index 000000000..9a62f1fc5
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventException.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * Event operations may throw an <code>EventException</code> as specified in
+ * their method descriptions.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public class EventException extends RuntimeException {
+ public EventException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // EventExceptionCode
+ /**
+ * If the <code>Event</code>'s type was not specified by initializing the
+ * event before the method was called. Specification of the Event's type
+ * as <code>null</code> or an empty string will also trigger this
+ * exception.
+ */
+ public static final short UNSPECIFIED_EVENT_TYPE_ERR = 0;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java
new file mode 100644
index 000000000..1be3523fb
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventListener.java
@@ -0,0 +1,41 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The <code>EventListener</code> interface is the primary method for
+ * handling events. Users implement the <code>EventListener</code> interface
+ * and register their listener on an <code>EventTarget</code> using the
+ * <code>AddEventListener</code> method. The users should also remove their
+ * <code>EventListener</code> from its <code>EventTarget</code> after they
+ * have completed using the listener.
+ * <p> When a <code>Node</code> is copied using the <code>cloneNode</code>
+ * method the <code>EventListener</code>s attached to the source
+ * <code>Node</code> are not attached to the copied <code>Node</code>. If
+ * the user wishes the same <code>EventListener</code>s to be added to the
+ * newly created copy the user must add them manually.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface EventListener {
+ /**
+ * This method is called whenever an event occurs of the type for which
+ * the <code> EventListener</code> interface was registered.
+ * @param evt The <code>Event</code> contains contextual information
+ * about the event. It also contains the <code>stopPropagation</code>
+ * and <code>preventDefault</code> methods which are used in
+ * determining the event's flow and default action.
+ */
+ public void handleEvent(Event evt);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java
new file mode 100644
index 000000000..3b66a8deb
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/EventTarget.java
@@ -0,0 +1,102 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.events;
+
+/**
+ * The <code>EventTarget</code> interface is implemented by all
+ * <code>Nodes</code> in an implementation which supports the DOM Event
+ * Model. Therefore, this interface can be obtained by using
+ * binding-specific casting methods on an instance of the <code>Node</code>
+ * interface. The interface allows registration and removal of
+ * <code>EventListeners</code> on an <code>EventTarget</code> and dispatch
+ * of events to that <code>EventTarget</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface EventTarget {
+ /**
+ * This method allows the registration of event listeners on the event
+ * target. If an <code>EventListener</code> is added to an
+ * <code>EventTarget</code> while it is processing an event, it will not
+ * be triggered by the current actions but may be triggered during a
+ * later stage of event flow, such as the bubbling phase.
+ * <br> If multiple identical <code>EventListener</code>s are registered
+ * on the same <code>EventTarget</code> with the same parameters the
+ * duplicate instances are discarded. They do not cause the
+ * <code>EventListener</code> to be called twice and since they are
+ * discarded they do not need to be removed with the
+ * <code>removeEventListener</code> method.
+ * @param type The event type for which the user is registering
+ * @param listener The <code>listener</code> parameter takes an interface
+ * implemented by the user which contains the methods to be called
+ * when the event occurs.
+ * @param useCapture If true, <code>useCapture</code> indicates that the
+ * user wishes to initiate capture. After initiating capture, all
+ * events of the specified type will be dispatched to the registered
+ * <code>EventListener</code> before being dispatched to any
+ * <code>EventTargets</code> beneath them in the tree. Events which
+ * are bubbling upward through the tree will not trigger an
+ * <code>EventListener</code> designated to use capture.
+ */
+ public void addEventListener(String type,
+ EventListener listener,
+ boolean useCapture);
+
+ /**
+ * This method allows the removal of event listeners from the event
+ * target. If an <code>EventListener</code> is removed from an
+ * <code>EventTarget</code> while it is processing an event, it will not
+ * be triggered by the current actions. <code>EventListener</code>s can
+ * never be invoked after being removed.
+ * <br>Calling <code>removeEventListener</code> with arguments which do
+ * not identify any currently registered <code>EventListener</code> on
+ * the <code>EventTarget</code> has no effect.
+ * @param type Specifies the event type of the <code>EventListener</code>
+ * being removed.
+ * @param listener The <code>EventListener</code> parameter indicates the
+ * <code>EventListener </code> to be removed.
+ * @param useCapture Specifies whether the <code>EventListener</code>
+ * being removed was registered as a capturing listener or not. If a
+ * listener was registered twice, one with capture and one without,
+ * each must be removed separately. Removal of a capturing listener
+ * does not affect a non-capturing version of the same listener, and
+ * vice versa.
+ */
+ public void removeEventListener(String type,
+ EventListener listener,
+ boolean useCapture);
+
+ /**
+ * This method allows the dispatch of events into the implementations
+ * event model. Events dispatched in this manner will have the same
+ * capturing and bubbling behavior as events dispatched directly by the
+ * implementation. The target of the event is the
+ * <code> EventTarget</code> on which <code>dispatchEvent</code> is
+ * called.
+ * @param evt Specifies the event type, behavior, and contextual
+ * information to be used in processing the event.
+ * @return The return value of <code>dispatchEvent</code> indicates
+ * whether any of the listeners which handled the event called
+ * <code>preventDefault</code>. If <code>preventDefault</code> was
+ * called the value is false, else the value is true.
+ * @exception EventException
+ * UNSPECIFIED_EVENT_TYPE_ERR: Raised if the <code>Event</code>'s type
+ * was not specified by initializing the event before
+ * <code>dispatchEvent</code> was called. Specification of the
+ * <code>Event</code>'s type as <code>null</code> or an empty string
+ * will also trigger this exception.
+ */
+ public boolean dispatchEvent(Event evt)
+ throws EventException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java
new file mode 100644
index 000000000..67e20572f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MouseEvent.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * The <code>MouseEvent</code> interface provides specific contextual
+ * information associated with Mouse events.
+ * <p>The <code>detail</code> attribute inherited from <code>UIEvent</code>
+ * indicates the number of times a mouse button has been pressed and
+ * released over the same screen location during a user action. The
+ * attribute value is 1 when the user begins this action and increments by 1
+ * for each full sequence of pressing and releasing. If the user moves the
+ * mouse between the mousedown and mouseup the value will be set to 0,
+ * indicating that no click is occurring.
+ * <p>In the case of nested elements mouse events are always targeted at the
+ * most deeply nested element. Ancestors of the targeted element may use
+ * bubbling to obtain notification of mouse events which occur within its
+ * descendent elements.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface MouseEvent extends UIEvent {
+ /**
+ * The horizontal coordinate at which the event occurred relative to the
+ * origin of the screen coordinate system.
+ */
+ public int getScreenX();
+
+ /**
+ * The vertical coordinate at which the event occurred relative to the
+ * origin of the screen coordinate system.
+ */
+ public int getScreenY();
+
+ /**
+ * The horizontal coordinate at which the event occurred relative to the
+ * DOM implementation's client area.
+ */
+ public int getClientX();
+
+ /**
+ * The vertical coordinate at which the event occurred relative to the DOM
+ * implementation's client area.
+ */
+ public int getClientY();
+
+ /**
+ * Used to indicate whether the 'ctrl' key was depressed during the firing
+ * of the event.
+ */
+ public boolean getCtrlKey();
+
+ /**
+ * Used to indicate whether the 'shift' key was depressed during the
+ * firing of the event.
+ */
+ public boolean getShiftKey();
+
+ /**
+ * Used to indicate whether the 'alt' key was depressed during the firing
+ * of the event. On some platforms this key may map to an alternative
+ * key name.
+ */
+ public boolean getAltKey();
+
+ /**
+ * Used to indicate whether the 'meta' key was depressed during the firing
+ * of the event. On some platforms this key may map to an alternative
+ * key name.
+ */
+ public boolean getMetaKey();
+
+ /**
+ * During mouse events caused by the depression or release of a mouse
+ * button, <code>button</code> is used to indicate which mouse button
+ * changed state. The values for <code>button</code> range from zero to
+ * indicate the left button of the mouse, one to indicate the middle
+ * button if present, and two to indicate the right button. For mice
+ * configured for left handed use in which the button actions are
+ * reversed the values are instead read from right to left.
+ */
+ public short getButton();
+
+ /**
+ * Used to identify a secondary <code>EventTarget</code> related to a UI
+ * event. Currently this attribute is used with the mouseover event to
+ * indicate the <code>EventTarget</code> which the pointing device
+ * exited and with the mouseout event to indicate the
+ * <code>EventTarget</code> which the pointing device entered.
+ */
+ public EventTarget getRelatedTarget();
+
+ /**
+ * The <code>initMouseEvent</code> method is used to initialize the value
+ * of a <code>MouseEvent</code> created through the
+ * <code>DocumentEvent</code> interface. This method may only be called
+ * before the <code>MouseEvent</code> has been dispatched via the
+ * <code>dispatchEvent</code> method, though it may be called multiple
+ * times during that phase if necessary. If called multiple times, the
+ * final invocation takes precedence.
+ * @param typeArg Specifies the event type.
+ * @param canBubbleArg Specifies whether or not the event can bubble.
+ * @param cancelableArg Specifies whether or not the event's default
+ * action can be prevented.
+ * @param viewArg Specifies the <code>Event</code>'s
+ * <code>AbstractView</code>.
+ * @param detailArg Specifies the <code>Event</code>'s mouse click count.
+ * @param screenXArg Specifies the <code>Event</code>'s screen x
+ * coordinate
+ * @param screenYArg Specifies the <code>Event</code>'s screen y
+ * coordinate
+ * @param clientXArg Specifies the <code>Event</code>'s client x
+ * coordinate
+ * @param clientYArg Specifies the <code>Event</code>'s client y
+ * coordinate
+ * @param ctrlKeyArg Specifies whether or not control key was depressed
+ * during the <code>Event</code>.
+ * @param altKeyArg Specifies whether or not alt key was depressed during
+ * the <code>Event</code>.
+ * @param shiftKeyArg Specifies whether or not shift key was depressed
+ * during the <code>Event</code>.
+ * @param metaKeyArg Specifies whether or not meta key was depressed
+ * during the <code>Event</code>.
+ * @param buttonArg Specifies the <code>Event</code>'s mouse button.
+ * @param relatedTargetArg Specifies the <code>Event</code>'s related
+ * <code>EventTarget</code>.
+ */
+ public void initMouseEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg,
+ int screenXArg,
+ int screenYArg,
+ int clientXArg,
+ int clientYArg,
+ boolean ctrlKeyArg,
+ boolean altKeyArg,
+ boolean shiftKeyArg,
+ boolean metaKeyArg,
+ short buttonArg,
+ EventTarget relatedTargetArg);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java
new file mode 100644
index 000000000..2cbedb768
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/MutationEvent.java
@@ -0,0 +1,108 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.Node;
+
+/**
+ * The <code>MutationEvent</code> interface provides specific contextual
+ * information associated with Mutation events.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface MutationEvent extends Event {
+ // attrChangeType
+ /**
+ * The <code>Attr</code> was modified in place.
+ */
+ public static final short MODIFICATION = 1;
+ /**
+ * The <code>Attr</code> was just added.
+ */
+ public static final short ADDITION = 2;
+ /**
+ * The <code>Attr</code> was just removed.
+ */
+ public static final short REMOVAL = 3;
+
+ /**
+ * <code>relatedNode</code> is used to identify a secondary node related
+ * to a mutation event. For example, if a mutation event is dispatched
+ * to a node indicating that its parent has changed, the
+ * <code>relatedNode</code> is the changed parent. If an event is
+ * instead dispatched to a subtree indicating a node was changed within
+ * it, the <code>relatedNode</code> is the changed node. In the case of
+ * the DOMAttrModified event it indicates the <code>Attr</code> node
+ * which was modified, added, or removed.
+ */
+ public Node getRelatedNode();
+
+ /**
+ * <code>prevValue</code> indicates the previous value of the
+ * <code>Attr</code> node in DOMAttrModified events, and of the
+ * <code>CharacterData</code> node in DOMCharacterDataModified events.
+ */
+ public String getPrevValue();
+
+ /**
+ * <code>newValue</code> indicates the new value of the <code>Attr</code>
+ * node in DOMAttrModified events, and of the <code>CharacterData</code>
+ * node in DOMCharacterDataModified events.
+ */
+ public String getNewValue();
+
+ /**
+ * <code>attrName</code> indicates the name of the changed
+ * <code>Attr</code> node in a DOMAttrModified event.
+ */
+ public String getAttrName();
+
+ /**
+ * <code>attrChange</code> indicates the type of change which triggered
+ * the DOMAttrModified event. The values can be <code>MODIFICATION</code>
+ * , <code>ADDITION</code>, or <code>REMOVAL</code>.
+ */
+ public short getAttrChange();
+
+ /**
+ * The <code>initMutationEvent</code> method is used to initialize the
+ * value of a <code>MutationEvent</code> created through the
+ * <code>DocumentEvent</code> interface. This method may only be called
+ * before the <code>MutationEvent</code> has been dispatched via the
+ * <code>dispatchEvent</code> method, though it may be called multiple
+ * times during that phase if necessary. If called multiple times, the
+ * final invocation takes precedence.
+ * @param typeArg Specifies the event type.
+ * @param canBubbleArg Specifies whether or not the event can bubble.
+ * @param cancelableArg Specifies whether or not the event's default
+ * action can be prevented.
+ * @param relatedNodeArg Specifies the <code>Event</code>'s related Node.
+ * @param prevValueArg Specifies the <code>Event</code>'s
+ * <code>prevValue</code> attribute. This value may be null.
+ * @param newValueArg Specifies the <code>Event</code>'s
+ * <code>newValue</code> attribute. This value may be null.
+ * @param attrNameArg Specifies the <code>Event</code>'s
+ * <code>attrName</code> attribute. This value may be null.
+ * @param attrChangeArg Specifies the <code>Event</code>'s
+ * <code>attrChange</code> attribute
+ */
+ public void initMutationEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ Node relatedNodeArg,
+ String prevValueArg,
+ String newValueArg,
+ String attrNameArg,
+ short attrChangeArg);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java
new file mode 100644
index 000000000..e3617c026
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/events/UIEvent.java
@@ -0,0 +1,58 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.events;
+
+import org.w3c.dom.views.AbstractView;
+
+/**
+ * The <code>UIEvent</code> interface provides specific contextual information
+ * associated with User Interface events.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113'>Document Object Model (DOM) Level 2 Events Specification</a>.
+ * @since DOM Level 2
+ */
+public interface UIEvent extends Event {
+ /**
+ * The <code>view</code> attribute identifies the <code>AbstractView</code>
+ * from which the event was generated.
+ */
+ public AbstractView getView();
+
+ /**
+ * Specifies some detail information about the <code>Event</code>,
+ * depending on the type of event.
+ */
+ public int getDetail();
+
+ /**
+ * The <code>initUIEvent</code> method is used to initialize the value of
+ * a <code>UIEvent</code> created through the <code>DocumentEvent</code>
+ * interface. This method may only be called before the
+ * <code>UIEvent</code> has been dispatched via the
+ * <code>dispatchEvent</code> method, though it may be called multiple
+ * times during that phase if necessary. If called multiple times, the
+ * final invocation takes precedence.
+ * @param typeArg Specifies the event type.
+ * @param canBubbleArg Specifies whether or not the event can bubble.
+ * @param cancelableArg Specifies whether or not the event's default
+ * action can be prevented.
+ * @param viewArg Specifies the <code>Event</code>'s
+ * <code>AbstractView</code>.
+ * @param detailArg Specifies the <code>Event</code>'s detail.
+ */
+ public void initUIEvent(String typeArg,
+ boolean canBubbleArg,
+ boolean cancelableArg,
+ AbstractView viewArg,
+ int detailArg);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java
new file mode 100644
index 000000000..a3ec0b504
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAnchorElement.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The anchor element. See the A element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLAnchorElement extends HTMLElement {
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * The character encoding of the linked resource. See the charset
+ * attribute definition in HTML 4.01.
+ */
+ public String getCharset();
+ /**
+ * The character encoding of the linked resource. See the charset
+ * attribute definition in HTML 4.01.
+ */
+ public void setCharset(String charset);
+
+ /**
+ * Comma-separated list of lengths, defining an active region geometry.
+ * See also <code>shape</code> for the shape of the region. See the
+ * coords attribute definition in HTML 4.01.
+ */
+ public String getCoords();
+ /**
+ * Comma-separated list of lengths, defining an active region geometry.
+ * See also <code>shape</code> for the shape of the region. See the
+ * coords attribute definition in HTML 4.01.
+ */
+ public void setCoords(String coords);
+
+ /**
+ * The absolute URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the linked resource. See the href attribute
+ * definition in HTML 4.01.
+ */
+ public String getHref();
+ /**
+ * The absolute URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the linked resource. See the href attribute
+ * definition in HTML 4.01.
+ */
+ public void setHref(String href);
+
+ /**
+ * Language code of the linked resource. See the hreflang attribute
+ * definition in HTML 4.01.
+ */
+ public String getHreflang();
+ /**
+ * Language code of the linked resource. See the hreflang attribute
+ * definition in HTML 4.01.
+ */
+ public void setHreflang(String hreflang);
+
+ /**
+ * Anchor name. See the name attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Anchor name. See the name attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Forward link type. See the rel attribute definition in HTML 4.01.
+ */
+ public String getRel();
+ /**
+ * Forward link type. See the rel attribute definition in HTML 4.01.
+ */
+ public void setRel(String rel);
+
+ /**
+ * Reverse link type. See the rev attribute definition in HTML 4.01.
+ */
+ public String getRev();
+ /**
+ * Reverse link type. See the rev attribute definition in HTML 4.01.
+ */
+ public void setRev(String rev);
+
+ /**
+ * The shape of the active area. The coordinates are given by
+ * <code>coords</code>. See the shape attribute definition in HTML 4.01.
+ */
+ public String getShape();
+ /**
+ * The shape of the active area. The coordinates are given by
+ * <code>coords</code>. See the shape attribute definition in HTML 4.01.
+ */
+ public void setShape(String shape);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public String getTarget();
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public void setTarget(String target);
+
+ /**
+ * Advisory content type. See the type attribute definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Advisory content type. See the type attribute definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+ /**
+ * Removes keyboard focus from this element.
+ */
+ public void blur();
+
+ /**
+ * Gives keyboard focus to this element.
+ */
+ public void focus();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java
new file mode 100644
index 000000000..2e0fc153c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAppletElement.java
@@ -0,0 +1,156 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * An embedded Java applet. See the APPLET element definition in HTML 4.01.
+ * This element is deprecated in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLAppletElement extends HTMLElement {
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getAlt();
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setAlt(String alt);
+
+ /**
+ * Comma-separated archive list. See the archive attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getArchive();
+ /**
+ * Comma-separated archive list. See the archive attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setArchive(String archive);
+
+ /**
+ * Applet class file. See the code attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getCode();
+ /**
+ * Applet class file. See the code attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setCode(String code);
+
+ /**
+ * Optional base URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] for applet. See the codebase attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getCodeBase();
+ /**
+ * Optional base URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] for applet. See the codebase attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setCodeBase(String codeBase);
+
+ /**
+ * Override height. See the height attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getHeight();
+ /**
+ * Override height. See the height attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setHeight(String height);
+
+ /**
+ * Horizontal space, in pixels, to the left and right of this image,
+ * applet, or object. See the hspace attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public int getHspace();
+ /**
+ * Horizontal space, in pixels, to the left and right of this image,
+ * applet, or object. See the hspace attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setHspace(int hspace);
+
+ /**
+ * The name of the applet. See the name attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * The name of the applet. See the name attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * The value of the "object" attribute. See the object attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public String getObject();
+ /**
+ * The value of the "object" attribute. See the object attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setObject(String object);
+
+ /**
+ * Vertical space, in pixels, above and below this image, applet, or
+ * object. See the vspace attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public int getVspace();
+ /**
+ * Vertical space, in pixels, above and below this image, applet, or
+ * object. See the vspace attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setVspace(int vspace);
+
+ /**
+ * Override width. See the width attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Override width. See the width attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java
new file mode 100644
index 000000000..403b94d50
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLAreaElement.java
@@ -0,0 +1,111 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Client-side image map area definition. See the AREA element definition in
+ * HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLAreaElement extends HTMLElement {
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public String getAlt();
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public void setAlt(String alt);
+
+ /**
+ * Comma-separated list of lengths, defining an active region geometry.
+ * See also <code>shape</code> for the shape of the region. See the
+ * coords attribute definition in HTML 4.01.
+ */
+ public String getCoords();
+ /**
+ * Comma-separated list of lengths, defining an active region geometry.
+ * See also <code>shape</code> for the shape of the region. See the
+ * coords attribute definition in HTML 4.01.
+ */
+ public void setCoords(String coords);
+
+ /**
+ * The URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the linked resource. See the href attribute definition in
+ * HTML 4.01.
+ */
+ public String getHref();
+ /**
+ * The URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the linked resource. See the href attribute definition in
+ * HTML 4.01.
+ */
+ public void setHref(String href);
+
+ /**
+ * Specifies that this area is inactive, i.e., has no associated action.
+ * See the nohref attribute definition in HTML 4.01.
+ */
+ public boolean getNoHref();
+ /**
+ * Specifies that this area is inactive, i.e., has no associated action.
+ * See the nohref attribute definition in HTML 4.01.
+ */
+ public void setNoHref(boolean noHref);
+
+ /**
+ * The shape of the active area. The coordinates are given by
+ * <code>coords</code>. See the shape attribute definition in HTML 4.01.
+ */
+ public String getShape();
+ /**
+ * The shape of the active area. The coordinates are given by
+ * <code>coords</code>. See the shape attribute definition in HTML 4.01.
+ */
+ public void setShape(String shape);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public String getTarget();
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public void setTarget(String target);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java
new file mode 100644
index 000000000..74dbe1f3f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBRElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Force a line break. See the BR element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLBRElement extends HTMLElement {
+ /**
+ * Control flow of text around floats. See the clear attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getClear();
+ /**
+ * Control flow of text around floats. See the clear attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setClear(String clear);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java
new file mode 100644
index 000000000..9dde9b3da
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseElement.java
@@ -0,0 +1,40 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Document base URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]. See the BASE element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLBaseElement extends HTMLElement {
+ /**
+ * The base URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]. See the href attribute definition in HTML 4.01.
+ */
+ public String getHref();
+ /**
+ * The base URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]. See the href attribute definition in HTML 4.01.
+ */
+ public void setHref(String href);
+
+ /**
+ * The default target frame. See the target attribute definition in HTML
+ * 4.01.
+ */
+ public String getTarget();
+ /**
+ * The default target frame. See the target attribute definition in HTML
+ * 4.01.
+ */
+ public void setTarget(String target);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java
new file mode 100644
index 000000000..1ae8834d7
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBaseFontElement.java
@@ -0,0 +1,56 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Base font. See the BASEFONT element definition in HTML 4.01. This element
+ * is deprecated in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLBaseFontElement extends HTMLElement {
+ /**
+ * Font color. See the color attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getColor();
+ /**
+ * Font color. See the color attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setColor(String color);
+
+ /**
+ * Font face identifier. See the face attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getFace();
+ /**
+ * Font face identifier. See the face attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setFace(String face);
+
+ /**
+ * Computed font size. See the size attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public int getSize();
+ /**
+ * Computed font size. See the size attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setSize(int size);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java
new file mode 100644
index 000000000..7e1aabe1f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLBodyElement.java
@@ -0,0 +1,94 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The HTML document body. This element is always present in the DOM API, even
+ * if the tags are not present in the source document. See the BODY element
+ * definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLBodyElement extends HTMLElement {
+ /**
+ * Color of active links (after mouse-button down, but before mouse-button
+ * up). See the alink attribute definition in HTML 4.01. This attribute
+ * is deprecated in HTML 4.01.
+ */
+ public String getALink();
+ /**
+ * Color of active links (after mouse-button down, but before mouse-button
+ * up). See the alink attribute definition in HTML 4.01. This attribute
+ * is deprecated in HTML 4.01.
+ */
+ public void setALink(String aLink);
+
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the background texture tile image. See the background attribute
+ * definition in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBackground();
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the background texture tile image. See the background attribute
+ * definition in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBackground(String background);
+
+ /**
+ * Document background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBgColor();
+ /**
+ * Document background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBgColor(String bgColor);
+
+ /**
+ * Color of links that are not active and unvisited. See the link
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public String getLink();
+ /**
+ * Color of links that are not active and unvisited. See the link
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public void setLink(String link);
+
+ /**
+ * Document text color. See the text attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getText();
+ /**
+ * Document text color. See the text attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setText(String text);
+
+ /**
+ * Color of links that have been visited by the user. See the vlink
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public String getVLink();
+ /**
+ * Color of links that have been visited by the user. See the vlink
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public void setVLink(String vLink);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java
new file mode 100644
index 000000000..8e31b103c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLButtonElement.java
@@ -0,0 +1,88 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Push button. See the BUTTON element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLButtonElement extends HTMLElement {
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * The type of button (all lower case). See the type attribute definition
+ * in HTML 4.01.
+ */
+ public String getType();
+
+ /**
+ * The current form control value. See the value attribute definition in
+ * HTML 4.01.
+ */
+ public String getValue();
+ /**
+ * The current form control value. See the value attribute definition in
+ * HTML 4.01.
+ */
+ public void setValue(String value);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java
new file mode 100644
index 000000000..d6ec5473f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLCollection.java
@@ -0,0 +1,59 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Node;
+
+/**
+ * An <code>HTMLCollection</code> is a list of nodes. An individual node may
+ * be accessed by either ordinal index or the node's <code>name</code> or
+ * <code>id</code> attributes. Collections in the HTML DOM are assumed to be
+ * live meaning that they are automatically updated when the underlying
+ * document is changed.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLCollection {
+ /**
+ * This attribute specifies the length or size of the list.
+ */
+ public int getLength();
+
+ /**
+ * This method retrieves a node specified by ordinal index. Nodes are
+ * numbered in tree order (depth-first traversal order).
+ * @param index The index of the node to be fetched. The index origin is
+ * <code>0</code>.
+ * @return The <code>Node</code> at the corresponding position upon
+ * success. A value of <code>null</code> is returned if the index is
+ * out of range.
+ */
+ public Node item(int index);
+
+ /**
+ * This method retrieves a <code>Node</code> using a name. With [<a href='http://www.w3.org/TR/1999/REC-html401-19991224'>HTML 4.01</a>]
+ * documents, it first searches for a <code>Node</code> with a matching
+ * <code>id</code> attribute. If it doesn't find one, it then searches
+ * for a <code>Node</code> with a matching <code>name</code> attribute,
+ * but only on those elements that are allowed a name attribute. With [<a href='http://www.w3.org/TR/2002/REC-xhtml1-20020801'>XHTML 1.0</a>]
+ * documents, this method only searches for <code>Nodes</code> with a
+ * matching <code>id</code> attribute. This method is case insensitive
+ * in HTML documents and case sensitive in XHTML documents.
+ * @param name The name of the <code>Node</code> to be fetched.
+ * @return The <code>Node</code> with a <code>name</code> or
+ * <code>id</code> attribute whose value corresponds to the specified
+ * string. Upon failure (e.g., no node with this name exists), returns
+ * <code>null</code>.
+ */
+ public Node namedItem(String name);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java
new file mode 100644
index 000000000..e6f17b6ad
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDListElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Definition list. See the DL element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLDListElement extends HTMLElement {
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getCompact();
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setCompact(boolean compact);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java
new file mode 100644
index 000000000..b66de037c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDirectoryElement.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Directory list. See the DIR element definition in HTML 4.01. This element
+ * is deprecated in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLDirectoryElement extends HTMLElement {
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getCompact();
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setCompact(boolean compact);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java
new file mode 100644
index 000000000..5f5c0dc88
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDivElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Generic block container. See the DIV element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLDivElement extends HTMLElement {
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java
new file mode 100644
index 000000000..b038783f6
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLDocument.java
@@ -0,0 +1,237 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.NodeList;
+import org.w3c.dom.DOMException;
+
+/**
+ * An <code>HTMLDocument</code> is the root of the HTML hierarchy and holds
+ * the entire content. Besides providing access to the hierarchy, it also
+ * provides some convenience methods for accessing certain sets of
+ * information from the document.
+ * <p>The following properties have been deprecated in favor of the
+ * corresponding ones for the <code>BODY</code> element:alinkColorbackground
+ * bgColorfgColorlinkColorvlinkColorIn DOM Level 2, the method
+ * <code>getElementById</code> is inherited from the <code>Document</code>
+ * interface where it was moved to.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLDocument extends Document {
+ /**
+ * The title of a document as specified by the <code>TITLE</code> element
+ * in the head of the document.
+ */
+ public String getTitle();
+ /**
+ * The title of a document as specified by the <code>TITLE</code> element
+ * in the head of the document.
+ */
+ public void setTitle(String title);
+
+ /**
+ * Returns the URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the page that linked to this page. The value is an
+ * empty string if the user navigated to the page directly (not through
+ * a link, but, for example, via a bookmark).
+ */
+ public String getReferrer();
+
+ /**
+ * The domain name of the server that served the document, or
+ * <code>null</code> if the server cannot be identified by a domain
+ * name.
+ */
+ public String getDomain();
+
+ /**
+ * The absolute URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the document.
+ */
+ public String getURL();
+
+ /**
+ * The element that contains the content for the document. In documents
+ * with <code>BODY</code> contents, returns the <code>BODY</code>
+ * element. In frameset documents, this returns the outermost
+ * <code>FRAMESET</code> element.
+ */
+ public HTMLElement getBody();
+ /**
+ * The element that contains the content for the document. In documents
+ * with <code>BODY</code> contents, returns the <code>BODY</code>
+ * element. In frameset documents, this returns the outermost
+ * <code>FRAMESET</code> element.
+ */
+ public void setBody(HTMLElement body);
+
+ /**
+ * A collection of all the <code>IMG</code> elements in a document. The
+ * behavior is limited to <code>IMG</code> elements for backwards
+ * compatibility. As suggested by [<a href='http://www.w3.org/TR/1999/REC-html401-19991224'>HTML 4.01</a>], to include images, authors may use
+ * the <code>OBJECT</code> element or the <code>IMG</code> element.
+ * Therefore, it is recommended not to use this attribute to find the
+ * images in the document but <code>getElementsByTagName</code> with
+ * HTML 4.01 or <code>getElementsByTagNameNS</code> with XHTML 1.0.
+ */
+ public HTMLCollection getImages();
+
+ /**
+ * A collection of all the <code>OBJECT</code> elements that include
+ * applets and <code>APPLET</code> (deprecated) elements in a document.
+ */
+ public HTMLCollection getApplets();
+
+ /**
+ * A collection of all <code>AREA</code> elements and anchor (
+ * <code>A</code>) elements in a document with a value for the
+ * <code>href</code> attribute.
+ */
+ public HTMLCollection getLinks();
+
+ /**
+ * A collection of all the forms of a document.
+ */
+ public HTMLCollection getForms();
+
+ /**
+ * A collection of all the anchor (<code>A</code>) elements in a document
+ * with a value for the <code>name</code> attribute. For reasons of
+ * backward compatibility, the returned set of anchors only contains
+ * those anchors created with the <code>name</code> attribute, not those
+ * created with the <code>id</code> attribute. Note that in [<a href='http://www.w3.org/TR/2002/REC-xhtml1-20020801'>XHTML 1.0</a>], the
+ * <code>name</code> attribute (see section 4.10) has no semantics and
+ * is only present for legacy user agents: the <code>id</code> attribute
+ * is used instead. Users should prefer the iterator mechanisms provided
+ * by [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>DOM Level 2 Traversal</a>] instead.
+ */
+ public HTMLCollection getAnchors();
+
+ /**
+ * This mutable string attribute denotes persistent state information
+ * that (1) is associated with the current frame or document and (2) is
+ * composed of information described by the <code>cookies</code>
+ * non-terminal of [<a href='http://www.ietf.org/rfc/rfc2965.txt'>IETF RFC 2965</a>], Section 4.2.2.
+ * <br> If no persistent state information is available for the current
+ * frame or document document, then this property's value is an empty
+ * string.
+ * <br> When this attribute is read, all cookies are returned as a single
+ * string, with each cookie's name-value pair concatenated into a list
+ * of name-value pairs, each list item being separated by a ';'
+ * (semicolon).
+ * <br> When this attribute is set, the value it is set to should be a
+ * string that adheres to the <code>cookie</code> non-terminal of [<a href='http://www.ietf.org/rfc/rfc2965.txt'>IETF RFC 2965</a>]; that
+ * is, it should be a single name-value pair followed by zero or more
+ * cookie attribute values. If no domain attribute is specified, then
+ * the domain attribute for the new value defaults to the host portion
+ * of an absolute URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the current frame or document. If no path
+ * attribute is specified, then the path attribute for the new value
+ * defaults to the absolute path portion of the URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the current
+ * frame or document. If no max-age attribute is specified, then the
+ * max-age attribute for the new value defaults to a user agent defined
+ * value. If a cookie with the specified name is already associated with
+ * the current frame or document, then the new value as well as the new
+ * attributes replace the old value and attributes. If a max-age
+ * attribute of 0 is specified for the new value, then any existing
+ * cookies of the specified name are removed from the cookie storage.
+ * See [<a href='http://www.ietf.org/rfc/rfc2965.txt'>IETF RFC 2965</a>] for the semantics of persistent state item attribute value
+ * pairs. The precise nature of a user agent session is not defined by
+ * this specification.
+ */
+ public String getCookie();
+ /**
+ * This mutable string attribute denotes persistent state information
+ * that (1) is associated with the current frame or document and (2) is
+ * composed of information described by the <code>cookies</code>
+ * non-terminal of [<a href='http://www.ietf.org/rfc/rfc2965.txt'>IETF RFC 2965</a>], Section 4.2.2.
+ * <br> If no persistent state information is available for the current
+ * frame or document document, then this property's value is an empty
+ * string.
+ * <br> When this attribute is read, all cookies are returned as a single
+ * string, with each cookie's name-value pair concatenated into a list
+ * of name-value pairs, each list item being separated by a ';'
+ * (semicolon).
+ * <br> When this attribute is set, the value it is set to should be a
+ * string that adheres to the <code>cookie</code> non-terminal of [<a href='http://www.ietf.org/rfc/rfc2965.txt'>IETF RFC 2965</a>]; that
+ * is, it should be a single name-value pair followed by zero or more
+ * cookie attribute values. If no domain attribute is specified, then
+ * the domain attribute for the new value defaults to the host portion
+ * of an absolute URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the current frame or document. If no path
+ * attribute is specified, then the path attribute for the new value
+ * defaults to the absolute path portion of the URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the current
+ * frame or document. If no max-age attribute is specified, then the
+ * max-age attribute for the new value defaults to a user agent defined
+ * value. If a cookie with the specified name is already associated with
+ * the current frame or document, then the new value as well as the new
+ * attributes replace the old value and attributes. If a max-age
+ * attribute of 0 is specified for the new value, then any existing
+ * cookies of the specified name are removed from the cookie storage.
+ * See [<a href='http://www.ietf.org/rfc/rfc2965.txt'>IETF RFC 2965</a>] for the semantics of persistent state item attribute value
+ * pairs. The precise nature of a user agent session is not defined by
+ * this specification.
+ * @exception DOMException
+ * SYNTAX_ERR: If the new value does not adhere to the cookie syntax
+ * specified by [<a href='http://www.ietf.org/rfc/rfc2965.txt'>IETF RFC 2965</a>].
+ */
+ public void setCookie(String cookie)
+ throws DOMException;
+
+ /**
+ * Open a document stream for writing. If a document exists in the target,
+ * this method clears it. This method and the ones following allow a
+ * user to add to or replace the structure model of a document using
+ * strings of unparsed HTML. At the time of writing alternate methods
+ * for providing similar functionality for both HTML and XML documents
+ * were being considered (see [<a href='http://www.w3.org/TR/2002/WD-DOM-Level-3-LS-20020725'>DOM Level 3 Load and Save</a>]).
+ */
+ public void open();
+
+ /**
+ * Closes a document stream opened by <code>open()</code> and forces
+ * rendering.
+ */
+ public void close();
+
+ /**
+ * Write a string of text to a document stream opened by
+ * <code>open()</code>. Note that the function will produce a document
+ * which is not necessarily driven by a DTD and therefore might be
+ * produce an invalid result in the context of the document.
+ * @param text The string to be parsed into some structure in the
+ * document structure model.
+ */
+ public void write(String text);
+
+ /**
+ * Write a string of text followed by a newline character to a document
+ * stream opened by <code>open()</code>. Note that the function will
+ * produce a document which is not necessarily driven by a DTD and
+ * therefore might be produce an invalid result in the context of the
+ * document
+ * @param text The string to be parsed into some structure in the
+ * document structure model.
+ */
+ public void writeln(String text);
+
+ /**
+ * With [<a href='http://www.w3.org/TR/1999/REC-html401-19991224'>HTML 4.01</a>] documents, this method returns the (possibly empty) collection
+ * of elements whose <code>name</code> value is given by
+ * <code>elementName</code>. In [<a href='http://www.w3.org/TR/2002/REC-xhtml1-20020801'>XHTML 1.0</a>] documents, this methods only return the
+ * (possibly empty) collection of form controls with matching name. This
+ * method is case sensitive.
+ * @param elementName The <code>name</code> attribute value for an
+ * element.
+ * @return The matching elements.
+ */
+ public NodeList getElementsByName(String elementName);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java
new file mode 100644
index 000000000..c6450301b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLElement.java
@@ -0,0 +1,87 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Element;
+
+/**
+ * All HTML element interfaces derive from this class. Elements that only
+ * expose the HTML core attributes are represented by the base
+ * <code>HTMLElement</code> interface. These elements are as follows:
+ * special: SUB, SUP, SPAN, BDOfont: TT, I, B, U, S, STRIKE, BIG, SMALL
+ * phrase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ACRONYM, ABBRlist:
+ * DD, DTNOFRAMES, NOSCRIPTADDRESS, CENTERThe <code>style</code> attribute
+ * of an HTML element is accessible through the
+ * <code>ElementCSSInlineStyle</code> interface which is defined in the CSS
+ * module [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>DOM Level 2 Style Sheets and CSS</a>].
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLElement extends Element {
+ /**
+ * The element's identifier. See the id attribute definition in HTML 4.01.
+ */
+ public String getId();
+ /**
+ * The element's identifier. See the id attribute definition in HTML 4.01.
+ */
+ public void setId(String id);
+
+ /**
+ * The element's advisory title. See the title attribute definition in
+ * HTML 4.01.
+ */
+ public String getTitle();
+ /**
+ * The element's advisory title. See the title attribute definition in
+ * HTML 4.01.
+ */
+ public void setTitle(String title);
+
+ /**
+ * Language code defined in RFC 1766. See the lang attribute definition in
+ * HTML 4.01.
+ */
+ public String getLang();
+ /**
+ * Language code defined in RFC 1766. See the lang attribute definition in
+ * HTML 4.01.
+ */
+ public void setLang(String lang);
+
+ /**
+ * Specifies the base direction of directionally neutral text and the
+ * directionality of tables. See the dir attribute definition in HTML
+ * 4.01.
+ */
+ public String getDir();
+ /**
+ * Specifies the base direction of directionally neutral text and the
+ * directionality of tables. See the dir attribute definition in HTML
+ * 4.01.
+ */
+ public void setDir(String dir);
+
+ /**
+ * The class attribute of the element. This attribute has been renamed due
+ * to conflicts with the "class" keyword exposed by many languages. See
+ * the class attribute definition in HTML 4.01.
+ */
+ public String getClassName();
+ /**
+ * The class attribute of the element. This attribute has been renamed due
+ * to conflicts with the "class" keyword exposed by many languages. See
+ * the class attribute definition in HTML 4.01.
+ */
+ public void setClassName(String className);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java
new file mode 100644
index 000000000..f3bcb7df7
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFieldSetElement.java
@@ -0,0 +1,28 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Organizes form controls into logical groups. See the FIELDSET element
+ * definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLFieldSetElement extends HTMLElement {
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java
new file mode 100644
index 000000000..aa6a2847b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFontElement.java
@@ -0,0 +1,54 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Local change to font. See the FONT element definition in HTML 4.01. This
+ * element is deprecated in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLFontElement extends HTMLElement {
+ /**
+ * Font color. See the color attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getColor();
+ /**
+ * Font color. See the color attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setColor(String color);
+
+ /**
+ * Font face identifier. See the face attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getFace();
+ /**
+ * Font face identifier. See the face attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setFace(String face);
+
+ /**
+ * Font size. See the size attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getSize();
+ /**
+ * Font size. See the size attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setSize(String size);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java
new file mode 100644
index 000000000..60ec7736f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFormElement.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The <code>FORM</code> element encompasses behavior similar to a collection
+ * and an element. It provides direct access to the contained form controls
+ * as well as the attributes of the form element. See the FORM element
+ * definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLFormElement extends HTMLElement {
+ /**
+ * Returns a collection of all form control elements in the form.
+ */
+ public HTMLCollection getElements();
+
+ /**
+ * The number of form controls in the form.
+ */
+ public int getLength();
+
+ /**
+ * Names the form.
+ */
+ public String getName();
+ /**
+ * Names the form.
+ */
+ public void setName(String name);
+
+ /**
+ * List of character sets supported by the server. See the accept-charset
+ * attribute definition in HTML 4.01.
+ */
+ public String getAcceptCharset();
+ /**
+ * List of character sets supported by the server. See the accept-charset
+ * attribute definition in HTML 4.01.
+ */
+ public void setAcceptCharset(String acceptCharset);
+
+ /**
+ * Server-side form handler. See the action attribute definition in HTML
+ * 4.01.
+ */
+ public String getAction();
+ /**
+ * Server-side form handler. See the action attribute definition in HTML
+ * 4.01.
+ */
+ public void setAction(String action);
+
+ /**
+ * The content type of the submitted form, generally
+ * "application/x-www-form-urlencoded". See the enctype attribute
+ * definition in HTML 4.01. The onsubmit even handler is not guaranteed
+ * to be triggered when invoking this method. The behavior is
+ * inconsistent for historical reasons and authors should not rely on a
+ * particular one.
+ */
+ public String getEnctype();
+ /**
+ * The content type of the submitted form, generally
+ * "application/x-www-form-urlencoded". See the enctype attribute
+ * definition in HTML 4.01. The onsubmit even handler is not guaranteed
+ * to be triggered when invoking this method. The behavior is
+ * inconsistent for historical reasons and authors should not rely on a
+ * particular one.
+ */
+ public void setEnctype(String enctype);
+
+ /**
+ * HTTP method [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>] used to submit form. See the method attribute definition
+ * in HTML 4.01.
+ */
+ public String getMethod();
+ /**
+ * HTTP method [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>] used to submit form. See the method attribute definition
+ * in HTML 4.01.
+ */
+ public void setMethod(String method);
+
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public String getTarget();
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public void setTarget(String target);
+
+ /**
+ * Submits the form. It performs the same action as a submit button.
+ */
+ public void submit();
+
+ /**
+ * Restores a form element's default values. It performs the same action
+ * as a reset button.
+ */
+ public void reset();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java
new file mode 100644
index 000000000..dfe877f15
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameElement.java
@@ -0,0 +1,117 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Document;
+
+/**
+ * Create a frame. See the FRAME element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLFrameElement extends HTMLElement {
+ /**
+ * Request frame borders. See the frameborder attribute definition in HTML
+ * 4.01.
+ */
+ public String getFrameBorder();
+ /**
+ * Request frame borders. See the frameborder attribute definition in HTML
+ * 4.01.
+ */
+ public void setFrameBorder(String frameBorder);
+
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public String getLongDesc();
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public void setLongDesc(String longDesc);
+
+ /**
+ * Frame margin height, in pixels. See the marginheight attribute
+ * definition in HTML 4.01.
+ */
+ public String getMarginHeight();
+ /**
+ * Frame margin height, in pixels. See the marginheight attribute
+ * definition in HTML 4.01.
+ */
+ public void setMarginHeight(String marginHeight);
+
+ /**
+ * Frame margin width, in pixels. See the marginwidth attribute definition
+ * in HTML 4.01.
+ */
+ public String getMarginWidth();
+ /**
+ * Frame margin width, in pixels. See the marginwidth attribute definition
+ * in HTML 4.01.
+ */
+ public void setMarginWidth(String marginWidth);
+
+ /**
+ * The frame name (object of the <code>target</code> attribute). See the
+ * name attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * The frame name (object of the <code>target</code> attribute). See the
+ * name attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * When true, forbid user from resizing frame. See the noresize attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getNoResize();
+ /**
+ * When true, forbid user from resizing frame. See the noresize attribute
+ * definition in HTML 4.01.
+ */
+ public void setNoResize(boolean noResize);
+
+ /**
+ * Specify whether or not the frame should have scrollbars. See the
+ * scrolling attribute definition in HTML 4.01.
+ */
+ public String getScrolling();
+ /**
+ * Specify whether or not the frame should have scrollbars. See the
+ * scrolling attribute definition in HTML 4.01.
+ */
+ public void setScrolling(String scrolling);
+
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating the initial frame contents. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public String getSrc();
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating the initial frame contents. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * The document this frame contains, if there is any and it is available,
+ * or <code>null</code> otherwise.
+ * @since DOM Level 2
+ */
+ public Document getContentDocument();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java
new file mode 100644
index 000000000..d2b9c34e9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLFrameSetElement.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Create a grid of frames. See the FRAMESET element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLFrameSetElement extends HTMLElement {
+ /**
+ * The number of columns of frames in the frameset. See the cols attribute
+ * definition in HTML 4.01.
+ */
+ public String getCols();
+ /**
+ * The number of columns of frames in the frameset. See the cols attribute
+ * definition in HTML 4.01.
+ */
+ public void setCols(String cols);
+
+ /**
+ * The number of rows of frames in the frameset. See the rows attribute
+ * definition in HTML 4.01.
+ */
+ public String getRows();
+ /**
+ * The number of rows of frames in the frameset. See the rows attribute
+ * definition in HTML 4.01.
+ */
+ public void setRows(String rows);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java
new file mode 100644
index 000000000..d832bc3f0
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHRElement.java
@@ -0,0 +1,66 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Create a horizontal rule. See the HR element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLHRElement extends HTMLElement {
+ /**
+ * Align the rule on the page. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Align the rule on the page. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Indicates to the user agent that there should be no shading in the
+ * rendering of this element. See the noshade attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getNoShade();
+ /**
+ * Indicates to the user agent that there should be no shading in the
+ * rendering of this element. See the noshade attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setNoShade(boolean noShade);
+
+ /**
+ * The height of the rule. See the size attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getSize();
+ /**
+ * The height of the rule. See the size attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setSize(String size);
+
+ /**
+ * The width of the rule. See the width attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * The width of the rule. See the width attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java
new file mode 100644
index 000000000..85617a7ee
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Document head information. See the HEAD element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLHeadElement extends HTMLElement {
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a metadata profile. See the profile attribute
+ * definition in HTML 4.01.
+ */
+ public String getProfile();
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a metadata profile. See the profile attribute
+ * definition in HTML 4.01.
+ */
+ public void setProfile(String profile);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java
new file mode 100644
index 000000000..291f5d87a
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHeadingElement.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * For the <code>H1</code> to <code>H6</code> elements. See the H1 element
+ * definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLHeadingElement extends HTMLElement {
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java
new file mode 100644
index 000000000..3601d7eb3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLHtmlElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Root of an HTML document. See the HTML element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLHtmlElement extends HTMLElement {
+ /**
+ * Version information about the document's DTD. See the version attribute
+ * definition in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getVersion();
+ /**
+ * Version information about the document's DTD. See the version attribute
+ * definition in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setVersion(String version);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java
new file mode 100644
index 000000000..6106e62a2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIFrameElement.java
@@ -0,0 +1,137 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Document;
+
+/**
+ * Inline subwindows. See the IFRAME element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLIFrameElement extends HTMLElement {
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Request frame borders. See the frameborder attribute definition in HTML
+ * 4.01.
+ */
+ public String getFrameBorder();
+ /**
+ * Request frame borders. See the frameborder attribute definition in HTML
+ * 4.01.
+ */
+ public void setFrameBorder(String frameBorder);
+
+ /**
+ * Frame height. See the height attribute definition in HTML 4.01.
+ */
+ public String getHeight();
+ /**
+ * Frame height. See the height attribute definition in HTML 4.01.
+ */
+ public void setHeight(String height);
+
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public String getLongDesc();
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public void setLongDesc(String longDesc);
+
+ /**
+ * Frame margin height, in pixels. See the marginheight attribute
+ * definition in HTML 4.01.
+ */
+ public String getMarginHeight();
+ /**
+ * Frame margin height, in pixels. See the marginheight attribute
+ * definition in HTML 4.01.
+ */
+ public void setMarginHeight(String marginHeight);
+
+ /**
+ * Frame margin width, in pixels. See the marginwidth attribute definition
+ * in HTML 4.01.
+ */
+ public String getMarginWidth();
+ /**
+ * Frame margin width, in pixels. See the marginwidth attribute definition
+ * in HTML 4.01.
+ */
+ public void setMarginWidth(String marginWidth);
+
+ /**
+ * The frame name (object of the <code>target</code> attribute). See the
+ * name attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * The frame name (object of the <code>target</code> attribute). See the
+ * name attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Specify whether or not the frame should have scrollbars. See the
+ * scrolling attribute definition in HTML 4.01.
+ */
+ public String getScrolling();
+ /**
+ * Specify whether or not the frame should have scrollbars. See the
+ * scrolling attribute definition in HTML 4.01.
+ */
+ public void setScrolling(String scrolling);
+
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating the initial frame contents. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public String getSrc();
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating the initial frame contents. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * Frame width. See the width attribute definition in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Frame width. See the width attribute definition in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+ /**
+ * The document this frame contains, if there is any and it is available,
+ * or <code>null</code> otherwise.
+ * @since DOM Level 2
+ */
+ public Document getContentDocument();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java
new file mode 100644
index 000000000..0a1d4b722
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLImageElement.java
@@ -0,0 +1,176 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Embedded image. See the IMG element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLImageElement extends HTMLElement {
+ /**
+ * The name of the element (for backwards compatibility).
+ */
+ public String getName();
+ /**
+ * The name of the element (for backwards compatibility).
+ */
+ public void setName(String name);
+
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public String getAlt();
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public void setAlt(String alt);
+
+ /**
+ * Width of border around image. See the border attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01. Note that the
+ * type of this attribute was <code>DOMString</code> in DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>]
+ * .
+ */
+ public String getBorder();
+ /**
+ * Width of border around image. See the border attribute definition in
+ * HTML 4.01. This attribute is deprecated in HTML 4.01. Note that the
+ * type of this attribute was <code>DOMString</code> in DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>]
+ * .
+ */
+ public void setBorder(String border);
+
+ /**
+ * Height of the image in pixels. See the height attribute definition in
+ * HTML 4.01. Note that the type of this attribute was
+ * <code>DOMString</code> in DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>].
+ * @version DOM Level 2
+ */
+ public int getHeight();
+ /**
+ * Height of the image in pixels. See the height attribute definition in
+ * HTML 4.01. Note that the type of this attribute was
+ * <code>DOMString</code> in DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>].
+ * @version DOM Level 2
+ */
+ public void setHeight(int height);
+
+ /**
+ * Horizontal space to the left and right of this image in pixels. See the
+ * hspace attribute definition in HTML 4.01. This attribute is
+ * deprecated in HTML 4.01. Note that the type of this attribute was
+ * <code>DOMString</code> in DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>].
+ * @version DOM Level 2
+ */
+ public int getHspace();
+ /**
+ * Horizontal space to the left and right of this image in pixels. See the
+ * hspace attribute definition in HTML 4.01. This attribute is
+ * deprecated in HTML 4.01. Note that the type of this attribute was
+ * <code>DOMString</code> in DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>].
+ * @version DOM Level 2
+ */
+ public void setHspace(int hspace);
+
+ /**
+ * Use server-side image map. See the ismap attribute definition in HTML
+ * 4.01.
+ */
+ public boolean getIsMap();
+ /**
+ * Use server-side image map. See the ismap attribute definition in HTML
+ * 4.01.
+ */
+ public void setIsMap(boolean isMap);
+
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public String getLongDesc();
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a long description of this image or frame. See the
+ * longdesc attribute definition in HTML 4.01.
+ */
+ public void setLongDesc(String longDesc);
+
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating the source of this image. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public String getSrc();
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating the source of this image. See the src attribute
+ * definition in HTML 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public String getUseMap();
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public void setUseMap(String useMap);
+
+ /**
+ * Vertical space above and below this image in pixels. See the vspace
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01. Note that the type of this attribute was "DOMString" in
+ * DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>].
+ * @version DOM Level 2
+ */
+ public int getVspace();
+ /**
+ * Vertical space above and below this image in pixels. See the vspace
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01. Note that the type of this attribute was "DOMString" in
+ * DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>].
+ * @version DOM Level 2
+ */
+ public void setVspace(int vspace);
+
+ /**
+ * The width of the image in pixels. See the width attribute definition in
+ * HTML 4.01. Note that the type of this attribute was
+ * <code>DOMString</code> in DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>].
+ * @version DOM Level 2
+ */
+ public int getWidth();
+ /**
+ * The width of the image in pixels. See the width attribute definition in
+ * HTML 4.01. Note that the type of this attribute was
+ * <code>DOMString</code> in DOM Level 1 HTML [<a href='http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001'>DOM Level 1</a>].
+ * @version DOM Level 2
+ */
+ public void setWidth(int width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java
new file mode 100644
index 000000000..c557e0bce
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLInputElement.java
@@ -0,0 +1,303 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Form control.Depending upon the environment in which the page is being
+ * viewed, the value property may be read-only for the file upload input
+ * type. For the "password" input type, the actual value returned may be
+ * masked to prevent unauthorized use. See the INPUT element definition in [<a href='http://www.w3.org/TR/1999/REC-html401-19991224'>HTML 4.01</a>].
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLInputElement extends HTMLElement {
+ /**
+ * When the <code>type</code> attribute of the element has the value
+ * "text", "file" or "password", this represents the HTML value
+ * attribute of the element. The value of this attribute does not change
+ * if the contents of the corresponding form control, in an interactive
+ * user agent, changes. See the value attribute definition in HTML 4.01.
+ */
+ public String getDefaultValue();
+ /**
+ * When the <code>type</code> attribute of the element has the value
+ * "text", "file" or "password", this represents the HTML value
+ * attribute of the element. The value of this attribute does not change
+ * if the contents of the corresponding form control, in an interactive
+ * user agent, changes. See the value attribute definition in HTML 4.01.
+ */
+ public void setDefaultValue(String defaultValue);
+
+ /**
+ * When <code>type</code> has the value "radio" or "checkbox", this
+ * represents the HTML checked attribute of the element. The value of
+ * this attribute does not change if the state of the corresponding form
+ * control, in an interactive user agent, changes. See the checked
+ * attribute definition in HTML 4.01.
+ */
+ public boolean getDefaultChecked();
+ /**
+ * When <code>type</code> has the value "radio" or "checkbox", this
+ * represents the HTML checked attribute of the element. The value of
+ * this attribute does not change if the state of the corresponding form
+ * control, in an interactive user agent, changes. See the checked
+ * attribute definition in HTML 4.01.
+ */
+ public void setDefaultChecked(boolean defaultChecked);
+
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A comma-separated list of content types that a server processing this
+ * form will handle correctly. See the accept attribute definition in
+ * HTML 4.01.
+ */
+ public String getAccept();
+ /**
+ * A comma-separated list of content types that a server processing this
+ * form will handle correctly. See the accept attribute definition in
+ * HTML 4.01.
+ */
+ public void setAccept(String accept);
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public String getAlt();
+ /**
+ * Alternate text for user agents not rendering the normal content of this
+ * element. See the alt attribute definition in HTML 4.01.
+ */
+ public void setAlt(String alt);
+
+ /**
+ * When the <code>type</code> attribute of the element has the value
+ * "radio" or "checkbox", this represents the current state of the form
+ * control, in an interactive user agent. Changes to this attribute
+ * change the state of the form control, but do not change the value of
+ * the HTML checked attribute of the INPUT element.During the handling
+ * of a click event on an input element with a type attribute that has
+ * the value "radio" or "checkbox", some implementations may change the
+ * value of this property before the event is being dispatched in the
+ * document. If the default action of the event is canceled, the value
+ * of the property may be changed back to its original value. This means
+ * that the value of this property during the handling of click events
+ * is implementation dependent.
+ */
+ public boolean getChecked();
+ /**
+ * When the <code>type</code> attribute of the element has the value
+ * "radio" or "checkbox", this represents the current state of the form
+ * control, in an interactive user agent. Changes to this attribute
+ * change the state of the form control, but do not change the value of
+ * the HTML checked attribute of the INPUT element.During the handling
+ * of a click event on an input element with a type attribute that has
+ * the value "radio" or "checkbox", some implementations may change the
+ * value of this property before the event is being dispatched in the
+ * document. If the default action of the event is canceled, the value
+ * of the property may be changed back to its original value. This means
+ * that the value of this property during the handling of click events
+ * is implementation dependent.
+ */
+ public void setChecked(boolean checked);
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Maximum number of characters for text fields, when <code>type</code>
+ * has the value "text" or "password". See the maxlength attribute
+ * definition in HTML 4.01.
+ */
+ public int getMaxLength();
+ /**
+ * Maximum number of characters for text fields, when <code>type</code>
+ * has the value "text" or "password". See the maxlength attribute
+ * definition in HTML 4.01.
+ */
+ public void setMaxLength(int maxLength);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * This control is read-only. Relevant only when <code>type</code> has the
+ * value "text" or "password". See the readonly attribute definition in
+ * HTML 4.01.
+ */
+ public boolean getReadOnly();
+ /**
+ * This control is read-only. Relevant only when <code>type</code> has the
+ * value "text" or "password". See the readonly attribute definition in
+ * HTML 4.01.
+ */
+ public void setReadOnly(boolean readOnly);
+
+ /**
+ * Size information. The precise meaning is specific to each type of
+ * field. See the size attribute definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public int getSize();
+ /**
+ * Size information. The precise meaning is specific to each type of
+ * field. See the size attribute definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setSize(int size);
+
+ /**
+ * When the <code>type</code> attribute has the value "image", this
+ * attribute specifies the location of the image to be used to decorate
+ * the graphical submit button. See the src attribute definition in HTML
+ * 4.01.
+ */
+ public String getSrc();
+ /**
+ * When the <code>type</code> attribute has the value "image", this
+ * attribute specifies the location of the image to be used to decorate
+ * the graphical submit button. See the src attribute definition in HTML
+ * 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * The type of control created (all lower case). See the type attribute
+ * definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public String getType();
+ /**
+ * The type of control created (all lower case). See the type attribute
+ * definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setType(String type);
+
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public String getUseMap();
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public void setUseMap(String useMap);
+
+ /**
+ * When the <code>type</code> attribute of the element has the value
+ * "text", "file" or "password", this represents the current contents of
+ * the corresponding form control, in an interactive user agent.
+ * Changing this attribute changes the contents of the form control, but
+ * does not change the value of the HTML value attribute of the element.
+ * When the <code>type</code> attribute of the element has the value
+ * "button", "hidden", "submit", "reset", "image", "checkbox" or
+ * "radio", this represents the HTML value attribute of the element. See
+ * the value attribute definition in HTML 4.01.
+ */
+ public String getValue();
+ /**
+ * When the <code>type</code> attribute of the element has the value
+ * "text", "file" or "password", this represents the current contents of
+ * the corresponding form control, in an interactive user agent.
+ * Changing this attribute changes the contents of the form control, but
+ * does not change the value of the HTML value attribute of the element.
+ * When the <code>type</code> attribute of the element has the value
+ * "button", "hidden", "submit", "reset", "image", "checkbox" or
+ * "radio", this represents the HTML value attribute of the element. See
+ * the value attribute definition in HTML 4.01.
+ */
+ public void setValue(String value);
+
+ /**
+ * Removes keyboard focus from this element.
+ */
+ public void blur();
+
+ /**
+ * Gives keyboard focus to this element.
+ */
+ public void focus();
+
+ /**
+ * Select the contents of the text area. For <code>INPUT</code> elements
+ * whose <code>type</code> attribute has one of the following values:
+ * "text", "file", or "password".
+ */
+ public void select();
+
+ /**
+ * Simulate a mouse-click. For <code>INPUT</code> elements whose
+ * <code>type</code> attribute has one of the following values:
+ * "button", "checkbox", "radio", "reset", or "submit".
+ */
+ public void click();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java
new file mode 100644
index 000000000..f1b4b7478
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLIsIndexElement.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * This element is used for single-line text input. See the ISINDEX element
+ * definition in HTML 4.01. This element is deprecated in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLIsIndexElement extends HTMLElement {
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * The prompt message. See the prompt attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getPrompt();
+ /**
+ * The prompt message. See the prompt attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setPrompt(String prompt);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java
new file mode 100644
index 000000000..3a69f5e9e
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLIElement.java
@@ -0,0 +1,44 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * List item. See the LI element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLLIElement extends HTMLElement {
+ /**
+ * List item bullet style. See the type attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * List item bullet style. See the type attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setType(String type);
+
+ /**
+ * Reset sequence number when used in <code>OL</code>. See the value
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public int getValue();
+ /**
+ * Reset sequence number when used in <code>OL</code>. See the value
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public void setValue(int value);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java
new file mode 100644
index 000000000..ef1a10aea
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLabelElement.java
@@ -0,0 +1,51 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Form field label text. See the LABEL element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLLabelElement extends HTMLElement {
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * This attribute links this label with another form control by
+ * <code>id</code> attribute. See the for attribute definition in HTML
+ * 4.01.
+ */
+ public String getHtmlFor();
+ /**
+ * This attribute links this label with another form control by
+ * <code>id</code> attribute. See the for attribute definition in HTML
+ * 4.01.
+ */
+ public void setHtmlFor(String htmlFor);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java
new file mode 100644
index 000000000..774a11640
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLegendElement.java
@@ -0,0 +1,52 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Provides a caption for a <code>FIELDSET</code> grouping. See the LEGEND
+ * element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLLegendElement extends HTMLElement {
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * Text alignment relative to <code>FIELDSET</code>. See the align
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Text alignment relative to <code>FIELDSET</code>. See the align
+ * attribute definition in HTML 4.01. This attribute is deprecated in
+ * HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java
new file mode 100644
index 000000000..8210a4a35
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLLinkElement.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The <code>LINK</code> element specifies a link to an external resource, and
+ * defines this document's relationship to that resource (or vice versa).
+ * See the LINK element definition in HTML 4.01 (see also the
+ * <code>LinkStyle</code> interface in the StyleSheet module [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>DOM Level 2 Style Sheets and CSS</a>]).
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLLinkElement extends HTMLElement {
+ /**
+ * Enables/disables the link. This is currently only used for style sheet
+ * links, and may be used to activate or deactivate style sheets.
+ */
+ public boolean getDisabled();
+ /**
+ * Enables/disables the link. This is currently only used for style sheet
+ * links, and may be used to activate or deactivate style sheets.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * The character encoding of the resource being linked to. See the charset
+ * attribute definition in HTML 4.01.
+ */
+ public String getCharset();
+ /**
+ * The character encoding of the resource being linked to. See the charset
+ * attribute definition in HTML 4.01.
+ */
+ public void setCharset(String charset);
+
+ /**
+ * The URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the linked resource. See the href attribute definition in
+ * HTML 4.01.
+ */
+ public String getHref();
+ /**
+ * The URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] of the linked resource. See the href attribute definition in
+ * HTML 4.01.
+ */
+ public void setHref(String href);
+
+ /**
+ * Language code of the linked resource. See the hreflang attribute
+ * definition in HTML 4.01.
+ */
+ public String getHreflang();
+ /**
+ * Language code of the linked resource. See the hreflang attribute
+ * definition in HTML 4.01.
+ */
+ public void setHreflang(String hreflang);
+
+ /**
+ * Designed for use with one or more target media. See the media attribute
+ * definition in HTML 4.01.
+ */
+ public String getMedia();
+ /**
+ * Designed for use with one or more target media. See the media attribute
+ * definition in HTML 4.01.
+ */
+ public void setMedia(String media);
+
+ /**
+ * Forward link type. See the rel attribute definition in HTML 4.01.
+ */
+ public String getRel();
+ /**
+ * Forward link type. See the rel attribute definition in HTML 4.01.
+ */
+ public void setRel(String rel);
+
+ /**
+ * Reverse link type. See the rev attribute definition in HTML 4.01.
+ */
+ public String getRev();
+ /**
+ * Reverse link type. See the rev attribute definition in HTML 4.01.
+ */
+ public void setRev(String rev);
+
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public String getTarget();
+ /**
+ * Frame to render the resource in. See the target attribute definition in
+ * HTML 4.01.
+ */
+ public void setTarget(String target);
+
+ /**
+ * Advisory content type. See the type attribute definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Advisory content type. See the type attribute definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java
new file mode 100644
index 000000000..b1f78682a
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMapElement.java
@@ -0,0 +1,36 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Client-side image map. See the MAP element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLMapElement extends HTMLElement {
+ /**
+ * The list of areas defined for the image map.
+ */
+ public HTMLCollection getAreas();
+
+ /**
+ * Names the map (for use with <code>usemap</code>). See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Names the map (for use with <code>usemap</code>). See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java
new file mode 100644
index 000000000..17e81c597
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMenuElement.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Menu list. See the MENU element definition in HTML 4.01. This element is
+ * deprecated in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLMenuElement extends HTMLElement {
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getCompact();
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setCompact(boolean compact);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java
new file mode 100644
index 000000000..a56fed5fc
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLMetaElement.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * This contains generic meta-information about the document. See the META
+ * element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLMetaElement extends HTMLElement {
+ /**
+ * Associated information. See the content attribute definition in HTML
+ * 4.01.
+ */
+ public String getContent();
+ /**
+ * Associated information. See the content attribute definition in HTML
+ * 4.01.
+ */
+ public void setContent(String content);
+
+ /**
+ * HTTP response header name [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>]. See the http-equiv attribute definition in
+ * HTML 4.01.
+ */
+ public String getHttpEquiv();
+ /**
+ * HTTP response header name [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>]. See the http-equiv attribute definition in
+ * HTML 4.01.
+ */
+ public void setHttpEquiv(String httpEquiv);
+
+ /**
+ * Meta information name. See the name attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Meta information name. See the name attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Select form of content. See the scheme attribute definition in HTML
+ * 4.01.
+ */
+ public String getScheme();
+ /**
+ * Select form of content. See the scheme attribute definition in HTML
+ * 4.01.
+ */
+ public void setScheme(String scheme);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java
new file mode 100644
index 000000000..f7659f092
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLModElement.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Notice of modification to part of a document. See the INS and DEL element
+ * definitions in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLModElement extends HTMLElement {
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a document that describes the reason for the change.
+ * See the cite attribute definition in HTML 4.01.
+ */
+ public String getCite();
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a document that describes the reason for the change.
+ * See the cite attribute definition in HTML 4.01.
+ */
+ public void setCite(String cite);
+
+ /**
+ * The date and time of the change. See the datetime attribute definition
+ * in HTML 4.01.
+ */
+ public String getDateTime();
+ /**
+ * The date and time of the change. See the datetime attribute definition
+ * in HTML 4.01.
+ */
+ public void setDateTime(String dateTime);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java
new file mode 100644
index 000000000..298d47439
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOListElement.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Ordered list. See the OL element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLOListElement extends HTMLElement {
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getCompact();
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setCompact(boolean compact);
+
+ /**
+ * Starting sequence number. See the start attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public int getStart();
+ /**
+ * Starting sequence number. See the start attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setStart(int start);
+
+ /**
+ * Numbering style. See the type attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Numbering style. See the type attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setType(String type);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java
new file mode 100644
index 000000000..e49af5f03
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLObjectElement.java
@@ -0,0 +1,230 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Document;
+
+/**
+ * Generic embedded object.In principle, all properties on the object element
+ * are read-write but in some environments some properties may be read-only
+ * once the underlying object is instantiated. See the OBJECT element
+ * definition in [<a href='http://www.w3.org/TR/1999/REC-html401-19991224'>HTML 4.01</a>].
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLObjectElement extends HTMLElement {
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * Applet class file. See the <code>code</code> attribute for
+ * HTMLAppletElement.
+ */
+ public String getCode();
+ /**
+ * Applet class file. See the <code>code</code> attribute for
+ * HTMLAppletElement.
+ */
+ public void setCode(String code);
+
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Aligns this object (vertically or horizontally) with respect to its
+ * surrounding text. See the align attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Space-separated list of archives. See the archive attribute definition
+ * in HTML 4.01.
+ */
+ public String getArchive();
+ /**
+ * Space-separated list of archives. See the archive attribute definition
+ * in HTML 4.01.
+ */
+ public void setArchive(String archive);
+
+ /**
+ * Width of border around the object. See the border attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBorder();
+ /**
+ * Width of border around the object. See the border attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBorder(String border);
+
+ /**
+ * Base URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] for <code>classid</code>, <code>data</code>, and
+ * <code>archive</code> attributes. See the codebase attribute definition
+ * in HTML 4.01.
+ */
+ public String getCodeBase();
+ /**
+ * Base URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] for <code>classid</code>, <code>data</code>, and
+ * <code>archive</code> attributes. See the codebase attribute definition
+ * in HTML 4.01.
+ */
+ public void setCodeBase(String codeBase);
+
+ /**
+ * Content type for data downloaded via <code>classid</code> attribute.
+ * See the codetype attribute definition in HTML 4.01.
+ */
+ public String getCodeType();
+ /**
+ * Content type for data downloaded via <code>classid</code> attribute.
+ * See the codetype attribute definition in HTML 4.01.
+ */
+ public void setCodeType(String codeType);
+
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] specifying the location of the object's data. See the data
+ * attribute definition in HTML 4.01.
+ */
+ public String getData();
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] specifying the location of the object's data. See the data
+ * attribute definition in HTML 4.01.
+ */
+ public void setData(String data);
+
+ /**
+ * Declare (for future reference), but do not instantiate, this object.
+ * See the declare attribute definition in HTML 4.01.
+ */
+ public boolean getDeclare();
+ /**
+ * Declare (for future reference), but do not instantiate, this object.
+ * See the declare attribute definition in HTML 4.01.
+ */
+ public void setDeclare(boolean declare);
+
+ /**
+ * Override height. See the height attribute definition in HTML 4.01.
+ */
+ public String getHeight();
+ /**
+ * Override height. See the height attribute definition in HTML 4.01.
+ */
+ public void setHeight(String height);
+
+ /**
+ * Horizontal space, in pixels, to the left and right of this image,
+ * applet, or object. See the hspace attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public int getHspace();
+ /**
+ * Horizontal space, in pixels, to the left and right of this image,
+ * applet, or object. See the hspace attribute definition in HTML 4.01.
+ * This attribute is deprecated in HTML 4.01.
+ */
+ public void setHspace(int hspace);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Message to render while loading the object. See the standby attribute
+ * definition in HTML 4.01.
+ */
+ public String getStandby();
+ /**
+ * Message to render while loading the object. See the standby attribute
+ * definition in HTML 4.01.
+ */
+ public void setStandby(String standby);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * Content type for data downloaded via <code>data</code> attribute. See
+ * the type attribute definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Content type for data downloaded via <code>data</code> attribute. See
+ * the type attribute definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public String getUseMap();
+ /**
+ * Use client-side image map. See the usemap attribute definition in HTML
+ * 4.01.
+ */
+ public void setUseMap(String useMap);
+
+ /**
+ * Vertical space, in pixels, above and below this image, applet, or
+ * object. See the vspace attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public int getVspace();
+ /**
+ * Vertical space, in pixels, above and below this image, applet, or
+ * object. See the vspace attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setVspace(int vspace);
+
+ /**
+ * Override width. See the width attribute definition in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Override width. See the width attribute definition in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+ /**
+ * The document this object contains, if there is any and it is available,
+ * or <code>null</code> otherwise.
+ * @since DOM Level 2
+ */
+ public Document getContentDocument();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java
new file mode 100644
index 000000000..8e680a23c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptGroupElement.java
@@ -0,0 +1,43 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Group options together in logical subdivisions. See the OPTGROUP element
+ * definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLOptGroupElement extends HTMLElement {
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Assigns a label to this option group. See the label attribute definition
+ * in HTML 4.01.
+ */
+ public String getLabel();
+ /**
+ * Assigns a label to this option group. See the label attribute definition
+ * in HTML 4.01.
+ */
+ public void setLabel(String label);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java
new file mode 100644
index 000000000..fe932ca87
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionElement.java
@@ -0,0 +1,104 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * A selectable choice. See the OPTION element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLOptionElement extends HTMLElement {
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * Represents the value of the HTML selected attribute. The value of this
+ * attribute does not change if the state of the corresponding form
+ * control, in an interactive user agent, changes. See the selected
+ * attribute definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public boolean getDefaultSelected();
+ /**
+ * Represents the value of the HTML selected attribute. The value of this
+ * attribute does not change if the state of the corresponding form
+ * control, in an interactive user agent, changes. See the selected
+ * attribute definition in HTML 4.01.
+ * @version DOM Level 2
+ */
+ public void setDefaultSelected(boolean defaultSelected);
+
+ /**
+ * The text contained within the option element.
+ */
+ public String getText();
+
+ /**
+ * The index of this <code>OPTION</code> in its parent <code>SELECT</code>
+ * , starting from 0.
+ * @version DOM Level 2
+ */
+ public int getIndex();
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Option label for use in hierarchical menus. See the label attribute
+ * definition in HTML 4.01.
+ */
+ public String getLabel();
+ /**
+ * Option label for use in hierarchical menus. See the label attribute
+ * definition in HTML 4.01.
+ */
+ public void setLabel(String label);
+
+ /**
+ * Represents the current state of the corresponding form control, in an
+ * interactive user agent. Changing this attribute changes the state of
+ * the form control, but does not change the value of the HTML selected
+ * attribute of the element.
+ */
+ public boolean getSelected();
+ /**
+ * Represents the current state of the corresponding form control, in an
+ * interactive user agent. Changing this attribute changes the state of
+ * the form control, but does not change the value of the HTML selected
+ * attribute of the element.
+ */
+ public void setSelected(boolean selected);
+
+ /**
+ * The current form control value. See the value attribute definition in
+ * HTML 4.01.
+ */
+ public String getValue();
+ /**
+ * The current form control value. See the value attribute definition in
+ * HTML 4.01.
+ */
+ public void setValue(String value);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java
new file mode 100644
index 000000000..a28c5ac27
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLOptionsCollection.java
@@ -0,0 +1,68 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * An <code>HTMLOptionsCollection</code> is a list of nodes representing HTML
+ * option element. An individual node may be accessed by either ordinal
+ * index or the node's <code>name</code> or <code>id</code> attributes.
+ * Collections in the HTML DOM are assumed to be live meaning that they are
+ * automatically updated when the underlying document is changed.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ * @since DOM Level 2
+ */
+public interface HTMLOptionsCollection {
+ /**
+ * This attribute specifies the length or size of the list.
+ */
+ public int getLength();
+ /**
+ * This attribute specifies the length or size of the list.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: if setting the length is not allowed by the
+ * implementation.
+ */
+ public void setLength(int length)
+ throws DOMException;
+
+ /**
+ * This method retrieves a node specified by ordinal index. Nodes are
+ * numbered in tree order (depth-first traversal order).
+ * @param index The index of the node to be fetched. The index origin is
+ * 0.
+ * @return The <code>Node</code> at the corresponding position upon
+ * success. A value of <code>null</code> is returned if the index is
+ * out of range.
+ */
+ public Node item(int index);
+
+ /**
+ * This method retrieves a <code>Node</code> using a name. It first
+ * searches for a <code>Node</code> with a matching <code>id</code>
+ * attribute. If it doesn't find one, it then searches for a
+ * <code>Node</code> with a matching <code>name</code> attribute, but
+ * only on those elements that are allowed a name attribute. This method
+ * is case insensitive in HTML documents and case sensitive in XHTML
+ * documents.
+ * @param name The name of the <code>Node</code> to be fetched.
+ * @return The <code>Node</code> with a <code>name</code> or
+ * <code>id</code> attribute whose value corresponds to the specified
+ * string. Upon failure (e.g., no node with this name exists), returns
+ * <code>null</code>.
+ */
+ public Node namedItem(String name);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java
new file mode 100644
index 000000000..b59f505f9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParagraphElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Paragraphs. See the P element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLParagraphElement extends HTMLElement {
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal text alignment. See the align attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java
new file mode 100644
index 000000000..33f5f7788
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLParamElement.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Parameters fed to the <code>OBJECT</code> element. See the PARAM element
+ * definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLParamElement extends HTMLElement {
+ /**
+ * The name of a run-time parameter. See the name attribute definition in
+ * HTML 4.01.
+ */
+ public String getName();
+ /**
+ * The name of a run-time parameter. See the name attribute definition in
+ * HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Content type for the <code>value</code> attribute when
+ * <code>valuetype</code> has the value "ref". See the type attribute
+ * definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Content type for the <code>value</code> attribute when
+ * <code>valuetype</code> has the value "ref". See the type attribute
+ * definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+ /**
+ * The value of a run-time parameter. See the value attribute definition
+ * in HTML 4.01.
+ */
+ public String getValue();
+ /**
+ * The value of a run-time parameter. See the value attribute definition
+ * in HTML 4.01.
+ */
+ public void setValue(String value);
+
+ /**
+ * Information about the meaning of the <code>value</code> attribute
+ * value. See the valuetype attribute definition in HTML 4.01.
+ */
+ public String getValueType();
+ /**
+ * Information about the meaning of the <code>value</code> attribute
+ * value. See the valuetype attribute definition in HTML 4.01.
+ */
+ public void setValueType(String valueType);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java
new file mode 100644
index 000000000..2d39837ed
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLPreElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Preformatted text. See the PRE element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLPreElement extends HTMLElement {
+ /**
+ * Fixed width for content. See the width attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public int getWidth();
+ /**
+ * Fixed width for content. See the width attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setWidth(int width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java
new file mode 100644
index 000000000..aba49746e
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLQuoteElement.java
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * For the <code>Q</code> and <code>BLOCKQUOTE</code> elements. See the Q
+ * element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLQuoteElement extends HTMLElement {
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a source document or message. See the cite attribute
+ * definition in HTML 4.01.
+ */
+ public String getCite();
+ /**
+ * A URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating a source document or message. See the cite attribute
+ * definition in HTML 4.01.
+ */
+ public void setCite(String cite);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java
new file mode 100644
index 000000000..226b394a9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLScriptElement.java
@@ -0,0 +1,91 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Script statements. See the SCRIPT element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLScriptElement extends HTMLElement {
+ /**
+ * The script content of the element.
+ */
+ public String getText();
+ /**
+ * The script content of the element.
+ */
+ public void setText(String text);
+
+ /**
+ * Reserved for future use.
+ */
+ public String getHtmlFor();
+ /**
+ * Reserved for future use.
+ */
+ public void setHtmlFor(String htmlFor);
+
+ /**
+ * Reserved for future use.
+ */
+ public String getEvent();
+ /**
+ * Reserved for future use.
+ */
+ public void setEvent(String event);
+
+ /**
+ * The character encoding of the linked resource. See the charset
+ * attribute definition in HTML 4.01.
+ */
+ public String getCharset();
+ /**
+ * The character encoding of the linked resource. See the charset
+ * attribute definition in HTML 4.01.
+ */
+ public void setCharset(String charset);
+
+ /**
+ * Indicates that the user agent can defer processing of the script. See
+ * the defer attribute definition in HTML 4.01.
+ */
+ public boolean getDefer();
+ /**
+ * Indicates that the user agent can defer processing of the script. See
+ * the defer attribute definition in HTML 4.01.
+ */
+ public void setDefer(boolean defer);
+
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating an external script. See the src attribute definition
+ * in HTML 4.01.
+ */
+ public String getSrc();
+ /**
+ * URI [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>] designating an external script. See the src attribute definition
+ * in HTML 4.01.
+ */
+ public void setSrc(String src);
+
+ /**
+ * The content type of the script language. See the type attribute
+ * definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * The content type of the script language. See the type attribute
+ * definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java
new file mode 100644
index 000000000..98dbc836d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLSelectElement.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The select element allows the selection of an option. The contained options
+ * can be directly accessed through the select element as a collection. See
+ * the SELECT element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLSelectElement extends HTMLElement {
+ /**
+ * The type of this form control. This is the string "select-multiple"
+ * when the multiple attribute is <code>true</code> and the string
+ * "select-one" when <code>false</code>.
+ */
+ public String getType();
+
+ /**
+ * The ordinal index of the selected option, starting from 0. The value -1
+ * is returned if no element is selected. If multiple options are
+ * selected, the index of the first selected option is returned.
+ */
+ public int getSelectedIndex();
+ /**
+ * The ordinal index of the selected option, starting from 0. The value -1
+ * is returned if no element is selected. If multiple options are
+ * selected, the index of the first selected option is returned.
+ */
+ public void setSelectedIndex(int selectedIndex);
+
+ /**
+ * The current form control value (i.e. the value of the currently
+ * selected option), if multiple options are selected this is the value
+ * of the first selected option.
+ */
+ public String getValue();
+ /**
+ * The current form control value (i.e. the value of the currently
+ * selected option), if multiple options are selected this is the value
+ * of the first selected option.
+ */
+ public void setValue(String value);
+
+ /**
+ * The number of options in this <code>SELECT</code>.
+ * @version DOM Level 2
+ */
+ public int getLength();
+ /**
+ * The number of options in this <code>SELECT</code>.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: if setting the length is not allowed by the
+ * implementation.
+ * @version DOM Level 2
+ */
+ public void setLength(int length)
+ throws DOMException;
+
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * The collection of <code>OPTION</code> elements contained by this
+ * element.
+ * @version DOM Level 2
+ */
+ public HTMLOptionsCollection getOptions();
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * If true, multiple <code>OPTION</code> elements may be selected in this
+ * <code>SELECT</code>. See the multiple attribute definition in HTML
+ * 4.01.
+ */
+ public boolean getMultiple();
+ /**
+ * If true, multiple <code>OPTION</code> elements may be selected in this
+ * <code>SELECT</code>. See the multiple attribute definition in HTML
+ * 4.01.
+ */
+ public void setMultiple(boolean multiple);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * Number of visible rows. See the size attribute definition in HTML 4.01.
+ */
+ public int getSize();
+ /**
+ * Number of visible rows. See the size attribute definition in HTML 4.01.
+ */
+ public void setSize(int size);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * Add a new element to the collection of <code>OPTION</code> elements for
+ * this <code>SELECT</code>. This method is the equivalent of the
+ * <code>appendChild</code> method of the <code>Node</code> interface if
+ * the <code>before</code> parameter is <code>null</code>. It is
+ * equivalent to the <code>insertBefore</code> method on the parent of
+ * <code>before</code> in all other cases. This method may have no
+ * effect if the new element is not an <code>OPTION</code> or an
+ * <code>OPTGROUP</code>.
+ * @param element The element to add.
+ * @param before The element to insert before, or <code>null</code> for
+ * the tail of the list.
+ * @exception DOMException
+ * NOT_FOUND_ERR: Raised if <code>before</code> is not a descendant of
+ * the <code>SELECT</code> element.
+ */
+ public void add(HTMLElement element,
+ HTMLElement before)
+ throws DOMException;
+
+ /**
+ * Remove an element from the collection of <code>OPTION</code> elements
+ * for this <code>SELECT</code>. Does nothing if no element has the
+ * given index.
+ * @param index The index of the item to remove, starting from 0.
+ */
+ public void remove(int index);
+
+ /**
+ * Removes keyboard focus from this element.
+ */
+ public void blur();
+
+ /**
+ * Gives keyboard focus to this element.
+ */
+ public void focus();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java
new file mode 100644
index 000000000..2512d63a6
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLStyleElement.java
@@ -0,0 +1,53 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Style information. See the STYLE element definition in HTML 4.01, the CSS
+ * module [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>DOM Level 2 Style Sheets and CSS</a>] and the <code>LinkStyle</code> interface in the StyleSheets
+ * module [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>DOM Level 2 Style Sheets and CSS</a>].
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLStyleElement extends HTMLElement {
+ /**
+ * Enables/disables the style sheet.
+ */
+ public boolean getDisabled();
+ /**
+ * Enables/disables the style sheet.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Designed for use with one or more target media. See the media attribute
+ * definition in HTML 4.01.
+ */
+ public String getMedia();
+ /**
+ * Designed for use with one or more target media. See the media attribute
+ * definition in HTML 4.01.
+ */
+ public void setMedia(String media);
+
+ /**
+ * The content type of the style sheet language. See the type attribute
+ * definition in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * The content type of the style sheet language. See the type attribute
+ * definition in HTML 4.01.
+ */
+ public void setType(String type);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java
new file mode 100644
index 000000000..47466e9e9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCaptionElement.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Table caption See the CAPTION element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLTableCaptionElement extends HTMLElement {
+ /**
+ * Caption alignment with respect to the table. See the align attribute
+ * definition in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Caption alignment with respect to the table. See the align attribute
+ * definition in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java
new file mode 100644
index 000000000..2e4db7095
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableCellElement.java
@@ -0,0 +1,181 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The object used to represent the <code>TH</code> and <code>TD</code>
+ * elements. See the TD element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLTableCellElement extends HTMLElement {
+ /**
+ * The index of this cell in the row, starting from 0. This index is in
+ * document tree order and not display order.
+ */
+ public int getCellIndex();
+
+ /**
+ * Abbreviation for header cells. See the abbr attribute definition in
+ * HTML 4.01.
+ */
+ public String getAbbr();
+ /**
+ * Abbreviation for header cells. See the abbr attribute definition in
+ * HTML 4.01.
+ */
+ public void setAbbr(String abbr);
+
+ /**
+ * Horizontal alignment of data in cell. See the align attribute definition
+ * in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal alignment of data in cell. See the align attribute definition
+ * in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Names group of related headers. See the axis attribute definition in
+ * HTML 4.01.
+ */
+ public String getAxis();
+ /**
+ * Names group of related headers. See the axis attribute definition in
+ * HTML 4.01.
+ */
+ public void setAxis(String axis);
+
+ /**
+ * Cell background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBgColor();
+ /**
+ * Cell background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBgColor(String bgColor);
+
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public String getCh();
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public void setCh(String ch);
+
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public String getChOff();
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public void setChOff(String chOff);
+
+ /**
+ * Number of columns spanned by cell. See the colspan attribute definition
+ * in HTML 4.01.
+ */
+ public int getColSpan();
+ /**
+ * Number of columns spanned by cell. See the colspan attribute definition
+ * in HTML 4.01.
+ */
+ public void setColSpan(int colSpan);
+
+ /**
+ * List of <code>id</code> attribute values for header cells. See the
+ * headers attribute definition in HTML 4.01.
+ */
+ public String getHeaders();
+ /**
+ * List of <code>id</code> attribute values for header cells. See the
+ * headers attribute definition in HTML 4.01.
+ */
+ public void setHeaders(String headers);
+
+ /**
+ * Cell height. See the height attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getHeight();
+ /**
+ * Cell height. See the height attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setHeight(String height);
+
+ /**
+ * Suppress word wrapping. See the nowrap attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getNoWrap();
+ /**
+ * Suppress word wrapping. See the nowrap attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setNoWrap(boolean noWrap);
+
+ /**
+ * Number of rows spanned by cell. See the rowspan attribute definition in
+ * HTML 4.01.
+ */
+ public int getRowSpan();
+ /**
+ * Number of rows spanned by cell. See the rowspan attribute definition in
+ * HTML 4.01.
+ */
+ public void setRowSpan(int rowSpan);
+
+ /**
+ * Scope covered by header cells. See the scope attribute definition in
+ * HTML 4.01.
+ */
+ public String getScope();
+ /**
+ * Scope covered by header cells. See the scope attribute definition in
+ * HTML 4.01.
+ */
+ public void setScope(String scope);
+
+ /**
+ * Vertical alignment of data in cell. See the valign attribute definition
+ * in HTML 4.01.
+ */
+ public String getVAlign();
+ /**
+ * Vertical alignment of data in cell. See the valign attribute definition
+ * in HTML 4.01.
+ */
+ public void setVAlign(String vAlign);
+
+ /**
+ * Cell width. See the width attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Cell width. See the width attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java
new file mode 100644
index 000000000..57bb35cfc
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableColElement.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Regroups the <code>COL</code> and <code>COLGROUP</code> elements. See the
+ * COL element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLTableColElement extends HTMLElement {
+ /**
+ * Horizontal alignment of cell data in column. See the align attribute
+ * definition in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal alignment of cell data in column. See the align attribute
+ * definition in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public String getCh();
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public void setCh(String ch);
+
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public String getChOff();
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public void setChOff(String chOff);
+
+ /**
+ * Indicates the number of columns in a group or affected by a grouping.
+ * See the span attribute definition in HTML 4.01.
+ */
+ public int getSpan();
+ /**
+ * Indicates the number of columns in a group or affected by a grouping.
+ * See the span attribute definition in HTML 4.01.
+ */
+ public void setSpan(int span);
+
+ /**
+ * Vertical alignment of cell data in column. See the valign attribute
+ * definition in HTML 4.01.
+ */
+ public String getVAlign();
+ /**
+ * Vertical alignment of cell data in column. See the valign attribute
+ * definition in HTML 4.01.
+ */
+ public void setVAlign(String vAlign);
+
+ /**
+ * Default column width. See the width attribute definition in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Default column width. See the width attribute definition in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java
new file mode 100644
index 000000000..ae15deb77
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableElement.java
@@ -0,0 +1,254 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The create* and delete* methods on the table allow authors to construct and
+ * modify tables. [<a href='http://www.w3.org/TR/1999/REC-html401-19991224'>HTML 4.01</a>] specifies that only one of each of the
+ * <code>CAPTION</code>, <code>THEAD</code>, and <code>TFOOT</code> elements
+ * may exist in a table. Therefore, if one exists, and the createTHead() or
+ * createTFoot() method is called, the method returns the existing THead or
+ * TFoot element. See the TABLE element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLTableElement extends HTMLElement {
+ /**
+ * Returns the table's <code>CAPTION</code>, or void if none exists.
+ * @version DOM Level 2
+ */
+ public HTMLTableCaptionElement getCaption();
+ /**
+ * Returns the table's <code>CAPTION</code>, or void if none exists.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: if the element is not a <code>CAPTION</code>.
+ * @version DOM Level 2
+ */
+ public void setCaption(HTMLTableCaptionElement caption)
+ throws DOMException;
+
+ /**
+ * Returns the table's <code>THEAD</code>, or <code>null</code> if none
+ * exists.
+ * @version DOM Level 2
+ */
+ public HTMLTableSectionElement getTHead();
+ /**
+ * Returns the table's <code>THEAD</code>, or <code>null</code> if none
+ * exists.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: if the element is not a <code>THEAD</code>.
+ * @version DOM Level 2
+ */
+ public void setTHead(HTMLTableSectionElement tHead)
+ throws DOMException;
+
+ /**
+ * Returns the table's <code>TFOOT</code>, or <code>null</code> if none
+ * exists.
+ * @version DOM Level 2
+ */
+ public HTMLTableSectionElement getTFoot();
+ /**
+ * Returns the table's <code>TFOOT</code>, or <code>null</code> if none
+ * exists.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: if the element is not a <code>TFOOT</code>.
+ * @version DOM Level 2
+ */
+ public void setTFoot(HTMLTableSectionElement tFoot)
+ throws DOMException;
+
+ /**
+ * Returns a collection of all the rows in the table, including all in
+ * <code>THEAD</code>, <code>TFOOT</code>, all <code>TBODY</code>
+ * elements.
+ */
+ public HTMLCollection getRows();
+
+ /**
+ * Returns a collection of the table bodies (including implicit ones).
+ */
+ public HTMLCollection getTBodies();
+
+ /**
+ * Specifies the table's position with respect to the rest of the
+ * document. See the align attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Specifies the table's position with respect to the rest of the
+ * document. See the align attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Cell background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBgColor();
+ /**
+ * Cell background color. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBgColor(String bgColor);
+
+ /**
+ * The width of the border around the table. See the border attribute
+ * definition in HTML 4.01.
+ */
+ public String getBorder();
+ /**
+ * The width of the border around the table. See the border attribute
+ * definition in HTML 4.01.
+ */
+ public void setBorder(String border);
+
+ /**
+ * Specifies the horizontal and vertical space between cell content and
+ * cell borders. See the cellpadding attribute definition in HTML 4.01.
+ */
+ public String getCellPadding();
+ /**
+ * Specifies the horizontal and vertical space between cell content and
+ * cell borders. See the cellpadding attribute definition in HTML 4.01.
+ */
+ public void setCellPadding(String cellPadding);
+
+ /**
+ * Specifies the horizontal and vertical separation between cells. See the
+ * cellspacing attribute definition in HTML 4.01.
+ */
+ public String getCellSpacing();
+ /**
+ * Specifies the horizontal and vertical separation between cells. See the
+ * cellspacing attribute definition in HTML 4.01.
+ */
+ public void setCellSpacing(String cellSpacing);
+
+ /**
+ * Specifies which external table borders to render. See the frame
+ * attribute definition in HTML 4.01.
+ */
+ public String getFrame();
+ /**
+ * Specifies which external table borders to render. See the frame
+ * attribute definition in HTML 4.01.
+ */
+ public void setFrame(String frame);
+
+ /**
+ * Specifies which internal table borders to render. See the rules
+ * attribute definition in HTML 4.01.
+ */
+ public String getRules();
+ /**
+ * Specifies which internal table borders to render. See the rules
+ * attribute definition in HTML 4.01.
+ */
+ public void setRules(String rules);
+
+ /**
+ * Description about the purpose or structure of a table. See the summary
+ * attribute definition in HTML 4.01.
+ */
+ public String getSummary();
+ /**
+ * Description about the purpose or structure of a table. See the summary
+ * attribute definition in HTML 4.01.
+ */
+ public void setSummary(String summary);
+
+ /**
+ * Specifies the desired table width. See the width attribute definition
+ * in HTML 4.01.
+ */
+ public String getWidth();
+ /**
+ * Specifies the desired table width. See the width attribute definition
+ * in HTML 4.01.
+ */
+ public void setWidth(String width);
+
+ /**
+ * Create a table header row or return an existing one.
+ * @return A new table header element (<code>THEAD</code>).
+ */
+ public HTMLElement createTHead();
+
+ /**
+ * Delete the header from the table, if one exists.
+ */
+ public void deleteTHead();
+
+ /**
+ * Create a table footer row or return an existing one.
+ * @return A footer element (<code>TFOOT</code>).
+ */
+ public HTMLElement createTFoot();
+
+ /**
+ * Delete the footer from the table, if one exists.
+ */
+ public void deleteTFoot();
+
+ /**
+ * Create a new table caption object or return an existing one.
+ * @return A <code>CAPTION</code> element.
+ */
+ public HTMLElement createCaption();
+
+ /**
+ * Delete the table caption, if one exists.
+ */
+ public void deleteCaption();
+
+ /**
+ * Insert a new empty row in the table. The new row is inserted
+ * immediately before and in the same section as the current
+ * <code>index</code>th row in the table. If <code>index</code> is -1 or
+ * equal to the number of rows, the new row is appended. In addition,
+ * when the table is empty the row is inserted into a <code>TBODY</code>
+ * which is created and inserted into the table.A table row cannot be
+ * empty according to [<a href='http://www.w3.org/TR/1999/REC-html401-19991224'>HTML 4.01</a>].
+ * @param index The row number where to insert a new row. This index
+ * starts from 0 and is relative to the logical order (not document
+ * order) of all the rows contained inside the table.
+ * @return The newly created row.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater than the
+ * number of rows or if the index is a negative number other than -1.
+ * @version DOM Level 2
+ */
+ public HTMLElement insertRow(int index)
+ throws DOMException;
+
+ /**
+ * Delete a table row.
+ * @param index The index of the row to be deleted. This index starts
+ * from 0 and is relative to the logical order (not document order) of
+ * all the rows contained inside the table. If the index is -1 the
+ * last row in the table is deleted.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater than or
+ * equal to the number of rows or if the index is a negative number
+ * other than -1.
+ * @version DOM Level 2
+ */
+ public void deleteRow(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java
new file mode 100644
index 000000000..8c3618f39
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableRowElement.java
@@ -0,0 +1,130 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * A row in a table. See the TR element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLTableRowElement extends HTMLElement {
+ /**
+ * This is in logical order and not in document order. The
+ * <code>rowIndex</code> does take into account sections (
+ * <code>THEAD</code>, <code>TFOOT</code>, or <code>TBODY</code>) within
+ * the table, placing <code>THEAD</code> rows first in the index,
+ * followed by <code>TBODY</code> rows, followed by <code>TFOOT</code>
+ * rows.
+ * @version DOM Level 2
+ */
+ public int getRowIndex();
+
+ /**
+ * The index of this row, relative to the current section (
+ * <code>THEAD</code>, <code>TFOOT</code>, or <code>TBODY</code>),
+ * starting from 0.
+ * @version DOM Level 2
+ */
+ public int getSectionRowIndex();
+
+ /**
+ * The collection of cells in this row.
+ * @version DOM Level 2
+ */
+ public HTMLCollection getCells();
+
+ /**
+ * Horizontal alignment of data within cells of this row. See the align
+ * attribute definition in HTML 4.01.
+ */
+ public String getAlign();
+ /**
+ * Horizontal alignment of data within cells of this row. See the align
+ * attribute definition in HTML 4.01.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Background color for rows. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public String getBgColor();
+ /**
+ * Background color for rows. See the bgcolor attribute definition in HTML
+ * 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setBgColor(String bgColor);
+
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public String getCh();
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public void setCh(String ch);
+
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public String getChOff();
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public void setChOff(String chOff);
+
+ /**
+ * Vertical alignment of data within cells of this row. See the valign
+ * attribute definition in HTML 4.01.
+ */
+ public String getVAlign();
+ /**
+ * Vertical alignment of data within cells of this row. See the valign
+ * attribute definition in HTML 4.01.
+ */
+ public void setVAlign(String vAlign);
+
+ /**
+ * Insert an empty <code>TD</code> cell into this row. If
+ * <code>index</code> is -1 or equal to the number of cells, the new
+ * cell is appended.
+ * @param index The place to insert the cell, starting from 0.
+ * @return The newly created cell.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified <code>index</code> is greater
+ * than the number of cells or if the index is a negative number other
+ * than -1.
+ * @version DOM Level 2
+ */
+ public HTMLElement insertCell(int index)
+ throws DOMException;
+
+ /**
+ * Delete a cell from the current row.
+ * @param index The index of the cell to delete, starting from 0. If the
+ * index is -1 the last cell in the row is deleted.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified <code>index</code> is greater
+ * than or equal to the number of cells or if the index is a negative
+ * number other than -1.
+ * @version DOM Level 2
+ */
+ public void deleteCell(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java
new file mode 100644
index 000000000..5e3d6e53f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTableSectionElement.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>THEAD</code>, <code>TFOOT</code>, and <code>TBODY</code>
+ * elements.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLTableSectionElement extends HTMLElement {
+ /**
+ * Horizontal alignment of data in cells. See the <code>align</code>
+ * attribute for HTMLTheadElement for details.
+ */
+ public String getAlign();
+ /**
+ * Horizontal alignment of data in cells. See the <code>align</code>
+ * attribute for HTMLTheadElement for details.
+ */
+ public void setAlign(String align);
+
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public String getCh();
+ /**
+ * Alignment character for cells in a column. See the char attribute
+ * definition in HTML 4.01.
+ */
+ public void setCh(String ch);
+
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public String getChOff();
+ /**
+ * Offset of alignment character. See the charoff attribute definition in
+ * HTML 4.01.
+ */
+ public void setChOff(String chOff);
+
+ /**
+ * Vertical alignment of data in cells. See the <code>valign</code>
+ * attribute for HTMLTheadElement for details.
+ */
+ public String getVAlign();
+ /**
+ * Vertical alignment of data in cells. See the <code>valign</code>
+ * attribute for HTMLTheadElement for details.
+ */
+ public void setVAlign(String vAlign);
+
+ /**
+ * The collection of rows in this table section.
+ */
+ public HTMLCollection getRows();
+
+ /**
+ * Insert a row into this section. The new row is inserted immediately
+ * before the current <code>index</code>th row in this section. If
+ * <code>index</code> is -1 or equal to the number of rows in this
+ * section, the new row is appended.
+ * @param index The row number where to insert a new row. This index
+ * starts from 0 and is relative only to the rows contained inside
+ * this section, not all the rows in the table.
+ * @return The newly created row.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater than the
+ * number of rows of if the index is a negative number other than -1.
+ * @version DOM Level 2
+ */
+ public HTMLElement insertRow(int index)
+ throws DOMException;
+
+ /**
+ * Delete a row from this section.
+ * @param index The index of the row to be deleted, or -1 to delete the
+ * last row. This index starts from 0 and is relative only to the rows
+ * contained inside this section, not all the rows in the table.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if the specified index is greater than or
+ * equal to the number of rows or if the index is a negative number
+ * other than -1.
+ * @version DOM Level 2
+ */
+ public void deleteRow(int index)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java
new file mode 100644
index 000000000..caabe4a19
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTextAreaElement.java
@@ -0,0 +1,154 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Multi-line text field. See the TEXTAREA element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLTextAreaElement extends HTMLElement {
+ /**
+ * Represents the contents of the element. The value of this attribute
+ * does not change if the contents of the corresponding form control, in
+ * an interactive user agent, changes.
+ * @version DOM Level 2
+ */
+ public String getDefaultValue();
+ /**
+ * Represents the contents of the element. The value of this attribute
+ * does not change if the contents of the corresponding form control, in
+ * an interactive user agent, changes.
+ * @version DOM Level 2
+ */
+ public void setDefaultValue(String defaultValue);
+
+ /**
+ * Returns the <code>FORM</code> element containing this control. Returns
+ * <code>null</code> if this control is not within the context of a
+ * form.
+ */
+ public HTMLFormElement getForm();
+
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public String getAccessKey();
+ /**
+ * A single character access key to give access to the form control. See
+ * the accesskey attribute definition in HTML 4.01.
+ */
+ public void setAccessKey(String accessKey);
+
+ /**
+ * Width of control (in characters). See the cols attribute definition in
+ * HTML 4.01.
+ */
+ public int getCols();
+ /**
+ * Width of control (in characters). See the cols attribute definition in
+ * HTML 4.01.
+ */
+ public void setCols(int cols);
+
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public boolean getDisabled();
+ /**
+ * The control is unavailable in this context. See the disabled attribute
+ * definition in HTML 4.01.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public String getName();
+ /**
+ * Form control or object name when submitted with a form. See the name
+ * attribute definition in HTML 4.01.
+ */
+ public void setName(String name);
+
+ /**
+ * This control is read-only. See the readonly attribute definition in
+ * HTML 4.01.
+ */
+ public boolean getReadOnly();
+ /**
+ * This control is read-only. See the readonly attribute definition in
+ * HTML 4.01.
+ */
+ public void setReadOnly(boolean readOnly);
+
+ /**
+ * Number of text rows. See the rows attribute definition in HTML 4.01.
+ */
+ public int getRows();
+ /**
+ * Number of text rows. See the rows attribute definition in HTML 4.01.
+ */
+ public void setRows(int rows);
+
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public int getTabIndex();
+ /**
+ * Index that represents the element's position in the tabbing order. See
+ * the tabindex attribute definition in HTML 4.01.
+ */
+ public void setTabIndex(int tabIndex);
+
+ /**
+ * The type of this form control. This the string "textarea".
+ */
+ public String getType();
+
+ /**
+ * Represents the current contents of the corresponding form control, in
+ * an interactive user agent. Changing this attribute changes the
+ * contents of the form control, but does not change the contents of the
+ * element. If the entirety of the data can not fit into a single
+ * <code>DOMString</code>, the implementation may truncate the data.
+ */
+ public String getValue();
+ /**
+ * Represents the current contents of the corresponding form control, in
+ * an interactive user agent. Changing this attribute changes the
+ * contents of the form control, but does not change the contents of the
+ * element. If the entirety of the data can not fit into a single
+ * <code>DOMString</code>, the implementation may truncate the data.
+ */
+ public void setValue(String value);
+
+ /**
+ * Removes keyboard focus from this element.
+ */
+ public void blur();
+
+ /**
+ * Gives keyboard focus to this element.
+ */
+ public void focus();
+
+ /**
+ * Select the contents of the <code>TEXTAREA</code>.
+ */
+ public void select();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java
new file mode 100644
index 000000000..a86b3a926
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLTitleElement.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * The document title. See the TITLE element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLTitleElement extends HTMLElement {
+ /**
+ * The specified title as a string.
+ */
+ public String getText();
+ /**
+ * The specified title as a string.
+ */
+ public void setText(String text);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java
new file mode 100644
index 000000000..e5828fd39
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/html2/HTMLUListElement.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2003 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.
+ */
+
+package org.w3c.dom.html2;
+
+/**
+ * Unordered list. See the UL element definition in HTML 4.01.
+ * <p>See also the <a href='http://www.w3.org/TR/2003/REC-DOM-Level-2-HTML-20030109'>Document Object Model (DOM) Level 2 HTML Specification</a>.
+ */
+public interface HTMLUListElement extends HTMLElement {
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public boolean getCompact();
+ /**
+ * Reduce spacing between list items. See the compact attribute definition
+ * in HTML 4.01. This attribute is deprecated in HTML 4.01.
+ */
+ public void setCompact(boolean compact);
+
+ /**
+ * Bullet style. See the type attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public String getType();
+ /**
+ * Bullet style. See the type attribute definition in HTML 4.01. This
+ * attribute is deprecated in HTML 4.01.
+ */
+ public void setType(String type);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java
new file mode 100644
index 000000000..4d1b0971d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/DOMImplementationLS.java
@@ -0,0 +1,122 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * <code>DOMImplementationLS</code> contains the factory methods for creating
+ * Load and Save objects.
+ * <p> The expectation is that an instance of the
+ * <code>DOMImplementationLS</code> interface can be obtained by using
+ * binding-specific casting methods on an instance of the
+ * <code>DOMImplementation</code> interface or, if the <code>Document</code>
+ * supports the feature <code>"Core"</code> version <code>"3.0"</code>
+ * defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , by using the method <code>DOMImplementation.getFeature</code> with
+ * parameter values <code>"LS"</code> (or <code>"LS-Async"</code>) and
+ * <code>"3.0"</code> (respectively).
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface DOMImplementationLS {
+ // DOMImplementationLSMode
+ /**
+ * Create a synchronous <code>LSParser</code>.
+ */
+ public static final short MODE_SYNCHRONOUS = 1;
+ /**
+ * Create an asynchronous <code>LSParser</code>.
+ */
+ public static final short MODE_ASYNCHRONOUS = 2;
+
+ /**
+ * Create a new <code>LSParser</code>. The newly constructed parser may
+ * then be configured by means of its <code>DOMConfiguration</code>
+ * object, and used to parse documents by means of its <code>parse</code>
+ * method.
+ * @param mode The <code>mode</code> argument is either
+ * <code>MODE_SYNCHRONOUS</code> or <code>MODE_ASYNCHRONOUS</code>, if
+ * <code>mode</code> is <code>MODE_SYNCHRONOUS</code> then the
+ * <code>LSParser</code> that is created will operate in synchronous
+ * mode, if it's <code>MODE_ASYNCHRONOUS</code> then the
+ * <code>LSParser</code> that is created will operate in asynchronous
+ * mode.
+ * @param schemaType An absolute URI representing the type of the schema
+ * language used during the load of a <code>Document</code> using the
+ * newly created <code>LSParser</code>. Note that no lexical checking
+ * is done on the absolute URI. In order to create a
+ * <code>LSParser</code> for any kind of schema types (i.e. the
+ * LSParser will be free to use any schema found), use the value
+ * <code>null</code>.
+ * <p ><b>Note:</b> For W3C XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * , applications must use the value
+ * <code>"http://www.w3.org/2001/XMLSchema"</code>. For XML DTD [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>],
+ * applications must use the value
+ * <code>"http://www.w3.org/TR/REC-xml"</code>. Other Schema languages
+ * are outside the scope of the W3C and therefore should recommend an
+ * absolute URI in order to use this method.
+ * @return The newly created <code>LSParser</code> object. This
+ * <code>LSParser</code> is either synchronous or asynchronous
+ * depending on the value of the <code>mode</code> argument.
+ * <p ><b>Note:</b> By default, the newly created <code>LSParser</code>
+ * does not contain a <code>DOMErrorHandler</code>, i.e. the value of
+ * the "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" configuration parameter is <code>null</code>. However, implementations
+ * may provide a default error handler at creation time. In that case,
+ * the initial value of the <code>"error-handler"</code> configuration
+ * parameter on the new <code>LSParser</code> object contains a
+ * reference to the default error handler.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the requested mode or schema type is
+ * not supported.
+ */
+ public LSParser createLSParser(short mode,
+ String schemaType)
+ throws DOMException;
+
+ /**
+ * Create a new <code>LSSerializer</code> object.
+ * @return The newly created <code>LSSerializer</code> object.
+ * <p ><b>Note:</b> By default, the newly created
+ * <code>LSSerializer</code> has no <code>DOMErrorHandler</code>, i.e.
+ * the value of the <code>"error-handler"</code> configuration
+ * parameter is <code>null</code>. However, implementations may
+ * provide a default error handler at creation time. In that case, the
+ * initial value of the <code>"error-handler"</code> configuration
+ * parameter on the new <code>LSSerializer</code> object contains a
+ * reference to the default error handler.
+ */
+ public LSSerializer createLSSerializer();
+
+ /**
+ * Create a new empty input source object where
+ * <code>LSInput.characterStream</code>, <code>LSInput.byteStream</code>
+ * , <code>LSInput.stringData</code> <code>LSInput.systemId</code>,
+ * <code>LSInput.publicId</code>, <code>LSInput.baseURI</code>, and
+ * <code>LSInput.encoding</code> are null, and
+ * <code>LSInput.certifiedText</code> is false.
+ * @return The newly created input object.
+ */
+ public LSInput createLSInput();
+
+ /**
+ * Create a new empty output destination object where
+ * <code>LSOutput.characterStream</code>,
+ * <code>LSOutput.byteStream</code>, <code>LSOutput.systemId</code>,
+ * <code>LSOutput.encoding</code> are null.
+ * @return The newly created output object.
+ */
+ public LSOutput createLSOutput();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java
new file mode 100644
index 000000000..677ad385c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSException.java
@@ -0,0 +1,47 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+/**
+ * Parser or write operations may throw an <code>LSException</code> if the
+ * processing is stopped. The processing can be stopped due to a
+ * <code>DOMError</code> with a severity of
+ * <code>DOMError.SEVERITY_FATAL_ERROR</code> or a non recovered
+ * <code>DOMError.SEVERITY_ERROR</code>, or if
+ * <code>DOMErrorHandler.handleError()</code> returned <code>false</code>.
+ * <p ><b>Note:</b> As suggested in the definition of the constants in the
+ * <code>DOMError</code> interface, a DOM implementation may choose to
+ * continue after a fatal error, but the resulting DOM tree is then
+ * implementation dependent.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public class LSException extends RuntimeException {
+ public LSException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // LSExceptionCode
+ /**
+ * If an attempt was made to load a document, or an XML Fragment, using
+ * <code>LSParser</code> and the processing has been stopped.
+ */
+ public static final short PARSE_ERR = 81;
+ /**
+ * If an attempt was made to serialize a <code>Node</code> using
+ * <code>LSSerializer</code> and the processing has been stopped.
+ */
+ public static final short SERIALIZE_ERR = 82;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java
new file mode 100644
index 000000000..bba1792cd
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSInput.java
@@ -0,0 +1,218 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+/**
+ * This interface represents an input source for data.
+ * <p> This interface allows an application to encapsulate information about
+ * an input source in a single object, which may include a public
+ * identifier, a system identifier, a byte stream (possibly with a specified
+ * encoding), a base URI, and/or a character stream.
+ * <p> The exact definitions of a byte stream and a character stream are
+ * binding dependent.
+ * <p> The application is expected to provide objects that implement this
+ * interface whenever such objects are needed. The application can either
+ * provide its own objects that implement this interface, or it can use the
+ * generic factory method <code>DOMImplementationLS.createLSInput()</code>
+ * to create objects that implement this interface.
+ * <p> The <code>LSParser</code> will use the <code>LSInput</code> object to
+ * determine how to read data. The <code>LSParser</code> will look at the
+ * different inputs specified in the <code>LSInput</code> in the following
+ * order to know which one to read from, the first one that is not null and
+ * not an empty string will be used:
+ * <ol>
+ * <li> <code>LSInput.characterStream</code>
+ * </li>
+ * <li>
+ * <code>LSInput.byteStream</code>
+ * </li>
+ * <li> <code>LSInput.stringData</code>
+ * </li>
+ * <li>
+ * <code>LSInput.systemId</code>
+ * </li>
+ * <li> <code>LSInput.publicId</code>
+ * </li>
+ * </ol>
+ * <p> If all inputs are null, the <code>LSParser</code> will report a
+ * <code>DOMError</code> with its <code>DOMError.type</code> set to
+ * <code>"no-input-specified"</code> and its <code>DOMError.severity</code>
+ * set to <code>DOMError.SEVERITY_FATAL_ERROR</code>.
+ * <p> <code>LSInput</code> objects belong to the application. The DOM
+ * implementation will never modify them (though it may make copies and
+ * modify the copies, if necessary).
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSInput {
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a stream of 16-bit units. The application must encode the stream
+ * using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when
+ * using character streams. If an XML declaration is present, the value
+ * of the encoding attribute will be ignored.
+ */
+ public java.io.Reader getCharacterStream();
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a stream of 16-bit units. The application must encode the stream
+ * using UTF-16 (defined in [Unicode] and in [ISO/IEC 10646]). It is not a requirement to have an XML declaration when
+ * using character streams. If an XML declaration is present, the value
+ * of the encoding attribute will be ignored.
+ */
+ public void setCharacterStream(java.io.Reader characterStream);
+
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a stream of bytes.
+ * <br> If the application knows the character encoding of the byte
+ * stream, it should set the encoding attribute. Setting the encoding in
+ * this way will override any encoding specified in an XML declaration
+ * in the data.
+ */
+ public java.io.InputStream getByteStream();
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a stream of bytes.
+ * <br> If the application knows the character encoding of the byte
+ * stream, it should set the encoding attribute. Setting the encoding in
+ * this way will override any encoding specified in an XML declaration
+ * in the data.
+ */
+ public void setByteStream(java.io.InputStream byteStream);
+
+ /**
+ * String data to parse. If provided, this will always be treated as a
+ * sequence of 16-bit units (UTF-16 encoded characters). It is not a
+ * requirement to have an XML declaration when using
+ * <code>stringData</code>. If an XML declaration is present, the value
+ * of the encoding attribute will be ignored.
+ */
+ public String getStringData();
+ /**
+ * String data to parse. If provided, this will always be treated as a
+ * sequence of 16-bit units (UTF-16 encoded characters). It is not a
+ * requirement to have an XML declaration when using
+ * <code>stringData</code>. If an XML declaration is present, the value
+ * of the encoding attribute will be ignored.
+ */
+ public void setStringData(String stringData);
+
+ /**
+ * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this
+ * input source. The system identifier is optional if there is a byte
+ * stream, a character stream, or string data. It is still useful to
+ * provide one, since the application will use it to resolve any
+ * relative URIs and can include it in error messages and warnings. (The
+ * LSParser will only attempt to fetch the resource identified by the
+ * URI reference if there is no other input available in the input
+ * source.)
+ * <br> If the application knows the character encoding of the object
+ * pointed to by the system identifier, it can set the encoding using
+ * the <code>encoding</code> attribute.
+ * <br> If the specified system ID is a relative URI reference (see
+ * section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the DOM
+ * implementation will attempt to resolve the relative URI with the
+ * <code>baseURI</code> as the base, if that fails, the behavior is
+ * implementation dependent.
+ */
+ public String getSystemId();
+ /**
+ * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this
+ * input source. The system identifier is optional if there is a byte
+ * stream, a character stream, or string data. It is still useful to
+ * provide one, since the application will use it to resolve any
+ * relative URIs and can include it in error messages and warnings. (The
+ * LSParser will only attempt to fetch the resource identified by the
+ * URI reference if there is no other input available in the input
+ * source.)
+ * <br> If the application knows the character encoding of the object
+ * pointed to by the system identifier, it can set the encoding using
+ * the <code>encoding</code> attribute.
+ * <br> If the specified system ID is a relative URI reference (see
+ * section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the DOM
+ * implementation will attempt to resolve the relative URI with the
+ * <code>baseURI</code> as the base, if that fails, the behavior is
+ * implementation dependent.
+ */
+ public void setSystemId(String systemId);
+
+ /**
+ * The public identifier for this input source. This may be mapped to an
+ * input source using an implementation dependent mechanism (such as
+ * catalogues or other mappings). The public identifier, if specified,
+ * may also be reported as part of the location information when errors
+ * are reported.
+ */
+ public String getPublicId();
+ /**
+ * The public identifier for this input source. This may be mapped to an
+ * input source using an implementation dependent mechanism (such as
+ * catalogues or other mappings). The public identifier, if specified,
+ * may also be reported as part of the location information when errors
+ * are reported.
+ */
+ public void setPublicId(String publicId);
+
+ /**
+ * The base URI to be used (see section 5.1.4 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]) for
+ * resolving a relative <code>systemId</code> to an absolute URI.
+ * <br> If, when used, the base URI is itself a relative URI, an empty
+ * string, or null, the behavior is implementation dependent.
+ */
+ public String getBaseURI();
+ /**
+ * The base URI to be used (see section 5.1.4 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]) for
+ * resolving a relative <code>systemId</code> to an absolute URI.
+ * <br> If, when used, the base URI is itself a relative URI, an empty
+ * string, or null, the behavior is implementation dependent.
+ */
+ public void setBaseURI(String baseURI);
+
+ /**
+ * The character encoding, if known. The encoding must be a string
+ * acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section
+ * 4.3.3 "Character Encoding in Entities").
+ * <br> This attribute has no effect when the application provides a
+ * character stream or string data. For other sources of input, an
+ * encoding specified by means of this attribute will override any
+ * encoding specified in the XML declaration or the Text declaration, or
+ * an encoding obtained from a higher level protocol, such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>].
+ */
+ public String getEncoding();
+ /**
+ * The character encoding, if known. The encoding must be a string
+ * acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section
+ * 4.3.3 "Character Encoding in Entities").
+ * <br> This attribute has no effect when the application provides a
+ * character stream or string data. For other sources of input, an
+ * encoding specified by means of this attribute will override any
+ * encoding specified in the XML declaration or the Text declaration, or
+ * an encoding obtained from a higher level protocol, such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>].
+ */
+ public void setEncoding(String encoding);
+
+ /**
+ * If set to true, assume that the input is certified (see section 2.13
+ * in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]) when
+ * parsing [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>].
+ */
+ public boolean getCertifiedText();
+ /**
+ * If set to true, assume that the input is certified (see section 2.13
+ * in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>]) when
+ * parsing [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>].
+ */
+ public void setCertifiedText(boolean certifiedText);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java
new file mode 100644
index 000000000..0140b4123
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSLoadEvent.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.events.Event;
+
+/**
+ * This interface represents a load event object that signals the completion
+ * of a document load.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSLoadEvent extends Event {
+ /**
+ * The document that finished loading.
+ */
+ public Document getNewDocument();
+
+ /**
+ * The input source that was parsed.
+ */
+ public LSInput getInput();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java
new file mode 100644
index 000000000..789b95a93
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSOutput.java
@@ -0,0 +1,106 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+/**
+ * This interface represents an output destination for data.
+ * <p> This interface allows an application to encapsulate information about
+ * an output destination in a single object, which may include a URI, a byte
+ * stream (possibly with a specified encoding), a base URI, and/or a
+ * character stream.
+ * <p> The exact definitions of a byte stream and a character stream are
+ * binding dependent.
+ * <p> The application is expected to provide objects that implement this
+ * interface whenever such objects are needed. The application can either
+ * provide its own objects that implement this interface, or it can use the
+ * generic factory method <code>DOMImplementationLS.createLSOutput()</code>
+ * to create objects that implement this interface.
+ * <p> The <code>LSSerializer</code> will use the <code>LSOutput</code> object
+ * to determine where to serialize the output to. The
+ * <code>LSSerializer</code> will look at the different outputs specified in
+ * the <code>LSOutput</code> in the following order to know which one to
+ * output to, the first one that is not null and not an empty string will be
+ * used:
+ * <ol>
+ * <li> <code>LSOutput.characterStream</code>
+ * </li>
+ * <li>
+ * <code>LSOutput.byteStream</code>
+ * </li>
+ * <li> <code>LSOutput.systemId</code>
+ * </li>
+ * </ol>
+ * <p> <code>LSOutput</code> objects belong to the application. The DOM
+ * implementation will never modify them (though it may make copies and
+ * modify the copies, if necessary).
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSOutput {
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a writable stream to which 16-bit units can be output.
+ */
+ public java.io.Writer getCharacterStream();
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a writable stream to which 16-bit units can be output.
+ */
+ public void setCharacterStream(java.io.Writer characterStream);
+
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a writable stream of bytes.
+ */
+ public java.io.OutputStream getByteStream();
+ /**
+ * An attribute of a language and binding dependent type that represents
+ * a writable stream of bytes.
+ */
+ public void setByteStream(java.io.OutputStream byteStream);
+
+ /**
+ * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this
+ * output destination.
+ * <br> If the system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the
+ * behavior is implementation dependent.
+ */
+ public String getSystemId();
+ /**
+ * The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], for this
+ * output destination.
+ * <br> If the system ID is a relative URI reference (see section 5 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the
+ * behavior is implementation dependent.
+ */
+ public void setSystemId(String systemId);
+
+ /**
+ * The character encoding to use for the output. The encoding must be a
+ * string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section
+ * 4.3.3 "Character Encoding in Entities"), it is recommended that
+ * character encodings registered (as charsets) with the Internet
+ * Assigned Numbers Authority [<a href='ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets'>IANA-CHARSETS</a>]
+ * should be referred to using their registered names.
+ */
+ public String getEncoding();
+ /**
+ * The character encoding to use for the output. The encoding must be a
+ * string acceptable for an XML encoding declaration ([<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] section
+ * 4.3.3 "Character Encoding in Entities"), it is recommended that
+ * character encodings registered (as charsets) with the Internet
+ * Assigned Numbers Authority [<a href='ftp://ftp.isi.edu/in-notes/iana/assignments/character-sets'>IANA-CHARSETS</a>]
+ * should be referred to using their registered names.
+ */
+ public void setEncoding(String encoding);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java
new file mode 100644
index 000000000..41781fa33
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParser.java
@@ -0,0 +1,466 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.Document;
+import org.w3c.dom.DOMConfiguration;
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * An interface to an object that is able to build, or augment, a DOM tree
+ * from various input sources.
+ * <p> <code>LSParser</code> provides an API for parsing XML and building the
+ * corresponding DOM document structure. A <code>LSParser</code> instance
+ * can be obtained by invoking the
+ * <code>DOMImplementationLS.createLSParser()</code> method.
+ * <p> As specified in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , when a document is first made available via the LSParser:
+ * <ul>
+ * <li> there will
+ * never be two adjacent nodes of type NODE_TEXT, and there will never be
+ * empty text nodes.
+ * </li>
+ * <li> it is expected that the <code>value</code> and
+ * <code>nodeValue</code> attributes of an <code>Attr</code> node initially
+ * return the <a href='http://www.w3.org/TR/2004/REC-xml-20040204#AVNormalize'>XML 1.0
+ * normalized value</a>. However, if the parameters "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate-if-schema'>
+ * validate-if-schema</a>" and "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-datatype-normalization'>
+ * datatype-normalization</a>" are set to <code>true</code>, depending on the attribute normalization
+ * used, the attribute values may differ from the ones obtained by the XML
+ * 1.0 attribute normalization. If the parameters "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-datatype-normalization'>
+ * datatype-normalization</a>" is set to <code>false</code>, the XML 1.0 attribute normalization is
+ * guaranteed to occur, and if the attributes list does not contain
+ * namespace declarations, the <code>attributes</code> attribute on
+ * <code>Element</code> node represents the property <b>[attributes]</b> defined in [<a href='http://www.w3.org/TR/2004/REC-xml-infoset-20040204/'>XML Information Set</a>]
+ * .
+ * </li>
+ * </ul>
+ * <p> Asynchronous <code>LSParser</code> objects are expected to also
+ * implement the <code>events::EventTarget</code> interface so that event
+ * listeners can be registered on asynchronous <code>LSParser</code>
+ * objects.
+ * <p> Events supported by asynchronous <code>LSParser</code> objects are:
+ * <dl>
+ * <dt>load</dt>
+ * <dd>
+ * The <code>LSParser</code> finishes to load the document. See also the
+ * definition of the <code>LSLoadEvent</code> interface. </dd>
+ * <dt>progress</dt>
+ * <dd> The
+ * <code>LSParser</code> signals progress as data is parsed. This
+ * specification does not attempt to define exactly when progress events
+ * should be dispatched. That is intentionally left as
+ * implementation-dependent. Here is one example of how an application might
+ * dispatch progress events: Once the parser starts receiving data, a
+ * progress event is dispatched to indicate that the parsing starts. From
+ * there on, a progress event is dispatched for every 4096 bytes of data
+ * that is received and processed. This is only one example, though, and
+ * implementations can choose to dispatch progress events at any time while
+ * parsing, or not dispatch them at all. See also the definition of the
+ * <code>LSProgressEvent</code> interface. </dd>
+ * </dl>
+ * <p ><b>Note:</b> All events defined in this specification use the
+ * namespace URI <code>"http://www.w3.org/2002/DOMLS"</code>.
+ * <p> While parsing an input source, errors are reported to the application
+ * through the error handler (<code>LSParser.domConfig</code>'s "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" parameter). This specification does in no way try to define all possible
+ * errors that can occur while parsing XML, or any other markup, but some
+ * common error cases are defined. The types (<code>DOMError.type</code>) of
+ * errors and warnings defined by this specification are:
+ * <dl>
+ * <dt>
+ * <code>"check-character-normalization-failure" [error]</code> </dt>
+ * <dd> Raised if
+ * the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-check-character-normalization'>
+ * check-character-normalization</a>" is set to true and a string is encountered that fails normalization
+ * checking. </dd>
+ * <dt><code>"doctype-not-allowed" [fatal]</code></dt>
+ * <dd> Raised if the
+ * configuration parameter "disallow-doctype" is set to <code>true</code>
+ * and a doctype is encountered. </dd>
+ * <dt><code>"no-input-specified" [fatal]</code></dt>
+ * <dd>
+ * Raised when loading a document and no input is specified in the
+ * <code>LSInput</code> object. </dd>
+ * <dt>
+ * <code>"pi-base-uri-not-preserved" [warning]</code></dt>
+ * <dd> Raised if a processing
+ * instruction is encountered in a location where the base URI of the
+ * processing instruction can not be preserved. One example of a case where
+ * this warning will be raised is if the configuration parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>
+ * entities</a>" is set to <code>false</code> and the following XML file is parsed:
+ * <pre>
+ * &lt;!DOCTYPE root [ &lt;!ENTITY e SYSTEM 'subdir/myentity.ent' ]&gt;
+ * &lt;root&gt; &amp;e; &lt;/root&gt;</pre>
+ * And <code>subdir/myentity.ent</code>
+ * contains:
+ * <pre>&lt;one&gt; &lt;two/&gt; &lt;/one&gt; &lt;?pi 3.14159?&gt;
+ * &lt;more/&gt;</pre>
+ * </dd>
+ * <dt><code>"unbound-prefix-in-entity" [warning]</code></dt>
+ * <dd> An
+ * implementation dependent warning that may be raised if the configuration
+ * parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-namespaces'>
+ * namespaces</a>" is set to <code>true</code> and an unbound namespace prefix is
+ * encountered in an entity's replacement text. Raising this warning is not
+ * enforced since some existing parsers may not recognize unbound namespace
+ * prefixes in the replacement text of entities. </dd>
+ * <dt>
+ * <code>"unknown-character-denormalization" [fatal]</code></dt>
+ * <dd> Raised if the
+ * configuration parameter "ignore-unknown-character-denormalizations" is
+ * set to <code>false</code> and a character is encountered for which the
+ * processor cannot determine the normalization properties. </dd>
+ * <dt>
+ * <code>"unsupported-encoding" [fatal]</code></dt>
+ * <dd> Raised if an unsupported
+ * encoding is encountered. </dd>
+ * <dt><code>"unsupported-media-type" [fatal]</code></dt>
+ * <dd>
+ * Raised if the configuration parameter "supported-media-types-only" is set
+ * to <code>true</code> and an unsupported media type is encountered. </dd>
+ * </dl>
+ * <p> In addition to raising the defined errors and warnings, implementations
+ * are expected to raise implementation specific errors and warnings for any
+ * other error and warning cases such as IO errors (file not found,
+ * permission denied,...), XML well-formedness errors, and so on.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSParser {
+ /**
+ * The <code>DOMConfiguration</code> object used when parsing an input
+ * source. This <code>DOMConfiguration</code> is specific to the parse
+ * operation. No parameter values from this <code>DOMConfiguration</code>
+ * object are passed automatically to the <code>DOMConfiguration</code>
+ * object on the <code>Document</code> that is created, or used, by the
+ * parse operation. The DOM application is responsible for passing any
+ * needed parameter values from this <code>DOMConfiguration</code>
+ * object to the <code>DOMConfiguration</code> object referenced by the
+ * <code>Document</code> object.
+ * <br> In addition to the parameters recognized in on the <a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration'>
+ * DOMConfiguration</a> interface defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , the <code>DOMConfiguration</code> objects for <code>LSParser</code>
+ * add or modify the following parameters:
+ * <dl>
+ * <dt>
+ * <code>"charset-overrides-xml-encoding"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>optional</em>] (<em>default</em>) If a higher level protocol such as HTTP [<a href='http://www.ietf.org/rfc/rfc2616.txt'>IETF RFC 2616</a>] provides an
+ * indication of the character encoding of the input stream being
+ * processed, that will override any encoding specified in the XML
+ * declaration or the Text declaration (see also section 4.3.3,
+ * "Character Encoding in Entities", in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]).
+ * Explicitly setting an encoding in the <code>LSInput</code> overrides
+ * any encoding from the protocol. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>] The parser ignores any character set encoding information from
+ * higher-level protocols. </dd>
+ * </dl></dd>
+ * <dt><code>"disallow-doctype"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>optional</em>] Throw a fatal <b>"doctype-not-allowed"</b> error if a doctype node is found while parsing the document. This is
+ * useful when dealing with things like SOAP envelopes where doctype
+ * nodes are not allowed. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Allow doctype nodes in the document. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"ignore-unknown-character-denormalizations"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) If, while verifying full normalization when [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>] is
+ * supported, a processor encounters characters for which it cannot
+ * determine the normalization properties, then the processor will
+ * ignore any possible denormalizations caused by these characters.
+ * This parameter is ignored for [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>]. </dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>optional</em>] Report an fatal <b>"unknown-character-denormalization"</b> error if a character is encountered for which the processor cannot
+ * determine the normalization properties. </dd>
+ * </dl></dd>
+ * <dt><code>"infoset"</code></dt>
+ * <dd> See
+ * the definition of <code>DOMConfiguration</code> for a description of
+ * this parameter. Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , this parameter will default to <code>true</code> for
+ * <code>LSParser</code>. </dd>
+ * <dt><code>"namespaces"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Perform the namespace processing as defined in [<a href='http://www.w3.org/TR/1999/REC-xml-names-19990114/'>XML Namespaces</a>]
+ * and [<a href='http://www.w3.org/TR/2004/REC-xml-names11-20040204/'>XML Namespaces 1.1</a>]
+ * . </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>optional</em>] Do not perform the namespace processing. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"resource-resolver"</code></dt>
+ * <dd>[<em>required</em>] A reference to a <code>LSResourceResolver</code> object, or null. If
+ * the value of this parameter is not null when an external resource
+ * (such as an external XML entity or an XML schema location) is
+ * encountered, the implementation will request that the
+ * <code>LSResourceResolver</code> referenced in this parameter resolves
+ * the resource. </dd>
+ * <dt><code>"supported-media-types-only"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>optional</em>] Check that the media type of the parsed resource is a supported media
+ * type. If an unsupported media type is encountered, a fatal error of
+ * type <b>"unsupported-media-type"</b> will be raised. The media types defined in [<a href='http://www.ietf.org/rfc/rfc3023.txt'>IETF RFC 3023</a>] must always
+ * be accepted. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Accept any media type. </dd>
+ * </dl></dd>
+ * <dt><code>"validate"</code></dt>
+ * <dd> See the definition of
+ * <code>DOMConfiguration</code> for a description of this parameter.
+ * Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , the processing of the internal subset is always accomplished, even
+ * if this parameter is set to <code>false</code>. </dd>
+ * <dt>
+ * <code>"validate-if-schema"</code></dt>
+ * <dd> See the definition of
+ * <code>DOMConfiguration</code> for a description of this parameter.
+ * Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , the processing of the internal subset is always accomplished, even
+ * if this parameter is set to <code>false</code>. </dd>
+ * <dt>
+ * <code>"well-formed"</code></dt>
+ * <dd> See the definition of
+ * <code>DOMConfiguration</code> for a description of this parameter.
+ * Unlike in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , this parameter cannot be set to <code>false</code>. </dd>
+ * </dl>
+ */
+ public DOMConfiguration getDomConfig();
+
+ /**
+ * When a filter is provided, the implementation will call out to the
+ * filter as it is constructing the DOM tree structure. The filter can
+ * choose to remove elements from the document being constructed, or to
+ * terminate the parsing early.
+ * <br> The filter is invoked after the operations requested by the
+ * <code>DOMConfiguration</code> parameters have been applied. For
+ * example, if "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'>
+ * validate</a>" is set to <code>true</code>, the validation is done before invoking the
+ * filter.
+ */
+ public LSParserFilter getFilter();
+ /**
+ * When a filter is provided, the implementation will call out to the
+ * filter as it is constructing the DOM tree structure. The filter can
+ * choose to remove elements from the document being constructed, or to
+ * terminate the parsing early.
+ * <br> The filter is invoked after the operations requested by the
+ * <code>DOMConfiguration</code> parameters have been applied. For
+ * example, if "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'>
+ * validate</a>" is set to <code>true</code>, the validation is done before invoking the
+ * filter.
+ */
+ public void setFilter(LSParserFilter filter);
+
+ /**
+ * <code>true</code> if the <code>LSParser</code> is asynchronous,
+ * <code>false</code> if it is synchronous.
+ */
+ public boolean getAsync();
+
+ /**
+ * <code>true</code> if the <code>LSParser</code> is currently busy
+ * loading a document, otherwise <code>false</code>.
+ */
+ public boolean getBusy();
+
+ /**
+ * Parse an XML document from a resource identified by a
+ * <code>LSInput</code>.
+ * @param input The <code>LSInput</code> from which the source of the
+ * document is to be read.
+ * @return If the <code>LSParser</code> is a synchronous
+ * <code>LSParser</code>, the newly created and populated
+ * <code>Document</code> is returned. If the <code>LSParser</code> is
+ * asynchronous, <code>null</code> is returned since the document
+ * object may not yet be constructed when this method returns.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if the <code>LSParser</code>'s
+ * <code>LSParser.busy</code> attribute is <code>true</code>.
+ * @exception LSException
+ * PARSE_ERR: Raised if the <code>LSParser</code> was unable to load
+ * the XML document. DOM applications should attach a
+ * <code>DOMErrorHandler</code> using the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" if they wish to get details on the error.
+ */
+ public Document parse(LSInput input)
+ throws DOMException, LSException;
+
+ /**
+ * Parse an XML document from a location identified by a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]. If the URI
+ * contains a fragment identifier (see section 4.1 in [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>]), the
+ * behavior is not defined by this specification, future versions of
+ * this specification may define the behavior.
+ * @param uri The location of the XML document to be read.
+ * @return If the <code>LSParser</code> is a synchronous
+ * <code>LSParser</code>, the newly created and populated
+ * <code>Document</code> is returned, or <code>null</code> if an error
+ * occured. If the <code>LSParser</code> is asynchronous,
+ * <code>null</code> is returned since the document object may not yet
+ * be constructed when this method returns.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if the <code>LSParser.busy</code>
+ * attribute is <code>true</code>.
+ * @exception LSException
+ * PARSE_ERR: Raised if the <code>LSParser</code> was unable to load
+ * the XML document. DOM applications should attach a
+ * <code>DOMErrorHandler</code> using the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" if they wish to get details on the error.
+ */
+ public Document parseURI(String uri)
+ throws DOMException, LSException;
+
+ // ACTION_TYPES
+ /**
+ * Append the result of the parse operation as children of the context
+ * node. For this action to work, the context node must be an
+ * <code>Element</code> or a <code>DocumentFragment</code>.
+ */
+ public static final short ACTION_APPEND_AS_CHILDREN = 1;
+ /**
+ * Replace all the children of the context node with the result of the
+ * parse operation. For this action to work, the context node must be an
+ * <code>Element</code>, a <code>Document</code>, or a
+ * <code>DocumentFragment</code>.
+ */
+ public static final short ACTION_REPLACE_CHILDREN = 2;
+ /**
+ * Insert the result of the parse operation as the immediately preceding
+ * sibling of the context node. For this action to work the context
+ * node's parent must be an <code>Element</code> or a
+ * <code>DocumentFragment</code>.
+ */
+ public static final short ACTION_INSERT_BEFORE = 3;
+ /**
+ * Insert the result of the parse operation as the immediately following
+ * sibling of the context node. For this action to work the context
+ * node's parent must be an <code>Element</code> or a
+ * <code>DocumentFragment</code>.
+ */
+ public static final short ACTION_INSERT_AFTER = 4;
+ /**
+ * Replace the context node with the result of the parse operation. For
+ * this action to work, the context node must have a parent, and the
+ * parent must be an <code>Element</code> or a
+ * <code>DocumentFragment</code>.
+ */
+ public static final short ACTION_REPLACE = 5;
+
+ /**
+ * Parse an XML fragment from a resource identified by a
+ * <code>LSInput</code> and insert the content into an existing document
+ * at the position specified with the <code>context</code> and
+ * <code>action</code> arguments. When parsing the input stream, the
+ * context node (or its parent, depending on where the result will be
+ * inserted) is used for resolving unbound namespace prefixes. The
+ * context node's <code>ownerDocument</code> node (or the node itself if
+ * the node of type <code>DOCUMENT_NODE</code>) is used to resolve
+ * default attributes and entity references.
+ * <br> As the new data is inserted into the document, at least one
+ * mutation event is fired per new immediate child or sibling of the
+ * context node.
+ * <br> If the context node is a <code>Document</code> node and the action
+ * is <code>ACTION_REPLACE_CHILDREN</code>, then the document that is
+ * passed as the context node will be changed such that its
+ * <code>xmlEncoding</code>, <code>documentURI</code>,
+ * <code>xmlVersion</code>, <code>inputEncoding</code>,
+ * <code>xmlStandalone</code>, and all other such attributes are set to
+ * what they would be set to if the input source was parsed using
+ * <code>LSParser.parse()</code>.
+ * <br> This method is always synchronous, even if the
+ * <code>LSParser</code> is asynchronous (<code>LSParser.async</code> is
+ * <code>true</code>).
+ * <br> If an error occurs while parsing, the caller is notified through
+ * the <code>ErrorHandler</code> instance associated with the "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" parameter of the <code>DOMConfiguration</code>.
+ * <br> When calling <code>parseWithContext</code>, the values of the
+ * following configuration parameters will be ignored and their default
+ * values will always be used instead: "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate'>
+ * validate</a>", "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-validate-if-schema'>
+ * validate-if-schema</a>", and "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-element-content-whitespace'>
+ * element-content-whitespace</a>". Other parameters will be treated normally, and the parser is expected
+ * to call the <code>LSParserFilter</code> just as if a whole document
+ * was parsed.
+ * @param input The <code>LSInput</code> from which the source document
+ * is to be read. The source document must be an XML fragment, i.e.
+ * anything except a complete XML document (except in the case where
+ * the context node of type <code>DOCUMENT_NODE</code>, and the action
+ * is <code>ACTION_REPLACE_CHILDREN</code>), a DOCTYPE (internal
+ * subset), entity declaration(s), notation declaration(s), or XML or
+ * text declaration(s).
+ * @param contextArg The node that is used as the context for the data
+ * that is being parsed. This node must be a <code>Document</code>
+ * node, a <code>DocumentFragment</code> node, or a node of a type
+ * that is allowed as a child of an <code>Element</code> node, e.g. it
+ * cannot be an <code>Attribute</code> node.
+ * @param action This parameter describes which action should be taken
+ * between the new set of nodes being inserted and the existing
+ * children of the context node. The set of possible actions is
+ * defined in <code>ACTION_TYPES</code> above.
+ * @return Return the node that is the result of the parse operation. If
+ * the result is more than one top-level node, the first one is
+ * returned.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if the content cannot replace, be
+ * inserted before, after, or as a child of the context node (see also
+ * <code>Node.insertBefore</code> or <code>Node.replaceChild</code> in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * ).
+ * <br> NOT_SUPPORTED_ERR: Raised if the <code>LSParser</code> doesn't
+ * support this method, or if the context node is of type
+ * <code>Document</code> and the DOM implementation doesn't support
+ * the replacement of the <code>DocumentType</code> child or
+ * <code>Element</code> child.
+ * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if the context node is a
+ * read only node and the content is being appended to its child list,
+ * or if the parent node of the context node is read only node and the
+ * content is being inserted in its child list.
+ * <br> INVALID_STATE_ERR: Raised if the <code>LSParser.busy</code>
+ * attribute is <code>true</code>.
+ * @exception LSException
+ * PARSE_ERR: Raised if the <code>LSParser</code> was unable to load
+ * the XML fragment. DOM applications should attach a
+ * <code>DOMErrorHandler</code> using the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" if they wish to get details on the error.
+ */
+ public Node parseWithContext(LSInput input,
+ Node contextArg,
+ short action)
+ throws DOMException, LSException;
+
+ /**
+ * Abort the loading of the document that is currently being loaded by
+ * the <code>LSParser</code>. If the <code>LSParser</code> is currently
+ * not busy, a call to this method does nothing.
+ */
+ public void abort();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java
new file mode 100644
index 000000000..00db4d3c2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSParserFilter.java
@@ -0,0 +1,172 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.Element;
+
+/**
+ * <code>LSParserFilter</code>s provide applications the ability to examine
+ * nodes as they are being constructed while parsing. As each node is
+ * examined, it may be modified or removed, or the entire parse may be
+ * terminated early.
+ * <p> At the time any of the filter methods are called by the parser, the
+ * owner Document and DOMImplementation objects exist and are accessible.
+ * The document element is never passed to the <code>LSParserFilter</code>
+ * methods, i.e. it is not possible to filter out the document element.
+ * <code>Document</code>, <code>DocumentType</code>, <code>Notation</code>,
+ * <code>Entity</code>, and <code>Attr</code> nodes are never passed to the
+ * <code>acceptNode</code> method on the filter. The child nodes of an
+ * <code>EntityReference</code> node are passed to the filter if the
+ * parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>
+ * entities</a>" is set to <code>false</code>. Note that, as described by the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>
+ * entities</a>", unexpanded entity reference nodes are never discarded and are always
+ * passed to the filter.
+ * <p> All validity checking while parsing a document occurs on the source
+ * document as it appears on the input stream, not on the DOM document as it
+ * is built in memory. With filters, the document in memory may be a subset
+ * of the document on the stream, and its validity may have been affected by
+ * the filtering.
+ * <p> All default attributes must be present on elements when the elements
+ * are passed to the filter methods. All other default content must be
+ * passed to the filter methods.
+ * <p> DOM applications must not raise exceptions in a filter. The effect of
+ * throwing exceptions from a filter is DOM implementation dependent.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSParserFilter {
+ // Constants returned by startElement and acceptNode
+ /**
+ * Accept the node.
+ */
+ public static final short FILTER_ACCEPT = 1;
+ /**
+ * Reject the node and its children.
+ */
+ public static final short FILTER_REJECT = 2;
+ /**
+ * Skip this single node. The children of this node will still be
+ * considered.
+ */
+ public static final short FILTER_SKIP = 3;
+ /**
+ * Interrupt the normal processing of the document.
+ */
+ public static final short FILTER_INTERRUPT = 4;
+
+ /**
+ * The parser will call this method after each <code>Element</code> start
+ * tag has been scanned, but before the remainder of the
+ * <code>Element</code> is processed. The intent is to allow the
+ * element, including any children, to be efficiently skipped. Note that
+ * only element nodes are passed to the <code>startElement</code>
+ * function.
+ * <br>The element node passed to <code>startElement</code> for filtering
+ * will include all of the Element's attributes, but none of the
+ * children nodes. The Element may not yet be in place in the document
+ * being constructed (it may not have a parent node.)
+ * <br>A <code>startElement</code> filter function may access or change
+ * the attributes for the Element. Changing Namespace declarations will
+ * have no effect on namespace resolution by the parser.
+ * <br>For efficiency, the Element node passed to the filter may not be
+ * the same one as is actually placed in the tree if the node is
+ * accepted. And the actual node (node object identity) may be reused
+ * during the process of reading in and filtering a document.
+ * @param elementArg The newly encountered element. At the time this
+ * method is called, the element is incomplete - it will have its
+ * attributes, but no children.
+ * @return
+ * <ul>
+ * <li> <code>FILTER_ACCEPT</code> if the <code>Element</code> should
+ * be included in the DOM document being built.
+ * </li>
+ * <li>
+ * <code>FILTER_REJECT</code> if the <code>Element</code> and all of
+ * its children should be rejected.
+ * </li>
+ * <li> <code>FILTER_SKIP</code> if the
+ * <code>Element</code> should be skipped. All of its children are
+ * inserted in place of the skipped <code>Element</code> node.
+ * </li>
+ * <li>
+ * <code>FILTER_INTERRUPT</code> if the filter wants to stop the
+ * processing of the document. Interrupting the processing of the
+ * document does no longer guarantee that the resulting DOM tree is
+ * XML well-formed. The <code>Element</code> is rejected.
+ * </li>
+ * </ul> Returning
+ * any other values will result in unspecified behavior.
+ */
+ public short startElement(Element elementArg);
+
+ /**
+ * This method will be called by the parser at the completion of the
+ * parsing of each node. The node and all of its descendants will exist
+ * and be complete. The parent node will also exist, although it may be
+ * incomplete, i.e. it may have additional children that have not yet
+ * been parsed. Attribute nodes are never passed to this function.
+ * <br>From within this method, the new node may be freely modified -
+ * children may be added or removed, text nodes modified, etc. The state
+ * of the rest of the document outside this node is not defined, and the
+ * affect of any attempt to navigate to, or to modify any other part of
+ * the document is undefined.
+ * <br>For validating parsers, the checks are made on the original
+ * document, before any modification by the filter. No validity checks
+ * are made on any document modifications made by the filter.
+ * <br>If this new node is rejected, the parser might reuse the new node
+ * and any of its descendants.
+ * @param nodeArg The newly constructed element. At the time this method
+ * is called, the element is complete - it has all of its children
+ * (and their children, recursively) and attributes, and is attached
+ * as a child to its parent.
+ * @return
+ * <ul>
+ * <li> <code>FILTER_ACCEPT</code> if this <code>Node</code> should
+ * be included in the DOM document being built.
+ * </li>
+ * <li>
+ * <code>FILTER_REJECT</code> if the <code>Node</code> and all of its
+ * children should be rejected.
+ * </li>
+ * <li> <code>FILTER_SKIP</code> if the
+ * <code>Node</code> should be skipped and the <code>Node</code>
+ * should be replaced by all the children of the <code>Node</code>.
+ * </li>
+ * <li>
+ * <code>FILTER_INTERRUPT</code> if the filter wants to stop the
+ * processing of the document. Interrupting the processing of the
+ * document does no longer guarantee that the resulting DOM tree is
+ * XML well-formed. The <code>Node</code> is accepted and will be the
+ * last completely parsed node.
+ * </li>
+ * </ul>
+ */
+ public short acceptNode(Node nodeArg);
+
+ /**
+ * Tells the <code>LSParser</code> what types of nodes to show to the
+ * method <code>LSParserFilter.acceptNode</code>. If a node is not shown
+ * to the filter using this attribute, it is automatically included in
+ * the DOM document being built. See <code>NodeFilter</code> for
+ * definition of the constants. The constants <code>SHOW_ATTRIBUTE</code>
+ * , <code>SHOW_DOCUMENT</code>, <code>SHOW_DOCUMENT_TYPE</code>,
+ * <code>SHOW_NOTATION</code>, <code>SHOW_ENTITY</code>, and
+ * <code>SHOW_DOCUMENT_FRAGMENT</code> are meaningless here. Those nodes
+ * will never be passed to <code>LSParserFilter.acceptNode</code>.
+ * <br> The constants used here are defined in [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>DOM Level 2 Traversal and Range</a>]
+ * .
+ */
+ public int getWhatToShow();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java
new file mode 100644
index 000000000..adf7b098c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSProgressEvent.java
@@ -0,0 +1,48 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.events.Event;
+
+/**
+ * This interface represents a progress event object that notifies the
+ * application about progress as a document is parsed. It extends the
+ * <code>Event</code> interface defined in [<a href='http://www.w3.org/TR/2003/NOTE-DOM-Level-3-Events-20031107'>DOM Level 3 Events</a>]
+ * .
+ * <p> The units used for the attributes <code>position</code> and
+ * <code>totalSize</code> are not specified and can be implementation and
+ * input dependent.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSProgressEvent extends Event {
+ /**
+ * The input source that is being parsed.
+ */
+ public LSInput getInput();
+
+ /**
+ * The current position in the input source, including all external
+ * entities and other resources that have been read.
+ */
+ public int getPosition();
+
+ /**
+ * The total size of the document including all external resources, this
+ * number might change as a document is being parsed if references to
+ * more external resources are seen. A value of <code>0</code> is
+ * returned if the total size cannot be determined or estimated.
+ */
+ public int getTotalSize();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java
new file mode 100644
index 000000000..5301beb8f
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSResourceResolver.java
@@ -0,0 +1,81 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+/**
+ * <code>LSResourceResolver</code> provides a way for applications to
+ * redirect references to external resources.
+ * <p> Applications needing to implement custom handling for external
+ * resources can implement this interface and register their implementation
+ * by setting the "resource-resolver" parameter of
+ * <code>DOMConfiguration</code> objects attached to <code>LSParser</code>
+ * and <code>LSSerializer</code>. It can also be register on
+ * <code>DOMConfiguration</code> objects attached to <code>Document</code>
+ * if the "LS" feature is supported.
+ * <p> The <code>LSParser</code> will then allow the application to intercept
+ * any external entities, including the external DTD subset and external
+ * parameter entities, before including them. The top-level document entity
+ * is never passed to the <code>resolveResource</code> method.
+ * <p> Many DOM applications will not need to implement this interface, but it
+ * will be especially useful for applications that build XML documents from
+ * databases or other specialized input sources, or for applications that
+ * use URNs.
+ * <p ><b>Note:</b> <code>LSResourceResolver</code> is based on the SAX2 [<a href='http://www.saxproject.org/'>SAX</a>] <code>EntityResolver</code>
+ * interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSResourceResolver {
+ /**
+ * Allow the application to resolve external resources.
+ * <br> The <code>LSParser</code> will call this method before opening any
+ * external resource, including the external DTD subset, external
+ * entities referenced within the DTD, and external entities referenced
+ * within the document element (however, the top-level document entity
+ * is not passed to this method). The application may then request that
+ * the <code>LSParser</code> resolve the external resource itself, that
+ * it use an alternative URI, or that it use an entirely different input
+ * source.
+ * <br> Application writers can use this method to redirect external
+ * system identifiers to secure and/or local URI, to look up public
+ * identifiers in a catalogue, or to read an entity from a database or
+ * other input source (including, for example, a dialog box).
+ * @param type The type of the resource being resolved. For XML [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>] resources
+ * (i.e. entities), applications must use the value
+ * <code>"http://www.w3.org/TR/REC-xml"</code>. For XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * , applications must use the value
+ * <code>"http://www.w3.org/2001/XMLSchema"</code>. Other types of
+ * resources are outside the scope of this specification and therefore
+ * should recommend an absolute URI in order to use this method.
+ * @param namespaceURI The namespace of the resource being resolved,
+ * e.g. the target namespace of the XML Schema [<a href='http://www.w3.org/TR/2001/REC-xmlschema-1-20010502/'>XML Schema Part 1</a>]
+ * when resolving XML Schema resources.
+ * @param publicId The public identifier of the external entity being
+ * referenced, or <code>null</code> if no public identifier was
+ * supplied or if the resource is not an entity.
+ * @param systemId The system identifier, a URI reference [<a href='http://www.ietf.org/rfc/rfc2396.txt'>IETF RFC 2396</a>], of the
+ * external resource being referenced, or <code>null</code> if no
+ * system identifier was supplied.
+ * @param baseURI The absolute base URI of the resource being parsed, or
+ * <code>null</code> if there is no base URI.
+ * @return A <code>LSInput</code> object describing the new input
+ * source, or <code>null</code> to request that the parser open a
+ * regular URI connection to the resource.
+ */
+ public LSInput resolveResource(String type,
+ String namespaceURI,
+ String publicId,
+ String systemId,
+ String baseURI);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java
new file mode 100644
index 000000000..2a6fb6ff4
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializer.java
@@ -0,0 +1,436 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.DOMConfiguration;
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * A <code>LSSerializer</code> provides an API for serializing (writing) a
+ * DOM document out into XML. The XML data is written to a string or an
+ * output stream. Any changes or fixups made during the serialization affect
+ * only the serialized data. The <code>Document</code> object and its
+ * children are never altered by the serialization operation.
+ * <p> During serialization of XML data, namespace fixup is done as defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , Appendix B. [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>DOM Level 2 Core</a>]
+ * allows empty strings as a real namespace URI. If the
+ * <code>namespaceURI</code> of a <code>Node</code> is empty string, the
+ * serialization will treat them as <code>null</code>, ignoring the prefix
+ * if any.
+ * <p> <code>LSSerializer</code> accepts any node type for serialization. For
+ * nodes of type <code>Document</code> or <code>Entity</code>, well-formed
+ * XML will be created when possible (well-formedness is guaranteed if the
+ * document or entity comes from a parse operation and is unchanged since it
+ * was created). The serialized output for these node types is either as a
+ * XML document or an External XML Entity, respectively, and is acceptable
+ * input for an XML parser. For all other types of nodes the serialized form
+ * is implementation dependent.
+ * <p>Within a <code>Document</code>, <code>DocumentFragment</code>, or
+ * <code>Entity</code> being serialized, <code>Nodes</code> are processed as
+ * follows
+ * <ul>
+ * <li> <code>Document</code> nodes are written, including the XML
+ * declaration (unless the parameter "xml-declaration" is set to
+ * <code>false</code>) and a DTD subset, if one exists in the DOM. Writing a
+ * <code>Document</code> node serializes the entire document.
+ * </li>
+ * <li>
+ * <code>Entity</code> nodes, when written directly by
+ * <code>LSSerializer.write</code>, outputs the entity expansion but no
+ * namespace fixup is done. The resulting output will be valid as an
+ * external entity.
+ * </li>
+ * <li> If the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>
+ * entities</a>" is set to <code>true</code>, <code>EntityReference</code> nodes are
+ * serialized as an entity reference of the form "
+ * <code>&amp;entityName;</code>" in the output. Child nodes (the expansion)
+ * of the entity reference are ignored. If the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-entities'>
+ * entities</a>" is set to <code>false</code>, only the children of the entity reference
+ * are serialized. <code>EntityReference</code> nodes with no children (no
+ * corresponding <code>Entity</code> node or the corresponding
+ * <code>Entity</code> nodes have no children) are always serialized.
+ * </li>
+ * <li>
+ * <code>CDATAsections</code> containing content characters that cannot be
+ * represented in the specified output encoding are handled according to the
+ * "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-split-cdata-sections'>
+ * split-cdata-sections</a>" parameter. If the parameter is set to <code>true</code>,
+ * <code>CDATAsections</code> are split, and the unrepresentable characters
+ * are serialized as numeric character references in ordinary content. The
+ * exact position and number of splits is not specified. If the parameter
+ * is set to <code>false</code>, unrepresentable characters in a
+ * <code>CDATAsection</code> are reported as
+ * <code>"wf-invalid-character"</code> errors if the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-well-formed'>
+ * well-formed</a>" is set to <code>true</code>. The error is not recoverable - there is no
+ * mechanism for supplying alternative characters and continuing with the
+ * serialization.
+ * </li>
+ * <li> <code>DocumentFragment</code> nodes are serialized by
+ * serializing the children of the document fragment in the order they
+ * appear in the document fragment.
+ * </li>
+ * <li> All other node types (Element, Text,
+ * etc.) are serialized to their corresponding XML source form.
+ * </li>
+ * </ul>
+ * <p ><b>Note:</b> The serialization of a <code>Node</code> does not always
+ * generate a well-formed XML document, i.e. a <code>LSParser</code> might
+ * throw fatal errors when parsing the resulting serialization.
+ * <p> Within the character data of a document (outside of markup), any
+ * characters that cannot be represented directly are replaced with
+ * character references. Occurrences of '&lt;' and '&amp;' are replaced by
+ * the predefined entities &amp;lt; and &amp;amp;. The other predefined
+ * entities (&amp;gt;, &amp;apos;, and &amp;quot;) might not be used, except
+ * where needed (e.g. using &amp;gt; in cases such as ']]&gt;'). Any
+ * characters that cannot be represented directly in the output character
+ * encoding are serialized as numeric character references (and since
+ * character encoding standards commonly use hexadecimal representations of
+ * characters, using the hexadecimal representation when serializing
+ * character references is encouraged).
+ * <p> To allow attribute values to contain both single and double quotes, the
+ * apostrophe or single-quote character (') may be represented as
+ * "&amp;apos;", and the double-quote character (") as "&amp;quot;". New
+ * line characters and other characters that cannot be represented directly
+ * in attribute values in the output character encoding are serialized as a
+ * numeric character reference.
+ * <p> Within markup, but outside of attributes, any occurrence of a character
+ * that cannot be represented in the output character encoding is reported
+ * as a <code>DOMError</code> fatal error. An example would be serializing
+ * the element &lt;LaCa\u00f1ada/&gt; with <code>encoding="us-ascii"</code>.
+ * This will result with a generation of a <code>DOMError</code>
+ * "wf-invalid-character-in-node-name" (as proposed in "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-well-formed'>
+ * well-formed</a>").
+ * <p> When requested by setting the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-normalize-characters'>
+ * normalize-characters</a>" on <code>LSSerializer</code> to true, character normalization is
+ * performed according to the definition of <a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>fully
+ * normalized</a> characters included in appendix E of [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>] on all
+ * data to be serialized, both markup and character data. The character
+ * normalization process affects only the data as it is being written; it
+ * does not alter the DOM's view of the document after serialization has
+ * completed.
+ * <p> Implementations are required to support the encodings "UTF-8",
+ * "UTF-16", "UTF-16BE", and "UTF-16LE" to guarantee that data is
+ * serializable in all encodings that are required to be supported by all
+ * XML parsers. When the encoding is UTF-8, whether or not a byte order mark
+ * is serialized, or if the output is big-endian or little-endian, is
+ * implementation dependent. When the encoding is UTF-16, whether or not the
+ * output is big-endian or little-endian is implementation dependent, but a
+ * Byte Order Mark must be generated for non-character outputs, such as
+ * <code>LSOutput.byteStream</code> or <code>LSOutput.systemId</code>. If
+ * the Byte Order Mark is not generated, a "byte-order-mark-needed" warning
+ * is reported. When the encoding is UTF-16LE or UTF-16BE, the output is
+ * big-endian (UTF-16BE) or little-endian (UTF-16LE) and the Byte Order Mark
+ * is not be generated. In all cases, the encoding declaration, if
+ * generated, will correspond to the encoding used during the serialization
+ * (e.g. <code>encoding="UTF-16"</code> will appear if UTF-16 was
+ * requested).
+ * <p> Namespaces are fixed up during serialization, the serialization process
+ * will verify that namespace declarations, namespace prefixes and the
+ * namespace URI associated with elements and attributes are consistent. If
+ * inconsistencies are found, the serialized form of the document will be
+ * altered to remove them. The method used for doing the namespace fixup
+ * while serializing a document is the algorithm defined in Appendix B.1,
+ * "Namespace normalization", of [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * .
+ * <p> While serializing a document, the parameter "discard-default-content"
+ * controls whether or not non-specified data is serialized.
+ * <p> While serializing, errors and warnings are reported to the application
+ * through the error handler (<code>LSSerializer.domConfig</code>'s "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" parameter). This specification does in no way try to define all possible
+ * errors and warnings that can occur while serializing a DOM node, but some
+ * common error and warning cases are defined. The types (
+ * <code>DOMError.type</code>) of errors and warnings defined by this
+ * specification are:
+ * <dl>
+ * <dt><code>"no-output-specified" [fatal]</code></dt>
+ * <dd> Raised when
+ * writing to a <code>LSOutput</code> if no output is specified in the
+ * <code>LSOutput</code>. </dd>
+ * <dt>
+ * <code>"unbound-prefix-in-entity-reference" [fatal]</code> </dt>
+ * <dd> Raised if the
+ * configuration parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-namespaces'>
+ * namespaces</a>" is set to <code>true</code> and an entity whose replacement text
+ * contains unbound namespace prefixes is referenced in a location where
+ * there are no bindings for the namespace prefixes. </dd>
+ * <dt>
+ * <code>"unsupported-encoding" [fatal]</code></dt>
+ * <dd> Raised if an unsupported
+ * encoding is encountered. </dd>
+ * </dl>
+ * <p> In addition to raising the defined errors and warnings, implementations
+ * are expected to raise implementation specific errors and warnings for any
+ * other error and warning cases such as IO errors (file not found,
+ * permission denied,...) and so on.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSSerializer {
+ /**
+ * The <code>DOMConfiguration</code> object used by the
+ * <code>LSSerializer</code> when serializing a DOM node.
+ * <br> In addition to the parameters recognized by the <a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#DOMConfiguration'>
+ * DOMConfiguration</a> interface defined in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , the <code>DOMConfiguration</code> objects for
+ * <code>LSSerializer</code> adds, or modifies, the following
+ * parameters:
+ * <dl>
+ * <dt><code>"canonical-form"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>optional</em>] Writes the document according to the rules specified in [<a href='http://www.w3.org/TR/2001/REC-xml-c14n-20010315'>Canonical XML</a>].
+ * In addition to the behavior described in "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-canonical-form'>
+ * canonical-form</a>" [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * , setting this parameter to <code>true</code> will set the parameters
+ * "format-pretty-print", "discard-default-content", and "xml-declaration
+ * ", to <code>false</code>. Setting one of those parameters to
+ * <code>true</code> will set this parameter to <code>false</code>.
+ * Serializing an XML 1.1 document when "canonical-form" is
+ * <code>true</code> will generate a fatal error. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Do not canonicalize the output. </dd>
+ * </dl></dd>
+ * <dt><code>"discard-default-content"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Use the <code>Attr.specified</code> attribute to decide what attributes
+ * should be discarded. Note that some implementations might use
+ * whatever information available to the implementation (i.e. XML
+ * schema, DTD, the <code>Attr.specified</code> attribute, and so on) to
+ * determine what attributes and content to discard if this parameter is
+ * set to <code>true</code>. </dd>
+ * <dt><code>false</code></dt>
+ * <dd>[<em>required</em>]Keep all attributes and all content.</dd>
+ * </dl></dd>
+ * <dt><code>"format-pretty-print"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>optional</em>] Formatting the output by adding whitespace to produce a pretty-printed,
+ * indented, human-readable form. The exact form of the transformations
+ * is not specified by this specification. Pretty-printing changes the
+ * content of the document and may affect the validity of the document,
+ * validating implementations should preserve validity. </dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) Don't pretty-print the result. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"ignore-unknown-character-denormalizations"</code> </dt>
+ * <dd>
+ * <dl>
+ * <dt>
+ * <code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) If, while verifying full normalization when [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>] is
+ * supported, a character is encountered for which the normalization
+ * properties cannot be determined, then raise a
+ * <code>"unknown-character-denormalization"</code> warning (instead of
+ * raising an error, if this parameter is not set) and ignore any
+ * possible denormalizations caused by these characters. </dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>optional</em>] Report a fatal error if a character is encountered for which the
+ * processor cannot determine the normalization properties. </dd>
+ * </dl></dd>
+ * <dt>
+ * <code>"normalize-characters"</code></dt>
+ * <dd> This parameter is equivalent to
+ * the one defined by <code>DOMConfiguration</code> in [<a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-Core-20040407'>DOM Level 3 Core</a>]
+ * . Unlike in the Core, the default value for this parameter is
+ * <code>true</code>. While DOM implementations are not required to
+ * support <a href='http://www.w3.org/TR/2004/REC-xml11-20040204/#dt-fullnorm'>fully
+ * normalizing</a> the characters in the document according to appendix E of [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], this
+ * parameter must be activated by default if supported. </dd>
+ * <dt>
+ * <code>"xml-declaration"</code></dt>
+ * <dd>
+ * <dl>
+ * <dt><code>true</code></dt>
+ * <dd>[<em>required</em>] (<em>default</em>) If a <code>Document</code>, <code>Element</code>, or <code>Entity</code>
+ * node is serialized, the XML declaration, or text declaration, should
+ * be included. The version (<code>Document.xmlVersion</code> if the
+ * document is a Level 3 document and the version is non-null, otherwise
+ * use the value "1.0"), and the output encoding (see
+ * <code>LSSerializer.write</code> for details on how to find the output
+ * encoding) are specified in the serialized XML declaration. </dd>
+ * <dt>
+ * <code>false</code></dt>
+ * <dd>[<em>required</em>] Do not serialize the XML and text declarations. Report a
+ * <code>"xml-declaration-needed"</code> warning if this will cause
+ * problems (i.e. the serialized data is of an XML version other than [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], or an
+ * encoding would be needed to be able to re-parse the serialized data). </dd>
+ * </dl></dd>
+ * </dl>
+ */
+ public DOMConfiguration getDomConfig();
+
+ /**
+ * The end-of-line sequence of characters to be used in the XML being
+ * written out. Any string is supported, but XML treats only a certain
+ * set of characters sequence as end-of-line (See section 2.11,
+ * "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], if the
+ * serialized content is XML 1.0 or section 2.11, "End-of-Line Handling"
+ * in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], if the
+ * serialized content is XML 1.1). Using other character sequences than
+ * the recommended ones can result in a document that is either not
+ * serializable or not well-formed).
+ * <br> On retrieval, the default value of this attribute is the
+ * implementation specific default end-of-line sequence. DOM
+ * implementations should choose the default to match the usual
+ * convention for text files in the environment being used.
+ * Implementations must choose a default sequence that matches one of
+ * those allowed by XML 1.0 or XML 1.1, depending on the serialized
+ * content. Setting this attribute to <code>null</code> will reset its
+ * value to the default value.
+ * <br>
+ */
+ public String getNewLine();
+ /**
+ * The end-of-line sequence of characters to be used in the XML being
+ * written out. Any string is supported, but XML treats only a certain
+ * set of characters sequence as end-of-line (See section 2.11,
+ * "End-of-Line Handling" in [<a href='http://www.w3.org/TR/2004/REC-xml-20040204'>XML 1.0</a>], if the
+ * serialized content is XML 1.0 or section 2.11, "End-of-Line Handling"
+ * in [<a href='http://www.w3.org/TR/2004/REC-xml11-20040204/'>XML 1.1</a>], if the
+ * serialized content is XML 1.1). Using other character sequences than
+ * the recommended ones can result in a document that is either not
+ * serializable or not well-formed).
+ * <br> On retrieval, the default value of this attribute is the
+ * implementation specific default end-of-line sequence. DOM
+ * implementations should choose the default to match the usual
+ * convention for text files in the environment being used.
+ * Implementations must choose a default sequence that matches one of
+ * those allowed by XML 1.0 or XML 1.1, depending on the serialized
+ * content. Setting this attribute to <code>null</code> will reset its
+ * value to the default value.
+ * <br>
+ */
+ public void setNewLine(String newLine);
+
+ /**
+ * When the application provides a filter, the serializer will call out
+ * to the filter before serializing each Node. The filter implementation
+ * can choose to remove the node from the stream or to terminate the
+ * serialization early.
+ * <br> The filter is invoked after the operations requested by the
+ * <code>DOMConfiguration</code> parameters have been applied. For
+ * example, CDATA sections won't be passed to the filter if "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-cdata-sections'>
+ * cdata-sections</a>" is set to <code>false</code>.
+ */
+ public LSSerializerFilter getFilter();
+ /**
+ * When the application provides a filter, the serializer will call out
+ * to the filter before serializing each Node. The filter implementation
+ * can choose to remove the node from the stream or to terminate the
+ * serialization early.
+ * <br> The filter is invoked after the operations requested by the
+ * <code>DOMConfiguration</code> parameters have been applied. For
+ * example, CDATA sections won't be passed to the filter if "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-cdata-sections'>
+ * cdata-sections</a>" is set to <code>false</code>.
+ */
+ public void setFilter(LSSerializerFilter filter);
+
+ /**
+ * Serialize the specified node as described above in the general
+ * description of the <code>LSSerializer</code> interface. The output is
+ * written to the supplied <code>LSOutput</code>.
+ * <br> When writing to a <code>LSOutput</code>, the encoding is found by
+ * looking at the encoding information that is reachable through the
+ * <code>LSOutput</code> and the item to be written (or its owner
+ * document) in this order:
+ * <ol>
+ * <li> <code>LSOutput.encoding</code>,
+ * </li>
+ * <li>
+ * <code>Document.inputEncoding</code>,
+ * </li>
+ * <li>
+ * <code>Document.xmlEncoding</code>.
+ * </li>
+ * </ol>
+ * <br> If no encoding is reachable through the above properties, a
+ * default encoding of "UTF-8" will be used. If the specified encoding
+ * is not supported an "unsupported-encoding" fatal error is raised.
+ * <br> If no output is specified in the <code>LSOutput</code>, a
+ * "no-output-specified" fatal error is raised.
+ * <br> The implementation is responsible of associating the appropriate
+ * media type with the serialized data.
+ * <br> When writing to a HTTP URI, a HTTP PUT is performed. When writing
+ * to other types of URIs, the mechanism for writing the data to the URI
+ * is implementation dependent.
+ * @param nodeArg The node to serialize.
+ * @param destination The destination for the serialized DOM.
+ * @return Returns <code>true</code> if <code>node</code> was
+ * successfully serialized. Return <code>false</code> in case the
+ * normal processing stopped but the implementation kept serializing
+ * the document; the result of the serialization being implementation
+ * dependent then.
+ * @exception LSException
+ * SERIALIZE_ERR: Raised if the <code>LSSerializer</code> was unable to
+ * serialize the node. DOM applications should attach a
+ * <code>DOMErrorHandler</code> using the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" if they wish to get details on the error.
+ */
+ public boolean write(Node nodeArg,
+ LSOutput destination)
+ throws LSException;
+
+ /**
+ * A convenience method that acts as if <code>LSSerializer.write</code>
+ * was called with a <code>LSOutput</code> with no encoding specified
+ * and <code>LSOutput.systemId</code> set to the <code>uri</code>
+ * argument.
+ * @param nodeArg The node to serialize.
+ * @param uri The URI to write to.
+ * @return Returns <code>true</code> if <code>node</code> was
+ * successfully serialized. Return <code>false</code> in case the
+ * normal processing stopped but the implementation kept serializing
+ * the document; the result of the serialization being implementation
+ * dependent then.
+ * @exception LSException
+ * SERIALIZE_ERR: Raised if the <code>LSSerializer</code> was unable to
+ * serialize the node. DOM applications should attach a
+ * <code>DOMErrorHandler</code> using the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" if they wish to get details on the error.
+ */
+ public boolean writeToURI(Node nodeArg,
+ String uri)
+ throws LSException;
+
+ /**
+ * Serialize the specified node as described above in the general
+ * description of the <code>LSSerializer</code> interface. The output is
+ * written to a <code>DOMString</code> that is returned to the caller.
+ * The encoding used is the encoding of the <code>DOMString</code> type,
+ * i.e. UTF-16. Note that no Byte Order Mark is generated in a
+ * <code>DOMString</code> object.
+ * @param nodeArg The node to serialize.
+ * @return Returns the serialized data.
+ * @exception DOMException
+ * DOMSTRING_SIZE_ERR: Raised if the resulting string is too long to
+ * fit in a <code>DOMString</code>.
+ * @exception LSException
+ * SERIALIZE_ERR: Raised if the <code>LSSerializer</code> was unable to
+ * serialize the node. DOM applications should attach a
+ * <code>DOMErrorHandler</code> using the parameter "<a href='http://www.w3.org/TR/DOM-Level-3-Core/core.html#parameter-error-handler'>
+ * error-handler</a>" if they wish to get details on the error.
+ */
+ public String writeToString(Node nodeArg)
+ throws DOMException, LSException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java
new file mode 100644
index 000000000..b04655677
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ls/LSSerializerFilter.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.ls;
+
+import org.w3c.dom.traversal.NodeFilter;
+
+/**
+ * <code>LSSerializerFilter</code>s provide applications the ability to
+ * examine nodes as they are being serialized and decide what nodes should
+ * be serialized or not. The <code>LSSerializerFilter</code> interface is
+ * based on the <code>NodeFilter</code> interface defined in [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>DOM Level 2 Traversal and Range</a>]
+ * .
+ * <p> <code>Document</code>, <code>DocumentType</code>,
+ * <code>DocumentFragment</code>, <code>Notation</code>, <code>Entity</code>
+ * , and children of <code>Attr</code> nodes are not passed to the filter.
+ * The child nodes of an <code>EntityReference</code> node are only passed
+ * to the filter if the <code>EntityReference</code> node is skipped by the
+ * method <code>LSParserFilter.acceptNode()</code>.
+ * <p> When serializing an <code>Element</code>, the element is passed to the
+ * filter before any of its attributes are passed to the filter. Namespace
+ * declaration attributes, and default attributes (except in the case when "
+ * discard-default-content" is set to <code>false</code>), are never passed
+ * to the filter.
+ * <p> The result of any attempt to modify a node passed to a
+ * <code>LSSerializerFilter</code> is implementation dependent.
+ * <p> DOM applications must not raise exceptions in a filter. The effect of
+ * throwing exceptions from a filter is DOM implementation dependent.
+ * <p> For efficiency, a node passed to the filter may not be the same as the
+ * one that is actually in the tree. And the actual node (node object
+ * identity) may be reused during the process of filtering and serializing a
+ * document.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/REC-DOM-Level-3-LS-20040407'>Document Object Model (DOM) Level 3 Load
+and Save Specification</a>.
+ */
+public interface LSSerializerFilter extends NodeFilter {
+ /**
+ * Tells the <code>LSSerializer</code> what types of nodes to show to the
+ * filter. If a node is not shown to the filter using this attribute, it
+ * is automatically serialized. See <code>NodeFilter</code> for
+ * definition of the constants. The constants <code>SHOW_DOCUMENT</code>
+ * , <code>SHOW_DOCUMENT_TYPE</code>, <code>SHOW_DOCUMENT_FRAGMENT</code>
+ * , <code>SHOW_NOTATION</code>, and <code>SHOW_ENTITY</code> are
+ * meaningless here, such nodes will never be passed to a
+ * <code>LSSerializerFilter</code>.
+ * <br> Unlike [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>DOM Level 2 Traversal and Range</a>]
+ * , the <code>SHOW_ATTRIBUTE</code> constant indicates that the
+ * <code>Attr</code> nodes are shown and passed to the filter.
+ * <br> The constants used here are defined in [<a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>DOM Level 2 Traversal and Range</a>]
+ * .
+ */
+ public int getWhatToShow();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java
new file mode 100644
index 000000000..de56e07d6
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/DocumentRange.java
@@ -0,0 +1,33 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.ranges;
+
+/**
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentRange {
+ /**
+ * This interface can be obtained from the object implementing the
+ * <code>Document</code> interface using binding-specific casting
+ * methods.
+ * @return The initial state of the Range returned from this method is
+ * such that both of its boundary-points are positioned at the
+ * beginning of the corresponding Document, before any content. The
+ * Range returned can only be used to select content associated with
+ * this Document, or with DocumentFragments and Attrs for which this
+ * Document is the <code>ownerDocument</code>.
+ */
+ public Range createRange();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java
new file mode 100644
index 000000000..9e1957883
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/Range.java
@@ -0,0 +1,416 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.ranges;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+import org.w3c.dom.DocumentFragment;
+
+/**
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+public interface Range {
+ /**
+ * Node within which the Range begins
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public Node getStartContainer()
+ throws DOMException;
+
+ /**
+ * Offset within the starting node of the Range.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public int getStartOffset()
+ throws DOMException;
+
+ /**
+ * Node within which the Range ends
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public Node getEndContainer()
+ throws DOMException;
+
+ /**
+ * Offset within the ending node of the Range.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public int getEndOffset()
+ throws DOMException;
+
+ /**
+ * TRUE if the Range is collapsed
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public boolean getCollapsed()
+ throws DOMException;
+
+ /**
+ * The deepest common ancestor container of the Range's two
+ * boundary-points.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public Node getCommonAncestorContainer()
+ throws DOMException;
+
+ /**
+ * Sets the attributes describing the start of the Range.
+ * @param refNode The <code>refNode</code> value. This parameter must be
+ * different from <code>null</code>.
+ * @param offset The <code>startOffset</code> value.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor
+ * of <code>refNode</code> is an Entity, Notation, or DocumentType
+ * node.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater
+ * than the number of child units in <code>refNode</code>. Child units
+ * are 16-bit units if <code>refNode</code> is a type of CharacterData
+ * node (e.g., a Text or Comment node) or a ProcessingInstruction
+ * node. Child units are Nodes in all other cases.
+ * <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+ * been invoked on this object.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+ * from a different document than the one that created this range.
+ */
+ public void setStart(Node refNode,
+ int offset)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the attributes describing the end of a Range.
+ * @param refNode The <code>refNode</code> value. This parameter must be
+ * different from <code>null</code>.
+ * @param offset The <code>endOffset</code> value.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor
+ * of <code>refNode</code> is an Entity, Notation, or DocumentType
+ * node.
+ * @exception DOMException
+ * INDEX_SIZE_ERR: Raised if <code>offset</code> is negative or greater
+ * than the number of child units in <code>refNode</code>. Child units
+ * are 16-bit units if <code>refNode</code> is a type of CharacterData
+ * node (e.g., a Text or Comment node) or a ProcessingInstruction
+ * node. Child units are Nodes in all other cases.
+ * <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+ * been invoked on this object.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+ * from a different document than the one that created this range.
+ */
+ public void setEnd(Node refNode,
+ int offset)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the start position to be before a node
+ * @param refNode Range starts before <code>refNode</code>
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if the root container of
+ * <code>refNode</code> is not an Attr, Document, or DocumentFragment
+ * node or if <code>refNode</code> is a Document, DocumentFragment,
+ * Attr, Entity, or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+ * from a different document than the one that created this range.
+ */
+ public void setStartBefore(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the start position to be after a node
+ * @param refNode Range starts after <code>refNode</code>
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if the root container of
+ * <code>refNode</code> is not an Attr, Document, or DocumentFragment
+ * node or if <code>refNode</code> is a Document, DocumentFragment,
+ * Attr, Entity, or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+ * from a different document than the one that created this range.
+ */
+ public void setStartAfter(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the end position to be before a node.
+ * @param refNode Range ends before <code>refNode</code>
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if the root container of
+ * <code>refNode</code> is not an Attr, Document, or DocumentFragment
+ * node or if <code>refNode</code> is a Document, DocumentFragment,
+ * Attr, Entity, or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+ * from a different document than the one that created this range.
+ */
+ public void setEndBefore(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Sets the end of a Range to be after a node
+ * @param refNode Range ends after <code>refNode</code>.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if the root container of
+ * <code>refNode</code> is not an Attr, Document or DocumentFragment
+ * node or if <code>refNode</code> is a Document, DocumentFragment,
+ * Attr, Entity, or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+ * from a different document than the one that created this range.
+ */
+ public void setEndAfter(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Collapse a Range onto one of its boundary-points
+ * @param toStart If TRUE, collapses the Range onto its start; if FALSE,
+ * collapses it onto its end.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public void collapse(boolean toStart)
+ throws DOMException;
+
+ /**
+ * Select a node and its contents
+ * @param refNode The node to select.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if an ancestor of <code>refNode</code>
+ * is an Entity, Notation or DocumentType node or if
+ * <code>refNode</code> is a Document, DocumentFragment, Attr, Entity,
+ * or Notation node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+ * from a different document than the one that created this range.
+ */
+ public void selectNode(Node refNode)
+ throws RangeException, DOMException;
+
+ /**
+ * Select the contents within a node
+ * @param refNode Node to select from
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if <code>refNode</code> or an ancestor
+ * of <code>refNode</code> is an Entity, Notation or DocumentType node.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>refNode</code> was created
+ * from a different document than the one that created this range.
+ */
+ public void selectNodeContents(Node refNode)
+ throws RangeException, DOMException;
+
+ // CompareHow
+ /**
+ * Compare start boundary-point of <code>sourceRange</code> to start
+ * boundary-point of Range on which <code>compareBoundaryPoints</code>
+ * is invoked.
+ */
+ public static final short START_TO_START = 0;
+ /**
+ * Compare start boundary-point of <code>sourceRange</code> to end
+ * boundary-point of Range on which <code>compareBoundaryPoints</code>
+ * is invoked.
+ */
+ public static final short START_TO_END = 1;
+ /**
+ * Compare end boundary-point of <code>sourceRange</code> to end
+ * boundary-point of Range on which <code>compareBoundaryPoints</code>
+ * is invoked.
+ */
+ public static final short END_TO_END = 2;
+ /**
+ * Compare end boundary-point of <code>sourceRange</code> to start
+ * boundary-point of Range on which <code>compareBoundaryPoints</code>
+ * is invoked.
+ */
+ public static final short END_TO_START = 3;
+
+ /**
+ * Compare the boundary-points of two Ranges in a document.
+ * @param how A code representing the type of comparison, as defined
+ * above.
+ * @param sourceRange The <code>Range</code> on which this current
+ * <code>Range</code> is compared to.
+ * @return -1, 0 or 1 depending on whether the corresponding
+ * boundary-point of the Range is respectively before, equal to, or
+ * after the corresponding boundary-point of <code>sourceRange</code>.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: Raised if the two Ranges are not in the same
+ * Document or DocumentFragment.
+ * <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+ * been invoked on this object.
+ */
+ public short compareBoundaryPoints(short how,
+ Range sourceRange)
+ throws DOMException;
+
+ /**
+ * Removes the contents of a Range from the containing document or
+ * document fragment without returning a reference to the removed
+ * content.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of
+ * the Range is read-only or any of the nodes that contain any of the
+ * content of the Range are read-only.
+ * <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+ * been invoked on this object.
+ */
+ public void deleteContents()
+ throws DOMException;
+
+ /**
+ * Moves the contents of a Range from the containing document or document
+ * fragment to a new DocumentFragment.
+ * @return A DocumentFragment containing the extracted contents.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if any portion of the content of
+ * the Range is read-only or any of the nodes which contain any of the
+ * content of the Range are read-only.
+ * <br>HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be
+ * extracted into the new DocumentFragment.
+ * <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+ * been invoked on this object.
+ */
+ public DocumentFragment extractContents()
+ throws DOMException;
+
+ /**
+ * Duplicates the contents of a Range
+ * @return A DocumentFragment that contains content equivalent to this
+ * Range.
+ * @exception DOMException
+ * HIERARCHY_REQUEST_ERR: Raised if a DocumentType node would be
+ * extracted into the new DocumentFragment.
+ * <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+ * been invoked on this object.
+ */
+ public DocumentFragment cloneContents()
+ throws DOMException;
+
+ /**
+ * Inserts a node into the Document or DocumentFragment at the start of
+ * the Range. If the container is a Text node, this will be split at the
+ * start of the Range (as if the Text node's splitText method was
+ * performed at the insertion point) and the insertion will occur
+ * between the two resulting Text nodes. Adjacent Text nodes will not be
+ * automatically merged. If the node to be inserted is a
+ * DocumentFragment node, the children will be inserted rather than the
+ * DocumentFragment node itself.
+ * @param newNode The node to insert at the start of the Range
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of the
+ * start of the Range is read-only.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code>newNode</code> and the
+ * container of the start of the Range were not created from the same
+ * document.
+ * <br>HIERARCHY_REQUEST_ERR: Raised if the container of the start of
+ * the Range is of a type that does not allow children of the type of
+ * <code>newNode</code> or if <code>newNode</code> is an ancestor of
+ * the container.
+ * <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+ * been invoked on this object.
+ * @exception RangeException
+ * INVALID_NODE_TYPE_ERR: Raised if <code>newNode</code> is an Attr,
+ * Entity, Notation, or Document node.
+ */
+ public void insertNode(Node newNode)
+ throws DOMException, RangeException;
+
+ /**
+ * Reparents the contents of the Range to the given node and inserts the
+ * node at the position of the start of the Range.
+ * @param newParent The node to surround the contents with.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if an ancestor container of
+ * either boundary-point of the Range is read-only.
+ * <br>WRONG_DOCUMENT_ERR: Raised if <code> newParent</code> and the
+ * container of the start of the Range were not created from the same
+ * document.
+ * <br>HIERARCHY_REQUEST_ERR: Raised if the container of the start of
+ * the Range is of a type that does not allow children of the type of
+ * <code>newParent</code> or if <code>newParent</code> is an ancestor
+ * of the container or if <code>node</code> would end up with a child
+ * node of a type not allowed by the type of <code>node</code>.
+ * <br>INVALID_STATE_ERR: Raised if <code>detach()</code> has already
+ * been invoked on this object.
+ * @exception RangeException
+ * BAD_BOUNDARYPOINTS_ERR: Raised if the Range partially selects a
+ * non-text node.
+ * <br>INVALID_NODE_TYPE_ERR: Raised if <code> node</code> is an Attr,
+ * Entity, DocumentType, Notation, Document, or DocumentFragment node.
+ */
+ public void surroundContents(Node newParent)
+ throws DOMException, RangeException;
+
+ /**
+ * Produces a new Range whose boundary-points are equal to the
+ * boundary-points of the Range.
+ * @return The duplicated Range.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public Range cloneRange()
+ throws DOMException;
+
+ /**
+ * Returns the contents of a Range as a string. This string contains only
+ * the data characters, not any markup.
+ * @return The contents of the Range.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public String toString()
+ throws DOMException;
+
+ /**
+ * Called to indicate that the Range is no longer in use and that the
+ * implementation may relinquish any resources associated with this
+ * Range. Subsequent calls to any methods or attribute getters on this
+ * Range will result in a <code>DOMException</code> being thrown with an
+ * error code of <code>INVALID_STATE_ERR</code>.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if <code>detach()</code> has already been
+ * invoked on this object.
+ */
+ public void detach()
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java
new file mode 100644
index 000000000..2dee8195b
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/ranges/RangeException.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.ranges;
+
+/**
+ * Range operations may throw a <code>RangeException</code> as specified in
+ * their method descriptions.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+public class RangeException extends RuntimeException {
+ public RangeException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // RangeExceptionCode
+ /**
+ * If the boundary-points of a Range do not meet specific requirements.
+ */
+ public static final short BAD_BOUNDARYPOINTS_ERR = 1;
+ /**
+ * If the container of an boundary-point of a Range is being set to either
+ * a node of an invalid type or a node with an ancestor of an invalid
+ * type.
+ */
+ public static final short INVALID_NODE_TYPE_ERR = 2;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java
new file mode 100644
index 000000000..ecfba994c
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/DocumentStyle.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ * The <code>DocumentStyle</code> interface provides a mechanism by which the
+ * style sheets embedded in a document can be retrieved. The expectation is
+ * that an instance of the <code>DocumentStyle</code> interface can be
+ * obtained by using binding-specific casting methods on an instance of the
+ * <code>Document</code> interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentStyle {
+ /**
+ * A list containing all the style sheets explicitly linked into or
+ * embedded in a document. For HTML documents, this includes external
+ * style sheets, included via the HTML LINK element, and inline STYLE
+ * elements. In XML, this includes external style sheets, included via
+ * style sheet processing instructions (see [XML StyleSheet]).
+ */
+ public StyleSheetList getStyleSheets();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java
new file mode 100644
index 000000000..c7560d647
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/LinkStyle.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ * The <code>LinkStyle</code> interface provides a mechanism by which a style
+ * sheet can be retrieved from the node responsible for linking it into a
+ * document. An instance of the <code>LinkStyle</code> interface can be
+ * obtained using binding-specific casting methods on an instance of a
+ * linking node (<code>HTMLLinkElement</code>, <code>HTMLStyleElement</code>
+ * or <code>ProcessingInstruction</code> in DOM Level 2).
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface LinkStyle {
+ /**
+ * The style sheet.
+ */
+ public StyleSheet getSheet();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java
new file mode 100644
index 000000000..000c90c43
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/MediaList.java
@@ -0,0 +1,85 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.stylesheets;
+
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>MediaList</code> interface provides the abstraction of an
+ * ordered collection of media, without defining or constraining how this
+ * collection is implemented. An empty list is the same as a list that
+ * contains the medium <code>"all"</code>.
+ * <p> The items in the <code>MediaList</code> are accessible via an integral
+ * index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface MediaList {
+ /**
+ * The parsable textual representation of the media list. This is a
+ * comma-separated list of media.
+ */
+ public String getMediaText();
+ /**
+ * The parsable textual representation of the media list. This is a
+ * comma-separated list of media.
+ * @exception DOMException
+ * SYNTAX_ERR: Raised if the specified string value has a syntax error
+ * and is unparsable.
+ * <br>NO_MODIFICATION_ALLOWED_ERR: Raised if this media list is
+ * readonly.
+ */
+ public void setMediaText(String mediaText)
+ throws DOMException;
+
+ /**
+ * The number of media in the list. The range of valid media is
+ * <code>0</code> to <code>length-1</code> inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Returns the <code>index</code>th in the list. If <code>index</code> is
+ * greater than or equal to the number of media in the list, this
+ * returns <code>null</code>.
+ * @param index Index into the collection.
+ * @return The medium at the <code>index</code>th position in the
+ * <code>MediaList</code>, or <code>null</code> if that is not a valid
+ * index.
+ */
+ public String item(int index);
+
+ /**
+ * Deletes the medium indicated by <code>oldMedium</code> from the list.
+ * @param oldMedium The medium to delete in the media list.
+ * @exception DOMException
+ * NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
+ * <br> NOT_FOUND_ERR: Raised if <code>oldMedium</code> is not in the
+ * list.
+ */
+ public void deleteMedium(String oldMedium)
+ throws DOMException;
+
+ /**
+ * Adds the medium <code>newMedium</code> to the end of the list. If the
+ * <code>newMedium</code> is already used, it is first removed.
+ * @param newMedium The new medium to add.
+ * @exception DOMException
+ * INVALID_CHARACTER_ERR: If the medium contains characters that are
+ * invalid in the underlying style language.
+ * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this list is readonly.
+ */
+ public void appendMedium(String newMedium)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java
new file mode 100644
index 000000000..828902817
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheet.java
@@ -0,0 +1,103 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.stylesheets;
+
+import org.w3c.dom.Node;
+
+/**
+ * The <code>StyleSheet</code> interface is the abstract base interface for
+ * any type of style sheet. It represents a single style sheet associated
+ * with a structured document. In HTML, the StyleSheet interface represents
+ * either an external style sheet, included via the HTML LINK element, or
+ * an inline STYLE element. In XML, this interface represents an external
+ * style sheet, included via a style sheet processing instruction.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface StyleSheet {
+ /**
+ * This specifies the style sheet language for this style sheet. The
+ * style sheet language is specified as a content type (e.g.
+ * "text/css"). The content type is often specified in the
+ * <code>ownerNode</code>. Also see the type attribute definition for
+ * the <code>LINK</code> element in HTML 4.0, and the type
+ * pseudo-attribute for the XML style sheet processing instruction.
+ */
+ public String getType();
+
+ /**
+ * <code>false</code> if the style sheet is applied to the document.
+ * <code>true</code> if it is not. Modifying this attribute may cause a
+ * new resolution of style for the document. A stylesheet only applies
+ * if both an appropriate medium definition is present and the disabled
+ * attribute is false. So, if the media doesn't apply to the current
+ * user agent, the <code>disabled</code> attribute is ignored.
+ */
+ public boolean getDisabled();
+ /**
+ * <code>false</code> if the style sheet is applied to the document.
+ * <code>true</code> if it is not. Modifying this attribute may cause a
+ * new resolution of style for the document. A stylesheet only applies
+ * if both an appropriate medium definition is present and the disabled
+ * attribute is false. So, if the media doesn't apply to the current
+ * user agent, the <code>disabled</code> attribute is ignored.
+ */
+ public void setDisabled(boolean disabled);
+
+ /**
+ * The node that associates this style sheet with the document. For HTML,
+ * this may be the corresponding <code>LINK</code> or <code>STYLE</code>
+ * element. For XML, it may be the linking processing instruction. For
+ * style sheets that are included by other style sheets, the value of
+ * this attribute is <code>null</code>.
+ */
+ public Node getOwnerNode();
+
+ /**
+ * For style sheet languages that support the concept of style sheet
+ * inclusion, this attribute represents the including style sheet, if
+ * one exists. If the style sheet is a top-level style sheet, or the
+ * style sheet language does not support inclusion, the value of this
+ * attribute is <code>null</code>.
+ */
+ public StyleSheet getParentStyleSheet();
+
+ /**
+ * If the style sheet is a linked style sheet, the value of its attribute
+ * is its location. For inline style sheets, the value of this attribute
+ * is <code>null</code>. See the href attribute definition for the
+ * <code>LINK</code> element in HTML 4.0, and the href pseudo-attribute
+ * for the XML style sheet processing instruction.
+ */
+ public String getHref();
+
+ /**
+ * The advisory title. The title is often specified in the
+ * <code>ownerNode</code>. See the title attribute definition for the
+ * <code>LINK</code> element in HTML 4.0, and the title pseudo-attribute
+ * for the XML style sheet processing instruction.
+ */
+ public String getTitle();
+
+ /**
+ * The intended destination media for style information. The media is
+ * often specified in the <code>ownerNode</code>. If no media has been
+ * specified, the <code>MediaList</code> will be empty. See the media
+ * attribute definition for the <code>LINK</code> element in HTML 4.0,
+ * and the media pseudo-attribute for the XML style sheet processing
+ * instruction . Modifying the media list may cause a change to the
+ * attribute <code>disabled</code>.
+ */
+ public MediaList getMedia();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java
new file mode 100644
index 000000000..6bb085fca
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/stylesheets/StyleSheetList.java
@@ -0,0 +1,42 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.stylesheets;
+
+/**
+ * The <code>StyleSheetList</code> interface provides the abstraction of an
+ * ordered collection of style sheets.
+ * <p> The items in the <code>StyleSheetList</code> are accessible via an
+ * integral index, starting from 0.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113'>Document Object Model (DOM) Level 2 Style Specification</a>.
+ * @since DOM Level 2
+ */
+public interface StyleSheetList {
+ /**
+ * The number of <code>StyleSheets</code> in the list. The range of valid
+ * child stylesheet indices is <code>0</code> to <code>length-1</code>
+ * inclusive.
+ */
+ public int getLength();
+
+ /**
+ * Used to retrieve a style sheet by ordinal index. If index is greater
+ * than or equal to the number of style sheets in the list, this returns
+ * <code>null</code>.
+ * @param index Index into the collection
+ * @return The style sheet at the <code>index</code> position in the
+ * <code>StyleSheetList</code>, or <code>null</code> if that is not a
+ * valid index.
+ */
+ public StyleSheet item(int index);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java
new file mode 100644
index 000000000..e68d656f2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/DocumentTraversal.java
@@ -0,0 +1,93 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.traversal;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * <code>DocumentTraversal</code> contains methods that create
+ * <code>NodeIterators</code> and <code>TreeWalkers</code> to traverse a
+ * node and its children in document order (depth first, pre-order
+ * traversal, which is equivalent to the order in which the start tags occur
+ * in the text representation of the document). In DOMs which support the
+ * Traversal feature, <code>DocumentTraversal</code> will be implemented by
+ * the same objects that implement the Document interface.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentTraversal {
+ /**
+ * Create a new <code>NodeIterator</code> over the subtree rooted at the
+ * specified node.
+ * @param root The node which will be iterated together with its
+ * children. The <code>NodeIterator</code> is initially positioned
+ * just before this node. The <code>whatToShow</code> flags and the
+ * filter, if any, are not considered when setting this position. The
+ * root must not be <code>null</code>.
+ * @param whatToShow This flag specifies which node types may appear in
+ * the logical view of the tree presented by the
+ * <code>NodeIterator</code>. See the description of
+ * <code>NodeFilter</code> for the set of possible <code>SHOW_</code>
+ * values.These flags can be combined using <code>OR</code>.
+ * @param filter The <code>NodeFilter</code> to be used with this
+ * <code>NodeIterator</code>, or <code>null</code> to indicate no
+ * filter.
+ * @param entityReferenceExpansion The value of this flag determines
+ * whether entity reference nodes are expanded.
+ * @return The newly created <code>NodeIterator</code>.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is
+ * <code>null</code>.
+ */
+ public NodeIterator createNodeIterator(Node root,
+ int whatToShow,
+ NodeFilter filter,
+ boolean entityReferenceExpansion)
+ throws DOMException;
+
+ /**
+ * Create a new <code>TreeWalker</code> over the subtree rooted at the
+ * specified node.
+ * @param root The node which will serve as the <code>root</code> for the
+ * <code>TreeWalker</code>. The <code>whatToShow</code> flags and the
+ * <code>NodeFilter</code> are not considered when setting this value;
+ * any node type will be accepted as the <code>root</code>. The
+ * <code>currentNode</code> of the <code>TreeWalker</code> is
+ * initialized to this node, whether or not it is visible. The
+ * <code>root</code> functions as a stopping point for traversal
+ * methods that look upward in the document structure, such as
+ * <code>parentNode</code> and nextNode. The <code>root</code> must
+ * not be <code>null</code>.
+ * @param whatToShow This flag specifies which node types may appear in
+ * the logical view of the tree presented by the
+ * <code>TreeWalker</code>. See the description of
+ * <code>NodeFilter</code> for the set of possible <code>SHOW_</code>
+ * values.These flags can be combined using <code>OR</code>.
+ * @param filter The <code>NodeFilter</code> to be used with this
+ * <code>TreeWalker</code>, or <code>null</code> to indicate no filter.
+ * @param entityReferenceExpansion If this flag is false, the contents of
+ * <code>EntityReference</code> nodes are not presented in the logical
+ * view.
+ * @return The newly created <code>TreeWalker</code>.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if the specified <code>root</code> is
+ * <code>null</code>.
+ */
+ public TreeWalker createTreeWalker(Node root,
+ int whatToShow,
+ NodeFilter filter,
+ boolean entityReferenceExpansion)
+ throws DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java
new file mode 100644
index 000000000..554775078
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeFilter.java
@@ -0,0 +1,144 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.traversal;
+
+import org.w3c.dom.Node;
+
+/**
+ * Filters are objects that know how to "filter out" nodes. If a
+ * <code>NodeIterator</code> or <code>TreeWalker</code> is given a
+ * <code>NodeFilter</code>, it applies the filter before it returns the next
+ * node. If the filter says to accept the node, the traversal logic returns
+ * it; otherwise, traversal looks for the next node and pretends that the
+ * node that was rejected was not there.
+ * <p>The DOM does not provide any filters. <code>NodeFilter</code> is just an
+ * interface that users can implement to provide their own filters.
+ * <p><code>NodeFilters</code> do not need to know how to traverse from node
+ * to node, nor do they need to know anything about the data structure that
+ * is being traversed. This makes it very easy to write filters, since the
+ * only thing they have to know how to do is evaluate a single node. One
+ * filter may be used with a number of different kinds of traversals,
+ * encouraging code reuse.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+public interface NodeFilter {
+ // Constants returned by acceptNode
+ /**
+ * Accept the node. Navigation methods defined for
+ * <code>NodeIterator</code> or <code>TreeWalker</code> will return this
+ * node.
+ */
+ public static final short FILTER_ACCEPT = 1;
+ /**
+ * Reject the node. Navigation methods defined for
+ * <code>NodeIterator</code> or <code>TreeWalker</code> will not return
+ * this node. For <code>TreeWalker</code>, the children of this node
+ * will also be rejected. <code>NodeIterators</code> treat this as a
+ * synonym for <code>FILTER_SKIP</code>.
+ */
+ public static final short FILTER_REJECT = 2;
+ /**
+ * Skip this single node. Navigation methods defined for
+ * <code>NodeIterator</code> or <code>TreeWalker</code> will not return
+ * this node. For both <code>NodeIterator</code> and
+ * <code>TreeWalker</code>, the children of this node will still be
+ * considered.
+ */
+ public static final short FILTER_SKIP = 3;
+
+ // Constants for whatToShow
+ /**
+ * Show all <code>Nodes</code>.
+ */
+ public static final int SHOW_ALL = 0xFFFFFFFF;
+ /**
+ * Show <code>Element</code> nodes.
+ */
+ public static final int SHOW_ELEMENT = 0x00000001;
+ /**
+ * Show <code>Attr</code> nodes. This is meaningful only when creating an
+ * <code>NodeIterator</code> or <code>TreeWalker</code> with an
+ * attribute node as its <code>root</code>; in this case, it means that
+ * the attribute node will appear in the first position of the iteration
+ * or traversal. Since attributes are never children of other nodes,
+ * they do not appear when traversing over the document tree.
+ */
+ public static final int SHOW_ATTRIBUTE = 0x00000002;
+ /**
+ * Show <code>Text</code> nodes.
+ */
+ public static final int SHOW_TEXT = 0x00000004;
+ /**
+ * Show <code>CDATASection</code> nodes.
+ */
+ public static final int SHOW_CDATA_SECTION = 0x00000008;
+ /**
+ * Show <code>EntityReference</code> nodes.
+ */
+ public static final int SHOW_ENTITY_REFERENCE = 0x00000010;
+ /**
+ * Show <code>Entity</code> nodes. This is meaningful only when creating
+ * an <code>NodeIterator</code> or <code>TreeWalker</code> with an
+ * <code>Entity</code> node as its <code>root</code>; in this case, it
+ * means that the <code>Entity</code> node will appear in the first
+ * position of the traversal. Since entities are not part of the
+ * document tree, they do not appear when traversing over the document
+ * tree.
+ */
+ public static final int SHOW_ENTITY = 0x00000020;
+ /**
+ * Show <code>ProcessingInstruction</code> nodes.
+ */
+ public static final int SHOW_PROCESSING_INSTRUCTION = 0x00000040;
+ /**
+ * Show <code>Comment</code> nodes.
+ */
+ public static final int SHOW_COMMENT = 0x00000080;
+ /**
+ * Show <code>Document</code> nodes.
+ */
+ public static final int SHOW_DOCUMENT = 0x00000100;
+ /**
+ * Show <code>DocumentType</code> nodes.
+ */
+ public static final int SHOW_DOCUMENT_TYPE = 0x00000200;
+ /**
+ * Show <code>DocumentFragment</code> nodes.
+ */
+ public static final int SHOW_DOCUMENT_FRAGMENT = 0x00000400;
+ /**
+ * Show <code>Notation</code> nodes. This is meaningful only when creating
+ * an <code>NodeIterator</code> or <code>TreeWalker</code> with a
+ * <code>Notation</code> node as its <code>root</code>; in this case, it
+ * means that the <code>Notation</code> node will appear in the first
+ * position of the traversal. Since notations are not part of the
+ * document tree, they do not appear when traversing over the document
+ * tree.
+ */
+ public static final int SHOW_NOTATION = 0x00000800;
+
+ /**
+ * Test whether a specified node is visible in the logical view of a
+ * <code>TreeWalker</code> or <code>NodeIterator</code>. This function
+ * will be called by the implementation of <code>TreeWalker</code> and
+ * <code>NodeIterator</code>; it is not normally called directly from
+ * user code. (Though you could do so if you wanted to use the same
+ * filter to guide your own application logic.)
+ * @param n The node to check to see if it passes the filter or not.
+ * @return A constant to determine whether the node is accepted,
+ * rejected, or skipped, as defined above.
+ */
+ public short acceptNode(Node n);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java
new file mode 100644
index 000000000..40deef2f3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/NodeIterator.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.traversal;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * <code>NodeIterators</code> are used to step through a set of nodes, e.g.
+ * the set of nodes in a <code>NodeList</code>, the document subtree
+ * governed by a particular <code>Node</code>, the results of a query, or
+ * any other set of nodes. The set of nodes to be iterated is determined by
+ * the implementation of the <code>NodeIterator</code>. DOM Level 2
+ * specifies a single <code>NodeIterator</code> implementation for
+ * document-order traversal of a document subtree. Instances of these
+ * <code>NodeIterators</code> are created by calling
+ * <code>DocumentTraversal</code><code>.createNodeIterator()</code>.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+public interface NodeIterator {
+ /**
+ * The root node of the <code>NodeIterator</code>, as specified when it
+ * was created.
+ */
+ public Node getRoot();
+
+ /**
+ * This attribute determines which node types are presented via the
+ * <code>NodeIterator</code>. The available set of constants is defined
+ * in the <code>NodeFilter</code> interface. Nodes not accepted by
+ * <code>whatToShow</code> will be skipped, but their children may still
+ * be considered. Note that this skip takes precedence over the filter,
+ * if any.
+ */
+ public int getWhatToShow();
+
+ /**
+ * The <code>NodeFilter</code> used to screen nodes.
+ */
+ public NodeFilter getFilter();
+
+ /**
+ * The value of this flag determines whether the children of entity
+ * reference nodes are visible to the <code>NodeIterator</code>. If
+ * false, these children and their descendants will be rejected. Note
+ * that this rejection takes precedence over <code>whatToShow</code> and
+ * the filter. Also note that this is currently the only situation where
+ * <code>NodeIterators</code> may reject a complete subtree rather than
+ * skipping individual nodes.
+ * <br>
+ * <br> To produce a view of the document that has entity references
+ * expanded and does not expose the entity reference node itself, use
+ * the <code>whatToShow</code> flags to hide the entity reference node
+ * and set <code>expandEntityReferences</code> to true when creating the
+ * <code>NodeIterator</code>. To produce a view of the document that has
+ * entity reference nodes but no entity expansion, use the
+ * <code>whatToShow</code> flags to show the entity reference node and
+ * set <code>expandEntityReferences</code> to false.
+ */
+ public boolean getExpandEntityReferences();
+
+ /**
+ * Returns the next node in the set and advances the position of the
+ * <code>NodeIterator</code> in the set. After a
+ * <code>NodeIterator</code> is created, the first call to
+ * <code>nextNode()</code> returns the first node in the set.
+ * @return The next <code>Node</code> in the set being iterated over, or
+ * <code>null</code> if there are no more members in that set.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if this method is called after the
+ * <code>detach</code> method was invoked.
+ */
+ public Node nextNode()
+ throws DOMException;
+
+ /**
+ * Returns the previous node in the set and moves the position of the
+ * <code>NodeIterator</code> backwards in the set.
+ * @return The previous <code>Node</code> in the set being iterated over,
+ * or <code>null</code> if there are no more members in that set.
+ * @exception DOMException
+ * INVALID_STATE_ERR: Raised if this method is called after the
+ * <code>detach</code> method was invoked.
+ */
+ public Node previousNode()
+ throws DOMException;
+
+ /**
+ * Detaches the <code>NodeIterator</code> from the set which it iterated
+ * over, releasing any computational resources and placing the
+ * <code>NodeIterator</code> in the INVALID state. After
+ * <code>detach</code> has been invoked, calls to <code>nextNode</code>
+ * or <code>previousNode</code> will raise the exception
+ * INVALID_STATE_ERR.
+ */
+ public void detach();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java
new file mode 100644
index 000000000..74527f30d
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/traversal/TreeWalker.java
@@ -0,0 +1,179 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.traversal;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * <code>TreeWalker</code> objects are used to navigate a document tree or
+ * subtree using the view of the document defined by their
+ * <code>whatToShow</code> flags and filter (if any). Any function which
+ * performs navigation using a <code>TreeWalker</code> will automatically
+ * support any view defined by a <code>TreeWalker</code>.
+ * <p>Omitting nodes from the logical view of a subtree can result in a
+ * structure that is substantially different from the same subtree in the
+ * complete, unfiltered document. Nodes that are siblings in the
+ * <code>TreeWalker</code> view may be children of different, widely
+ * separated nodes in the original view. For instance, consider a
+ * <code>NodeFilter</code> that skips all nodes except for Text nodes and
+ * the root node of a document. In the logical view that results, all text
+ * nodes will be siblings and appear as direct children of the root node, no
+ * matter how deeply nested the structure of the original document.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113'>Document Object Model (DOM) Level 2 Traversal and Range Specification</a>.
+ * @since DOM Level 2
+ */
+public interface TreeWalker {
+ /**
+ * The <code>root</code> node of the <code>TreeWalker</code>, as specified
+ * when it was created.
+ */
+ public Node getRoot();
+
+ /**
+ * This attribute determines which node types are presented via the
+ * <code>TreeWalker</code>. The available set of constants is defined in
+ * the <code>NodeFilter</code> interface. Nodes not accepted by
+ * <code>whatToShow</code> will be skipped, but their children may still
+ * be considered. Note that this skip takes precedence over the filter,
+ * if any.
+ */
+ public int getWhatToShow();
+
+ /**
+ * The filter used to screen nodes.
+ */
+ public NodeFilter getFilter();
+
+ /**
+ * The value of this flag determines whether the children of entity
+ * reference nodes are visible to the <code>TreeWalker</code>. If false,
+ * these children and their descendants will be rejected. Note that
+ * this rejection takes precedence over <code>whatToShow</code> and the
+ * filter, if any.
+ * <br> To produce a view of the document that has entity references
+ * expanded and does not expose the entity reference node itself, use
+ * the <code>whatToShow</code> flags to hide the entity reference node
+ * and set <code>expandEntityReferences</code> to true when creating the
+ * <code>TreeWalker</code>. To produce a view of the document that has
+ * entity reference nodes but no entity expansion, use the
+ * <code>whatToShow</code> flags to show the entity reference node and
+ * set <code>expandEntityReferences</code> to false.
+ */
+ public boolean getExpandEntityReferences();
+
+ /**
+ * The node at which the <code>TreeWalker</code> is currently positioned.
+ * <br>Alterations to the DOM tree may cause the current node to no longer
+ * be accepted by the <code>TreeWalker</code>'s associated filter.
+ * <code>currentNode</code> may also be explicitly set to any node,
+ * whether or not it is within the subtree specified by the
+ * <code>root</code> node or would be accepted by the filter and
+ * <code>whatToShow</code> flags. Further traversal occurs relative to
+ * <code>currentNode</code> even if it is not part of the current view,
+ * by applying the filters in the requested direction; if no traversal
+ * is possible, <code>currentNode</code> is not changed.
+ */
+ public Node getCurrentNode();
+ /**
+ * The node at which the <code>TreeWalker</code> is currently positioned.
+ * <br>Alterations to the DOM tree may cause the current node to no longer
+ * be accepted by the <code>TreeWalker</code>'s associated filter.
+ * <code>currentNode</code> may also be explicitly set to any node,
+ * whether or not it is within the subtree specified by the
+ * <code>root</code> node or would be accepted by the filter and
+ * <code>whatToShow</code> flags. Further traversal occurs relative to
+ * <code>currentNode</code> even if it is not part of the current view,
+ * by applying the filters in the requested direction; if no traversal
+ * is possible, <code>currentNode</code> is not changed.
+ * @exception DOMException
+ * NOT_SUPPORTED_ERR: Raised if an attempt is made to set
+ * <code>currentNode</code> to <code>null</code>.
+ */
+ public void setCurrentNode(Node currentNode)
+ throws DOMException;
+
+ /**
+ * Moves to and returns the closest visible ancestor node of the current
+ * node. If the search for <code>parentNode</code> attempts to step
+ * upward from the <code>TreeWalker</code>'s <code>root</code> node, or
+ * if it fails to find a visible ancestor node, this method retains the
+ * current position and returns <code>null</code>.
+ * @return The new parent node, or <code>null</code> if the current node
+ * has no parent in the <code>TreeWalker</code>'s logical view.
+ */
+ public Node parentNode();
+
+ /**
+ * Moves the <code>TreeWalker</code> to the first visible child of the
+ * current node, and returns the new node. If the current node has no
+ * visible children, returns <code>null</code>, and retains the current
+ * node.
+ * @return The new node, or <code>null</code> if the current node has no
+ * visible children in the <code>TreeWalker</code>'s logical view.
+ */
+ public Node firstChild();
+
+ /**
+ * Moves the <code>TreeWalker</code> to the last visible child of the
+ * current node, and returns the new node. If the current node has no
+ * visible children, returns <code>null</code>, and retains the current
+ * node.
+ * @return The new node, or <code>null</code> if the current node has no
+ * children in the <code>TreeWalker</code>'s logical view.
+ */
+ public Node lastChild();
+
+ /**
+ * Moves the <code>TreeWalker</code> to the previous sibling of the
+ * current node, and returns the new node. If the current node has no
+ * visible previous sibling, returns <code>null</code>, and retains the
+ * current node.
+ * @return The new node, or <code>null</code> if the current node has no
+ * previous sibling. in the <code>TreeWalker</code>'s logical view.
+ */
+ public Node previousSibling();
+
+ /**
+ * Moves the <code>TreeWalker</code> to the next sibling of the current
+ * node, and returns the new node. If the current node has no visible
+ * next sibling, returns <code>null</code>, and retains the current node.
+ * @return The new node, or <code>null</code> if the current node has no
+ * next sibling. in the <code>TreeWalker</code>'s logical view.
+ */
+ public Node nextSibling();
+
+ /**
+ * Moves the <code>TreeWalker</code> to the previous visible node in
+ * document order relative to the current node, and returns the new
+ * node. If the current node has no previous node, or if the search for
+ * <code>previousNode</code> attempts to step upward from the
+ * <code>TreeWalker</code>'s <code>root</code> node, returns
+ * <code>null</code>, and retains the current node.
+ * @return The new node, or <code>null</code> if the current node has no
+ * previous node in the <code>TreeWalker</code>'s logical view.
+ */
+ public Node previousNode();
+
+ /**
+ * Moves the <code>TreeWalker</code> to the next visible node in document
+ * order relative to the current node, and returns the new node. If the
+ * current node has no next node, or if the search for nextNode attempts
+ * to step upward from the <code>TreeWalker</code>'s <code>root</code>
+ * node, returns <code>null</code>, and retains the current node.
+ * @return The new node, or <code>null</code> if the current node has no
+ * next node in the <code>TreeWalker</code>'s logical view.
+ */
+ public Node nextNode();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java
new file mode 100644
index 000000000..b024cc780
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/views/AbstractView.java
@@ -0,0 +1,27 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.views;
+
+/**
+ * A base interface that all views shall derive from.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>Document Object Model (DOM) Level 2 Views Specification</a>.
+ * @since DOM Level 2
+ */
+public interface AbstractView {
+ /**
+ * The source <code>DocumentView</code> of which this is an
+ * <code>AbstractView</code>.
+ */
+ public DocumentView getDocument();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java
new file mode 100644
index 000000000..37dfbe1a3
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/views/DocumentView.java
@@ -0,0 +1,30 @@
+/*
+ * Copyright (c) 2000 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.
+ */
+
+package org.w3c.dom.views;
+
+/**
+ * The <code>DocumentView</code> interface is implemented by
+ * <code>Document</code> objects in DOM implementations supporting DOM
+ * Views. It provides an attribute to retrieve the default view of a
+ * document.
+ * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113'>Document Object Model (DOM) Level 2 Views Specification</a>.
+ * @since DOM Level 2
+ */
+public interface DocumentView {
+ /**
+ * The default <code>AbstractView</code> for this <code>Document</code>,
+ * or <code>null</code> if none available.
+ */
+ public AbstractView getDefaultView();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java
new file mode 100644
index 000000000..848c67329
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathEvaluator.java
@@ -0,0 +1,134 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * The evaluation of XPath expressions is provided by
+ * <code>XPathEvaluator</code>. In a DOM implementation which supports the
+ * XPath 3.0 feature, as described above, the <code>XPathEvaluator</code>
+ * interface will be implemented on the same object which implements the
+ * <code>Document</code> interface permitting it to be obtained by the usual
+ * binding-specific method such as casting or by using the DOM Level 3
+ * getInterface method. In this case the implementation obtained from the
+ * Document supports the XPath DOM module and is compatible with the XPath
+ * 1.0 specification.
+ * <p>Evaluation of expressions with specialized extension functions or
+ * variables may not work in all implementations and is, therefore, not
+ * portable. <code>XPathEvaluator</code> implementations may be available
+ * from other sources that could provide specific support for specialized
+ * extension functions or variables as would be defined by other
+ * specifications.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathEvaluator {
+ /**
+ * Creates a parsed XPath expression with resolved namespaces. This is
+ * useful when an expression will be reused in an application since it
+ * makes it possible to compile the expression string into a more
+ * efficient internal form and preresolve all namespace prefixes which
+ * occur within the expression.
+ * @param expression The XPath expression string to be parsed.
+ * @param resolver The <code>resolver</code> permits translation of all
+ * prefixes, including the <code>xml</code> namespace prefix, within
+ * the XPath expression into appropriate namespace URIs. If this is
+ * specified as <code>null</code>, any namespace prefix within the
+ * expression will result in <code>DOMException</code> being thrown
+ * with the code <code>NAMESPACE_ERR</code>.
+ * @return The compiled form of the XPath expression.
+ * @exception XPathException
+ * INVALID_EXPRESSION_ERR: Raised if the expression is not legal
+ * according to the rules of the <code>XPathEvaluator</code>.
+ * @exception DOMException
+ * NAMESPACE_ERR: Raised if the expression contains namespace prefixes
+ * which cannot be resolved by the specified
+ * <code>XPathNSResolver</code>.
+ */
+ public XPathExpression createExpression(String expression,
+ XPathNSResolver resolver)
+ throws XPathException, DOMException;
+
+ /**
+ * Adapts any DOM node to resolve namespaces so that an XPath expression
+ * can be easily evaluated relative to the context of the node where it
+ * appeared within the document. This adapter works like the DOM Level 3
+ * method <code>lookupNamespaceURI</code> on nodes in resolving the
+ * namespaceURI from a given prefix using the current information
+ * available in the node's hierarchy at the time lookupNamespaceURI is
+ * called. also correctly resolving the implicit xml prefix.
+ * @param nodeResolver The node to be used as a context for namespace
+ * resolution.
+ * @return <code>XPathNSResolver</code> which resolves namespaces with
+ * respect to the definitions in scope for a specified node.
+ */
+ public XPathNSResolver createNSResolver(Node nodeResolver);
+
+ /**
+ * Evaluates an XPath expression string and returns a result of the
+ * specified type if possible.
+ * @param expression The XPath expression string to be parsed and
+ * evaluated.
+ * @param contextNode The <code>context</code> is context node for the
+ * evaluation of this XPath expression. If the XPathEvaluator was
+ * obtained by casting the <code>Document</code> then this must be
+ * owned by the same document and must be a <code>Document</code>,
+ * <code>Element</code>, <code>Attribute</code>, <code>Text</code>,
+ * <code>CDATASection</code>, <code>Comment</code>,
+ * <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
+ * node. If the context node is a <code>Text</code> or a
+ * <code>CDATASection</code>, then the context is interpreted as the
+ * whole logical text node as seen by XPath, unless the node is empty
+ * in which case it may not serve as the XPath context.
+ * @param resolver The <code>resolver</code> permits translation of all
+ * prefixes, including the <code>xml</code> namespace prefix, within
+ * the XPath expression into appropriate namespace URIs. If this is
+ * specified as <code>null</code>, any namespace prefix within the
+ * expression will result in <code>DOMException</code> being thrown
+ * with the code <code>NAMESPACE_ERR</code>.
+ * @param type If a specific <code>type</code> is specified, then the
+ * result will be returned as the corresponding type.For XPath 1.0
+ * results, this must be one of the codes of the
+ * <code>XPathResult</code> interface.
+ * @param result The <code>result</code> specifies a specific result
+ * object which may be reused and returned by this method. If this is
+ * specified as <code>null</code>or the implementation does not reuse
+ * the specified result, a new result object will be constructed and
+ * returned.For XPath 1.0 results, this object will be of type
+ * <code>XPathResult</code>.
+ * @return The result of the evaluation of the XPath expression.For XPath
+ * 1.0 results, this object will be of type <code>XPathResult</code>.
+ * @exception XPathException
+ * INVALID_EXPRESSION_ERR: Raised if the expression is not legal
+ * according to the rules of the <code>XPathEvaluator</code>i
+ * <br>TYPE_ERR: Raised if the result cannot be converted to return the
+ * specified type.
+ * @exception DOMException
+ * NAMESPACE_ERR: Raised if the expression contains namespace prefixes
+ * which cannot be resolved by the specified
+ * <code>XPathNSResolver</code>.
+ * <br>WRONG_DOCUMENT_ERR: The Node is from a document that is not
+ * supported by this <code>XPathEvaluator</code>.
+ * <br>NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
+ * context node or the request type is not permitted by this
+ * <code>XPathEvaluator</code>.
+ */
+ public Object evaluate(String expression,
+ Node contextNode,
+ XPathNSResolver resolver,
+ short type,
+ Object result)
+ throws XPathException, DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java
new file mode 100644
index 000000000..6b13cdf00
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathException.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+/**
+ * A new exception has been created for exceptions specific to these XPath
+ * interfaces.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public class XPathException extends RuntimeException {
+ public XPathException(short code, String message) {
+ super(message);
+ this.code = code;
+ }
+ public short code;
+ // XPathExceptionCode
+ /**
+ * If the expression has a syntax error or otherwise is not a legal
+ * expression according to the rules of the specific
+ * <code>XPathEvaluator</code> or contains specialized extension
+ * functions or variables not supported by this implementation.
+ */
+ public static final short INVALID_EXPRESSION_ERR = 51;
+ /**
+ * If the expression cannot be converted to return the specified type.
+ */
+ public static final short TYPE_ERR = 52;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java
new file mode 100644
index 000000000..ab5d28c43
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathExpression.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>XPathExpression</code> interface represents a parsed and resolved
+ * XPath expression.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathExpression {
+ /**
+ * Evaluates this XPath expression and returns a result.
+ * @param contextNode The <code>context</code> is context node for the
+ * evaluation of this XPath expression.If the XPathEvaluator was
+ * obtained by casting the <code>Document</code> then this must be
+ * owned by the same document and must be a <code>Document</code>,
+ * <code>Element</code>, <code>Attribute</code>, <code>Text</code>,
+ * <code>CDATASection</code>, <code>Comment</code>,
+ * <code>ProcessingInstruction</code>, or <code>XPathNamespace</code>
+ * node.If the context node is a <code>Text</code> or a
+ * <code>CDATASection</code>, then the context is interpreted as the
+ * whole logical text node as seen by XPath, unless the node is empty
+ * in which case it may not serve as the XPath context.
+ * @param type If a specific <code>type</code> is specified, then the
+ * result will be coerced to return the specified type relying on
+ * XPath conversions and fail if the desired coercion is not possible.
+ * This must be one of the type codes of <code>XPathResult</code>.
+ * @param result The <code>result</code> specifies a specific result
+ * object which may be reused and returned by this method. If this is
+ * specified as <code>null</code>or the implementation does not reuse
+ * the specified result, a new result object will be constructed and
+ * returned.For XPath 1.0 results, this object will be of type
+ * <code>XPathResult</code>.
+ * @return The result of the evaluation of the XPath expression.For XPath
+ * 1.0 results, this object will be of type <code>XPathResult</code>.
+ * @exception XPathException
+ * TYPE_ERR: Raised if the result cannot be converted to return the
+ * specified type.
+ * @exception DOMException
+ * WRONG_DOCUMENT_ERR: The Node is from a document that is not supported
+ * by the XPathEvaluator that created this <code>XPathExpression</code>
+ * .
+ * <br>NOT_SUPPORTED_ERR: The Node is not a type permitted as an XPath
+ * context node or the request type is not permitted by this
+ * <code>XPathExpression</code>.
+ */
+ public Object evaluate(Node contextNode,
+ short type,
+ Object result)
+ throws XPathException, DOMException;
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java
new file mode 100644
index 000000000..5ce068de9
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNSResolver.java
@@ -0,0 +1,34 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+/**
+ * The <code>XPathNSResolver</code> interface permit <code>prefix</code>
+ * strings in the expression to be properly bound to
+ * <code>namespaceURI</code> strings. <code>XPathEvaluator</code> can
+ * construct an implementation of <code>XPathNSResolver</code> from a node,
+ * or the interface may be implemented by any application.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathNSResolver {
+ /**
+ * Look up the namespace URI associated to the given namespace prefix. The
+ * XPath evaluator must never call this with a <code>null</code> or
+ * empty argument, because the result of doing this is undefined.
+ * @param prefix The prefix to look for.
+ * @return Returns the associated namespace URI or <code>null</code> if
+ * none is found.
+ */
+ public String lookupNamespaceURI(String prefix);
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java
new file mode 100644
index 000000000..d644051f2
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathNamespace.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
+
+/**
+ * The <code>XPathNamespace</code> interface is returned by
+ * <code>XPathResult</code> interfaces to represent the XPath namespace node
+ * type that DOM lacks. There is no public constructor for this node type.
+ * Attempts to place it into a hierarchy or a NamedNodeMap result in a
+ * <code>DOMException</code> with the code <code>HIERARCHY_REQUEST_ERR</code>
+ * . This node is read only, so methods or setting of attributes that would
+ * mutate the node result in a DOMException with the code
+ * <code>NO_MODIFICATION_ALLOWED_ERR</code>.
+ * <p>The core specification describes attributes of the <code>Node</code>
+ * interface that are different for different node types but does not
+ * describe <code>XPATH_NAMESPACE_NODE</code>, so here is a description of
+ * those attributes for this node type. All attributes of <code>Node</code>
+ * not described in this section have a <code>null</code> or
+ * <code>false</code> value.
+ * <p><code>ownerDocument</code> matches the <code>ownerDocument</code> of the
+ * <code>ownerElement</code> even if the element is later adopted.
+ * <p><code>nodeName</code> is always the string "<code>#namespace</code>".
+ * <p><code>prefix</code> is the prefix of the namespace represented by the
+ * node.
+ * <p><code>localName</code> is the same as <code>prefix</code>.
+ * <p><code>nodeType</code> is equal to <code>XPATH_NAMESPACE_NODE</code>.
+ * <p><code>namespaceURI</code> is the namespace URI of the namespace
+ * represented by the node.
+ * <p><code>nodeValue</code> is the same as <code>namespaceURI</code>.
+ * <p><code>adoptNode</code>, <code>cloneNode</code>, and
+ * <code>importNode</code> fail on this node type by raising a
+ * <code>DOMException</code> with the code <code>NOT_SUPPORTED_ERR</code>.
+ * <p ><b>Note:</b> In future versions of the XPath specification, the
+ * definition of a namespace node may be changed incomatibly, in which case
+ * incompatible changes to field values may be required to implement
+ * versions beyond XPath 1.0.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathNamespace extends Node {
+ // XPathNodeType
+ /**
+ * The node is a <code>Namespace</code>.
+ */
+ public static final short XPATH_NAMESPACE_NODE = 13;
+
+ /**
+ * The <code>Element</code> on which the namespace was in scope when it
+ * was requested. This does not change on a returned namespace node even
+ * if the document changes such that the namespace goes out of scope on
+ * that element and this node is no longer found there by XPath.
+ */
+ public Element getOwnerElement();
+
+}
diff --git a/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java
new file mode 100644
index 000000000..06fd29dac
--- /dev/null
+++ b/libjava/classpath/external/w3c_dom/org/w3c/dom/xpath/XPathResult.java
@@ -0,0 +1,214 @@
+/*
+ * Copyright (c) 2004 World Wide Web Consortium,
+ *
+ * (Massachusetts Institute of Technology, European Research Consortium for
+ * Informatics and Mathematics, Keio University). All Rights Reserved. This
+ * work is distributed under the W3C(r) Software License [1] 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.
+ *
+ * [1] http://www.w3.org/Consortium/Legal/2002/copyright-software-20021231
+ */
+
+package org.w3c.dom.xpath;
+
+import org.w3c.dom.Node;
+import org.w3c.dom.DOMException;
+
+/**
+ * The <code>XPathResult</code> interface represents the result of the
+ * evaluation of an XPath 1.0 expression within the context of a particular
+ * node. Since evaluation of an XPath expression can result in various
+ * result types, this object makes it possible to discover and manipulate
+ * the type and value of the result.
+ * <p>See also the <a href='http://www.w3.org/TR/2004/NOTE-DOM-Level-3-XPath-20040226'>Document Object Model (DOM) Level 3 XPath Specification</a>.
+ */
+public interface XPathResult {
+ // XPathResultType
+ /**
+ * This code does not represent a specific type. An evaluation of an XPath
+ * expression will never produce this type. If this type is requested,
+ * then the evaluation returns whatever type naturally results from
+ * evaluation of the expression.
+ * <br>If the natural result is a node set when <code>ANY_TYPE</code> was
+ * requested, then <code>UNORDERED_NODE_ITERATOR_TYPE</code> is always
+ * the resulting type. Any other representation of a node set must be
+ * explicitly requested.
+ */
+ public static final short ANY_TYPE = 0;
+ /**
+ * The result is a <a href='http://www.w3.org/TR/1999/REC-xpath-19991116#numbers'>number</a> as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>].
+ * Document modification does not invalidate the number, but may mean
+ * that reevaluation would not yield the same number.
+ */
+ public static final short NUMBER_TYPE = 1;
+ /**
+ * The result is a <a href='http://www.w3.org/TR/1999/REC-xpath-19991116#strings'>string</a> as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>].
+ * Document modification does not invalidate the string, but may mean
+ * that the string no longer corresponds to the current document.
+ */
+ public static final short STRING_TYPE = 2;
+ /**
+ * The result is a <a href='http://www.w3.org/TR/1999/REC-xpath-19991116#booleans'>boolean</a> as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>].
+ * Document modification does not invalidate the boolean, but may mean
+ * that reevaluation would not yield the same boolean.
+ */
+ public static final short BOOLEAN_TYPE = 3;
+ /**
+ * The result is a <a href='http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets'>node set</a> as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>] that
+ * will be accessed iteratively, which may not produce nodes in a
+ * particular order. Document modification invalidates the iteration.
+ * <br>This is the default type returned if the result is a node set and
+ * <code>ANY_TYPE</code> is requested.
+ */
+ public static final short UNORDERED_NODE_ITERATOR_TYPE = 4;
+ /**
+ * The result is a node set as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>] that
+ * will be accessed iteratively, which will produce document-ordered
+ * nodes. Document modification invalidates the iteration.
+ */
+ public static final short ORDERED_NODE_ITERATOR_TYPE = 5;
+ /**
+ * The result is a <a href='http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets'>node set</a> as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>] that
+ * will be accessed as a snapshot list of nodes that may not be in a
+ * particular order. Document modification does not invalidate the
+ * snapshot but may mean that reevaluation would not yield the same
+ * snapshot and nodes in the snapshot may have been altered, moved, or
+ * removed from the document.
+ */
+ public static final short UNORDERED_NODE_SNAPSHOT_TYPE = 6;
+ /**
+ * The result is a <a href='http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets'>node set</a> as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>] that
+ * will be accessed as a snapshot list of nodes that will be in original
+ * document order. Document modification does not invalidate the
+ * snapshot but may mean that reevaluation would not yield the same
+ * snapshot and nodes in the snapshot may have been altered, moved, or
+ * removed from the document.
+ */
+ public static final short ORDERED_NODE_SNAPSHOT_TYPE = 7;
+ /**
+ * The result is a <a href='http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets'>node set</a> as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>] and
+ * will be accessed as a single node, which may be <code>null</code>if
+ * the node set is empty. Document modification does not invalidate the
+ * node, but may mean that the result node no longer corresponds to the
+ * current document. This is a convenience that permits optimization
+ * since the implementation can stop once any node in the resulting set
+ * has been found.
+ * <br>If there is more than one node in the actual result, the single
+ * node returned might not be the first in document order.
+ */
+ public static final short ANY_UNORDERED_NODE_TYPE = 8;
+ /**
+ * The result is a <a href='http://www.w3.org/TR/1999/REC-xpath-19991116#node-sets'>node set</a> as defined by [<a href='http://www.w3.org/TR/1999/REC-xpath-19991116'>XPath 1.0</a>] and
+ * will be accessed as a single node, which may be <code>null</code> if
+ * the node set is empty. Document modification does not invalidate the
+ * node, but may mean that the result node no longer corresponds to the
+ * current document. This is a convenience that permits optimization
+ * since the implementation can stop once the first node in document
+ * order of the resulting set has been found.
+ * <br>If there are more than one node in the actual result, the single
+ * node returned will be the first in document order.
+ */
+ public static final short FIRST_ORDERED_NODE_TYPE = 9;
+
+ /**
+ * A code representing the type of this result, as defined by the type
+ * constants.
+ */
+ public short getResultType();
+
+ /**
+ * The value of this number result. If the native double type of the DOM
+ * binding does not directly support the exact IEEE 754 result of the
+ * XPath expression, then it is up to the definition of the binding to
+ * specify how the XPath number is converted to the native binding
+ * number.
+ * @exception XPathException
+ * TYPE_ERR: raised if <code>resultType</code> is not
+ * <code>NUMBER_TYPE</code>.
+ */
+ public double getNumberValue()
+ throws XPathException;
+
+ /**
+ * The value of this string result.
+ * @exception XPathException
+ * TYPE_ERR: raised if <code>resultType</code> is not
+ * <code>STRING_TYPE</code>.
+ */
+ public String getStringValue()
+ throws XPathException;
+
+ /**
+ * The value of this boolean result.
+ * @exception XPathException
+ * TYPE_ERR: raised if <code>resultType</code> is not
+ * <code>BOOLEAN_TYPE</code>.
+ */
+ public boolean getBooleanValue()
+ throws XPathException;
+
+ /**
+ * The value of this single node result, which may be <code>null</code>.
+ * @exception XPathException
+ * TYPE_ERR: raised if <code>resultType</code> is not
+ * <code>ANY_UNORDERED_NODE_TYPE</code> or
+ * <code>FIRST_ORDERED_NODE_TYPE</code>.
+ */
+ public Node getSingleNodeValue()
+ throws XPathException;
+
+ /**
+ * Signifies that the iterator has become invalid. True if
+ * <code>resultType</code> is <code>UNORDERED_NODE_ITERATOR_TYPE</code>
+ * or <code>ORDERED_NODE_ITERATOR_TYPE</code> and the document has been
+ * modified since this result was returned.
+ */
+ public boolean getInvalidIteratorState();
+
+ /**
+ * The number of nodes in the result snapshot. Valid values for
+ * snapshotItem indices are <code>0</code> to
+ * <code>snapshotLength-1</code> inclusive.
+ * @exception XPathException
+ * TYPE_ERR: raised if <code>resultType</code> is not
+ * <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
+ * <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.
+ */
+ public int getSnapshotLength()
+ throws XPathException;
+
+ /**
+ * Iterates and returns the next node from the node set or
+ * <code>null</code>if there are no more nodes.
+ * @return Returns the next node.
+ * @exception XPathException
+ * TYPE_ERR: raised if <code>resultType</code> is not
+ * <code>UNORDERED_NODE_ITERATOR_TYPE</code> or
+ * <code>ORDERED_NODE_ITERATOR_TYPE</code>.
+ * @exception DOMException
+ * INVALID_STATE_ERR: The document has been mutated since the result was
+ * returned.
+ */
+ public Node iterateNext()
+ throws XPathException, DOMException;
+
+ /**
+ * Returns the <code>index</code>th item in the snapshot collection. If
+ * <code>index</code> is greater than or equal to the number of nodes in
+ * the list, this method returns <code>null</code>. Unlike the iterator
+ * result, the snapshot does not become invalid, but may not correspond
+ * to the current document if it is mutated.
+ * @param index Index into the snapshot collection.
+ * @return The node at the <code>index</code>th position in the
+ * <code>NodeList</code>, or <code>null</code> if that is not a valid
+ * index.
+ * @exception XPathException
+ * TYPE_ERR: raised if <code>resultType</code> is not
+ * <code>UNORDERED_NODE_SNAPSHOT_TYPE</code> or
+ * <code>ORDERED_NODE_SNAPSHOT_TYPE</code>.
+ */
+ public Node snapshotItem(int index)
+ throws XPathException;
+
+}