diff options
author | Mark Wielaard <mark@klomp.org> | 2004-09-03 16:27:47 +0000 |
---|---|---|
committer | Mark Wielaard <mark@klomp.org> | 2004-09-03 16:27:47 +0000 |
commit | 7994bea9c5266a34516afd4787dd810584b5d74e (patch) | |
tree | 27d87b0c872b113b43af62fcab4bb4d0279c0df5 /external | |
parent | f7e9503830dd0094c0d5197d0a3f79bd2315458f (diff) | |
download | classpath-7994bea9c5266a34516afd4787dd810584b5d74e.tar.gz |
* Makefile.am (SUBDIRS): Remove external.
* configure.ac (AC_CONFIG_FILES): Remove external/Makefile.
* doc/api/Makefile.am: Don't refer to external directory
* lib/Makefile.am: Likewise.
* lib/gen-classlist.sh.in: Likewise.
* external/*: Removed.
* NEWS: Mention GNU JAXP.
Diffstat (limited to 'external')
280 files changed, 0 insertions, 54494 deletions
diff --git a/external/.cvsignore b/external/.cvsignore deleted file mode 100644 index 282522db0..000000000 --- a/external/.cvsignore +++ /dev/null @@ -1,2 +0,0 @@ -Makefile -Makefile.in diff --git a/external/Makefile.am b/external/Makefile.am deleted file mode 100644 index fcb086f56..000000000 --- a/external/Makefile.am +++ /dev/null @@ -1,288 +0,0 @@ -# automake generates Makefile.in from this file - -# When importing a new version of jaxp. -# You need to add the output of the following command to the -# jaxp_FILES in Makefile.am (remove the last \ from the last entry): -# $ for i in $(find jaxp -type f -print | grep -v CVS); do echo $i \\; done - -jaxp_FILES = \ -jaxp/source/gnu/xml/aelfred2/JAXPFactory.java \ -jaxp/source/gnu/xml/aelfred2/SAXDriver.java \ -jaxp/source/gnu/xml/aelfred2/XmlParser.java \ -jaxp/source/gnu/xml/aelfred2/XmlReader.java \ -jaxp/source/gnu/xml/aelfred2/package.html \ -jaxp/source/gnu/xml/dom/Consumer.java \ -jaxp/source/gnu/xml/dom/DomAttr.java \ -jaxp/source/gnu/xml/dom/DomCDATA.java \ -jaxp/source/gnu/xml/dom/DomCharacterData.java \ -jaxp/source/gnu/xml/dom/DomComment.java \ -jaxp/source/gnu/xml/dom/DomDoctype.java \ -jaxp/source/gnu/xml/dom/DomDocument.java \ -jaxp/source/gnu/xml/dom/DomElement.java \ -jaxp/source/gnu/xml/dom/DomEntity.java \ -jaxp/source/gnu/xml/dom/DomEntityReference.java \ -jaxp/source/gnu/xml/dom/DomEvent.java \ -jaxp/source/gnu/xml/dom/DomEx.java \ -jaxp/source/gnu/xml/dom/DomExtern.java \ -jaxp/source/gnu/xml/dom/DomFragment.java \ -jaxp/source/gnu/xml/dom/DomImpl.java \ -jaxp/source/gnu/xml/dom/DomIterator.java \ -jaxp/source/gnu/xml/dom/DomNamedNodeMap.java \ -jaxp/source/gnu/xml/dom/DomNode.java \ -jaxp/source/gnu/xml/dom/DomNotation.java \ -jaxp/source/gnu/xml/dom/DomNsNode.java \ -jaxp/source/gnu/xml/dom/DomPI.java \ -jaxp/source/gnu/xml/dom/DomText.java \ -jaxp/source/gnu/xml/dom/JAXPFactory.java \ -jaxp/source/gnu/xml/dom/package.html \ -jaxp/source/gnu/xml/pipeline/CallFilter.java \ -jaxp/source/gnu/xml/pipeline/DomConsumer.java \ -jaxp/source/gnu/xml/pipeline/EventConsumer.java \ -jaxp/source/gnu/xml/pipeline/EventFilter.java \ -jaxp/source/gnu/xml/pipeline/LinkFilter.java \ -jaxp/source/gnu/xml/pipeline/NSFilter.java \ -jaxp/source/gnu/xml/pipeline/PipelineFactory.java \ -jaxp/source/gnu/xml/pipeline/TeeConsumer.java \ -jaxp/source/gnu/xml/pipeline/TextConsumer.java \ -jaxp/source/gnu/xml/pipeline/ValidationConsumer.java \ -jaxp/source/gnu/xml/pipeline/WellFormednessFilter.java \ -jaxp/source/gnu/xml/pipeline/XIncludeFilter.java \ -jaxp/source/gnu/xml/pipeline/XsltFilter.java \ -jaxp/source/gnu/xml/pipeline/package.html \ -jaxp/source/gnu/xml/util/DoParse.java \ -jaxp/source/gnu/xml/util/DomParser.java \ -jaxp/source/gnu/xml/util/Resolver.java \ -jaxp/source/gnu/xml/util/SAXNullTransformerFactory.java \ -jaxp/source/gnu/xml/util/XCat.java \ -jaxp/source/gnu/xml/util/XHTMLWriter.java \ -jaxp/source/gnu/xml/util/XMLWriter.java \ -jaxp/source/gnu/xml/util/package.html \ -jaxp/source/javax/xml/parsers/ClassStuff.java \ -jaxp/source/javax/xml/parsers/DocumentBuilder.java \ -jaxp/source/javax/xml/parsers/DocumentBuilderFactory.java \ -jaxp/source/javax/xml/parsers/FactoryConfigurationError.java \ -jaxp/source/javax/xml/parsers/ParserConfigurationException.java \ -jaxp/source/javax/xml/parsers/SAXParser.java \ -jaxp/source/javax/xml/parsers/SAXParserFactory.java \ -jaxp/source/javax/xml/parsers/package.html \ -jaxp/source/javax/xml/transform/dom/DOMLocator.java \ -jaxp/source/javax/xml/transform/dom/DOMResult.java \ -jaxp/source/javax/xml/transform/dom/DOMSource.java \ -jaxp/source/javax/xml/transform/dom/package.html \ -jaxp/source/javax/xml/transform/sax/SAXResult.java \ -jaxp/source/javax/xml/transform/sax/SAXSource.java \ -jaxp/source/javax/xml/transform/sax/SAXTransformerFactory.java \ -jaxp/source/javax/xml/transform/sax/TemplatesHandler.java \ -jaxp/source/javax/xml/transform/sax/TransformerHandler.java \ -jaxp/source/javax/xml/transform/sax/package.html \ -jaxp/source/javax/xml/transform/ClassStuff.java \ -jaxp/source/javax/xml/transform/ErrorListener.java \ -jaxp/source/javax/xml/transform/OutputKeys.java \ -jaxp/source/javax/xml/transform/Result.java \ -jaxp/source/javax/xml/transform/Source.java \ -jaxp/source/javax/xml/transform/SourceLocator.java \ -jaxp/source/javax/xml/transform/Templates.java \ -jaxp/source/javax/xml/transform/Transformer.java \ -jaxp/source/javax/xml/transform/TransformerConfigurationException.java \ -jaxp/source/javax/xml/transform/TransformerException.java \ -jaxp/source/javax/xml/transform/TransformerFactory.java \ -jaxp/source/javax/xml/transform/TransformerFactoryConfigurationError.java \ -jaxp/source/javax/xml/transform/URIResolver.java \ -jaxp/source/javax/xml/transform/package.html \ -jaxp/source/javax/xml/transform/stream/StreamResult.java \ -jaxp/source/javax/xml/transform/stream/StreamSource.java \ -jaxp/source/javax/xml/transform/stream/package.html \ -jaxp/source/org/w3c/dom/css/CSS2Azimuth.java \ -jaxp/source/org/w3c/dom/css/CSS2BackgroundPosition.java \ -jaxp/source/org/w3c/dom/css/CSS2BorderSpacing.java \ -jaxp/source/org/w3c/dom/css/CSS2CounterIncrement.java \ -jaxp/source/org/w3c/dom/css/CSS2CounterReset.java \ -jaxp/source/org/w3c/dom/css/CSS2Cursor.java \ -jaxp/source/org/w3c/dom/css/CSS2FontFaceSrc.java \ -jaxp/source/org/w3c/dom/css/CSS2FontFaceWidths.java \ -jaxp/source/org/w3c/dom/css/CSS2PageSize.java \ -jaxp/source/org/w3c/dom/css/CSS2PlayDuring.java \ -jaxp/source/org/w3c/dom/css/CSS2Properties.java \ -jaxp/source/org/w3c/dom/css/CSS2TextShadow.java \ -jaxp/source/org/w3c/dom/css/CSSCharsetRule.java \ -jaxp/source/org/w3c/dom/css/CSSFontFaceRule.java \ -jaxp/source/org/w3c/dom/css/CSSImportRule.java \ -jaxp/source/org/w3c/dom/css/CSSMediaRule.java \ -jaxp/source/org/w3c/dom/css/CSSPageRule.java \ -jaxp/source/org/w3c/dom/css/CSSPrimitiveValue.java \ -jaxp/source/org/w3c/dom/css/CSSRule.java \ -jaxp/source/org/w3c/dom/css/CSSRuleList.java \ -jaxp/source/org/w3c/dom/css/CSSStyleDeclaration.java \ -jaxp/source/org/w3c/dom/css/CSSStyleRule.java \ -jaxp/source/org/w3c/dom/css/CSSStyleSheet.java \ -jaxp/source/org/w3c/dom/css/CSSUnknownRule.java \ -jaxp/source/org/w3c/dom/css/CSSValue.java \ -jaxp/source/org/w3c/dom/css/CSSValueList.java \ -jaxp/source/org/w3c/dom/css/Counter.java \ -jaxp/source/org/w3c/dom/css/DOMImplementationCSS.java \ -jaxp/source/org/w3c/dom/css/DocumentCSS.java \ -jaxp/source/org/w3c/dom/css/ElementCSSInlineStyle.java \ -jaxp/source/org/w3c/dom/css/RGBColor.java \ -jaxp/source/org/w3c/dom/css/Rect.java \ -jaxp/source/org/w3c/dom/css/ViewCSS.java \ -jaxp/source/org/w3c/dom/css/package.html \ -jaxp/source/org/w3c/dom/html/HTMLAnchorElement.java \ -jaxp/source/org/w3c/dom/html/HTMLAppletElement.java \ -jaxp/source/org/w3c/dom/html/HTMLAreaElement.java \ -jaxp/source/org/w3c/dom/html/HTMLBRElement.java \ -jaxp/source/org/w3c/dom/html/HTMLBaseElement.java \ -jaxp/source/org/w3c/dom/html/HTMLBaseFontElement.java \ -jaxp/source/org/w3c/dom/html/HTMLBodyElement.java \ -jaxp/source/org/w3c/dom/html/HTMLButtonElement.java \ -jaxp/source/org/w3c/dom/html/HTMLCollection.java \ -jaxp/source/org/w3c/dom/html/HTMLDListElement.java \ -jaxp/source/org/w3c/dom/html/HTMLDOMImplementation.java \ -jaxp/source/org/w3c/dom/html/HTMLDirectoryElement.java \ -jaxp/source/org/w3c/dom/html/HTMLDivElement.java \ -jaxp/source/org/w3c/dom/html/HTMLDocument.java \ -jaxp/source/org/w3c/dom/html/HTMLElement.java \ -jaxp/source/org/w3c/dom/html/HTMLFieldSetElement.java \ -jaxp/source/org/w3c/dom/html/HTMLFontElement.java \ -jaxp/source/org/w3c/dom/html/HTMLFormElement.java \ -jaxp/source/org/w3c/dom/html/HTMLFrameElement.java \ -jaxp/source/org/w3c/dom/html/HTMLFrameSetElement.java \ -jaxp/source/org/w3c/dom/html/HTMLHRElement.java \ -jaxp/source/org/w3c/dom/html/HTMLHeadElement.java \ -jaxp/source/org/w3c/dom/html/HTMLHeadingElement.java \ -jaxp/source/org/w3c/dom/html/HTMLHtmlElement.java \ -jaxp/source/org/w3c/dom/html/HTMLIFrameElement.java \ -jaxp/source/org/w3c/dom/html/HTMLImageElement.java \ -jaxp/source/org/w3c/dom/html/HTMLInputElement.java \ -jaxp/source/org/w3c/dom/html/HTMLIsIndexElement.java \ -jaxp/source/org/w3c/dom/html/HTMLLIElement.java \ -jaxp/source/org/w3c/dom/html/HTMLLabelElement.java \ -jaxp/source/org/w3c/dom/html/HTMLLegendElement.java \ -jaxp/source/org/w3c/dom/html/HTMLLinkElement.java \ -jaxp/source/org/w3c/dom/html/HTMLMapElement.java \ -jaxp/source/org/w3c/dom/html/HTMLMenuElement.java \ -jaxp/source/org/w3c/dom/html/HTMLMetaElement.java \ -jaxp/source/org/w3c/dom/html/HTMLModElement.java \ -jaxp/source/org/w3c/dom/html/HTMLOListElement.java \ -jaxp/source/org/w3c/dom/html/HTMLObjectElement.java \ -jaxp/source/org/w3c/dom/html/HTMLOptGroupElement.java \ -jaxp/source/org/w3c/dom/html/HTMLOptionElement.java \ -jaxp/source/org/w3c/dom/html/HTMLParagraphElement.java \ -jaxp/source/org/w3c/dom/html/HTMLParamElement.java \ -jaxp/source/org/w3c/dom/html/HTMLPreElement.java \ -jaxp/source/org/w3c/dom/html/HTMLQuoteElement.java \ -jaxp/source/org/w3c/dom/html/HTMLScriptElement.java \ -jaxp/source/org/w3c/dom/html/HTMLSelectElement.java \ -jaxp/source/org/w3c/dom/html/HTMLStyleElement.java \ -jaxp/source/org/w3c/dom/html/HTMLTableCaptionElement.java \ -jaxp/source/org/w3c/dom/html/HTMLTableCellElement.java \ -jaxp/source/org/w3c/dom/html/HTMLTableColElement.java \ -jaxp/source/org/w3c/dom/html/HTMLTableElement.java \ -jaxp/source/org/w3c/dom/html/HTMLTableRowElement.java \ -jaxp/source/org/w3c/dom/html/HTMLTableSectionElement.java \ -jaxp/source/org/w3c/dom/html/HTMLTextAreaElement.java \ -jaxp/source/org/w3c/dom/html/HTMLTitleElement.java \ -jaxp/source/org/w3c/dom/html/HTMLUListElement.java \ -jaxp/source/org/w3c/dom/html/package.html \ -jaxp/source/org/w3c/dom/Attr.java \ -jaxp/source/org/w3c/dom/CDATASection.java \ -jaxp/source/org/w3c/dom/CharacterData.java \ -jaxp/source/org/w3c/dom/Comment.java \ -jaxp/source/org/w3c/dom/DOMException.java \ -jaxp/source/org/w3c/dom/DOMImplementation.java \ -jaxp/source/org/w3c/dom/Document.java \ -jaxp/source/org/w3c/dom/DocumentFragment.java \ -jaxp/source/org/w3c/dom/DocumentType.java \ -jaxp/source/org/w3c/dom/Element.java \ -jaxp/source/org/w3c/dom/Entity.java \ -jaxp/source/org/w3c/dom/EntityReference.java \ -jaxp/source/org/w3c/dom/NamedNodeMap.java \ -jaxp/source/org/w3c/dom/Node.java \ -jaxp/source/org/w3c/dom/NodeList.java \ -jaxp/source/org/w3c/dom/Notation.java \ -jaxp/source/org/w3c/dom/ProcessingInstruction.java \ -jaxp/source/org/w3c/dom/Text.java \ -jaxp/source/org/w3c/dom/package.html \ -jaxp/source/org/w3c/dom/events/DocumentEvent.java \ -jaxp/source/org/w3c/dom/events/Event.java \ -jaxp/source/org/w3c/dom/events/EventException.java \ -jaxp/source/org/w3c/dom/events/EventListener.java \ -jaxp/source/org/w3c/dom/events/EventTarget.java \ -jaxp/source/org/w3c/dom/events/MouseEvent.java \ -jaxp/source/org/w3c/dom/events/MutationEvent.java \ -jaxp/source/org/w3c/dom/events/UIEvent.java \ -jaxp/source/org/w3c/dom/events/package.html \ -jaxp/source/org/w3c/dom/ranges/DocumentRange.java \ -jaxp/source/org/w3c/dom/ranges/Range.java \ -jaxp/source/org/w3c/dom/ranges/RangeException.java \ -jaxp/source/org/w3c/dom/ranges/package.html \ -jaxp/source/org/w3c/dom/stylesheets/DocumentStyle.java \ -jaxp/source/org/w3c/dom/stylesheets/LinkStyle.java \ -jaxp/source/org/w3c/dom/stylesheets/MediaList.java \ -jaxp/source/org/w3c/dom/stylesheets/StyleSheet.java \ -jaxp/source/org/w3c/dom/stylesheets/StyleSheetList.java \ -jaxp/source/org/w3c/dom/stylesheets/package.html \ -jaxp/source/org/w3c/dom/traversal/DocumentTraversal.java \ -jaxp/source/org/w3c/dom/traversal/NodeFilter.java \ -jaxp/source/org/w3c/dom/traversal/NodeIterator.java \ -jaxp/source/org/w3c/dom/traversal/TreeWalker.java \ -jaxp/source/org/w3c/dom/traversal/package.html \ -jaxp/source/org/w3c/dom/views/AbstractView.java \ -jaxp/source/org/w3c/dom/views/DocumentView.java \ -jaxp/source/org/w3c/dom/views/package.html \ -jaxp/source/org/xml/sax/ext/Attributes2.java \ -jaxp/source/org/xml/sax/ext/Attributes2Impl.java \ -jaxp/source/org/xml/sax/ext/DeclHandler.java \ -jaxp/source/org/xml/sax/ext/DefaultHandler2.java \ -jaxp/source/org/xml/sax/ext/EntityResolver2.java \ -jaxp/source/org/xml/sax/ext/LexicalHandler.java \ -jaxp/source/org/xml/sax/ext/Locator2.java \ -jaxp/source/org/xml/sax/ext/Locator2Impl.java \ -jaxp/source/org/xml/sax/ext/package.html \ -jaxp/source/org/xml/sax/AttributeList.java \ -jaxp/source/org/xml/sax/Attributes.java \ -jaxp/source/org/xml/sax/ContentHandler.java \ -jaxp/source/org/xml/sax/DTDHandler.java \ -jaxp/source/org/xml/sax/DocumentHandler.java \ -jaxp/source/org/xml/sax/EntityResolver.java \ -jaxp/source/org/xml/sax/ErrorHandler.java \ -jaxp/source/org/xml/sax/HandlerBase.java \ -jaxp/source/org/xml/sax/InputSource.java \ -jaxp/source/org/xml/sax/Locator.java \ -jaxp/source/org/xml/sax/Parser.java \ -jaxp/source/org/xml/sax/SAXException.java \ -jaxp/source/org/xml/sax/SAXNotRecognizedException.java \ -jaxp/source/org/xml/sax/SAXNotSupportedException.java \ -jaxp/source/org/xml/sax/SAXParseException.java \ -jaxp/source/org/xml/sax/XMLFilter.java \ -jaxp/source/org/xml/sax/XMLReader.java \ -jaxp/source/org/xml/sax/package.html \ -jaxp/source/org/xml/sax/helpers/AttributeListImpl.java \ -jaxp/source/org/xml/sax/helpers/AttributesImpl.java \ -jaxp/source/org/xml/sax/helpers/DefaultHandler.java \ -jaxp/source/org/xml/sax/helpers/LocatorImpl.java \ -jaxp/source/org/xml/sax/helpers/NamespaceSupport.java \ -jaxp/source/org/xml/sax/helpers/NewInstance.java \ -jaxp/source/org/xml/sax/helpers/ParserAdapter.java \ -jaxp/source/org/xml/sax/helpers/ParserFactory.java \ -jaxp/source/org/xml/sax/helpers/XMLFilterImpl.java \ -jaxp/source/org/xml/sax/helpers/XMLReaderAdapter.java \ -jaxp/source/org/xml/sax/helpers/XMLReaderFactory.java \ -jaxp/source/org/xml/sax/helpers/package.html \ -jaxp/.cvsignore \ -jaxp/AUTHORS \ -jaxp/COPYING \ -jaxp/COPYRIGHT.html \ -jaxp/HACKING \ -jaxp/LICENSE \ -jaxp/Makefile.aj \ -jaxp/Makefile.in \ -jaxp/README \ -jaxp/aclocal.m4 \ -jaxp/automakejar \ -jaxp/configure.in \ -jaxp/manifest.mf \ -jaxp/tests/dom/NodeType.java \ -jaxp/tests/dom/nodetype.xml - -DISTFILES = README Makefile.am Makefile.in ${jaxp_FILES} - diff --git a/external/README b/external/README deleted file mode 100644 index 5b8117f5c..000000000 --- a/external/README +++ /dev/null @@ -1,21 +0,0 @@ -This directory contains libraries maintained externally to GNU Classpath. - -jaxp - http://www.gnu.org/software/classpathx/jaxp/ - - GNU JAXP, a part of the GNU Classpath Extensions project - (hosted at savannah.gnu.org) is a free implementation of the - standard XML processing APIs for Java: - - * SAX Parser API - * DOM Level 2 generic XML data structures - * JAXP v1.1 interface implementation - - Import method: - - cvs -d :ext:cbj@subversions.gnu.org:/cvsroot/classpath \ - import -m "import classpathx jaxp 20030123" \ - classpath/external/jaxp Classpathx JAXP_CVS_20030123 - - You need to add the output of the following command to the - jaxp_FILES in Makefile.am (remove the last \ from the last entry): - $ for i in $(find jaxp -type f | grep -v CVS); do echo $i \\; done diff --git a/external/jaxp/.cvsignore b/external/jaxp/.cvsignore deleted file mode 100644 index ec2d0aa69..000000000 --- a/external/jaxp/.cvsignore +++ /dev/null @@ -1,11 +0,0 @@ -config.cache -config.log -config.status -configure -Log -gnujaxp.jar -Makefile -Diff -bin -apidoc -apidoc.zip diff --git a/external/jaxp/AUTHORS b/external/jaxp/AUTHORS deleted file mode 100644 index 739873a50..000000000 --- a/external/jaxp/AUTHORS +++ /dev/null @@ -1,9 +0,0 @@ -David Brownell: dbrownell@users.sourceforge.net - (AElfred v2, DOM implementation, SAX and XML utilities) - -David Megginson: david@megginson.com - (original author: SAX1, SAX2 interface files; AElfred v1) - -Andrew Selkirk: aselkirk@mailandnews.com - (original author: JAXP interface files) - diff --git a/external/jaxp/COPYING b/external/jaxp/COPYING deleted file mode 100644 index 60549be51..000000000 --- a/external/jaxp/COPYING +++ /dev/null @@ -1,340 +0,0 @@ - GNU GENERAL PUBLIC LICENSE - Version 2, June 1991 - - Copyright (C) 1989, 1991 Free Software Foundation, Inc. - 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - Everyone is permitted to copy and distribute verbatim copies - of this license document, but changing it is not allowed. - - Preamble - - The licenses for most software are designed to take away your -freedom to share and change it. By contrast, the GNU General Public -License is intended to guarantee your freedom to share and change free -software--to make sure the software is free for all its users. This -General Public License applies to most of the Free Software -Foundation's software and to any other program whose authors commit to -using it. (Some other Free Software Foundation software is covered by -the GNU Library General Public License instead.) You can apply it to -your programs, too. - - When we speak of free software, we are referring to freedom, not -price. Our General Public Licenses are designed to make sure that you -have the freedom to distribute copies of free software (and charge for -this service if you wish), that you receive source code or can get it -if you want it, that you can change the software or use pieces of it -in new free programs; and that you know you can do these things. - - To protect your rights, we need to make restrictions that forbid -anyone to deny you these rights or to ask you to surrender the rights. -These restrictions translate to certain responsibilities for you if you -distribute copies of the software, or if you modify it. - - For example, if you distribute copies of such a program, whether -gratis or for a fee, you must give the recipients all the rights that -you have. You must make sure that they, too, receive or can get the -source code. And you must show them these terms so they know their -rights. - - We protect your rights with two steps: (1) copyright the software, and -(2) offer you this license which gives you legal permission to copy, -distribute and/or modify the software. - - Also, for each author's protection and ours, we want to make certain -that everyone understands that there is no warranty for this free -software. If the software is modified by someone else and passed on, we -want its recipients to know that what they have is not the original, so -that any problems introduced by others will not reflect on the original -authors' reputations. - - Finally, any free program is threatened constantly by software -patents. We wish to avoid the danger that redistributors of a free -program will individually obtain patent licenses, in effect making the -program proprietary. To prevent this, we have made it clear that any -patent must be licensed for everyone's free use or not licensed at all. - - The precise terms and conditions for copying, distribution and -modification follow. - - GNU GENERAL PUBLIC LICENSE - TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION - - 0. This License applies to any program or other work which contains -a notice placed by the copyright holder saying it may be distributed -under the terms of this General Public License. The "Program", below, -refers to any such program or work, and a "work based on the Program" -means either the Program or any derivative work under copyright law: -that is to say, a work containing the Program or a portion of it, -either verbatim or with modifications and/or translated into another -language. (Hereinafter, translation is included without limitation in -the term "modification".) Each licensee is addressed as "you". - -Activities other than copying, distribution and modification are not -covered by this License; they are outside its scope. The act of -running the Program is not restricted, and the output from the Program -is covered only if its contents constitute a work based on the -Program (independent of having been made by running the Program). -Whether that is true depends on what the Program does. - - 1. You may copy and distribute verbatim copies of the Program's -source code as you receive it, in any medium, provided that you -conspicuously and appropriately publish on each copy an appropriate -copyright notice and disclaimer of warranty; keep intact all the -notices that refer to this License and to the absence of any warranty; -and give any other recipients of the Program a copy of this License -along with the Program. - -You may charge a fee for the physical act of transferring a copy, and -you may at your option offer warranty protection in exchange for a fee. - - 2. You may modify your copy or copies of the Program or any portion -of it, thus forming a work based on the Program, and copy and -distribute such modifications or work under the terms of Section 1 -above, provided that you also meet all of these conditions: - - a) You must cause the modified files to carry prominent notices - stating that you changed the files and the date of any change. - - b) You must cause any work that you distribute or publish, that in - whole or in part contains or is derived from the Program or any - part thereof, to be licensed as a whole at no charge to all third - parties under the terms of this License. - - c) If the modified program normally reads commands interactively - when run, you must cause it, when started running for such - interactive use in the most ordinary way, to print or display an - announcement including an appropriate copyright notice and a - notice that there is no warranty (or else, saying that you provide - a warranty) and that users may redistribute the program under - these conditions, and telling the user how to view a copy of this - License. (Exception: if the Program itself is interactive but - does not normally print such an announcement, your work based on - the Program is not required to print an announcement.) - -These requirements apply to the modified work as a whole. If -identifiable sections of that work are not derived from the Program, -and can be reasonably considered independent and separate works in -themselves, then this License, and its terms, do not apply to those -sections when you distribute them as separate works. But when you -distribute the same sections as part of a whole which is a work based -on the Program, the distribution of the whole must be on the terms of -this License, whose permissions for other licensees extend to the -entire whole, and thus to each and every part regardless of who wrote it. - -Thus, it is not the intent of this section to claim rights or contest -your rights to work written entirely by you; rather, the intent is to -exercise the right to control the distribution of derivative or -collective works based on the Program. - -In addition, mere aggregation of another work not based on the Program -with the Program (or with a work based on the Program) on a volume of -a storage or distribution medium does not bring the other work under -the scope of this License. - - 3. You may copy and distribute the Program (or a work based on it, -under Section 2) in object code or executable form under the terms of -Sections 1 and 2 above provided that you also do one of the following: - - a) Accompany it with the complete corresponding machine-readable - source code, which must be distributed under the terms of Sections - 1 and 2 above on a medium customarily used for software interchange; or, - - b) Accompany it with a written offer, valid for at least three - years, to give any third party, for a charge no more than your - cost of physically performing source distribution, a complete - machine-readable copy of the corresponding source code, to be - distributed under the terms of Sections 1 and 2 above on a medium - customarily used for software interchange; or, - - c) Accompany it with the information you received as to the offer - to distribute corresponding source code. (This alternative is - allowed only for noncommercial distribution and only if you - received the program in object code or executable form with such - an offer, in accord with Subsection b above.) - -The source code for a work means the preferred form of the work for -making modifications to it. For an executable work, complete source -code means all the source code for all modules it contains, plus any -associated interface definition files, plus the scripts used to -control compilation and installation of the executable. However, as a -special exception, the source code distributed need not include -anything that is normally distributed (in either source or binary -form) with the major components (compiler, kernel, and so on) of the -operating system on which the executable runs, unless that component -itself accompanies the executable. - -If distribution of executable or object code is made by offering -access to copy from a designated place, then offering equivalent -access to copy the source code from the same place counts as -distribution of the source code, even though third parties are not -compelled to copy the source along with the object code. - - 4. You may not copy, modify, sublicense, or distribute the Program -except as expressly provided under this License. Any attempt -otherwise to copy, modify, sublicense or distribute the Program is -void, and will automatically terminate your rights under this License. -However, parties who have received copies, or rights, from you under -this License will not have their licenses terminated so long as such -parties remain in full compliance. - - 5. You are not required to accept this License, since you have not -signed it. However, nothing else grants you permission to modify or -distribute the Program or its derivative works. These actions are -prohibited by law if you do not accept this License. Therefore, by -modifying or distributing the Program (or any work based on the -Program), you indicate your acceptance of this License to do so, and -all its terms and conditions for copying, distributing or modifying -the Program or works based on it. - - 6. Each time you redistribute the Program (or any work based on the -Program), the recipient automatically receives a license from the -original licensor to copy, distribute or modify the Program subject to -these terms and conditions. You may not impose any further -restrictions on the recipients' exercise of the rights granted herein. -You are not responsible for enforcing compliance by third parties to -this License. - - 7. If, as a consequence of a court judgment or allegation of patent -infringement or for any other reason (not limited to patent issues), -conditions are imposed on you (whether by court order, agreement or -otherwise) that contradict the conditions of this License, they do not -excuse you from the conditions of this License. If you cannot -distribute so as to satisfy simultaneously your obligations under this -License and any other pertinent obligations, then as a consequence you -may not distribute the Program at all. For example, if a patent -license would not permit royalty-free redistribution of the Program by -all those who receive copies directly or indirectly through you, then -the only way you could satisfy both it and this License would be to -refrain entirely from distribution of the Program. - -If any portion of this section is held invalid or unenforceable under -any particular circumstance, the balance of the section is intended to -apply and the section as a whole is intended to apply in other -circumstances. - -It is not the purpose of this section to induce you to infringe any -patents or other property right claims or to contest validity of any -such claims; this section has the sole purpose of protecting the -integrity of the free software distribution system, which is -implemented by public license practices. Many people have made -generous contributions to the wide range of software distributed -through that system in reliance on consistent application of that -system; it is up to the author/donor to decide if he or she is willing -to distribute software through any other system and a licensee cannot -impose that choice. - -This section is intended to make thoroughly clear what is believed to -be a consequence of the rest of this License. - - 8. If the distribution and/or use of the Program is restricted in -certain countries either by patents or by copyrighted interfaces, the -original copyright holder who places the Program under this License -may add an explicit geographical distribution limitation excluding -those countries, so that distribution is permitted only in or among -countries not thus excluded. In such case, this License incorporates -the limitation as if written in the body of this License. - - 9. The Free Software Foundation may publish revised and/or new versions -of the General Public License from time to time. Such new versions will -be similar in spirit to the present version, but may differ in detail to -address new problems or concerns. - -Each version is given a distinguishing version number. If the Program -specifies a version number of this License which applies to it and "any -later version", you have the option of following the terms and conditions -either of that version or of any later version published by the Free -Software Foundation. If the Program does not specify a version number of -this License, you may choose any version ever published by the Free Software -Foundation. - - 10. If you wish to incorporate parts of the Program into other free -programs whose distribution conditions are different, write to the author -to ask for permission. For software which is copyrighted by the Free -Software Foundation, write to the Free Software Foundation; we sometimes -make exceptions for this. Our decision will be guided by the two goals -of preserving the free status of all derivatives of our free software and -of promoting the sharing and reuse of software generally. - - NO WARRANTY - - 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY -FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN -OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES -PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED -OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF -MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS -TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE -PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, -REPAIR OR CORRECTION. - - 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING -WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR -REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, -INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING -OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED -TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY -YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER -PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE -POSSIBILITY OF SUCH DAMAGES. - - END OF TERMS AND CONDITIONS - - How to Apply These Terms to Your New Programs - - If you develop a new program, and you want it to be of the greatest -possible use to the public, the best way to achieve this is to make it -free software which everyone can redistribute and change under these terms. - - To do so, attach the following notices to the program. It is safest -to attach them to the start of each source file to most effectively -convey the exclusion of warranty; and each file should have at least -the "copyright" line and a pointer to where the full notice is found. - - <one line to give the program's name and a brief idea of what it does.> - Copyright (C) 19yy <name of author> - - This program is free software; you can redistribute it and/or modify - it under the terms of the GNU General Public License as published by - the Free Software Foundation; either version 2 of the License, or - (at your option) any later version. - - 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 the - GNU General Public License for more details. - - You should have received a copy of the GNU General Public License - along with this program; if not, write to the Free Software - Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - - -Also add information on how to contact you by electronic and paper mail. - -If the program is interactive, make it output a short notice like this -when it starts in an interactive mode: - - Gnomovision version 69, Copyright (C) 19yy name of author - Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. - This is free software, and you are welcome to redistribute it - under certain conditions; type `show c' for details. - -The hypothetical commands `show w' and `show c' should show the appropriate -parts of the General Public License. Of course, the commands you use may -be called something other than `show w' and `show c'; they could even be -mouse-clicks or menu items--whatever suits your program. - -You should also get your employer (if you work as a programmer) or your -school, if any, to sign a "copyright disclaimer" for the program, if -necessary. Here is a sample; alter the names: - - Yoyodyne, Inc., hereby disclaims all copyright interest in the program - `Gnomovision' (which makes passes at compilers) written by James Hacker. - - <signature of Ty Coon>, 1 April 1989 - Ty Coon, President of Vice - -This General Public License does not permit incorporating your program into -proprietary programs. If your program is a subroutine library, you may -consider it more useful to permit linking proprietary applications with the -library. If this is what you want to do, use the GNU Library General -Public License instead of this License. diff --git a/external/jaxp/COPYRIGHT.html b/external/jaxp/COPYRIGHT.html deleted file mode 100644 index 26049b750..000000000 --- a/external/jaxp/COPYRIGHT.html +++ /dev/null @@ -1,100 +0,0 @@ -<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" - "http://www.w3.org/TR/REC-html40/loose.dtd"> -<html> - <head> - <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> - <title>W3C IPR SOFTWARE NOTICE</title> - </head> - <body bgcolor="#FFFFFF" text="#000000"> - <h1> - W3C IPR SOFTWARE NOTICE - </h1> - <h3> - Copyright © 2000 <loc href="http://www.w3.org/">World Wide Web - Consortium</loc>, (<loc href="http://www.lcs.mit.edu/">Massachusetts - Institute of Technology</loc>, <loc href="http://www.inria.fr/">Institut - National de Recherche en Informatique et en Automatique</loc>, <loc - href="http://www.keio.ac.jp/">Keio University</loc>). All Rights - Reserved. - </h3> - <p> - The DOM bindings are published under the W3C Software Copyright Notice - and License. The software license requires "Notice of any changes or - modifications to the W3C files, including the date changes were made." - Consequently, modified versions of the DOM bindings must document that - they do not conform to the W3C standard; in the case of the IDL binding, - the pragma prefix can no longer be 'w3c.org'; in the case of the Java - binding, the package names can no longer be in the 'org.w3c' package. - </p> - <p> - <b>Note:</b> The original version of the W3C Software Copyright Notice - and License could be found at <a - href='http://www.w3.org/Consortium/Legal/copyright-software-19980720'>http://www.w3.org/Consortium/Legal/copyright-software-19980720</a> - </p> - <h3> - Copyright © 1994-2000 <a href="http://www.w3.org/">World Wide Web - Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts - Institute of Technology</a>, <a href="http://www.inria.fr/">Institut - National de Recherche en Informatique et en Automatique</a>, <a - href="http://www.keio.ac.jp/">Keio University</a>). All Rights - Reserved. http://www.w3.org/Consortium/Legal/ - </h3> - <p> - This W3C work (including software, documents, or other related items) is - being provided by the copyright holders under the following license. By - obtaining, using and/or copying this work, you (the licensee) agree that - you have read, understood, and will comply with the following terms and - conditions: - </p> - <p> - Permission to use, copy, and modify 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, that you make: - </p> - <ol> - <li> - The full text of this NOTICE in a location viewable to users of the - redistributed or derivative work. - </li> - <li> - Any pre-existing intellectual property disclaimers, notices, or terms - and conditions. If none exist, a short notice of the following form - (hypertext is preferred, text is permitted) should be used within the - body of any redistributed or derivative code: "Copyright © - [$date-of-software] <a href="http://www.w3.org/">World Wide Web - Consortium</a>, (<a href="http://www.lcs.mit.edu/">Massachusetts - Institute of Technology</a>, <a href="http://www.inria.fr/">Institut - National de Recherche en Informatique et en Automatique</a>, <a - href="http://www.keio.ac.jp/">Keio University</a>). All Rights - Reserved. http://www.w3.org/Consortium/Legal/" - </li> - <li> - Notice of any changes or modifications to the W3C files, including the - date changes were made. (We recommend you provide URIs to the location - from which the code is derived.) - </li> - </ol> - <p> - 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. - </p> - <p> - COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR - CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR - DOCUMENTATION. - </p> - <p> - 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. - </p> - </body> -</html> diff --git a/external/jaxp/HACKING b/external/jaxp/HACKING deleted file mode 100644 index 2c0253f3a..000000000 --- a/external/jaxp/HACKING +++ /dev/null @@ -1,30 +0,0 @@ -HACKING GNUJAXP ---------------- - - -Building GNUJAXP from the CVS module ------------------------------------- -To build GNUJAXP from the source in CVS you can simply run configure -to generate the Makefile. The Makefile knows how to rebuild itself -using the auto tools. - -To create new build files you should do: - - $ make mrproper - -Followed by the following: - - $ autoconf - $ ./automakejar Makefile.in - $ ./configure - $ make all - -You will need the GNU autotools for this. Autoconf versions 2.13 -upward are supported. - - - - -Nic Ferrier -ClasspathX Maintainer -nferrier@gnu.org diff --git a/external/jaxp/LICENSE b/external/jaxp/LICENSE deleted file mode 100644 index 2c19112cf..000000000 --- a/external/jaxp/LICENSE +++ /dev/null @@ -1,25 +0,0 @@ -The software in this package is distributed under the GNU General Public -License (with "Library Exception" described below), with the exceptions -of the DOM interface sources (which are subject instead to the W3C license) -and the SAX2 r2pre2 files (which are in the public domain). - -A copy of GNU General Public License (GPL) is included in this distribution, -in the file COPYING. If you do not have the source code, it is available at: - - http://www.gnu.org/software/classpathx/jaxp - -Source distributions include a copy of the W3C copyright as "COPYRIGHT.html". - -In addition, the files distributed under GPL include the following -special exception. - - As a special exception, if you link this library with - other files to produce an executable, this library does - not by itself cause the resulting executable to be covered - by the GNU General Public License. This exception does - not however invalidate any other reasons why the executable - file might be covered by the GNU General Public License. - -As such, this software can be used to run Free as well as proprietary -applications and applets: static linking is permitted, so this can -even be used in embedded configurations. diff --git a/external/jaxp/Makefile.aj b/external/jaxp/Makefile.aj deleted file mode 100644 index a9909b136..000000000 --- a/external/jaxp/Makefile.aj +++ /dev/null @@ -1,435 +0,0 @@ -# Makefile for GNU classpathx "GNUJAXP" project -# -# You are free to redistribute this file. NO WARRANTY or fitness -# for purpose is implied by this notice. -# -# !!! !!! -# !!! MAKE EDITS TO "Makefile.in", not "Makefile" !!! -# !!! !!! -# -# Use the "configure" command to generate the project Makefile -# from its "Makefile.in" template. -# - -##set by configure - -PROJECTROOT = @srcdir@ - -JAVAC = @JAVA_CC@ -JAVAC_OPTS = -g @JAVA_CC_OPTS@ -JAR = @JAR_TOOL@ - -SOURCEDIR = $(PROJECTROOT)/source -SOURCEFILES = $(SOURCEDIR)/gnu/xml/aelfred2/JAXPFactory.java \ - $(SOURCEDIR)/gnu/xml/aelfred2/SAXDriver.java \ - $(SOURCEDIR)/gnu/xml/aelfred2/XmlParser.java \ - $(SOURCEDIR)/gnu/xml/aelfred2/XmlReader.java \ - $(SOURCEDIR)/gnu/xml/dom/Consumer.java \ - $(SOURCEDIR)/gnu/xml/dom/DomAttr.java \ - $(SOURCEDIR)/gnu/xml/dom/DomCDATA.java \ - $(SOURCEDIR)/gnu/xml/dom/DomCharacterData.java \ - $(SOURCEDIR)/gnu/xml/dom/DomComment.java \ - $(SOURCEDIR)/gnu/xml/dom/DomDoctype.java \ - $(SOURCEDIR)/gnu/xml/dom/DomDocument.java \ - $(SOURCEDIR)/gnu/xml/dom/DomElement.java \ - $(SOURCEDIR)/gnu/xml/dom/DomEntity.java \ - $(SOURCEDIR)/gnu/xml/dom/DomEntityReference.java \ - $(SOURCEDIR)/gnu/xml/dom/DomEvent.java \ - $(SOURCEDIR)/gnu/xml/dom/DomEx.java \ - $(SOURCEDIR)/gnu/xml/dom/DomExtern.java \ - $(SOURCEDIR)/gnu/xml/dom/DomFragment.java \ - $(SOURCEDIR)/gnu/xml/dom/DomImpl.java \ - $(SOURCEDIR)/gnu/xml/dom/DomIterator.java \ - $(SOURCEDIR)/gnu/xml/dom/DomNamedNodeMap.java \ - $(SOURCEDIR)/gnu/xml/dom/DomNode.java \ - $(SOURCEDIR)/gnu/xml/dom/DomNotation.java \ - $(SOURCEDIR)/gnu/xml/dom/DomNsNode.java \ - $(SOURCEDIR)/gnu/xml/dom/DomPI.java \ - $(SOURCEDIR)/gnu/xml/dom/DomText.java \ - $(SOURCEDIR)/gnu/xml/dom/JAXPFactory.java \ - $(SOURCEDIR)/gnu/xml/pipeline/CallFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/DomConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/EventConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/EventFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/LinkFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/NSFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/PipelineFactory.java \ - $(SOURCEDIR)/gnu/xml/pipeline/TeeConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/TextConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/ValidationConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/WellFormednessFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/XIncludeFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/XsltFilter.java \ - $(SOURCEDIR)/gnu/xml/util/DoParse.java \ - $(SOURCEDIR)/gnu/xml/util/DomParser.java \ - $(SOURCEDIR)/gnu/xml/util/Resolver.java \ - $(SOURCEDIR)/gnu/xml/util/SAXNullTransformerFactory.java \ - $(SOURCEDIR)/gnu/xml/util/XCat.java \ - $(SOURCEDIR)/gnu/xml/util/XHTMLWriter.java \ - $(SOURCEDIR)/gnu/xml/util/XMLWriter.java \ - $(SOURCEDIR)/javax/xml/parsers/ClassStuff.java \ - $(SOURCEDIR)/javax/xml/parsers/DocumentBuilder.java \ - $(SOURCEDIR)/javax/xml/parsers/DocumentBuilderFactory.java \ - $(SOURCEDIR)/javax/xml/parsers/FactoryConfigurationError.java \ - $(SOURCEDIR)/javax/xml/parsers/ParserConfigurationException.java \ - $(SOURCEDIR)/javax/xml/parsers/SAXParser.java \ - $(SOURCEDIR)/javax/xml/parsers/SAXParserFactory.java \ - $(SOURCEDIR)/javax/xml/transform/ClassStuff.java \ - $(SOURCEDIR)/javax/xml/transform/ErrorListener.java \ - $(SOURCEDIR)/javax/xml/transform/OutputKeys.java \ - $(SOURCEDIR)/javax/xml/transform/Result.java \ - $(SOURCEDIR)/javax/xml/transform/Source.java \ - $(SOURCEDIR)/javax/xml/transform/SourceLocator.java \ - $(SOURCEDIR)/javax/xml/transform/Templates.java \ - $(SOURCEDIR)/javax/xml/transform/Transformer.java \ - $(SOURCEDIR)/javax/xml/transform/TransformerConfigurationException.java \ - $(SOURCEDIR)/javax/xml/transform/TransformerException.java \ - $(SOURCEDIR)/javax/xml/transform/TransformerFactory.java \ - $(SOURCEDIR)/javax/xml/transform/TransformerFactoryConfigurationError.java \ - $(SOURCEDIR)/javax/xml/transform/URIResolver.java \ - $(SOURCEDIR)/javax/xml/transform/dom/DOMLocator.java \ - $(SOURCEDIR)/javax/xml/transform/dom/DOMResult.java \ - $(SOURCEDIR)/javax/xml/transform/dom/DOMSource.java \ - $(SOURCEDIR)/javax/xml/transform/sax/SAXResult.java \ - $(SOURCEDIR)/javax/xml/transform/sax/SAXSource.java \ - $(SOURCEDIR)/javax/xml/transform/sax/SAXTransformerFactory.java \ - $(SOURCEDIR)/javax/xml/transform/sax/TemplatesHandler.java \ - $(SOURCEDIR)/javax/xml/transform/sax/TransformerHandler.java \ - $(SOURCEDIR)/javax/xml/transform/stream/StreamResult.java \ - $(SOURCEDIR)/javax/xml/transform/stream/StreamSource.java \ - $(SOURCEDIR)/org/w3c/dom/Attr.java \ - $(SOURCEDIR)/org/w3c/dom/CDATASection.java \ - $(SOURCEDIR)/org/w3c/dom/CharacterData.java \ - $(SOURCEDIR)/org/w3c/dom/Comment.java \ - $(SOURCEDIR)/org/w3c/dom/DOMException.java \ - $(SOURCEDIR)/org/w3c/dom/DOMImplementation.java \ - $(SOURCEDIR)/org/w3c/dom/Document.java \ - $(SOURCEDIR)/org/w3c/dom/DocumentFragment.java \ - $(SOURCEDIR)/org/w3c/dom/DocumentType.java \ - $(SOURCEDIR)/org/w3c/dom/Element.java \ - $(SOURCEDIR)/org/w3c/dom/Entity.java \ - $(SOURCEDIR)/org/w3c/dom/EntityReference.java \ - $(SOURCEDIR)/org/w3c/dom/NamedNodeMap.java \ - $(SOURCEDIR)/org/w3c/dom/Node.java \ - $(SOURCEDIR)/org/w3c/dom/NodeList.java \ - $(SOURCEDIR)/org/w3c/dom/Notation.java \ - $(SOURCEDIR)/org/w3c/dom/ProcessingInstruction.java \ - $(SOURCEDIR)/org/w3c/dom/Text.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2Azimuth.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2BackgroundPosition.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2BorderSpacing.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2CounterIncrement.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2CounterReset.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2Cursor.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2FontFaceSrc.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2FontFaceWidths.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2PageSize.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2PlayDuring.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2Properties.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2TextShadow.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSCharsetRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSFontFaceRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSImportRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSMediaRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSPageRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSPrimitiveValue.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSRuleList.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSStyleDeclaration.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSStyleRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSStyleSheet.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSUnknownRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSValue.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSValueList.java \ - $(SOURCEDIR)/org/w3c/dom/css/Counter.java \ - $(SOURCEDIR)/org/w3c/dom/css/DOMImplementationCSS.java \ - $(SOURCEDIR)/org/w3c/dom/css/DocumentCSS.java \ - $(SOURCEDIR)/org/w3c/dom/css/ElementCSSInlineStyle.java \ - $(SOURCEDIR)/org/w3c/dom/css/RGBColor.java \ - $(SOURCEDIR)/org/w3c/dom/css/Rect.java \ - $(SOURCEDIR)/org/w3c/dom/css/ViewCSS.java \ - $(SOURCEDIR)/org/w3c/dom/events/DocumentEvent.java \ - $(SOURCEDIR)/org/w3c/dom/events/Event.java \ - $(SOURCEDIR)/org/w3c/dom/events/EventException.java \ - $(SOURCEDIR)/org/w3c/dom/events/EventListener.java \ - $(SOURCEDIR)/org/w3c/dom/events/EventTarget.java \ - $(SOURCEDIR)/org/w3c/dom/events/MouseEvent.java \ - $(SOURCEDIR)/org/w3c/dom/events/MutationEvent.java \ - $(SOURCEDIR)/org/w3c/dom/events/UIEvent.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLAnchorElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLAppletElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLAreaElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLBRElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLBaseElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLBaseFontElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLBodyElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLButtonElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLCollection.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDListElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDOMImplementation.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDirectoryElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDivElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDocument.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFieldSetElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFontElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFormElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFrameElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFrameSetElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLHRElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLHeadElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLHeadingElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLHtmlElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLIFrameElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLImageElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLInputElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLIsIndexElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLLIElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLLabelElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLLegendElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLLinkElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLMapElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLMenuElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLMetaElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLModElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLOListElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLObjectElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLOptGroupElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLOptionElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLParagraphElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLParamElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLPreElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLQuoteElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLScriptElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLSelectElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLStyleElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableCaptionElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableCellElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableColElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableRowElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableSectionElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTextAreaElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTitleElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLUListElement.java \ - $(SOURCEDIR)/org/w3c/dom/ranges/DocumentRange.java \ - $(SOURCEDIR)/org/w3c/dom/ranges/Range.java \ - $(SOURCEDIR)/org/w3c/dom/ranges/RangeException.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/DocumentStyle.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/LinkStyle.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/MediaList.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/StyleSheet.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/StyleSheetList.java \ - $(SOURCEDIR)/org/w3c/dom/traversal/DocumentTraversal.java \ - $(SOURCEDIR)/org/w3c/dom/traversal/NodeFilter.java \ - $(SOURCEDIR)/org/w3c/dom/traversal/NodeIterator.java \ - $(SOURCEDIR)/org/w3c/dom/traversal/TreeWalker.java \ - $(SOURCEDIR)/org/w3c/dom/views/AbstractView.java \ - $(SOURCEDIR)/org/w3c/dom/views/DocumentView.java \ - $(SOURCEDIR)/org/xml/sax/AttributeList.java \ - $(SOURCEDIR)/org/xml/sax/Attributes.java \ - $(SOURCEDIR)/org/xml/sax/ContentHandler.java \ - $(SOURCEDIR)/org/xml/sax/DTDHandler.java \ - $(SOURCEDIR)/org/xml/sax/DocumentHandler.java \ - $(SOURCEDIR)/org/xml/sax/EntityResolver.java \ - $(SOURCEDIR)/org/xml/sax/ErrorHandler.java \ - $(SOURCEDIR)/org/xml/sax/HandlerBase.java \ - $(SOURCEDIR)/org/xml/sax/InputSource.java \ - $(SOURCEDIR)/org/xml/sax/Locator.java \ - $(SOURCEDIR)/org/xml/sax/Parser.java \ - $(SOURCEDIR)/org/xml/sax/SAXException.java \ - $(SOURCEDIR)/org/xml/sax/SAXNotRecognizedException.java \ - $(SOURCEDIR)/org/xml/sax/SAXNotSupportedException.java \ - $(SOURCEDIR)/org/xml/sax/SAXParseException.java \ - $(SOURCEDIR)/org/xml/sax/XMLFilter.java \ - $(SOURCEDIR)/org/xml/sax/XMLReader.java \ - $(SOURCEDIR)/org/xml/sax/ext/Attributes2.java \ - $(SOURCEDIR)/org/xml/sax/ext/Attributes2Impl.java \ - $(SOURCEDIR)/org/xml/sax/ext/DeclHandler.java \ - $(SOURCEDIR)/org/xml/sax/ext/DefaultHandler2.java \ - $(SOURCEDIR)/org/xml/sax/ext/EntityResolver2.java \ - $(SOURCEDIR)/org/xml/sax/ext/LexicalHandler.java \ - $(SOURCEDIR)/org/xml/sax/ext/Locator2.java \ - $(SOURCEDIR)/org/xml/sax/ext/Locator2Impl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/AttributeListImpl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/AttributesImpl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/DefaultHandler.java \ - $(SOURCEDIR)/org/xml/sax/helpers/LocatorImpl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/NamespaceSupport.java \ - $(SOURCEDIR)/org/xml/sax/helpers/NewInstance.java \ - $(SOURCEDIR)/org/xml/sax/helpers/ParserAdapter.java \ - $(SOURCEDIR)/org/xml/sax/helpers/ParserFactory.java \ - $(SOURCEDIR)/org/xml/sax/helpers/XMLFilterImpl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/XMLReaderAdapter.java \ - $(SOURCEDIR)/org/xml/sax/helpers/XMLReaderFactory.java - -PKGFILES = \ - $(SOURCEDIR)/gnu/xml/aelfred2/package.html \ - $(SOURCEDIR)/gnu/xml/dom/package.html \ - $(SOURCEDIR)/gnu/xml/pipeline/package.html \ - $(SOURCEDIR)/gnu/xml/util/package.html \ - $(SOURCEDIR)/javax/xml/parsers/package.html \ - $(SOURCEDIR)/javax/xml/transform/package.html \ - $(SOURCEDIR)/javax/xml/transform/dom/package.html \ - $(SOURCEDIR)/javax/xml/transform/sax/package.html \ - $(SOURCEDIR)/javax/xml/transform/stream/package.html \ - $(SOURCEDIR)/org/w3c/dom/package.html \ - $(SOURCEDIR)/org/w3c/dom/events/package.html \ - $(SOURCEDIR)/org/w3c/dom/traversal/package.html \ - $(SOURCEDIR)/org/w3c/dom/views/package.html \ - $(SOURCEDIR)/org/xml/sax/package.html \ - $(SOURCEDIR)/org/xml/sax/ext/package.html \ - $(SOURCEDIR)/org/xml/sax/helpers/package.html \ - - -#GCJ options. -GCJ_OPTS = --encoding=8859_1 -fsyntax-only -femit-class-files -GCJ_COMPILE = $(GCJ) $(GCJ_OPTS) -Isource -foutput-class-dir=$(CC-DESTDIR) - -# Variables which define some useful constants -newline:=\\n -empty:= -space:=$(empty) $(empty) - - -default: gnujaxp.jar - -all: gnujaxp.jar javadoc - - -# Ensure the makefile can update itself. -Makefile: Makefile.in configure.in - $(SHELL) ./config.status - -Makefile.in: Makefile.aj - $(SHELL) $(PROJECTROOT)/automakejar ./Makefile.in - - -# Build the META-INF directory. -META-INF META-INF/services: - mkdir $@ - -# Admin file targets. -META-INF/COPYING: META-INF $(PROJECTROOT)/COPYING - cp $(PROJECTROOT)/COPYING $@ - -META-INF/LICENSE: META-INF $(PROJECTROOT)/LICENSE - cp $(PROJECTROOT)/LICENSE $@ - -# Support file targets. -META-INF/services/org.xml.sax.driver: META-INF/services - echo -n gnu.xml.aelfred2.XmlReader > $@ - -META-INF/services/javax.xml.parsers.SAXParserFactory: META-INF/services - echo -n gnu.xml.aelfred2.JAXPFactory > $@ - -META-INF/services/javax.xml.parsers.DocumentBuilderFactory: META-INF/services - echo -n gnu.xml.dom.JAXPFactory > $@ - -SUPPORTFILES = \ - META-INF/COPYING \ - META-INF/LICENSE \ - META-INF/services/org.xml.sax.driver \ - META-INF/services/javax.xml.parsers.SAXParserFactory \ - META-INF/services/javax.xml.parsers.DocumentBuilderFactory - - -# This is an automakejar target. -# You must run the automakejar script on this Make file to -# cause the target to be legal Make syntax. -gnujaxp.jar: - sourcedir=$(SOURCEDIR) - sourcefiles=$(SOURCEFILES) - classpath=$(wildcard lib/*.jar) - classesdest=classes - otherfiles=$(SUPPORTFILES) - manifest=$(PROJECTROOT)/manifest.mf -# End of automakejar target. - - - -# for normal development -# must rerun "make" after this -clean: - -rm -rf gnujaxp.jar classes META-INF Log apidoc apidoc.zip - -rm -rf gnujaxp-*.zip - -# Nust rerun automakejar and configure after this -distclean: clean - -rm -f Makefile Makefile.in config.cache config.log config.status - -# Nust rerun aclocal, autoconf, automakejar and configure after this -mrproper: distclean - -rm -f configure - -javadoc: apidoc.zip -apidoc.zip: - -rm -rf apidoc - mkdir -p apidoc - javadoc -d apidoc \ - -windowtitle "GNU JAXP Library" \ - -nodeprecatedlist \ - -version -author -use \ - -bottom "<p>Source code is under GPL \ - (with library exception) in the JAXP project at \ - <a href='http://www.gnu.org/software/classpathx/jaxp'> \ - http://www.gnu.org/software/classpathx/jaxp</a> \ - <br>This documentation was derived from that\ - source code on `date -I`.\ - </p>" \ - -classpath "$(SOURCEDIR)" \ - \ - -group "AElfred2 and SAX2 Utilities" \ - "gnu.xml.aelfred2:gnu.xml.pipeline:gnu.xml.util" \ - -group "DOM2, implementing DOM Level 2" \ - "gnu.xml.dom" \ - \ - -group "SAX and SAX2" \ - "org.xml.sax:org.xml.sax.ext:org.xml.sax.helpers" \ - -group "DOM Level 2 (W3C)" \ - "org.w3c.*" \ - -group "Java API for XML (v1.1) (Sun)" \ - "javax.xml.*" \ - \ - gnu.xml.aelfred2 gnu.xml.pipeline gnu.xml.util \ - gnu.xml.dom \ - org.xml.sax org.xml.sax.ext org.xml.sax.helpers \ - org.w3c.dom org.w3c.dom.events \ - javax.xml.parsers \ - javax.xml.transform javax.xml.transform.dom \ - javax.xml.transform.sax javax.xml.transform.stream - jar cMf apidoc.zip apidoc - -# -# RELEASE ENGINEERING: -# "full" release has source, jarfile, javadoc, and extras -# -# override VERSION in environment, like: -# $ VERSION=1.0beta1 make -e release -# -VERSION = dev - -release: gnujaxp-$(VERSION).zip - - -DIST_DIR = gnujaxp-$(VERSION) - -# XXX ChangeLog -FILES := \ - LICENSE COPYING COPYRIGHT.html README \ - gnujaxp.jar \ - configure Makefile.in manifest.mf - -gnujaxp-$(VERSION).zip: $(FILES) apidoc.zip $(SOURCEFILES) $(PKGFILES) - for F in $(FILES) $(SOURCEFILES) $(PKGFILES) ;\ - do \ - mkdir -p `dirname $(DIST_DIR)/$$F` ;\ - cp $$F $(DIST_DIR)/$$F ;\ - done - cd $(DIST_DIR); jar xf ../apidoc.zip - chmod +x $(DIST_DIR)/configure - cp gnujaxp.jar $(DIST_DIR) - # jar cMf gnujaxp-$(VERSION).zip $(DIST_DIR) - zip -qr9 gnujaxp-$(VERSION).zip $(DIST_DIR) - rm -rf $(DIST_DIR) - diff --git a/external/jaxp/Makefile.in b/external/jaxp/Makefile.in deleted file mode 100644 index 3bef3f131..000000000 --- a/external/jaxp/Makefile.in +++ /dev/null @@ -1,466 +0,0 @@ -# Makefile for GNU classpathx "GNUJAXP" project -# -# You are free to redistribute this file. NO WARRANTY or fitness -# for purpose is implied by this notice. -# -# !!! !!! -# !!! MAKE EDITS TO "Makefile.in", not "Makefile" !!! -# !!! !!! -# -# Use the "configure" command to generate the project Makefile -# from its "Makefile.in" template. -# - -##set by configure - -PROJECTROOT = @srcdir@ - -JAVAC = @JAVA_CC@ -JAVAC_OPTS = -g @JAVA_CC_OPTS@ -JAR = @JAR_TOOL@ - -SOURCEDIR = $(PROJECTROOT)/source -SOURCEFILES = $(SOURCEDIR)/gnu/xml/aelfred2/JAXPFactory.java \ - $(SOURCEDIR)/gnu/xml/aelfred2/SAXDriver.java \ - $(SOURCEDIR)/gnu/xml/aelfred2/XmlParser.java \ - $(SOURCEDIR)/gnu/xml/aelfred2/XmlReader.java \ - $(SOURCEDIR)/gnu/xml/dom/Consumer.java \ - $(SOURCEDIR)/gnu/xml/dom/DomAttr.java \ - $(SOURCEDIR)/gnu/xml/dom/DomCDATA.java \ - $(SOURCEDIR)/gnu/xml/dom/DomCharacterData.java \ - $(SOURCEDIR)/gnu/xml/dom/DomComment.java \ - $(SOURCEDIR)/gnu/xml/dom/DomDoctype.java \ - $(SOURCEDIR)/gnu/xml/dom/DomDocument.java \ - $(SOURCEDIR)/gnu/xml/dom/DomElement.java \ - $(SOURCEDIR)/gnu/xml/dom/DomEntity.java \ - $(SOURCEDIR)/gnu/xml/dom/DomEntityReference.java \ - $(SOURCEDIR)/gnu/xml/dom/DomEvent.java \ - $(SOURCEDIR)/gnu/xml/dom/DomEx.java \ - $(SOURCEDIR)/gnu/xml/dom/DomExtern.java \ - $(SOURCEDIR)/gnu/xml/dom/DomFragment.java \ - $(SOURCEDIR)/gnu/xml/dom/DomImpl.java \ - $(SOURCEDIR)/gnu/xml/dom/DomIterator.java \ - $(SOURCEDIR)/gnu/xml/dom/DomNamedNodeMap.java \ - $(SOURCEDIR)/gnu/xml/dom/DomNode.java \ - $(SOURCEDIR)/gnu/xml/dom/DomNotation.java \ - $(SOURCEDIR)/gnu/xml/dom/DomNsNode.java \ - $(SOURCEDIR)/gnu/xml/dom/DomPI.java \ - $(SOURCEDIR)/gnu/xml/dom/DomText.java \ - $(SOURCEDIR)/gnu/xml/dom/JAXPFactory.java \ - $(SOURCEDIR)/gnu/xml/pipeline/CallFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/DomConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/EventConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/EventFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/LinkFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/NSFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/PipelineFactory.java \ - $(SOURCEDIR)/gnu/xml/pipeline/TeeConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/TextConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/ValidationConsumer.java \ - $(SOURCEDIR)/gnu/xml/pipeline/WellFormednessFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/XIncludeFilter.java \ - $(SOURCEDIR)/gnu/xml/pipeline/XsltFilter.java \ - $(SOURCEDIR)/gnu/xml/util/DoParse.java \ - $(SOURCEDIR)/gnu/xml/util/DomParser.java \ - $(SOURCEDIR)/gnu/xml/util/Resolver.java \ - $(SOURCEDIR)/gnu/xml/util/SAXNullTransformerFactory.java \ - $(SOURCEDIR)/gnu/xml/util/XCat.java \ - $(SOURCEDIR)/gnu/xml/util/XHTMLWriter.java \ - $(SOURCEDIR)/gnu/xml/util/XMLWriter.java \ - $(SOURCEDIR)/javax/xml/parsers/ClassStuff.java \ - $(SOURCEDIR)/javax/xml/parsers/DocumentBuilder.java \ - $(SOURCEDIR)/javax/xml/parsers/DocumentBuilderFactory.java \ - $(SOURCEDIR)/javax/xml/parsers/FactoryConfigurationError.java \ - $(SOURCEDIR)/javax/xml/parsers/ParserConfigurationException.java \ - $(SOURCEDIR)/javax/xml/parsers/SAXParser.java \ - $(SOURCEDIR)/javax/xml/parsers/SAXParserFactory.java \ - $(SOURCEDIR)/javax/xml/transform/ClassStuff.java \ - $(SOURCEDIR)/javax/xml/transform/ErrorListener.java \ - $(SOURCEDIR)/javax/xml/transform/OutputKeys.java \ - $(SOURCEDIR)/javax/xml/transform/Result.java \ - $(SOURCEDIR)/javax/xml/transform/Source.java \ - $(SOURCEDIR)/javax/xml/transform/SourceLocator.java \ - $(SOURCEDIR)/javax/xml/transform/Templates.java \ - $(SOURCEDIR)/javax/xml/transform/Transformer.java \ - $(SOURCEDIR)/javax/xml/transform/TransformerConfigurationException.java \ - $(SOURCEDIR)/javax/xml/transform/TransformerException.java \ - $(SOURCEDIR)/javax/xml/transform/TransformerFactory.java \ - $(SOURCEDIR)/javax/xml/transform/TransformerFactoryConfigurationError.java \ - $(SOURCEDIR)/javax/xml/transform/URIResolver.java \ - $(SOURCEDIR)/javax/xml/transform/dom/DOMLocator.java \ - $(SOURCEDIR)/javax/xml/transform/dom/DOMResult.java \ - $(SOURCEDIR)/javax/xml/transform/dom/DOMSource.java \ - $(SOURCEDIR)/javax/xml/transform/sax/SAXResult.java \ - $(SOURCEDIR)/javax/xml/transform/sax/SAXSource.java \ - $(SOURCEDIR)/javax/xml/transform/sax/SAXTransformerFactory.java \ - $(SOURCEDIR)/javax/xml/transform/sax/TemplatesHandler.java \ - $(SOURCEDIR)/javax/xml/transform/sax/TransformerHandler.java \ - $(SOURCEDIR)/javax/xml/transform/stream/StreamResult.java \ - $(SOURCEDIR)/javax/xml/transform/stream/StreamSource.java \ - $(SOURCEDIR)/org/w3c/dom/Attr.java \ - $(SOURCEDIR)/org/w3c/dom/CDATASection.java \ - $(SOURCEDIR)/org/w3c/dom/CharacterData.java \ - $(SOURCEDIR)/org/w3c/dom/Comment.java \ - $(SOURCEDIR)/org/w3c/dom/DOMException.java \ - $(SOURCEDIR)/org/w3c/dom/DOMImplementation.java \ - $(SOURCEDIR)/org/w3c/dom/Document.java \ - $(SOURCEDIR)/org/w3c/dom/DocumentFragment.java \ - $(SOURCEDIR)/org/w3c/dom/DocumentType.java \ - $(SOURCEDIR)/org/w3c/dom/Element.java \ - $(SOURCEDIR)/org/w3c/dom/Entity.java \ - $(SOURCEDIR)/org/w3c/dom/EntityReference.java \ - $(SOURCEDIR)/org/w3c/dom/NamedNodeMap.java \ - $(SOURCEDIR)/org/w3c/dom/Node.java \ - $(SOURCEDIR)/org/w3c/dom/NodeList.java \ - $(SOURCEDIR)/org/w3c/dom/Notation.java \ - $(SOURCEDIR)/org/w3c/dom/ProcessingInstruction.java \ - $(SOURCEDIR)/org/w3c/dom/Text.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2Azimuth.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2BackgroundPosition.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2BorderSpacing.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2CounterIncrement.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2CounterReset.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2Cursor.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2FontFaceSrc.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2FontFaceWidths.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2PageSize.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2PlayDuring.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2Properties.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSS2TextShadow.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSCharsetRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSFontFaceRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSImportRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSMediaRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSPageRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSPrimitiveValue.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSRuleList.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSStyleDeclaration.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSStyleRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSStyleSheet.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSUnknownRule.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSValue.java \ - $(SOURCEDIR)/org/w3c/dom/css/CSSValueList.java \ - $(SOURCEDIR)/org/w3c/dom/css/Counter.java \ - $(SOURCEDIR)/org/w3c/dom/css/DOMImplementationCSS.java \ - $(SOURCEDIR)/org/w3c/dom/css/DocumentCSS.java \ - $(SOURCEDIR)/org/w3c/dom/css/ElementCSSInlineStyle.java \ - $(SOURCEDIR)/org/w3c/dom/css/RGBColor.java \ - $(SOURCEDIR)/org/w3c/dom/css/Rect.java \ - $(SOURCEDIR)/org/w3c/dom/css/ViewCSS.java \ - $(SOURCEDIR)/org/w3c/dom/events/DocumentEvent.java \ - $(SOURCEDIR)/org/w3c/dom/events/Event.java \ - $(SOURCEDIR)/org/w3c/dom/events/EventException.java \ - $(SOURCEDIR)/org/w3c/dom/events/EventListener.java \ - $(SOURCEDIR)/org/w3c/dom/events/EventTarget.java \ - $(SOURCEDIR)/org/w3c/dom/events/MouseEvent.java \ - $(SOURCEDIR)/org/w3c/dom/events/MutationEvent.java \ - $(SOURCEDIR)/org/w3c/dom/events/UIEvent.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLAnchorElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLAppletElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLAreaElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLBRElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLBaseElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLBaseFontElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLBodyElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLButtonElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLCollection.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDListElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDOMImplementation.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDirectoryElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDivElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLDocument.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFieldSetElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFontElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFormElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFrameElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLFrameSetElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLHRElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLHeadElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLHeadingElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLHtmlElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLIFrameElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLImageElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLInputElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLIsIndexElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLLIElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLLabelElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLLegendElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLLinkElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLMapElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLMenuElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLMetaElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLModElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLOListElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLObjectElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLOptGroupElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLOptionElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLParagraphElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLParamElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLPreElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLQuoteElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLScriptElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLSelectElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLStyleElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableCaptionElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableCellElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableColElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableRowElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTableSectionElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTextAreaElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLTitleElement.java \ - $(SOURCEDIR)/org/w3c/dom/html/HTMLUListElement.java \ - $(SOURCEDIR)/org/w3c/dom/ranges/DocumentRange.java \ - $(SOURCEDIR)/org/w3c/dom/ranges/Range.java \ - $(SOURCEDIR)/org/w3c/dom/ranges/RangeException.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/DocumentStyle.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/LinkStyle.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/MediaList.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/StyleSheet.java \ - $(SOURCEDIR)/org/w3c/dom/stylesheets/StyleSheetList.java \ - $(SOURCEDIR)/org/w3c/dom/traversal/DocumentTraversal.java \ - $(SOURCEDIR)/org/w3c/dom/traversal/NodeFilter.java \ - $(SOURCEDIR)/org/w3c/dom/traversal/NodeIterator.java \ - $(SOURCEDIR)/org/w3c/dom/traversal/TreeWalker.java \ - $(SOURCEDIR)/org/w3c/dom/views/AbstractView.java \ - $(SOURCEDIR)/org/w3c/dom/views/DocumentView.java \ - $(SOURCEDIR)/org/xml/sax/AttributeList.java \ - $(SOURCEDIR)/org/xml/sax/Attributes.java \ - $(SOURCEDIR)/org/xml/sax/ContentHandler.java \ - $(SOURCEDIR)/org/xml/sax/DTDHandler.java \ - $(SOURCEDIR)/org/xml/sax/DocumentHandler.java \ - $(SOURCEDIR)/org/xml/sax/EntityResolver.java \ - $(SOURCEDIR)/org/xml/sax/ErrorHandler.java \ - $(SOURCEDIR)/org/xml/sax/HandlerBase.java \ - $(SOURCEDIR)/org/xml/sax/InputSource.java \ - $(SOURCEDIR)/org/xml/sax/Locator.java \ - $(SOURCEDIR)/org/xml/sax/Parser.java \ - $(SOURCEDIR)/org/xml/sax/SAXException.java \ - $(SOURCEDIR)/org/xml/sax/SAXNotRecognizedException.java \ - $(SOURCEDIR)/org/xml/sax/SAXNotSupportedException.java \ - $(SOURCEDIR)/org/xml/sax/SAXParseException.java \ - $(SOURCEDIR)/org/xml/sax/XMLFilter.java \ - $(SOURCEDIR)/org/xml/sax/XMLReader.java \ - $(SOURCEDIR)/org/xml/sax/ext/Attributes2.java \ - $(SOURCEDIR)/org/xml/sax/ext/Attributes2Impl.java \ - $(SOURCEDIR)/org/xml/sax/ext/DeclHandler.java \ - $(SOURCEDIR)/org/xml/sax/ext/DefaultHandler2.java \ - $(SOURCEDIR)/org/xml/sax/ext/EntityResolver2.java \ - $(SOURCEDIR)/org/xml/sax/ext/LexicalHandler.java \ - $(SOURCEDIR)/org/xml/sax/ext/Locator2.java \ - $(SOURCEDIR)/org/xml/sax/ext/Locator2Impl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/AttributeListImpl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/AttributesImpl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/DefaultHandler.java \ - $(SOURCEDIR)/org/xml/sax/helpers/LocatorImpl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/NamespaceSupport.java \ - $(SOURCEDIR)/org/xml/sax/helpers/NewInstance.java \ - $(SOURCEDIR)/org/xml/sax/helpers/ParserAdapter.java \ - $(SOURCEDIR)/org/xml/sax/helpers/ParserFactory.java \ - $(SOURCEDIR)/org/xml/sax/helpers/XMLFilterImpl.java \ - $(SOURCEDIR)/org/xml/sax/helpers/XMLReaderAdapter.java \ - $(SOURCEDIR)/org/xml/sax/helpers/XMLReaderFactory.java - -PKGFILES = \ - $(SOURCEDIR)/gnu/xml/aelfred2/package.html \ - $(SOURCEDIR)/gnu/xml/dom/package.html \ - $(SOURCEDIR)/gnu/xml/pipeline/package.html \ - $(SOURCEDIR)/gnu/xml/util/package.html \ - $(SOURCEDIR)/javax/xml/parsers/package.html \ - $(SOURCEDIR)/javax/xml/transform/package.html \ - $(SOURCEDIR)/javax/xml/transform/dom/package.html \ - $(SOURCEDIR)/javax/xml/transform/sax/package.html \ - $(SOURCEDIR)/javax/xml/transform/stream/package.html \ - $(SOURCEDIR)/org/w3c/dom/package.html \ - $(SOURCEDIR)/org/w3c/dom/events/package.html \ - $(SOURCEDIR)/org/w3c/dom/traversal/package.html \ - $(SOURCEDIR)/org/w3c/dom/views/package.html \ - $(SOURCEDIR)/org/xml/sax/package.html \ - $(SOURCEDIR)/org/xml/sax/ext/package.html \ - $(SOURCEDIR)/org/xml/sax/helpers/package.html \ - - -#GCJ options. -GCJ_OPTS = --encoding=8859_1 -fsyntax-only -femit-class-files -GCJ_COMPILE = $(GCJ) $(GCJ_OPTS) -Isource -foutput-class-dir=$(CC-DESTDIR) - -# Variables which define some useful constants -newline:=\\n -empty:= -space:=$(empty) $(empty) - - -default: gnujaxp.jar - -all: gnujaxp.jar javadoc - - -# Ensure the makefile can update itself. -Makefile: Makefile.in configure.in - $(SHELL) ./config.status - -Makefile.in: Makefile.aj - $(SHELL) $(PROJECTROOT)/automakejar ./Makefile.in - - -# Build the META-INF directory. -META-INF META-INF/services: - mkdir $@ - -# Admin file targets. -META-INF/COPYING: META-INF $(PROJECTROOT)/COPYING - cp $(PROJECTROOT)/COPYING $@ - -META-INF/LICENSE: META-INF $(PROJECTROOT)/LICENSE - cp $(PROJECTROOT)/LICENSE $@ - -# Support file targets. -META-INF/services/org.xml.sax.driver: META-INF/services - echo -n gnu.xml.aelfred2.XmlReader > $@ - -META-INF/services/javax.xml.parsers.SAXParserFactory: META-INF/services - echo -n gnu.xml.aelfred2.JAXPFactory > $@ - -META-INF/services/javax.xml.parsers.DocumentBuilderFactory: META-INF/services - echo -n gnu.xml.dom.JAXPFactory > $@ - -SUPPORTFILES = \ - META-INF/COPYING \ - META-INF/LICENSE \ - META-INF/services/org.xml.sax.driver \ - META-INF/services/javax.xml.parsers.SAXParserFactory \ - META-INF/services/javax.xml.parsers.DocumentBuilderFactory - - -# This is an automakejar target. -# You must run the automakejar script on this Make file to -# cause the target to be legal Make syntax. -gnujaxp_jar_sourcedir=$(SOURCEDIR) -gnujaxp_jar_sourcefiles=$(SOURCEFILES) -gnujaxp_jar_classpath=$(wildcard lib/*.jar) -gnujaxp_jar_classesdest=classes -gnujaxp_jar_otherfiles=$(SUPPORTFILES) -gnujaxp_jar_manifest=$(PROJECTROOT)/manifest.mf -# End of automakejar target. -gnujaxp_jar_debugclasses=$(gnujaxp_jar_sourcefiles:.java=.class) -gnujaxp_jar_classfiles=$(gnujaxp_jar_debugclasses:$(gnujaxp_jar_sourcedir)%=$(gnujaxp_jar_classesdest)%) - -gnujaxp.jar: -gnujaxp.jar: gnujaxp-init $(gnujaxp_jar_classfiles) gnujaxp-compilation $(gnujaxp_jar_otherfiles) $(gnujaxp_jar_manifest) - $(JAR) cf$(if $(gnujaxp_jar_manifest),m) gnujaxp.jar $(gnujaxp_jar_manifest) $(gnujaxp_jar_otherfiles) -C $(gnujaxp_jar_classesdest) . - -.PHONY: gnujaxp-init gnujaxp-compilation - -gnujaxp-init: - echo > filelist - -gnujaxp-compilation: $(gnujaxp_jar_classesdest) - $(if $(shell cat filelist),$(JAVAC) $(JAVAC_OPTS) -d $(gnujaxp_jar_classesdest) -classpath $(call PATHMK,$(gnujaxp_jar_classesdest) $(call PATHMK,$(gnujaxp_jar_classpath))) @filelist) - -$(gnujaxp_jar_classesdest): - mkdir $@ - -$(gnujaxp_jar_classesdest)/%.class: $(gnujaxp_jar_sourcedir)/%.java - @echo $? >> filelist - -echo_gnujaxp_jar: - @echo sourcedir = $(gnujaxp_jar_sourcedir) - @echo sourcefiles = $(gnujaxp_jar_sourcefiles) - @echo classpath = $(call PATHMK,$(gnujaxp_jar_classpath)) - @echo classesdest = $(gnujaxp_jar_classesdest) - @echo classfiles = $(gnujaxp_jar_classfiles) - -ifeq (${OS},Windows_NT) -PATHMK = $(subst $(space),;,$(1)) -else -PATHMK = $(subst $(space),:,$(1)) -endif - - -# for normal development -# must rerun "make" after this -clean: - -rm -rf gnujaxp.jar classes META-INF Log apidoc apidoc.zip - -rm -rf gnujaxp-*.zip - -# Nust rerun automakejar and configure after this -distclean: clean - -rm -f Makefile Makefile.in config.cache config.log config.status - -# Nust rerun aclocal, autoconf, automakejar and configure after this -mrproper: distclean - -rm -f configure - -javadoc: apidoc.zip -apidoc.zip: - -rm -rf apidoc - mkdir -p apidoc - javadoc -d apidoc \ - -windowtitle "GNU JAXP Library" \ - -nodeprecatedlist \ - -version -author -use \ - -bottom "<p>Source code is under GPL \ - (with library exception) in the JAXP project at \ - <a href='http://www.gnu.org/software/classpathx/jaxp'> \ - http://www.gnu.org/software/classpathx/jaxp</a> \ - <br>This documentation was derived from that\ - source code on `date -I`.\ - </p>" \ - -classpath "$(SOURCEDIR)" \ - \ - -group "AElfred2 and SAX2 Utilities" \ - "gnu.xml.aelfred2:gnu.xml.pipeline:gnu.xml.util" \ - -group "DOM2, implementing DOM Level 2" \ - "gnu.xml.dom" \ - \ - -group "SAX and SAX2" \ - "org.xml.sax:org.xml.sax.ext:org.xml.sax.helpers" \ - -group "DOM Level 2 (W3C)" \ - "org.w3c.*" \ - -group "Java API for XML (v1.1) (Sun)" \ - "javax.xml.*" \ - \ - gnu.xml.aelfred2 gnu.xml.pipeline gnu.xml.util \ - gnu.xml.dom \ - org.xml.sax org.xml.sax.ext org.xml.sax.helpers \ - org.w3c.dom org.w3c.dom.events \ - javax.xml.parsers \ - javax.xml.transform javax.xml.transform.dom \ - javax.xml.transform.sax javax.xml.transform.stream - jar cMf apidoc.zip apidoc - -# -# RELEASE ENGINEERING: -# "full" release has source, jarfile, javadoc, and extras -# -# override VERSION in environment, like: -# $ VERSION=1.0beta1 make -e release -# -VERSION = dev - -release: gnujaxp-$(VERSION).zip - - -DIST_DIR = gnujaxp-$(VERSION) - -# XXX ChangeLog -FILES := \ - LICENSE COPYING COPYRIGHT.html README \ - gnujaxp.jar \ - configure Makefile.in manifest.mf - -gnujaxp-$(VERSION).zip: $(FILES) apidoc.zip $(SOURCEFILES) $(PKGFILES) - for F in $(FILES) $(SOURCEFILES) $(PKGFILES) ;\ - do \ - mkdir -p `dirname $(DIST_DIR)/$$F` ;\ - cp $$F $(DIST_DIR)/$$F ;\ - done - cd $(DIST_DIR); jar xf ../apidoc.zip - chmod +x $(DIST_DIR)/configure - cp gnujaxp.jar $(DIST_DIR) - # jar cMf gnujaxp-$(VERSION).zip $(DIST_DIR) - zip -qr9 gnujaxp-$(VERSION).zip $(DIST_DIR) - rm -rf $(DIST_DIR) - diff --git a/external/jaxp/README b/external/jaxp/README deleted file mode 100644 index 17e81f136..000000000 --- a/external/jaxp/README +++ /dev/null @@ -1,122 +0,0 @@ -WHAT IS THIS - GNUJAXP includes interfaces and implementations for basic XML - processing in Java, and some general purpose SAX2 utilities. - - The standard distribution includes "gnujaxp.jar", javadoc, and full - source code. The current software is available at: - - http://www.gnu.org/software/classpathx/jaxp - - This is intended only to require JDK 1.1 support to compile or run; - that may change at some point, but for now portability to PJava and - other widely used Java configurations/profiles is important. - - GCJ 3.0 has some bugs compiling this code, either to class files or - to native code. Newer snapshots (GCJ 3.1) are currently needed to - compile this code. - -JAVA PACKAGES - - javax.xml.* ... JAXP 1.1 interfaces - org.xml.sax.* ... SAX2 (r2pre3, extensions 1.1beta) interfaces - org.w3c.dom.* ... DOM Level 2 interfaces - - gnu.xml.aelfred2.* ... SAX2 parsers (+ optional validator, and JAXP glue) - gnu.xml.dom.* ... DOM level 2 (XML) implementation (and JAXP glue) - gnu.xml.pipeline.* ... SAX2 event pipeline support - gnu.xml.util.* ... various XML utility classes - -LICENSING - Briefly, most software in this package is distributed under the - GNU General Public License with the "library exception" that - permits its usage even in statically linked environments. That - licensing is more permissive than the "LGPL". - - See the LICENSE file for more information. - -BUILDING - The default build tools use autoconf and GNU make. - - $ ./configure - ... - $ make all - ... - $ - - You will need a java compiler on the PATH to build GNUJAXP. You - can specify one at configuration time like this: - - $ JAVA_CC=javac ./configure - $ make all - - See the file HACKING for how to build from CVS. - -INSTALLATION AND CONFIGURATION - The simplest way to use this software is to put the "gnujaxp.jar" - file into $JAVA_HOME/jre/lib/ext so that it's automatically part - of the classpath for every application. That works for JDK 1.2 - and later. - - Otherwise, you'll need some other way to put it into $CLASSPATH, - such as an environment variable. - - If you have multiple XML tools implementations in your environment, - you may need to configure software to use the implementations in - the GNUJAXP distribution rather than some other one. See the project - website (http://www.gnu.org/software/classpathx/jaxp) for information. - -CONFORMANCE TESTING - The primary test resources are at http://xmlconf.sourceforge.net - and include: - - SAX2/XML conformance tests - That the "xml.testing.Driver" addresses the core XML 1.0 - specification requirements, which closely correspond to the - functionality SAX1 provides. The driver uses SAX2 APIs to - test that functionality It is used with a bugfixed version of - the NIST/OASIS XML conformance test cases. - - The AElfred2 parser is highly conformant, though it still takes - a few implementation shortcuts. See its package documentation - for information about known XML conformance issues in AElfred2. - - The primary issue is using Unicode character tables, rather than - those in the XML specification, for determining what names are - valid. Most applications won't notice the difference, and this - solution is smaller and faster than the alternative. - - For validation, a secondary issue is that issues relating to - entity modularity are not validated; they can't all be cleanly - layered. For example, validity constraints related to standalone - declarations and PE nesting are not checked. - - SAX2 - SAX2 API conformance currently has a minimal JUNIT (0.2) test suite, - which can be accessed at the xmlconf site listed above. It does - not cover namespaces or LexicalHandler and Declhandler extensions - anywhere as exhaustively as the SAX1 level functionality is - tested by the "xml.testing.Driver". However: - - - Applying the DOM unit tests to this implementation gives - the LexicalHandler (comments, and boundaries of DTDs, - CDATA sections, and general entities) a workout, and - does the same for DeclHandler entity declarations. - - - The pipeline package's layered validator demands that - element and attribute declarations are reported correctly. - - By those metrics, SAX2 conformance for AElfred2 is also strong. - - DOM Level 1 (and Level 2 Events) Tests - The "domunit 0.0.6" tests use the JAXP API to hook up a DOM - implementation to a parser (out of scope for DOM Level 2). - Those DOM unit tests are mostly related to Level 1, except - for a few relating to the Level 2 events module. - - All of these tests pass. - - However, you may want to be aware that Entity nodes, and all - EntityReference nodes not created by parsing a document, will - have no children. Since you should as a rule avoid both these - node types, you probably won't run into related problems. - diff --git a/external/jaxp/aclocal.m4 b/external/jaxp/aclocal.m4 deleted file mode 100644 index 033a8e586..000000000 --- a/external/jaxp/aclocal.m4 +++ /dev/null @@ -1,34 +0,0 @@ - -AC_DEFUN([IFVAL], -[ifelse([$1], [], [$3], [$2])]) - - -# AC_PROG_JAVA_CC([COMPILER ...]) -# -------------------------- -# COMPILER ... is a space separated list of java compilers to search for. -# This just gives the user an opportunity to specify an alternative -# search list for the java compiler. -# The compiler is set in the variable JAVA_CC and the compiler options -# are set in the variable JAVA_CC_OPTS -AC_DEFUN([AC_PROG_JAVA_CC], -[IFVAL([$1], - [AC_CHECK_PROGS(JAVA_CC, [$1], , $PATH)], -[AC_CHECK_PROG(JAVA_CC, gcj, gcj, , $PATH) -if test -z "$JAVA_CC"; then - AC_CHECK_PROG(JAVA_CC, javac, javac, , $PATH) -fi -if test -z "$JAVA_CC"; then - AC_CHECK_PROG(JAVA_CC, jikes, jikes, , $PATH) -fi -]) - -if test "$JAVA_CC" = "gcj"; then - if test "$GCJ_OPTS" = ""; then - AC_SUBST(GCJ_OPTS,-C) - echo > /dev/null - fi - AC_SUBST(JAVA_CC_OPTS, @GCJ_OPTS@, - [Define the compilation options for GCJ]) -fi -test -z "$JAVA_CC" && AC_MSG_ERROR([no acceptable java compiler found in \$PATH]) -])# AC_PROG_JAVA_CC diff --git a/external/jaxp/automakejar b/external/jaxp/automakejar deleted file mode 100755 index 6f29fd347..000000000 --- a/external/jaxp/automakejar +++ /dev/null @@ -1,133 +0,0 @@ -#!/bin/sh -# Automagically generate make rules to compile jar files -# specified in the Makefile.aj -# -# (C) Tapsell-Ferrier Limited 2002 <nferrier@tapsellferrier.co.uk> -# -# This results in a file called: -# Makefile -# unless there is an argument specified in which case -# it results in a file specified in the argument. -# -# Therefore to produce a Makefile.in you could do this: -# -# automakejar Makefile.in -# - -TMP=${TEMP:-/tmp/} - -# Create the generic editor script. -SEDSCRIPT=$TMP/automakejar.$$ -cat > ${SEDSCRIPT} <<\EOF -#-n -# A first stage sed script to produce a Makefile from a template. -# (C) Tapsell-Ferrier Limited 2002 <nferrier@tapsellferrier.co.uk> -# -# This script would be much easier if GNU Make's target specific variables -# cascaded into sub-targets. But they don't as of 3.79.1. -/^__JARFILENAME__.jar:.*$/,/^$/{ - # Store the dummy target. - /^__JARFILENAME__.jar:.*/ { - h - d - } - # Make sure the variable definitions appear at the start of lines. - s/^ sourcedir=/sourcedir=/ - s/^ sourcefiles=/sourcefiles=/ - s/^ classpath=/classpath=/ - s/^ classesdest=/classesdest=/ - s/^ otherfiles=/otherfiles=/ - s/^ manifest=/manifest=/ - # Mangle the names of the target variables - s/sourcedir/__JARFILENAME___jar_sourcedir/ - s/sourcefiles/__JARFILENAME___jar_sourcefiles/ - s/classpath/__JARFILENAME___jar_classpath/ - s/classesdest/__JARFILENAME___jar_classesdest/ - s/otherfiles/__JARFILENAME___jar_otherfiles/ - s/manifest/__JARFILENAME___jar_manifest/ - # Ensure $variables are referenced properly - s/\$\([A-Za-z_][A-Za-z_]*\)/$(\1)/g - # Change quoted sh syntax to make syntax - s/`\(.*\)`/$(shell \1)/ - # At the end of the automakejar decleration put the real Make decl. - /^$/ { - i\ -__JARFILENAME___jar_debugclasses=$(__JARFILENAME___jar_sourcefiles:.java=.class)\ -__JARFILENAME___jar_classfiles=$(__JARFILENAME___jar_debugclasses:$(__JARFILENAME___jar_sourcedir)%=$(__JARFILENAME___jar_classesdest)%)\ - - # This ensures that the target that the user put in is inserted. - { - g - p - i\ -__JARFILENAME__.jar: __JARFILENAME__-init $(__JARFILENAME___jar_classfiles) __JARFILENAME__-compilation $(__JARFILENAME___jar_otherfiles) $(__JARFILENAME___jar_manifest)\ - $(JAR) cf$(if $(__JARFILENAME___jar_manifest),m) __JARFILENAME__.jar $(__JARFILENAME___jar_manifest) $(__JARFILENAME___jar_otherfiles) -C $(__JARFILENAME___jar_classesdest) .\ -\ -.PHONY: __JARFILENAME__-init __JARFILENAME__-compilation\ -\ -__JARFILENAME__-init:\ - echo > filelist\ -\ -__JARFILENAME__-compilation: $(__JARFILENAME___jar_classesdest)\ - $(if $(shell cat filelist),$(JAVAC) $(JAVAC_OPTS) -d $(__JARFILENAME___jar_classesdest) -classpath $(call PATHMK,$(__JARFILENAME___jar_classesdest) $(call PATHMK,$(__JARFILENAME___jar_classpath))) @filelist)\ -\ -$(__JARFILENAME___jar_classesdest):\ - mkdir $@\ -\ -$(__JARFILENAME___jar_classesdest)/%.class: $(__JARFILENAME___jar_sourcedir)/%.java\ - @echo $? >> filelist\ -\ -echo___JARFILENAME___jar:\ - @echo sourcedir = $(__JARFILENAME___jar_sourcedir)\ - @echo sourcefiles = $(__JARFILENAME___jar_sourcefiles)\ - @echo classpath = $(call PATHMK,$(__JARFILENAME___jar_classpath))\ - @echo classesdest = $(__JARFILENAME___jar_classesdest)\ - @echo classfiles = $(__JARFILENAME___jar_classfiles)\ -\ -ifeq (${OS},Windows_NT)\ -PATHMK = $(subst $(space),;,$(1))\ -else\ -PATHMK = $(subst $(space),:,$(1))\ -endif - } - # Ensure we branch to end of script once template is done. - b end - } -} -# Output all other lines as they are. -p -:end -EOF - -# The file to produce. -Makefile=${1:-Makefile} - -# The name of the template file. -MakeTemplate=`dirname $0`/Makefile.aj - -echo Making $Makefile from $MakeTemplate - - -# The Makefile to be mangled, changes every iteration. -MakeSource=${MakeTemplate} -# Make a bespoke sed script and then edit the source Makefile. -for something in `sed -n 's/^\([A-Za-z0-9_-]*\)\.jar:.*$/\1/p' ${MakeTemplate}` -do - MakeOutput=${Makefile}.${RANDOM} - echo creating the target: $something - EDITSCRIPT=${SEDSCRIPT}.edit.$$ - sed -n "s/__JARFILENAME__/${something}/g ; p" ${SEDSCRIPT} > ${EDITSCRIPT} - sed -n -f ${EDITSCRIPT} ${MakeSource} > ${MakeOutput} - if [ "${MakeSource}" != "${MakeTemplate}" ] ; - then - rm ${MakeSource} - fi - MakeSource=${MakeOutput} - rm $EDITSCRIPT -done - -mv ${MakeOutput} ${Makefile} - -rm $SEDSCRIPT - -# end.
\ No newline at end of file diff --git a/external/jaxp/configure.in b/external/jaxp/configure.in deleted file mode 100644 index 89bf01b92..000000000 --- a/external/jaxp/configure.in +++ /dev/null @@ -1,16 +0,0 @@ -AC_INIT(source/javax/xml/parsers/SAXParserFactory.java) - - -dnl Tool discovery - -AC_PATH_PROG(JAR_TOOL, jar,) - -AC_PROG_JAVA_CC() - - -dnl Setup the output files - -AC_OUTPUT(Makefile) - - -dnl End. diff --git a/external/jaxp/manifest.mf b/external/jaxp/manifest.mf deleted file mode 100644 index cc6bbd391..000000000 --- a/external/jaxp/manifest.mf +++ /dev/null @@ -1,28 +0,0 @@ -Extension-Name: GNUJAXP -Implementation-Title: GNU JAXP -Implementation-URL: http://www.gnu.org/software/classpathx/jaxp -Implementation-Vendor: Free Software Foundation -Main-Class: gnu.xml.util.DoParse - -Name: gnu/xml/aelfred2/ -Implementation-Title: AElfred2 - -Name: gnu/xml/dom/ -Implementation-Title: DOM2 - -Name: org/w3c/dom -Specification-Title: Document Object Model (DOM) -Specification-Vendor: www.w3c.org -Specification-Version: Level 2 - -Name: org/xml/sax/ -Implementation-URL: http://sax.sourceforge.net -Specification-Title: Simple API for XML (SAX) core -Specification-Vendor: sax.sourceforge.net -Specification-Version: 2.0 - -Name: javax/xml/ -Specification-Title: Java API for XML Parsing (JAXP) -Specification-Vendor: Sun Microsystems -Specification-Version: 1.1 - diff --git a/external/jaxp/source/gnu/xml/aelfred2/JAXPFactory.java b/external/jaxp/source/gnu/xml/aelfred2/JAXPFactory.java deleted file mode 100644 index b7bdce336..000000000 --- a/external/jaxp/source/gnu/xml/aelfred2/JAXPFactory.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.aelfred2; - -import java.util.Enumeration; -import java.util.Hashtable; - -import org.xml.sax.Parser; -import org.xml.sax.XMLReader; -import org.xml.sax.SAXException; -import org.xml.sax.SAXNotRecognizedException; -import org.xml.sax.SAXNotSupportedException; -import org.xml.sax.helpers.XMLReaderAdapter; - -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParser; -import javax.xml.parsers.SAXParserFactory; - - -/** - * Configurable factory to create an Ælfred2 JAXP parser; required - * to bootstrap using JAXP. You should use SAX2 directly where possible, - * rather than through JAXP, since that gives you better control. - * This class would normally be configured as a platform default factory. - * - * @author David Brownell - */ -public final class JAXPFactory extends SAXParserFactory -{ - private Hashtable flags = new Hashtable (); - - /** - * Constructs a factory which normally returns a non-validating - * parser. - */ - public JAXPFactory () { } - - public SAXParser newSAXParser () - throws ParserConfigurationException, SAXException - { - JaxpParser jaxp = new JaxpParser (); - Enumeration e = flags.keys (); - XMLReader parser = jaxp.getXMLReader (); - - parser.setFeature ( - SAXDriver.FEATURE + "namespaces", - isNamespaceAware ()); - parser.setFeature ( - SAXDriver.FEATURE + "validation", - isValidating ()); - // that makes SAX2 feature flags trump JAXP - - while (e.hasMoreElements ()) { - String uri = (String) e.nextElement (); - Boolean value = (Boolean) flags.get (uri); - parser.setFeature (uri, value.booleanValue ()); - } - - return jaxp; - } - - // yes, this "feature transfer" mechanism doesn't play well - - public void setFeature (String name, boolean value) - throws - ParserConfigurationException, - SAXNotRecognizedException, - SAXNotSupportedException - { - try { - // force "early" detection of errors where possible - // (flags can't necessarily be set before parsing) - new JaxpParser ().getXMLReader ().setFeature (name, value); - - flags.put (name, new Boolean (value)); - } catch (SAXNotRecognizedException e) { - throw new SAXNotRecognizedException (name); - } catch (SAXNotSupportedException e) { - throw new SAXNotSupportedException (name); - } catch (Exception e) { - throw new ParserConfigurationException ( - e.getClass ().getName () - + ": " - + e.getMessage ()); - } - } - - public boolean getFeature (String name) - throws - ParserConfigurationException, - SAXNotRecognizedException, - SAXNotSupportedException - { - Boolean value = (Boolean) flags.get (name); - - if (value == null) - return value.booleanValue (); - else - try { - return new JaxpParser ().getXMLReader ().getFeature (name); - } catch (SAXNotRecognizedException e) { - throw new SAXNotRecognizedException (name); - } catch (SAXNotSupportedException e) { - throw new SAXNotSupportedException (name); - } catch (SAXException e) { - throw new ParserConfigurationException ( - e.getClass ().getName () - + ": " - + e.getMessage ()); - } - } - - private static class JaxpParser extends SAXParser - { - private XmlReader ae2 = new XmlReader (); - private XMLReaderAdapter parser = null; - - JaxpParser () { } - - public void setProperty (String id, Object value) - throws SAXNotRecognizedException, SAXNotSupportedException - { ae2.setProperty (id, value); } - - public Object getProperty (String id) - throws SAXNotRecognizedException, SAXNotSupportedException - { return ae2.getProperty (id); } - - public Parser getParser () - throws SAXException - { - if (parser == null) - parser = new XMLReaderAdapter (ae2); - return parser; - } - - public XMLReader getXMLReader () - throws SAXException - { return ae2; } - - public boolean isNamespaceAware () - { - try { - return ae2.getFeature (SAXDriver.FEATURE + "namespaces"); - } catch (Exception e) { - throw new Error (); - } - } - - public boolean isValidating () - { - try { - return ae2.getFeature (SAXDriver.FEATURE + "validation"); - } catch (Exception e) { - throw new Error (); - } - } - } -} diff --git a/external/jaxp/source/gnu/xml/aelfred2/SAXDriver.java b/external/jaxp/source/gnu/xml/aelfred2/SAXDriver.java deleted file mode 100644 index 447cc8792..000000000 --- a/external/jaxp/source/gnu/xml/aelfred2/SAXDriver.java +++ /dev/null @@ -1,1272 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -// -// Copyright (c) 1998 by Microstar Software Ltd. -// From Microstar's README (the entire original license): -// -// Separate statements also said it's in the public domain. -// All modifications are distributed under the license -// above (GPL with library exception). -// -// AElfred is free for both commercial and non-commercial use and -// redistribution, provided that Microstar's copyright and disclaimer are -// retained intact. You are free to modify AElfred for your own use and -// to redistribute AElfred with your modifications, provided that the -// modifications are clearly documented. -// -// 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. Please use it AT -// YOUR OWN RISK. -// - - -package gnu.xml.aelfred2; - -import java.io.*; - -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Locale; -import java.util.Stack; - -// maintaining 1.1 compatibility for now ... more portable, PJava, etc -// Iterator, Hashmap and ArrayList ought to be faster -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; - -import org.xml.sax.*; -import org.xml.sax.ext.*; -import org.xml.sax.helpers.NamespaceSupport; - - -/** - * An enhanced SAX2 version of Microstar's Ælfred XML parser. - * The enhancements primarily relate to significant improvements in - * conformance to the XML specification, and SAX2 support. Performance - * has been improved. See the package level documentation for more - * information. - * - * <table border="1" width='100%' cellpadding='3' cellspacing='0'> - * <tr bgcolor='#ccccff'> - * <th><font size='+1'>Name</font></th> - * <th><font size='+1'>Notes</font></th></tr> - * - * <tr><td colspan=2><center><em>Features ... URL prefix is - * <b>http://xml.org/sax/features/</b></em></center></td></tr> - * - * <tr><td>(URL)/external-general-entities</td> - * <td>Value defaults to <em>true</em></td></tr> - * <tr><td>(URL)/external-parameter-entities</td> - * <td>Value defaults to <em>true</em></td></tr> - * <tr><td>(URL)/is-standalone</td> - * <td>(PRELIMINARY) Returns true iff the document's parsing - * has started (some non-error event after <em>startDocument()</em> - * was reported) and the document's standalone flag is set.</td></tr> - * <tr><td>(URL)/namespace-prefixes</td> - * <td>Value defaults to <em>false</em> (but XML 1.0 names are - * always reported)</td></tr> - * <tr><td>(URL)/lexical-handler/parameter-entities</td> - * <td>Value is fixed at <em>true</em></td></tr> - * <tr><td>(URL)/namespaces</td> - * <td>Value defaults to <em>true</em></td></tr> - * <tr><td>(URL)/resolve-dtd-uris</td> - * <td>(PRELIMINARY) Value defaults to <em>true</em></td></tr> - * <tr><td>(URL)/string-interning</td> - * <td>Value is fixed at <em>true</em></td></tr> - * <tr><td>(URL)/use-attributes2</td> - * <td>(PRELIMINARY) Value is fixed at <em>true</em></td></tr> - * <tr><td>(URL)/use-entity-resolver2</td> - * <td>(PRELIMINARY) Value defaults to <em>true</em></td></tr> - * <tr><td>(URL)/validation</td> - * <td>Value is fixed at <em>false</em></td></tr> - * - * <tr><td colspan=2><center><em>Handler Properties ... URL prefix is - * <b>http://xml.org/sax/properties/</b></em></center></td></tr> - * - * <tr><td>(URL)/declaration-handler</td> - * <td>A declaration handler may be provided. </td></tr> - * <tr><td>(URL)/lexical-handler</td> - * <td>A lexical handler may be provided. </td></tr> - * </table> - * - * <p>This parser currently implements the SAX1 Parser API, but - * it may not continue to do so in the future. - * - * @author Written by David Megginson (version 1.2a from Microstar) - * @author Updated by David Brownell <dbrownell@users.sourceforge.net> - * @see org.xml.sax.Parser - */ -final public class SAXDriver - implements Locator, Attributes2, XMLReader, Parser, AttributeList -{ - private final DefaultHandler2 base = new DefaultHandler2 (); - private XmlParser parser; - - private EntityResolver entityResolver = base; - private EntityResolver2 resolver2 = null; - private ContentHandler contentHandler = base; - private DTDHandler dtdHandler = base; - private ErrorHandler errorHandler = base; - private DeclHandler declHandler = base; - private LexicalHandler lexicalHandler = base; - - private String elementName = null; - private Stack entityStack = new Stack (); - - // could use just one vector (of object/struct): faster, smaller - private Vector attributeNames = new Vector (); - private Vector attributeNamespaces = new Vector (); - private Vector attributeLocalNames = new Vector (); - private Vector attributeValues = new Vector (); - private boolean attributeSpecified [] = new boolean[10]; - private boolean attributeDeclared [] = new boolean[10]; - - private boolean namespaces = true; - private boolean xmlNames = false; - private boolean extGE = true; - private boolean extPE = true; - private boolean resolveAll = true; - private boolean useResolver2 = true; - - private int attributeCount = 0; - private boolean attributes; - private String nsTemp [] = new String [3]; - private NamespaceSupport prefixStack; - - // - // Constructor. - // - - /** Constructs a SAX Parser. */ - public SAXDriver () {} - - - // - // Implementation of org.xml.sax.Parser. - // - - /** - * <b>SAX1</b>: Sets the locale used for diagnostics; currently, - * only locales using the English language are supported. - * @param locale The locale for which diagnostics will be generated - */ - public void setLocale (Locale locale) - throws SAXException - { - if ("en".equals (locale.getLanguage ())) - return ; - - throw new SAXException ("AElfred2 only supports English locales."); - } - - - /** - * <b>SAX2</b>: Returns the object used when resolving external - * entities during parsing (both general and parameter entities). - */ - public EntityResolver getEntityResolver () - { - return (entityResolver == base) ? null : entityResolver; - } - - /** - * <b>SAX1, SAX2</b>: Set the entity resolver for this parser. - * @param handler The object to receive entity events. - */ - public void setEntityResolver (EntityResolver resolver) - { - if (resolver instanceof EntityResolver2) - resolver2 = (EntityResolver2) resolver; - else - resolver2 = null; - if (resolver == null) - resolver = base; - entityResolver = resolver; - } - - - /** - * <b>SAX2</b>: Returns the object used to process declarations related - * to notations and unparsed entities. - */ - public DTDHandler getDTDHandler () - { - return (dtdHandler == base) ? null : dtdHandler; - } - - /** - * <b>SAX1, SAX2</b>: Set the DTD handler for this parser. - * @param handler The object to receive DTD events. - */ - public void setDTDHandler (DTDHandler handler) - { - if (handler == null) - handler = base; - this.dtdHandler = handler; - } - - - /** - * <b>SAX1</b>: Set the document handler for this parser. If a - * content handler was set, this document handler will supplant it. - * The parser is set to report all XML 1.0 names rather than to - * filter out "xmlns" attributes (the "namespace-prefixes" feature - * is set to true). - * - * @deprecated SAX2 programs should use the XMLReader interface - * and a ContentHandler. - * - * @param handler The object to receive document events. - */ - public void setDocumentHandler (DocumentHandler handler) - { - contentHandler = new Adapter (handler); - xmlNames = true; - } - - /** - * <b>SAX2</b>: Returns the object used to report the logical - * content of an XML document. - */ - public ContentHandler getContentHandler () - { - return contentHandler == base ? null : contentHandler; - } - - /** - * <b>SAX2</b>: Assigns the object used to report the logical - * content of an XML document. If a document handler was set, - * this content handler will supplant it (but XML 1.0 style name - * reporting may remain enabled). - */ - public void setContentHandler (ContentHandler handler) - { - if (handler == null) - handler = base; - contentHandler = handler; - } - - /** - * <b>SAX1, SAX2</b>: Set the error handler for this parser. - * @param handler The object to receive error events. - */ - public void setErrorHandler (ErrorHandler handler) - { - if (handler == null) - handler = base; - this.errorHandler = handler; - } - - /** - * <b>SAX2</b>: Returns the object used to receive callbacks for XML - * errors of all levels (fatal, nonfatal, warning); this is never null; - */ - public ErrorHandler getErrorHandler () - { return errorHandler == base ? null : errorHandler; } - - - /** - * <b>SAX1, SAX2</b>: Auxiliary API to parse an XML document, used mostly - * when no URI is available. - * If you want anything useful to happen, you should set - * at least one type of handler. - * @param source The XML input source. Don't set 'encoding' unless - * you know for a fact that it's correct. - * @see #setEntityResolver - * @see #setDTDHandler - * @see #setContentHandler - * @see #setErrorHandler - * @exception SAXException The handlers may throw any SAXException, - * and the parser normally throws SAXParseException objects. - * @exception IOException IOExceptions are normally through through - * the parser if there are problems reading the source document. - */ - public void parse (InputSource source) - throws SAXException, IOException - { - synchronized (base) { - parser = new XmlParser (); - if (namespaces) - prefixStack = new NamespaceSupport (); - else if (!xmlNames) - throw new IllegalStateException (); - parser.setHandler (this); - - try { - - Reader r = source.getCharacterStream(); - InputStream in = source.getByteStream(); - - - parser.doParse (source.getSystemId (), - source.getPublicId (), - r, - in, - source.getEncoding ()); - } catch (SAXException e) { - throw e; - } catch (IOException e) { - throw e; - } catch (RuntimeException e) { - throw e; - } catch (Exception e) { - throw new SAXParseException (e.getMessage (), this, e); - } finally { - contentHandler.endDocument (); - entityStack.removeAllElements (); - parser = null; - prefixStack = null; - } - } - } - - - /** - * <b>SAX1, SAX2</b>: Preferred API to parse an XML document, using a - * system identifier (URI). - */ - public void parse (String systemId) - throws SAXException, IOException - { - parse (new InputSource (systemId)); - } - - // - // Implementation of SAX2 "XMLReader" interface - // - static final String FEATURE = "http://xml.org/sax/features/"; - static final String PROPERTY = "http://xml.org/sax/properties/"; - - /** - * <b>SAX2</b>: Tells the value of the specified feature flag. - * - * @exception SAXNotRecognizedException thrown if the feature flag - * is neither built in, nor yet assigned. - */ - public boolean getFeature (String featureId) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if ((FEATURE + "validation").equals (featureId)) - return false; - - // external entities (both types) are optionally included - if ((FEATURE + "external-general-entities").equals (featureId)) - return extGE; - if ((FEATURE + "external-parameter-entities") .equals (featureId)) - return extPE; - - // element/attribute names are as written in document; no mangling - if ((FEATURE + "namespace-prefixes").equals (featureId)) - return xmlNames; - - // report element/attribute namespaces? - if ((FEATURE + "namespaces").equals (featureId)) - return namespaces; - - // all PEs and GEs are reported - if ((FEATURE + "lexical-handler/parameter-entities").equals (featureId)) - return true; - - // always interns - if ((FEATURE + "string-interning").equals (featureId)) - return true; - - // EXTENSIONS 1.1 - - // always returns isSpecified info - if ((FEATURE + "use-attributes2").equals (featureId)) - return true; - - // meaningful between startDocument/endDocument - if ((FEATURE + "is-standalone").equals (featureId)) { - if (parser == null) - throw new SAXNotSupportedException (featureId); - return parser.isStandalone (); - } - - // optionally don't absolutize URIs in declarations - if ((FEATURE + "resolve-dtd-uris").equals (featureId)) - return resolveAll; - - // optionally use resolver2 interface methods, if possible - if ((FEATURE + "use-entity-resolver2").equals (featureId)) - return useResolver2; - - throw new SAXNotRecognizedException (featureId); - } - - // package private - DeclHandler getDeclHandler () { return declHandler; } - - // package private - boolean resolveURIs () { return resolveAll; } - - /** - * <b>SAX2</b>: Returns the specified property. - * - * @exception SAXNotRecognizedException thrown if the property value - * is neither built in, nor yet stored. - */ - public Object getProperty (String propertyId) - throws SAXNotRecognizedException - { - if ((PROPERTY + "declaration-handler").equals (propertyId)) - return declHandler == base ? null : declHandler; - - if ((PROPERTY + "lexical-handler").equals (propertyId)) - return lexicalHandler == base ? null : lexicalHandler; - - // unknown properties - throw new SAXNotRecognizedException (propertyId); - } - - /** - * <b>SAX2</b>: Sets the state of feature flags in this parser. Some - * built-in feature flags are mutable. - */ - public void setFeature (String featureId, boolean value) - throws SAXNotRecognizedException, SAXNotSupportedException - { - boolean state; - - // Features with a defined value, we just change it if we can. - state = getFeature (featureId); - - if (state == value) - return; - if (parser != null) - throw new SAXNotSupportedException ("not while parsing"); - - if ((FEATURE + "namespace-prefixes").equals (featureId)) { - // in this implementation, this only affects xmlns reporting - xmlNames = value; - // forcibly prevent illegal parser state - if (!xmlNames) - namespaces = true; - return; - } - - if ((FEATURE + "namespaces").equals (featureId)) { - namespaces = value; - // forcibly prevent illegal parser state - if (!namespaces) - xmlNames = true; - return; - } - - if ((FEATURE + "external-general-entities").equals (featureId)) { - extGE = value; - return; - } - if ((FEATURE + "external-parameter-entities") .equals (featureId)) { - extPE = value; - return; - } - if ((FEATURE + "resolve-dtd-uris").equals (featureId)) { - resolveAll = value; - return; - } - - if ((FEATURE + "use-entity-resolver2").equals (featureId)) { - useResolver2 = value; - return; - } - - throw new SAXNotRecognizedException (featureId); - } - - /** - * <b>SAX2</b>: Assigns the specified property. Like SAX1 handlers, - * these may be changed at any time. - */ - public void setProperty (String propertyId, Object value) - throws SAXNotRecognizedException, SAXNotSupportedException - { - // see if the property is recognized - getProperty (propertyId); - - // Properties with a defined value, we just change it if we can. - - if ((PROPERTY + "declaration-handler").equals (propertyId)) { - if (value == null) - declHandler = base; - else if (! (value instanceof DeclHandler)) - throw new SAXNotSupportedException (propertyId); - else - declHandler = (DeclHandler) value; - return ; - } - - if ((PROPERTY + "lexical-handler").equals (propertyId)) { - if (value == null) - lexicalHandler = base; - else if (! (value instanceof LexicalHandler)) - throw new SAXNotSupportedException (propertyId); - else - lexicalHandler = (LexicalHandler) value; - return ; - } - - throw new SAXNotSupportedException (propertyId); - } - - - // - // This is where the driver receives XmlParser callbacks and translates - // them into SAX callbacks. Some more callbacks have been added for - // SAX2 support. - // - - void startDocument () - throws SAXException - { - contentHandler.setDocumentLocator (this); - contentHandler.startDocument (); - attributeNames.removeAllElements (); - attributeValues.removeAllElements (); - } - - void skippedEntity (String name) - throws SAXException - { contentHandler.skippedEntity (name); } - - InputSource getExternalSubset (String name, String baseURI) - throws SAXException, IOException - { - if (resolver2 == null || !useResolver2 || !extPE) - return null; - return resolver2.getExternalSubset (name, baseURI); - } - - InputSource resolveEntity (boolean isPE, String name, - InputSource in, String baseURI) - throws SAXException, IOException - { - InputSource source; - - // external entities might be skipped - if (isPE && !extPE) - return null; - if (!isPE && !extGE) - return null; - - // ... or not - lexicalHandler.startEntity (name); - if (resolver2 != null && useResolver2) { - source = resolver2.resolveEntity (name, in.getPublicId (), - baseURI, in.getSystemId ()); - if (source == null) { - in.setSystemId (absolutize (baseURI, - in.getSystemId (), false)); - source = in; - } - } else { - in.setSystemId (absolutize (baseURI, in.getSystemId (), false)); - source = entityResolver.resolveEntity (in.getPublicId (), - in.getSystemId ()); - if (source == null) - source = in; - } - startExternalEntity (name, source.getSystemId (), true); - return source; - } - - // absolutize a system ID relative to the specified base URI - // (temporarily) package-visible for external entity decls - String absolutize (String baseURI, String systemId, boolean nice) - throws MalformedURLException, SAXException - { - // FIXME normalize system IDs -- when? - // - Convert to UTF-8 - // - Map reserved and non-ASCII characters to %HH - - try { - if (baseURI == null) { - warn ("No base URI; hope this SYSTEM id is absolute: " - + systemId); - return new URL (systemId).toString (); - } else - return new URL (new URL (baseURI), systemId).toString (); - - } catch (MalformedURLException e) { - - // Let unknown URI schemes pass through unless we need - // the JVM to map them to i/o streams for us... - if (!nice) - throw e; - - // sometimes sysids for notations or unparsed entities - // aren't really URIs... - warn ("Can't absolutize SYSTEM id: " + e.getMessage ()); - return systemId; - } - } - - void startExternalEntity (String name, String systemId, - boolean stackOnly) - throws SAXException - { - // The following warning was deleted because the application has the - // option of not setting systemId. Sun's JAXP or Xerces seems to - // ignore this case. - /* - if (systemId == null) - warn ("URI was not reported to parser for entity " + name); - */ - if (!stackOnly) // spliced [dtd] needs startEntity - lexicalHandler.startEntity (name); - entityStack.push (systemId); - } - - void endExternalEntity (String name) - throws SAXException - { - if (!"[document]".equals (name)) - lexicalHandler.endEntity (name); - entityStack.pop (); - } - - void startInternalEntity (String name) - throws SAXException - { - lexicalHandler.startEntity (name); - } - - void endInternalEntity (String name) - throws SAXException - { - lexicalHandler.endEntity (name); - } - - void doctypeDecl (String name, String publicId, String systemId) - throws SAXException - { - lexicalHandler.startDTD (name, publicId, systemId); - - // ... the "name" is a declaration and should be given - // to the DeclHandler (but sax2 doesn't). - - // the IDs for the external subset are lexical details, - // as are the contents of the internal subset; but sax2 - // doesn't provide the internal subset "pre-parse" - } - - void notationDecl (String name, String ids []) - throws SAXException - { - try { - dtdHandler.notationDecl (name, ids [0], - (resolveAll && ids [1] != null) - ? absolutize (ids [2], ids [1], true) - : ids [1]); - } catch (IOException e) { - // "can't happen" - throw new SAXParseException (e.getMessage (), this, e); - } - } - - void unparsedEntityDecl (String name, String ids [], String notation) - throws SAXException - { - try { - dtdHandler.unparsedEntityDecl (name, ids [0], - resolveAll - ? absolutize (ids [2], ids [1], true) - : ids [1], - notation); - } catch (IOException e) { - // "can't happen" - throw new SAXParseException (e.getMessage (), this, e); - } - } - - void endDoctype () - throws SAXException - { - lexicalHandler.endDTD (); - } - - private void declarePrefix (String prefix, String uri) - throws SAXException - { - int index = uri.indexOf (':'); - - // many versions of nwalsh docbook stylesheets - // have bogus URLs; so this can't be an error... - if (index < 1 && uri.length () != 0) - warn ("relative URI for namespace: " + uri); - - // FIXME: char [0] must be ascii alpha; chars [1..index] - // must be ascii alphanumeric or in "+-." [RFC 2396] - - uri = uri.intern (); - prefixStack.declarePrefix (prefix, uri); - contentHandler.startPrefixMapping (prefix, uri); - } - - void attribute (String qname, String value, boolean isSpecified) - throws SAXException - { - if (!attributes) { - attributes = true; - if (namespaces) - prefixStack.pushContext (); - } - - // process namespace decls immediately; - // then maybe forget this as an attribute - if (namespaces) { - int index; - - // default NS declaration? - if ("xmlns" == qname) { - declarePrefix ("", value); - if (!xmlNames) - return; - } - - // NS prefix declaration? - else if ((index = qname.indexOf (':')) == 5 - && qname.startsWith ("xmlns")) { - String prefix = qname.substring (6); - - if (value.length () == 0) { - verror ("missing URI in namespace decl attribute: " - + qname); - } else - declarePrefix (prefix, value); - if (!xmlNames) - return; - } - } - - // remember this attribute ... - - if (attributeCount == attributeSpecified.length) { // grow array? - boolean temp [] = new boolean [attributeSpecified.length + 5]; - System.arraycopy (attributeSpecified, 0, temp, 0, attributeCount); - attributeSpecified = temp; - } - attributeSpecified [attributeCount] = isSpecified; - - attributeCount++; - attributeNames.addElement (qname); - // attribute type comes from querying parser's DTD records - attributeValues.addElement (value); - - // ... patching {lname, uri} later, if needed - attributeNamespaces.addElement (""); - attributeLocalNames.addElement (""); - } - - void startElement (String elname) - throws SAXException - { - ContentHandler handler = contentHandler; - - // - // NOTE: this implementation of namespace support adds something - // like six percent to parsing CPU time, in a large (~50 MB) - // document that doesn't use namespaces at all. (Measured by PC - // sampling, with a bug where endElement processing was omitted.) - // [Measurement referred to older implementation, older JVM ...] - // - // It ought to become notably faster in such cases. Most - // costs are the prefix stack calling Hashtable.get() (2%), - // String.hashCode() (1.5%) and about 1.3% each for pushing - // the context, and two chunks of name processing. - // - - if (!attributes) { - if (namespaces) - prefixStack.pushContext (); - } else if (namespaces) { - - // now we can patch up namespace refs; we saw all the - // declarations, so now we'll do the Right Thing - for (int i = 0; i < attributeCount; i++) { - String qname = (String) attributeNames.elementAt (i); - int index; - - // default NS declaration? - if ("xmlns" == qname) - continue; - - index = qname.indexOf (':'); - - // NS prefix declaration? - if (index == 5 && qname.startsWith ("xmlns")) - continue; - - // it's not a NS decl; patch namespace info items - if (prefixStack.processName (qname, nsTemp, true) == null) - verror ("undeclared attribute prefix in: " + qname); - else { - attributeNamespaces.setElementAt (nsTemp [0], i); - attributeLocalNames.setElementAt (nsTemp [1], i); - } - } - } - - // save element name so attribute callbacks work - elementName = elname; - if (namespaces) { - if (prefixStack.processName (elname, nsTemp, false) == null) { - verror ("undeclared element prefix in: " + elname); - nsTemp [0] = nsTemp [1] = ""; - } - handler.startElement (nsTemp [0], nsTemp [1], elname, this); - } else - handler.startElement ("", "", elname, this); - // elementName = null; - - // elements with no attributes are pretty common! - if (attributes) { - attributeNames.removeAllElements (); - attributeNamespaces.removeAllElements (); - attributeLocalNames.removeAllElements (); - attributeValues.removeAllElements (); - attributeCount = 0; - attributes = false; - } - } - - void endElement (String elname) - throws SAXException - { - ContentHandler handler = contentHandler; - - if (!namespaces) { - handler.endElement ("", "", elname); - return; - } - prefixStack.processName (elname, nsTemp, false); - handler.endElement (nsTemp [0], nsTemp [1], elname); - - Enumeration prefixes = prefixStack.getDeclaredPrefixes (); - - while (prefixes.hasMoreElements ()) - handler.endPrefixMapping ((String) prefixes.nextElement ()); - prefixStack.popContext (); - } - - void startCDATA () - throws SAXException - { - lexicalHandler.startCDATA (); - } - - void charData (char ch[], int start, int length) - throws SAXException - { - contentHandler.characters (ch, start, length); - } - - void endCDATA () - throws SAXException - { - lexicalHandler.endCDATA (); - } - - void ignorableWhitespace (char ch[], int start, int length) - throws SAXException - { - contentHandler.ignorableWhitespace (ch, start, length); - } - - void processingInstruction (String target, String data) - throws SAXException - { - contentHandler.processingInstruction (target, data); - } - - void comment (char ch[], int start, int length) - throws SAXException - { - if (lexicalHandler != base) - lexicalHandler.comment (ch, start, length); - } - - void fatal (String message) - throws SAXException - { - SAXParseException fatal; - - fatal = new SAXParseException (message, this); - errorHandler.fatalError (fatal); - - // Even if the application can continue ... we can't! - throw fatal; - } - - // We can safely report a few validity errors that - // make layered SAX2 DTD validation more conformant - void verror (String message) - throws SAXException - { - SAXParseException err; - - err = new SAXParseException (message, this); - errorHandler.error (err); - } - - void warn (String message) - throws SAXException - { - SAXParseException err; - - err = new SAXParseException (message, this); - errorHandler.warning (err); - } - - - // - // Implementation of org.xml.sax.Attributes. - // - - /** - * <b>SAX1 AttributeList, SAX2 Attributes</b> method - * (don't invoke on parser); - */ - public int getLength () - { - return attributeNames.size (); - } - - /** - * <b>SAX2 Attributes</b> method (don't invoke on parser); - */ - public String getURI (int index) - { - return (String) (attributeNamespaces.elementAt (index)); - } - - /** - * <b>SAX2 Attributes</b> method (don't invoke on parser); - */ - public String getLocalName (int index) - { - return (String) (attributeLocalNames.elementAt (index)); - } - - /** - * <b>SAX2 Attributes</b> method (don't invoke on parser); - */ - public String getQName (int i) - { - return (String) (attributeNames.elementAt (i)); - } - - /** - * <b>SAX1 AttributeList</b> method (don't invoke on parser); - */ - public String getName (int i) - { - return (String) (attributeNames.elementAt (i)); - } - - /** - * <b>SAX1 AttributeList, SAX2 Attributes</b> method - * (don't invoke on parser); - */ - public String getType (int i) - { - String type = parser.getAttributeType (elementName, getQName (i)); - if (type == null) - return "CDATA"; - // ... use DeclHandler.attributeDecl to see enumerations - if (type == "ENUMERATION") - return "NMTOKEN"; - return type; - } - - - /** - * <b>SAX1 AttributeList, SAX2 Attributes</b> method - * (don't invoke on parser); - */ - public String getValue (int i) - { - return (String) (attributeValues.elementAt (i)); - } - - - /** - * <b>SAX2 Attributes</b> method (don't invoke on parser); - */ - public int getIndex (String uri, String local) - { - int length = getLength (); - - for (int i = 0; i < length; i++) { - if (!getURI (i).equals (uri)) - continue; - if (getLocalName (i).equals (local)) - return i; - } - return -1; - } - - - /** - * <b>SAX2 Attributes</b> method (don't invoke on parser); - */ - public int getIndex (String xmlName) - { - int length = getLength (); - - for (int i = 0; i < length; i++) { - if (getQName (i).equals (xmlName)) - return i; - } - return -1; - } - - - /** - * <b>SAX2 Attributes</b> method (don't invoke on parser); - */ - public String getType (String uri, String local) - { - int index = getIndex (uri, local); - - if (index < 0) - return null; - return getType (index); - } - - - /** - * <b>SAX1 AttributeList, SAX2 Attributes</b> method - * (don't invoke on parser); - */ - public String getType (String xmlName) - { - int index = getIndex (xmlName); - - if (index < 0) - return null; - return getType (index); - } - - - /** - * <b>SAX Attributes</b> method (don't invoke on parser); - */ - public String getValue (String uri, String local) - { - int index = getIndex (uri, local); - - if (index < 0) - return null; - return getValue (index); - } - - - /** - * <b>SAX1 AttributeList, SAX2 Attributes</b> method - * (don't invoke on parser); - */ - public String getValue (String xmlName) - { - int index = getIndex (xmlName); - - if (index < 0) - return null; - return getValue (index); - } - - - // - // Implementation of org.xml.sax.ext.Attributes2 - // - - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.ArrayIndexOutOfBoundsException - * When the supplied index does not identify an attribute. - */ - public boolean isDeclared (int index) - { - if (index < 0 || index >= attributeCount) - throw new ArrayIndexOutOfBoundsException (); - return attributeDeclared [index]; - } - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.IllegalArgumentException - * When the supplied names do not identify an attribute. - */ - public boolean isDeclared (java.lang.String qName) - { - int index = getIndex (qName); - if (index < 0) - throw new IllegalArgumentException (); - return attributeDeclared [index]; - } - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.IllegalArgumentException - * When the supplied names do not identify an attribute. - */ - public boolean isDeclared (java.lang.String uri, java.lang.String localName) - { - int index = getIndex (uri, localName); - if (index < 0) - throw new IllegalArgumentException (); - return attributeDeclared [index]; - } - - - /** - * <b>SAX-ext Attributes2</b> method (don't invoke on parser); - */ - public boolean isSpecified (int index) - { - if (index < 0 || index >= attributeCount) - throw new ArrayIndexOutOfBoundsException (); - return attributeSpecified [index]; - } - - /** - * <b>SAX-ext Attributes2</b> method (don't invoke on parser); - */ - public boolean isSpecified (String uri, String local) - { - int index = getIndex (uri, local); - - if (index < 0) - throw new IllegalArgumentException (); - return attributeSpecified [index]; - } - - /** - * <b>SAX-ext Attributes2</b> method (don't invoke on parser); - */ - public boolean isSpecified (String xmlName) - { - int index = getIndex (xmlName); - - if (index < 0) - throw new IllegalArgumentException (); - return attributeSpecified [index]; - } - - - // - // Implementation of org.xml.sax.Locator. - // - - /** - * <b>SAX Locator</b> method (don't invoke on parser); - */ - public String getPublicId () - { - return null; // FIXME track public IDs too - } - - /** - * <b>SAX Locator</b> method (don't invoke on parser); - */ - public String getSystemId () - { - if (entityStack.empty ()) - return null; - else - return (String) entityStack.peek (); - } - - /** - * <b>SAX Locator</b> method (don't invoke on parser); - */ - public int getLineNumber () - { - return parser.getLineNumber (); - } - - /** - * <b>SAX Locator</b> method (don't invoke on parser); - */ - public int getColumnNumber () - { - return parser.getColumnNumber (); - } - - // adapter between SAX2 content handler and SAX1 document handler callbacks - private static class Adapter implements ContentHandler - { - private DocumentHandler docHandler; - - Adapter (DocumentHandler dh) - { docHandler = dh; } - - - public void setDocumentLocator (Locator l) - { docHandler.setDocumentLocator (l); } - - public void startDocument () throws SAXException - { docHandler.startDocument (); } - - public void processingInstruction (String target, String data) - throws SAXException - { docHandler.processingInstruction (target, data); } - - public void startPrefixMapping (String prefix, String uri) - { /* ignored */ } - - public void startElement ( - String namespace, - String local, - String name, - Attributes attrs - ) throws SAXException - { docHandler.startElement (name, (AttributeList) attrs); } - - public void characters (char buf [], int offset, int len) - throws SAXException - { docHandler.characters (buf, offset, len); } - - public void ignorableWhitespace (char buf [], int offset, int len) - throws SAXException - { docHandler.ignorableWhitespace (buf, offset, len); } - - public void skippedEntity (String name) - { /* ignored */ } - - public void endElement (String u, String l, String name) - throws SAXException - { docHandler.endElement (name); } - - public void endPrefixMapping (String prefix) - { /* ignored */ } - - public void endDocument () throws SAXException - { docHandler.endDocument (); } - } -} diff --git a/external/jaxp/source/gnu/xml/aelfred2/XmlParser.java b/external/jaxp/source/gnu/xml/aelfred2/XmlParser.java deleted file mode 100644 index 8e57c265a..000000000 --- a/external/jaxp/source/gnu/xml/aelfred2/XmlParser.java +++ /dev/null @@ -1,4761 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -// -// Copyright (c) 1997, 1998 by Microstar Software Ltd. -// From Microstar's README (the entire original license): -// -// Separate statements also said it's in the public domain. -// All modifications are distributed under the license -// above (GPL with library exception). -// -// AElfred is free for both commercial and non-commercial use and -// redistribution, provided that Microstar's copyright and disclaimer are -// retained intact. You are free to modify AElfred for your own use and -// to redistribute AElfred with your modifications, provided that the -// modifications are clearly documented. -// -// 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. Please use it AT -// YOUR OWN RISK. -// - - -package gnu.xml.aelfred2; - -import java.io.BufferedInputStream; -import java.io.CharConversionException; -import java.io.EOFException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.io.IOException; -import java.io.Reader; -import java.io.UnsupportedEncodingException; -import java.net.URL; -import java.net.URLConnection; - -// maintaining 1.1 compatibility for now ... -// Iterator and Hashmap ought to be faster -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Stack; - -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - - -/** - * Parse XML documents and return parse events through call-backs. - * Use the <code>SAXDriver</code> class as your entry point, as all - * internal parser interfaces are subject to change. - * - * @author Written by David Megginson <dmeggins@microstar.com> - * (version 1.2a with bugfixes) - * @author Updated by David Brownell <dbrownell@users.sourceforge.net> - * @see SAXDriver - */ -final class XmlParser -{ - // avoid slow per-character readCh() - private final static boolean USE_CHEATS = true; - - - ////////////////////////////////////////////////////////////////////// - // Constructors. - //////////////////////////////////////////////////////////////////////// - - - /** - * Construct a new parser with no associated handler. - * @see #setHandler - * @see #parse - */ - // package private - XmlParser () - { - } - - - /** - * Set the handler that will receive parsing events. - * @param handler The handler to receive callback events. - * @see #parse - */ - // package private - void setHandler (SAXDriver handler) - { - this.handler = handler; - } - - - /** - * Parse an XML document from the character stream, byte stream, or URI - * that you provide (in that order of preference). Any URI that you - * supply will become the base URI for resolving relative URI, and may - * be used to acquire a reader or byte stream. - * - * <p> Only one thread at a time may use this parser; since it is - * private to this package, post-parse cleanup is done by the caller, - * which MUST NOT REUSE the parser (just null it). - * - * @param systemId Absolute URI of the document; should never be null, - * but may be so iff a reader <em>or</em> a stream is provided. - * @param publicId The public identifier of the document, or null. - * @param reader A character stream; must be null if stream isn't. - * @param stream A byte input stream; must be null if reader isn't. - * @param encoding The suggested encoding, or null if unknown. - * @exception java.lang.Exception Basically SAXException or IOException - */ - // package private - void doParse ( - String systemId, - String publicId, - Reader reader, - InputStream stream, - String encoding - ) throws Exception - { - if (handler == null) - throw new IllegalStateException ("no callback handler"); - - initializeVariables (); - - // predeclare the built-in entities here (replacement texts) - // we don't need to intern(), since we're guaranteed literals - // are always (globally) interned. - setInternalEntity ("amp", "&"); - setInternalEntity ("lt", "<"); - setInternalEntity ("gt", ">"); - setInternalEntity ("apos", "'"); - setInternalEntity ("quot", """); - - try { - // pushURL first to ensure locator is correct in startDocument - // ... it might report an IO or encoding exception. - // FIXME that could call endDocument without startDocument! - pushURL (false, "[document]", - // default baseURI: null - new String [] { publicId, systemId, null}, - reader, stream, encoding, false); - - handler.startDocument (); - parseDocument (); - } finally { - if (reader != null) - try { reader.close (); - } catch (IOException e) { /* ignore */ } - if (stream != null) - try { stream.close (); - } catch (IOException e) { /* ignore */ } - if (is != null) - try { is.close (); - } catch (IOException e) { /* ignore */ } - if (reader != null) - try { - reader.close (); - } catch (IOException e) { /* ignore */ - } - scratch = null; - } - } - - - //////////////////////////////////////////////////////////////////////// - // Constants. - //////////////////////////////////////////////////////////////////////// - - // - // Constants for element content type. - // - - /** - * Constant: an element has not been declared. - * @see #getElementContentType - */ - public final static int CONTENT_UNDECLARED = 0; - - /** - * Constant: the element has a content model of ANY. - * @see #getElementContentType - */ - public final static int CONTENT_ANY = 1; - - /** - * Constant: the element has declared content of EMPTY. - * @see #getElementContentType - */ - public final static int CONTENT_EMPTY = 2; - - /** - * Constant: the element has mixed content. - * @see #getElementContentType - */ - public final static int CONTENT_MIXED = 3; - - /** - * Constant: the element has element content. - * @see #getElementContentType - */ - public final static int CONTENT_ELEMENTS = 4; - - - // - // Constants for the entity type. - // - - /** - * Constant: the entity has not been declared. - * @see #getEntityType - */ - public final static int ENTITY_UNDECLARED = 0; - - /** - * Constant: the entity is internal. - * @see #getEntityType - */ - public final static int ENTITY_INTERNAL = 1; - - /** - * Constant: the entity is external, non-parsable data. - * @see #getEntityType - */ - public final static int ENTITY_NDATA = 2; - - /** - * Constant: the entity is external XML data. - * @see #getEntityType - */ - public final static int ENTITY_TEXT = 3; - - - // - // Attribute type constants are interned literal strings. - // - - // - // Constants for supported encodings. "external" is just a flag. - // - private final static int ENCODING_EXTERNAL = 0; - private final static int ENCODING_UTF_8 = 1; - private final static int ENCODING_ISO_8859_1 = 2; - private final static int ENCODING_UCS_2_12 = 3; - private final static int ENCODING_UCS_2_21 = 4; - private final static int ENCODING_UCS_4_1234 = 5; - private final static int ENCODING_UCS_4_4321 = 6; - private final static int ENCODING_UCS_4_2143 = 7; - private final static int ENCODING_UCS_4_3412 = 8; - private final static int ENCODING_ASCII = 9; - - - // - // Constants for attribute default value. - // - - /** - * Constant: the attribute is not declared. - * @see #getAttributeDefaultValueType - */ - public final static int ATTRIBUTE_DEFAULT_UNDECLARED = 30; - - /** - * Constant: the attribute has a literal default value specified. - * @see #getAttributeDefaultValueType - * @see #getAttributeDefaultValue - */ - public final static int ATTRIBUTE_DEFAULT_SPECIFIED = 31; - - /** - * Constant: the attribute was declared #IMPLIED. - * @see #getAttributeDefaultValueType - */ - public final static int ATTRIBUTE_DEFAULT_IMPLIED = 32; - - /** - * Constant: the attribute was declared #REQUIRED. - * @see #getAttributeDefaultValueType - */ - public final static int ATTRIBUTE_DEFAULT_REQUIRED = 33; - - /** - * Constant: the attribute was declared #FIXED. - * @see #getAttributeDefaultValueType - * @see #getAttributeDefaultValue - */ - public final static int ATTRIBUTE_DEFAULT_FIXED = 34; - - - // - // Constants for input. - // - private final static int INPUT_NONE = 0; - private final static int INPUT_INTERNAL = 1; - private final static int INPUT_STREAM = 3; - private final static int INPUT_READER = 5; - - - // - // Flags for reading literals. - // - // expand general entity refs (attribute values in dtd and content) - private final static int LIT_ENTITY_REF = 2; - // normalize this value (space chars) (attributes, public ids) - private final static int LIT_NORMALIZE = 4; - // literal is an attribute value - private final static int LIT_ATTRIBUTE = 8; - // don't expand parameter entities - private final static int LIT_DISABLE_PE = 16; - // don't expand [or parse] character refs - private final static int LIT_DISABLE_CREF = 32; - // don't parse general entity refs - private final static int LIT_DISABLE_EREF = 64; - // literal is a public ID value - private final static int LIT_PUBID = 256; - - - // - // Flags affecting PE handling in DTDs (if expandPE is true). - // PEs expand with space padding, except inside literals. - // - private final static int CONTEXT_NORMAL = 0; - private final static int CONTEXT_LITERAL = 1; - - - ////////////////////////////////////////////////////////////////////// - // Error reporting. - ////////////////////////////////////////////////////////////////////// - - - /** - * Report an error. - * @param message The error message. - * @param textFound The text that caused the error (or null). - * @see SAXDriver#error - * @see #line - */ - private void error (String message, String textFound, String textExpected) - throws SAXException - { - if (textFound != null) { - message = message + " (found \"" + textFound + "\")"; - } - if (textExpected != null) { - message = message + " (expected \"" + textExpected + "\")"; - } - handler.fatal (message); - - // "can't happen" - throw new SAXException (message); - } - - - /** - * Report a serious error. - * @param message The error message. - * @param textFound The text that caused the error (or null). - */ - private void error (String message, char textFound, String textExpected) - throws SAXException - { - error (message, new Character (textFound).toString (), textExpected); - } - - /** Report typical case fatal errors. */ - private void error (String message) - throws SAXException - { - handler.fatal (message); - } - - - ////////////////////////////////////////////////////////////////////// - // Major syntactic productions. - ////////////////////////////////////////////////////////////////////// - - - /** - * Parse an XML document. - * <pre> - * [1] document ::= prolog element Misc* - * </pre> - * <p>This is the top-level parsing function for a single XML - * document. As a minimum, a well-formed document must have - * a document element, and a valid document must have a prolog - * (one with doctype) as well. - */ - private void parseDocument () - throws Exception - { - try { // added by MHK - boolean sawDTD = parseProlog (); - require ('<'); - parseElement (!sawDTD); - } catch (EOFException ee) { // added by MHK - error("premature end of file", "[EOF]", null); - } - - try { - parseMisc (); //skip all white, PIs, and comments - char c = readCh (); //if this doesn't throw an exception... - error ("unexpected characters after document end", c, null); - } catch (EOFException e) { - return; - } - } - - static final char startDelimComment [] = { '<', '!', '-', '-' }; - static final char endDelimComment [] = { '-', '-' }; - - /** - * Skip a comment. - * <pre> - * [15] Comment ::= '<!--' ((Char - '-') | ('-' (Char - '-')))* "-->" - * </pre> - * <p> (The <code><!--</code> has already been read.) - */ - private void parseComment () - throws Exception - { - char c; - boolean saved = expandPE; - - expandPE = false; - parseUntil (endDelimComment); - require ('>'); - expandPE = saved; - handler.comment (dataBuffer, 0, dataBufferPos); - dataBufferPos = 0; - } - - static final char startDelimPI [] = { '<', '?' }; - static final char endDelimPI [] = { '?', '>' }; - - /** - * Parse a processing instruction and do a call-back. - * <pre> - * [16] PI ::= '<?' PITarget - * (S (Char* - (Char* '?>' Char*)))? - * '?>' - * [17] PITarget ::= Name - ( ('X'|'x') ('M'|m') ('L'|l') ) - * </pre> - * <p> (The <code><?</code> has already been read.) - */ - private void parsePI () - throws SAXException, IOException - { - String name; - boolean saved = expandPE; - - expandPE = false; - name = readNmtoken (true); - if ("xml".equalsIgnoreCase (name)) - error ("Illegal processing instruction target", name, null); - if (!tryRead (endDelimPI)) { - requireWhitespace (); - parseUntil (endDelimPI); - } - expandPE = saved; - handler.processingInstruction (name, dataBufferToString ()); - } - - - static final char endDelimCDATA [] = { ']', ']', '>' }; - - /** - * Parse a CDATA section. - * <pre> - * [18] CDSect ::= CDStart CData CDEnd - * [19] CDStart ::= '<![CDATA[' - * [20] CData ::= (Char* - (Char* ']]>' Char*)) - * [21] CDEnd ::= ']]>' - * </pre> - * <p> (The '<![CDATA[' has already been read.) - */ - private void parseCDSect () - throws Exception - { - parseUntil (endDelimCDATA); - dataBufferFlush (); - } - - - /** - * Parse the prolog of an XML document. - * <pre> - * [22] prolog ::= XMLDecl? Misc* (Doctypedecl Misc*)? - * </pre> - * <p>We do not look for the XML declaration here, because it was - * handled by pushURL (). - * @see pushURL - * @return true if a DTD was read. - */ - private boolean parseProlog () - throws Exception - { - parseMisc (); - - if (tryRead ("<!DOCTYPE")) { - parseDoctypedecl (); - parseMisc (); - return true; - } - return false; - } - - private void checkLegalVersion (String version) - throws SAXException - { - int len = version.length (); - for (int i = 0; i < len; i++) { - char c = version.charAt (i); - if ('0' <= c && c <= '9') - continue; - if (c == '_' || c == '.' || c == ':' || c == '-') - continue; - if ('a' <= c && c <= 'z') - continue; - if ('A' <= c && c <= 'Z') - continue; - error ("illegal character in version", version, "1.0"); - } - } - - - /** - * Parse the XML declaration. - * <pre> - * [23] XMLDecl ::= '<?xml' VersionInfo EncodingDecl? SDDecl? S? '?>' - * [24] VersionInfo ::= S 'version' Eq - * ("'" VersionNum "'" | '"' VersionNum '"' ) - * [26] VersionNum ::= ([a-zA-Z0-9_.:] | '-')* - * [32] SDDecl ::= S 'standalone' Eq - * ( "'"" ('yes' | 'no') "'"" | '"' ("yes" | "no") '"' ) - * [80] EncodingDecl ::= S 'encoding' Eq - * ( "'" EncName "'" | "'" EncName "'" ) - * [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* - * </pre> - * <p> (The <code><?xml</code> and whitespace have already been read.) - * @return the encoding in the declaration, uppercased; or null - * @see #parseTextDecl - * @see #setupDecoding - */ - private String parseXMLDecl (boolean ignoreEncoding) - throws SAXException, IOException - { - String version; - String encodingName = null; - String standalone = null; - int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; - - // Read the version. - require ("version"); - parseEq (); - checkLegalVersion (version = readLiteral (flags)); - if (!version.equals ("1.0")) - handler.warn ("expected XML version 1.0, not: " + version); - - // Try reading an encoding declaration. - boolean white = tryWhitespace (); - - if (tryRead ("encoding")) { - if (!white) - error ("whitespace required before 'encoding='"); - parseEq (); - encodingName = readLiteral (flags); - if (!ignoreEncoding) - setupDecoding (encodingName); - } - - // Try reading a standalone declaration - if (encodingName != null) - white = tryWhitespace (); - if (tryRead ("standalone")) { - if (!white) - error ("whitespace required before 'standalone='"); - parseEq (); - standalone = readLiteral (flags); - if ("yes".equals (standalone)) - docIsStandalone = true; - else if (!"no".equals (standalone)) - error ("standalone flag must be 'yes' or 'no'"); - } - - skipWhitespace (); - require ("?>"); - - return encodingName; - } - - - /** - * Parse a text declaration. - * <pre> - * [79] TextDecl ::= '<?xml' VersionInfo? EncodingDecl S? '?>' - * [80] EncodingDecl ::= S 'encoding' Eq - * ( '"' EncName '"' | "'" EncName "'" ) - * [81] EncName ::= [A-Za-z] ([A-Za-z0-9._] | '-')* - * </pre> - * <p> (The <code><?xml</code>' and whitespace have already been read.) - * @return the encoding in the declaration, uppercased; or null - * @see #parseXMLDecl - * @see #setupDecoding - */ - private String parseTextDecl (boolean ignoreEncoding) - throws SAXException, IOException - { - String encodingName = null; - int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; - - // Read an optional version. - if (tryRead ("version")) { - String version; - parseEq (); - checkLegalVersion (version = readLiteral (flags)); - if (!version.equals ("1.0")) - handler.warn ("expected XML version 1.0, not: " + version); - requireWhitespace (); - } - - - // Read the encoding. - require ("encoding"); - parseEq (); - encodingName = readLiteral (flags); - if (!ignoreEncoding) - setupDecoding (encodingName); - - skipWhitespace (); - require ("?>"); - - return encodingName; - } - - - /** - * Sets up internal state so that we can decode an entity using the - * specified encoding. This is used when we start to read an entity - * and we have been given knowledge of its encoding before we start to - * read any data (e.g. from a SAX input source or from a MIME type). - * - * <p> It is also used after autodetection, at which point only very - * limited adjustments to the encoding may be used (switching between - * related builtin decoders). - * - * @param encodingName The name of the encoding specified by the user. - * @exception IOException if the encoding isn't supported either - * internally to this parser, or by the hosting JVM. - * @see #parseXMLDecl - * @see #parseTextDecl - */ - private void setupDecoding (String encodingName) - throws SAXException, IOException - { - encodingName = encodingName.toUpperCase (); - - // ENCODING_EXTERNAL indicates an encoding that wasn't - // autodetected ... we can use builtin decoders, or - // ones from the JVM (InputStreamReader). - - // Otherwise we can only tweak what was autodetected, and - // only for single byte (ASCII derived) builtin encodings. - - // ASCII-derived encodings - if (encoding == ENCODING_UTF_8 || encoding == ENCODING_EXTERNAL) { - if (encodingName.equals ("ISO-8859-1") - || encodingName.equals ("8859_1") - || encodingName.equals ("ISO8859_1") - ) { - encoding = ENCODING_ISO_8859_1; - return; - } else if (encodingName.equals ("US-ASCII") - || encodingName.equals ("ASCII")) { - encoding = ENCODING_ASCII; - return; - } else if (encodingName.equals ("UTF-8") - || encodingName.equals ("UTF8")) { - encoding = ENCODING_UTF_8; - return; - } else if (encoding != ENCODING_EXTERNAL) { - // used to start with a new reader ... - throw new UnsupportedEncodingException (encodingName); - } - // else fallthrough ... - // it's ASCII-ish and something other than a builtin - } - - // Unicode and such - if (encoding == ENCODING_UCS_2_12 || encoding == ENCODING_UCS_2_21) { - if (!(encodingName.equals ("ISO-10646-UCS-2") - || encodingName.equals ("UTF-16") - || encodingName.equals ("UTF-16BE") - || encodingName.equals ("UTF-16LE"))) - error ("unsupported Unicode encoding", - encodingName, - "UTF-16"); - return; - } - - // four byte encodings - if (encoding == ENCODING_UCS_4_1234 - || encoding == ENCODING_UCS_4_4321 - || encoding == ENCODING_UCS_4_2143 - || encoding == ENCODING_UCS_4_3412) { - // Strictly: "UCS-4" == "UTF-32BE"; also, "UTF-32LE" exists - if (!encodingName.equals ("ISO-10646-UCS-4")) - error ("unsupported 32-bit encoding", - encodingName, - "ISO-10646-UCS-4"); - return; - } - - // assert encoding == ENCODING_EXTERNAL - // if (encoding != ENCODING_EXTERNAL) - // throw new RuntimeException ("encoding = " + encoding); - - if (encodingName.equals ("UTF-16BE")) { - encoding = ENCODING_UCS_2_12; - return; - } - if (encodingName.equals ("UTF-16LE")) { - encoding = ENCODING_UCS_2_21; - return; - } - - // We couldn't use the builtin decoders at all. But we can try to - // create a reader, since we haven't messed up buffering. Tweak - // the encoding name if necessary. - - if (encodingName.equals ("UTF-16") - || encodingName.equals ("ISO-10646-UCS-2")) - encodingName = "Unicode"; - // Ignoring all the EBCDIC aliases here - - reader = new InputStreamReader (is, encodingName); - sourceType = INPUT_READER; - } - - - /** - * Parse miscellaneous markup outside the document element and DOCTYPE - * declaration. - * <pre> - * [27] Misc ::= Comment | PI | S - * </pre> - */ - private void parseMisc () - throws Exception - { - while (true) { - skipWhitespace (); - if (tryRead (startDelimPI)) { - parsePI (); - } else if (tryRead (startDelimComment)) { - parseComment (); - } else { - return; - } - } - } - - - /** - * Parse a document type declaration. - * <pre> - * [28] doctypedecl ::= '<!DOCTYPE' S Name (S ExternalID)? S? - * ('[' (markupdecl | PEReference | S)* ']' S?)? '>' - * </pre> - * <p> (The <code><!DOCTYPE</code> has already been read.) - */ - private void parseDoctypedecl () - throws Exception - { - String rootName, ids[]; - - // Read the document type name. - requireWhitespace (); - rootName = readNmtoken (true); - - // Read the External subset's IDs - skipWhitespace (); - ids = readExternalIds (false, true); - - // report (a) declaration of name, (b) lexical info (ids) - handler.doctypeDecl (rootName, ids [0], ids [1]); - - // Internal subset is parsed first, if present - skipWhitespace (); - if (tryRead ('[')) { - - // loop until the subset ends - while (true) { - doReport = expandPE = true; - skipWhitespace (); - doReport = expandPE = false; - if (tryRead (']')) { - break; // end of subset - } else { - // WFC, PEs in internal subset (only between decls) - peIsError = expandPE = true; - parseMarkupdecl (); - peIsError = expandPE = false; - } - } - } - skipWhitespace (); - require ('>'); - - // Read the external subset, if any - InputSource subset; - - if (ids [1] == null) - subset = handler.getExternalSubset (rootName, - handler.getSystemId ()); - else - subset = null; - if (ids [1] != null || subset != null) { - pushString (null, ">"); - - // NOTE: [dtd] is so we say what SAX2 expects, - // though it's misleading (subset, not entire dtd) - if (ids [1] != null) - pushURL (true, "[dtd]", ids, null, null, null, true); - else { - handler.warn ("modifying document by adding external subset"); - pushURL (true, "[dtd]", - new String [] { subset.getPublicId (), - subset.getSystemId (), null }, - subset.getCharacterStream (), - subset.getByteStream (), - subset.getEncoding (), - false); - } - - // Loop until we end up back at '>' - while (true) { - doReport = expandPE = true; - skipWhitespace (); - doReport = expandPE = false; - if (tryRead ('>')) { - break; - } else { - expandPE = true; - parseMarkupdecl (); - expandPE = false; - } - } - - // the ">" string isn't popped yet - if (inputStack.size () != 1) - error ("external subset has unmatched '>'"); - } - - // done dtd - handler.endDoctype (); - expandPE = false; - doReport = true; - } - - - /** - * Parse a markup declaration in the internal or external DTD subset. - * <pre> - * [29] markupdecl ::= elementdecl | Attlistdecl | EntityDecl - * | NotationDecl | PI | Comment - * [30] extSubsetDecl ::= (markupdecl | conditionalSect - * | PEReference | S) * - * </pre> - * <p> Reading toplevel PE references is handled as a lexical issue - * by the caller, as is whitespace. - */ - private void parseMarkupdecl () - throws Exception - { - char saved [] = null; - boolean savedPE = expandPE; - - // prevent "<%foo;" and ensures saved entity is right - require ('<'); - unread ('<'); - expandPE = false; - - if (tryRead ("<!ELEMENT")) { - saved = readBuffer; - expandPE = savedPE; - parseElementDecl (); - } else if (tryRead ("<!ATTLIST")) { - saved = readBuffer; - expandPE = savedPE; - parseAttlistDecl (); - } else if (tryRead ("<!ENTITY")) { - saved = readBuffer; - expandPE = savedPE; - parseEntityDecl (); - } else if (tryRead ("<!NOTATION")) { - saved = readBuffer; - expandPE = savedPE; - parseNotationDecl (); - } else if (tryRead (startDelimPI)) { - saved = readBuffer; - expandPE = savedPE; - parsePI (); - } else if (tryRead (startDelimComment)) { - saved = readBuffer; - expandPE = savedPE; - parseComment (); - } else if (tryRead ("<![")) { - saved = readBuffer; - expandPE = savedPE; - if (inputStack.size () > 0) - parseConditionalSect (saved); - else - error ("conditional sections illegal in internal subset"); - } else { - error ("expected markup declaration"); - } - - // VC: Proper Decl/PE Nesting - if (readBuffer != saved) - handler.verror ("Illegal Declaration/PE nesting"); - } - - - /** - * Parse an element, with its tags. - * <pre> - * [39] element ::= EmptyElementTag | STag content ETag - * [40] STag ::= '<' Name (S Attribute)* S? '>' - * [44] EmptyElementTag ::= '<' Name (S Attribute)* S? '/>' - * </pre> - * <p> (The '<' has already been read.) - * <p>NOTE: this method actually chains onto parseContent (), if necessary, - * and parseContent () will take care of calling parseETag (). - */ - private void parseElement (boolean maybeGetSubset) - throws Exception - { - String gi; - char c; - int oldElementContent = currentElementContent; - String oldElement = currentElement; - Object element []; - - // This is the (global) counter for the - // array of specified attributes. - tagAttributePos = 0; - - // Read the element type name. - gi = readNmtoken (true); - - // If we saw no DTD, and this is the document root element, - // let the application modify the input stream by providing one. - if (maybeGetSubset) { - InputSource subset = handler.getExternalSubset (gi, - handler.getSystemId ()); - if (subset != null) { - String publicId = subset.getPublicId (); - String systemId = subset.getSystemId (); - - handler.warn ("modifying document by adding DTD"); - handler.doctypeDecl (gi, publicId, systemId); - pushString (null, ">"); - - // NOTE: [dtd] is so we say what SAX2 expects, - // though it's misleading (subset, not entire dtd) - pushURL (true, "[dtd]", - new String [] { publicId, systemId, null }, - subset.getCharacterStream (), - subset.getByteStream (), - subset.getEncoding (), - false); - - // Loop until we end up back at '>' - while (true) { - doReport = expandPE = true; - skipWhitespace (); - doReport = expandPE = false; - if (tryRead ('>')) { - break; - } else { - expandPE = true; - parseMarkupdecl (); - expandPE = false; - } - } - - // the ">" string isn't popped yet - if (inputStack.size () != 1) - error ("external subset has unmatched '>'"); - - handler.endDoctype (); - } - } - - // Determine the current content type. - currentElement = gi; - element = (Object []) elementInfo.get (gi); - currentElementContent = getContentType (element, CONTENT_ANY); - - // Read the attributes, if any. - // After this loop, "c" is the closing delimiter. - boolean white = tryWhitespace (); - c = readCh (); - while (c != '/' && c != '>') { - unread (c); - if (!white) - error ("need whitespace between attributes"); - parseAttribute (gi); - white = tryWhitespace (); - c = readCh (); - } - - // Supply any defaulted attributes. - Enumeration atts = declaredAttributes (element); - if (atts != null) { - String aname; -loop: - while (atts.hasMoreElements ()) { - aname = (String) atts.nextElement (); - // See if it was specified. - for (int i = 0; i < tagAttributePos; i++) { - if (tagAttributes [i] == aname) { - continue loop; - } - } - // ... or has a default - String value = getAttributeDefaultValue (gi, aname); - - if (value == null) - continue; - handler.attribute (aname, value, false); - } - } - - // Figure out if this is a start tag - // or an empty element, and dispatch an - // event accordingly. - switch (c) { - case '>': - handler.startElement (gi); - parseContent (); - break; - case '/': - require ('>'); - handler.startElement (gi); - handler.endElement (gi); - break; - } - - // Restore the previous state. - currentElement = oldElement; - currentElementContent = oldElementContent; - } - - - /** - * Parse an attribute assignment. - * <pre> - * [41] Attribute ::= Name Eq AttValue - * </pre> - * @param name The name of the attribute's element. - * @see SAXDriver#attribute - */ - private void parseAttribute (String name) - throws Exception - { - String aname; - String type; - String value; - int flags = LIT_ATTRIBUTE | LIT_ENTITY_REF; - - // Read the attribute name. - aname = readNmtoken (true); - type = getAttributeType (name, aname); - - // Parse '=' - parseEq (); - - // Read the value, normalizing whitespace - // unless it is CDATA. - if (type == "CDATA" || type == null) { - value = readLiteral (flags); - } else { - value = readLiteral (flags | LIT_NORMALIZE); - } - - // WFC: no duplicate attributes - for (int i = 0; i < tagAttributePos; i++) - if (aname.equals (tagAttributes [i])) - error ("duplicate attribute", aname, null); - - // Inform the handler about the - // attribute. - handler.attribute (aname, value, true); - dataBufferPos = 0; - - // Note that the attribute has been - // specified. - if (tagAttributePos == tagAttributes.length) { - String newAttrib[] = new String [tagAttributes.length * 2]; - System.arraycopy (tagAttributes, 0, newAttrib, 0, tagAttributePos); - tagAttributes = newAttrib; - } - tagAttributes [tagAttributePos++] = aname; - } - - - /** - * Parse an equals sign surrounded by optional whitespace. - * <pre> - * [25] Eq ::= S? '=' S? - * </pre> - */ - private void parseEq () - throws SAXException, IOException - { - skipWhitespace (); - require ('='); - skipWhitespace (); - } - - - /** - * Parse an end tag. - * <pre> - * [42] ETag ::= '</' Name S? '>' - * </pre> - * <p>NOTE: parseContent () chains to here, we already read the - * "</". - */ - private void parseETag () - throws Exception - { - require (currentElement); - skipWhitespace (); - require ('>'); - handler.endElement (currentElement); - // not re-reporting any SAXException re bogus end tags, - // even though that diagnostic might be clearer ... - } - - - /** - * Parse the content of an element. - * <pre> - * [43] content ::= (element | CharData | Reference - * | CDSect | PI | Comment)* - * [67] Reference ::= EntityRef | CharRef - * </pre> - * <p> NOTE: consumes ETtag. - */ - private void parseContent () - throws Exception - { - char c; - - while (true) { - // consume characters (or ignorable whitspace) until delimiter - parseCharData (); - - // Handle delimiters - c = readCh (); - switch (c) { - - case '&': // Found "&" - c = readCh (); - if (c == '#') { - parseCharRef (); - } else { - unread (c); - parseEntityRef (true); - } - break; - - case '<': // Found "<" - dataBufferFlush (); - c = readCh (); - switch (c) { - case '!': // Found "<!" - c = readCh (); - switch (c) { - case '-': // Found "<!-" - require ('-'); - parseComment (); - break; - case '[': // Found "<![" - require ("CDATA["); - handler.startCDATA (); - inCDATA = true; - parseCDSect (); - inCDATA = false; - handler.endCDATA (); - break; - default: - error ("expected comment or CDATA section", c, null); - break; - } - break; - - case '?': // Found "<?" - parsePI (); - break; - - case '/': // Found "</" - parseETag (); - return; - - default: // Found "<" followed by something else - unread (c); - parseElement (false); - break; - } - } - } - } - - - /** - * Parse an element type declaration. - * <pre> - * [45] elementdecl ::= '<!ELEMENT' S Name S contentspec S? '>' - * </pre> - * <p> NOTE: the '<!ELEMENT' has already been read. - */ - private void parseElementDecl () - throws Exception - { - String name; - - requireWhitespace (); - // Read the element type name. - name = readNmtoken (true); - - requireWhitespace (); - // Read the content model. - parseContentspec (name); - - skipWhitespace (); - require ('>'); - } - - - /** - * Content specification. - * <pre> - * [46] contentspec ::= 'EMPTY' | 'ANY' | Mixed | elements - * </pre> - */ - private void parseContentspec (String name) - throws Exception - { -// FIXME: move elementDecl() into setElement(), pass EMTPY/ANY ... - if (tryRead ("EMPTY")) { - setElement (name, CONTENT_EMPTY, null, null); - if (!skippedPE) - handler.getDeclHandler ().elementDecl (name, "EMPTY"); - return; - } else if (tryRead ("ANY")) { - setElement (name, CONTENT_ANY, null, null); - if (!skippedPE) - handler.getDeclHandler ().elementDecl (name, "ANY"); - return; - } else { - String model; - char saved []; - - require ('('); - saved = readBuffer; - dataBufferAppend ('('); - skipWhitespace (); - if (tryRead ("#PCDATA")) { - dataBufferAppend ("#PCDATA"); - parseMixed (saved); - model = dataBufferToString (); - setElement (name, CONTENT_MIXED, model, null); - } else { - parseElements (saved); - model = dataBufferToString (); - setElement (name, CONTENT_ELEMENTS, model, null); - } - if (!skippedPE) - handler.getDeclHandler ().elementDecl (name, model); - } - } - - /** - * Parse an element-content model. - * <pre> - * [47] elements ::= (choice | seq) ('?' | '*' | '+')? - * [49] choice ::= '(' S? cp (S? '|' S? cp)+ S? ')' - * [50] seq ::= '(' S? cp (S? ',' S? cp)* S? ')' - * </pre> - * - * <p> NOTE: the opening '(' and S have already been read. - * - * @param saved Buffer for entity that should have the terminal ')' - */ - private void parseElements (char saved []) - throws Exception - { - char c; - char sep; - - // Parse the first content particle - skipWhitespace (); - parseCp (); - - // Check for end or for a separator. - skipWhitespace (); - c = readCh (); - switch (c) { - case ')': - // VC: Proper Group/PE Nesting - if (readBuffer != saved) - handler.verror ("Illegal Group/PE nesting"); - - dataBufferAppend (')'); - c = readCh (); - switch (c) { - case '*': - case '+': - case '?': - dataBufferAppend (c); - break; - default: - unread (c); - } - return; - case ',': // Register the separator. - case '|': - sep = c; - dataBufferAppend (c); - break; - default: - error ("bad separator in content model", c, null); - return; - } - - // Parse the rest of the content model. - while (true) { - skipWhitespace (); - parseCp (); - skipWhitespace (); - c = readCh (); - if (c == ')') { - // VC: Proper Group/PE Nesting - if (readBuffer != saved) - handler.verror ("Illegal Group/PE nesting"); - - dataBufferAppend (')'); - break; - } else if (c != sep) { - error ("bad separator in content model", c, null); - return; - } else { - dataBufferAppend (c); - } - } - - // Check for the occurrence indicator. - c = readCh (); - switch (c) { - case '?': - case '*': - case '+': - dataBufferAppend (c); - return; - default: - unread (c); - return; - } - } - - - /** - * Parse a content particle. - * <pre> - * [48] cp ::= (Name | choice | seq) ('?' | '*' | '+')? - * </pre> - */ - private void parseCp () - throws Exception - { - if (tryRead ('(')) { - dataBufferAppend ('('); - parseElements (readBuffer); - } else { - dataBufferAppend (readNmtoken (true)); - char c = readCh (); - switch (c) { - case '?': - case '*': - case '+': - dataBufferAppend (c); - break; - default: - unread (c); - break; - } - } - } - - - /** - * Parse mixed content. - * <pre> - * [51] Mixed ::= '(' S? ( '#PCDATA' (S? '|' S? Name)*) S? ')*' - * | '(' S? ('#PCDATA') S? ')' - * </pre> - * - * @param saved Buffer for entity that should have the terminal ')' - */ - private void parseMixed (char saved []) - throws Exception - { - // Check for PCDATA alone. - skipWhitespace (); - if (tryRead (')')) { - // VC: Proper Group/PE Nesting - if (readBuffer != saved) - handler.verror ("Illegal Group/PE nesting"); - - dataBufferAppend (")*"); - tryRead ('*'); - return; - } - - // Parse mixed content. - skipWhitespace (); - while (!tryRead (")")) { - require ('|'); - dataBufferAppend ('|'); - skipWhitespace (); - dataBufferAppend (readNmtoken (true)); - skipWhitespace (); - } - - // VC: Proper Group/PE Nesting - if (readBuffer != saved) - handler.verror ("Illegal Group/PE nesting"); - - require ('*'); - dataBufferAppend (")*"); - } - - - /** - * Parse an attribute list declaration. - * <pre> - * [52] AttlistDecl ::= '<!ATTLIST' S Name AttDef* S? '>' - * </pre> - * <p>NOTE: the '<!ATTLIST' has already been read. - */ - private void parseAttlistDecl () - throws Exception - { - String elementName; - - requireWhitespace (); - elementName = readNmtoken (true); - boolean white = tryWhitespace (); - while (!tryRead ('>')) { - if (!white) - error ("whitespace required before attribute definition"); - parseAttDef (elementName); - white = tryWhitespace (); - } - } - - - /** - * Parse a single attribute definition. - * <pre> - * [53] AttDef ::= S Name S AttType S DefaultDecl - * </pre> - */ - private void parseAttDef (String elementName) - throws Exception - { - String name; - String type; - String enum = null; - - // Read the attribute name. - name = readNmtoken (true); - - // Read the attribute type. - requireWhitespace (); - type = readAttType (); - - // Get the string of enumerated values if necessary. - if ("ENUMERATION" == type || "NOTATION" == type) - enum = dataBufferToString (); - - // Read the default value. - requireWhitespace (); - parseDefault (elementName, name, type, enum); - } - - - /** - * Parse the attribute type. - * <pre> - * [54] AttType ::= StringType | TokenizedType | EnumeratedType - * [55] StringType ::= 'CDATA' - * [56] TokenizedType ::= 'ID' | 'IDREF' | 'IDREFS' | 'ENTITY' - * | 'ENTITIES' | 'NMTOKEN' | 'NMTOKENS' - * [57] EnumeratedType ::= NotationType | Enumeration - * </pre> - */ - private String readAttType () - throws Exception - { - if (tryRead ('(')) { - parseEnumeration (false); - return "ENUMERATION"; - } else { - String typeString = readNmtoken (true); - if ("NOTATION" == typeString) { - parseNotationType (); - return typeString; - } else if ("CDATA" == typeString - || "ID" == typeString - || "IDREF" == typeString - || "IDREFS" == typeString - || "ENTITY" == typeString - || "ENTITIES" == typeString - || "NMTOKEN" == typeString - || "NMTOKENS" == typeString) - return typeString; - error ("illegal attribute type", typeString, null); - return null; - } - } - - - /** - * Parse an enumeration. - * <pre> - * [59] Enumeration ::= '(' S? Nmtoken (S? '|' S? Nmtoken)* S? ')' - * </pre> - * <p>NOTE: the '(' has already been read. - */ - private void parseEnumeration (boolean isNames) - throws Exception - { - dataBufferAppend ('('); - - // Read the first token. - skipWhitespace (); - dataBufferAppend (readNmtoken (isNames)); - // Read the remaining tokens. - skipWhitespace (); - while (!tryRead (')')) { - require ('|'); - dataBufferAppend ('|'); - skipWhitespace (); - dataBufferAppend (readNmtoken (isNames)); - skipWhitespace (); - } - dataBufferAppend (')'); - } - - - /** - * Parse a notation type for an attribute. - * <pre> - * [58] NotationType ::= 'NOTATION' S '(' S? NameNtoks - * (S? '|' S? name)* S? ')' - * </pre> - * <p>NOTE: the 'NOTATION' has already been read - */ - private void parseNotationType () - throws Exception - { - requireWhitespace (); - require ('('); - - parseEnumeration (true); - } - - - /** - * Parse the default value for an attribute. - * <pre> - * [60] DefaultDecl ::= '#REQUIRED' | '#IMPLIED' - * | (('#FIXED' S)? AttValue) - * </pre> - */ - private void parseDefault ( - String elementName, - String name, - String type, - String enum - ) throws Exception - { - int valueType = ATTRIBUTE_DEFAULT_SPECIFIED; - String value = null; - int flags = LIT_ATTRIBUTE; - boolean saved = expandPE; - String defaultType = null; - - // LIT_ATTRIBUTE forces '<' checks now (ASAP) and turns whitespace - // chars to spaces (doesn't matter when that's done if it doesn't - // interfere with char refs expanding to whitespace). - - if (!skippedPE) { - flags |= LIT_ENTITY_REF; - if ("CDATA" != type) - flags |= LIT_NORMALIZE; - } - - expandPE = false; - if (tryRead ('#')) { - if (tryRead ("FIXED")) { - defaultType = "#FIXED"; - valueType = ATTRIBUTE_DEFAULT_FIXED; - requireWhitespace (); - value = readLiteral (flags); - } else if (tryRead ("REQUIRED")) { - defaultType = "#REQUIRED"; - valueType = ATTRIBUTE_DEFAULT_REQUIRED; - } else if (tryRead ("IMPLIED")) { - defaultType = "#IMPLIED"; - valueType = ATTRIBUTE_DEFAULT_IMPLIED; - } else { - error ("illegal keyword for attribute default value"); - } - } else - value = readLiteral (flags); - expandPE = saved; - setAttribute (elementName, name, type, enum, value, valueType); - if ("ENUMERATION" == type) - type = enum; - else if ("NOTATION" == type) - type = "NOTATION " + enum; - if (!skippedPE) handler.getDeclHandler () - .attributeDecl (elementName, name, type, defaultType, value); - } - - - /** - * Parse a conditional section. - * <pre> - * [61] conditionalSect ::= includeSect || ignoreSect - * [62] includeSect ::= '<![' S? 'INCLUDE' S? '[' - * extSubsetDecl ']]>' - * [63] ignoreSect ::= '<![' S? 'IGNORE' S? '[' - * ignoreSectContents* ']]>' - * [64] ignoreSectContents ::= Ignore - * ('<![' ignoreSectContents* ']]>' Ignore )* - * [65] Ignore ::= Char* - (Char* ( '<![' | ']]>') Char* ) - * </pre> - * <p> NOTE: the '>![' has already been read. - */ - private void parseConditionalSect (char saved []) - throws Exception - { - skipWhitespace (); - if (tryRead ("INCLUDE")) { - skipWhitespace (); - require ('['); - // VC: Proper Conditional Section/PE Nesting - if (readBuffer != saved) - handler.verror ("Illegal Conditional Section/PE nesting"); - skipWhitespace (); - while (!tryRead ("]]>")) { - parseMarkupdecl (); - skipWhitespace (); - } - } else if (tryRead ("IGNORE")) { - skipWhitespace (); - require ('['); - // VC: Proper Conditional Section/PE Nesting - if (readBuffer != saved) - handler.verror ("Illegal Conditional Section/PE nesting"); - int nesting = 1; - char c; - expandPE = false; - for (int nest = 1; nest > 0;) { - c = readCh (); - switch (c) { - case '<': - if (tryRead ("![")) { - nest++; - } - case ']': - if (tryRead ("]>")) { - nest--; - } - } - } - expandPE = true; - } else { - error ("conditional section must begin with INCLUDE or IGNORE"); - } - } - - private void parseCharRef () - throws SAXException, IOException - { - parseCharRef (true /* do flushDataBuffer by default */); - } - - /** - * Read and interpret a character reference. - * <pre> - * [66] CharRef ::= '&#' [0-9]+ ';' | '&#x' [0-9a-fA-F]+ ';' - * </pre> - * <p>NOTE: the '&#' has already been read. - */ - private void parseCharRef (boolean doFlush) - throws SAXException, IOException - { - int value = 0; - char c; - - if (tryRead ('x')) { -loop1: - while (true) { - c = readCh (); - int n; - switch (c) { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - n = c - '0'; - break; - case 'a': case 'b': case 'c': case 'd': case 'e': case 'f': - n = (c - 'a') + 10; - break; - case 'A': case 'B': case 'C': case 'D': case 'E': case 'F': - n = (c - 'A') + 10; - break; - case ';': - break loop1; - default: - error ("illegal character in character reference", c, null); - break loop1; - } - value *= 16; - value += n; - } - } else { -loop2: - while (true) { - c = readCh (); - switch (c) { - case '0': case '1': case '2': case '3': case '4': - case '5': case '6': case '7': case '8': case '9': - value *= 10; - value += c - '0'; - break; - case ';': - break loop2; - default: - error ("illegal character in character reference", c, null); - break loop2; - } - } - } - - // check for character refs being legal XML - if ((value < 0x0020 - && ! (value == '\n' || value == '\t' || value == '\r')) - || (value >= 0xD800 && value <= 0xDFFF) - || value == 0xFFFE || value == 0xFFFF - || value > 0x0010ffff) - error ("illegal XML character reference U+" - + Integer.toHexString (value)); - - // Check for surrogates: 00000000 0000xxxx yyyyyyyy zzzzzzzz - // (1101|10xx|xxyy|yyyy + 1101|11yy|zzzz|zzzz: - if (value <= 0x0000ffff) { - // no surrogates needed - dataBufferAppend ((char) value); - } else if (value <= 0x0010ffff) { - value -= 0x10000; - // > 16 bits, surrogate needed - dataBufferAppend ((char) (0xd800 | (value >> 10))); - dataBufferAppend ((char) (0xdc00 | (value & 0x0003ff))); - } else { - // too big for surrogate - error ("character reference " + value + " is too large for UTF-16", - new Integer (value).toString (), null); - } - if (doFlush) dataBufferFlush (); - } - - - /** - * Parse and expand an entity reference. - * <pre> - * [68] EntityRef ::= '&' Name ';' - * </pre> - * <p>NOTE: the '&' has already been read. - * @param externalAllowed External entities are allowed here. - */ - private void parseEntityRef (boolean externalAllowed) - throws SAXException, IOException - { - String name; - - name = readNmtoken (true); - require (';'); - switch (getEntityType (name)) { - case ENTITY_UNDECLARED: - // NOTE: XML REC describes amazingly convoluted handling for - // this case. Nothing as meaningful as being a WFness error - // unless the processor might _legitimately_ not have seen a - // declaration ... which is what this implements. - String message; - - message = "reference to undeclared general entity " + name; - if (skippedPE && !docIsStandalone) { - handler.verror (message); - // we don't know this entity, and it might be external... - if (externalAllowed) - handler.skippedEntity (name); - } else - error (message); - break; - case ENTITY_INTERNAL: - pushString (name, getEntityValue (name)); - break; - case ENTITY_TEXT: - if (externalAllowed) { - pushURL (false, name, getEntityIds (name), - null, null, null, true); - } else { - error ("reference to external entity in attribute value.", - name, null); - } - break; - case ENTITY_NDATA: - if (externalAllowed) { - error ("unparsed entity reference in content", name, null); - } else { - error ("reference to external entity in attribute value.", - name, null); - } - break; - default: - throw new RuntimeException (); - } - } - - - /** - * Parse and expand a parameter entity reference. - * <pre> - * [69] PEReference ::= '%' Name ';' - * </pre> - * <p>NOTE: the '%' has already been read. - */ - private void parsePEReference () - throws SAXException, IOException - { - String name; - - name = "%" + readNmtoken (true); - require (';'); - switch (getEntityType (name)) { - case ENTITY_UNDECLARED: - // VC: Entity Declared - handler.verror ("reference to undeclared parameter entity " + name); - - // we should disable handling of all subsequent declarations - // unless this is a standalone document (info discarded) - break; - case ENTITY_INTERNAL: - if (inLiteral) - pushString (name, getEntityValue (name)); - else - pushString (name, ' ' + getEntityValue (name) + ' '); - break; - case ENTITY_TEXT: - if (!inLiteral) - pushString (null, " "); - pushURL (true, name, getEntityIds (name), null, null, null, true); - if (!inLiteral) - pushString (null, " "); - break; - } - } - - /** - * Parse an entity declaration. - * <pre> - * [70] EntityDecl ::= GEDecl | PEDecl - * [71] GEDecl ::= '<!ENTITY' S Name S EntityDef S? '>' - * [72] PEDecl ::= '<!ENTITY' S '%' S Name S PEDef S? '>' - * [73] EntityDef ::= EntityValue | (ExternalID NDataDecl?) - * [74] PEDef ::= EntityValue | ExternalID - * [75] ExternalID ::= 'SYSTEM' S SystemLiteral - * | 'PUBLIC' S PubidLiteral S SystemLiteral - * [76] NDataDecl ::= S 'NDATA' S Name - * </pre> - * <p>NOTE: the '<!ENTITY' has already been read. - */ - private void parseEntityDecl () - throws Exception - { - boolean peFlag = false; - int flags = LIT_DISABLE_CREF; - - // Check for a parameter entity. - expandPE = false; - requireWhitespace (); - if (tryRead ('%')) { - peFlag = true; - requireWhitespace (); - } - expandPE = true; - - // Read the entity name, and prepend - // '%' if necessary. - String name = readNmtoken (true); - if (peFlag) { - name = "%" + name; - } - - // Read the entity value. - requireWhitespace (); - char c = readCh (); - unread (c); - if (c == '"' || c == '\'') { - // Internal entity ... replacement text has expanded refs - // to characters and PEs, but not to general entities - String value = readLiteral (flags); - setInternalEntity (name, value); - } else { - // Read the external IDs - String ids [] = readExternalIds (false, false); - - // Check for NDATA declaration. - boolean white = tryWhitespace (); - if (!peFlag && tryRead ("NDATA")) { - if (!white) - error ("whitespace required before NDATA"); - requireWhitespace (); - String notationName = readNmtoken (true); - if (!skippedPE) { - setExternalEntity (name, ENTITY_NDATA, ids, notationName); - handler.unparsedEntityDecl (name, ids, notationName); - } - } else if (!skippedPE) { - setExternalEntity (name, ENTITY_TEXT, ids, null); - handler.getDeclHandler () - .externalEntityDecl (name, ids [0], - handler.resolveURIs () - // FIXME: ASSUMES not skipped - // "false" forces error on bad URI - ? handler.absolutize (ids [2], ids [1], false) - : ids [1]); - } - } - - // Finish the declaration. - skipWhitespace (); - require ('>'); - } - - - /** - * Parse a notation declaration. - * <pre> - * [82] NotationDecl ::= '<!NOTATION' S Name S - * (ExternalID | PublicID) S? '>' - * [83] PublicID ::= 'PUBLIC' S PubidLiteral - * </pre> - * <P>NOTE: the '<!NOTATION' has already been read. - */ - private void parseNotationDecl () - throws Exception - { - String nname, ids[]; - - - requireWhitespace (); - nname = readNmtoken (true); - - requireWhitespace (); - - // Read the external identifiers. - ids = readExternalIds (true, false); - - // Register the notation. - setNotation (nname, ids); - - skipWhitespace (); - require ('>'); - } - - - /** - * Parse character data. - * <pre> - * [14] CharData ::= [^<&]* - ([^<&]* ']]>' [^<&]*) - * </pre> - */ - private void parseCharData () - throws Exception - { - char c; - int state = 0; - boolean pureWhite = false; - - // assert (dataBufferPos == 0); - - // are we expecting pure whitespace? it might be dirty... - if (currentElementContent == CONTENT_ELEMENTS); - pureWhite = true; - - // always report right out of readBuffer - // to minimize (pointless) buffer copies - while (true) { - int lineAugment = 0; - int columnAugment = 0; - int i; - -loop: - for (i = readBufferPos; i < readBufferLength; i++) { - switch (c = readBuffer [i]) { - case '\n': - lineAugment++; - columnAugment = 0; - // pureWhite unmodified - break; - case '\r': // should not happen!! - case '\t': - case ' ': - // pureWhite unmodified - columnAugment++; - break; - case '&': - case '<': - columnAugment++; - // pureWhite unmodified - // CLEAN end of text sequence - state = 1; - break loop; - case ']': - // that's not a whitespace char, and - // can not terminate pure whitespace either - pureWhite = false; - if ((i + 2) < readBufferLength) { - if (readBuffer [i + 1] == ']' - && readBuffer [i + 2] == '>') { - // ERROR end of text sequence - state = 2; - break loop; - } - } else { - // FIXME missing two end-of-buffer cases - } - columnAugment++; - break; - default: - if (c < 0x0020 || c > 0xFFFD) - error ("illegal XML character U+" - + Integer.toHexString (c)); - // that's not a whitespace char - pureWhite = false; - columnAugment++; - } - } - - // report text thus far - if (lineAugment > 0) { - line += lineAugment; - column = columnAugment; - } else { - column += columnAugment; - } - - // report characters/whitspace - int length = i - readBufferPos; - - if (length != 0) { - if (pureWhite) - handler.ignorableWhitespace (readBuffer, - readBufferPos, length); - else - handler.charData (readBuffer, readBufferPos, length); - readBufferPos = i; - } - - if (state != 0) - break; - - // fill next buffer from this entity, or - // pop stack and continue with previous entity - unread (readCh ()); - } - - // finish, maybe with error - if (state != 1) // finish, no error - error ("character data may not contain ']]>'"); - } - - - ////////////////////////////////////////////////////////////////////// - // High-level reading and scanning methods. - ////////////////////////////////////////////////////////////////////// - - /** - * Require whitespace characters. - */ - private void requireWhitespace () - throws SAXException, IOException - { - char c = readCh (); - if (isWhitespace (c)) { - skipWhitespace (); - } else { - error ("whitespace required", c, null); - } - } - - - /** - * Skip whitespace characters. - * <pre> - * [3] S ::= (#x20 | #x9 | #xd | #xa)+ - * </pre> - */ - private void skipWhitespace () - throws SAXException, IOException - { - // Start with a little cheat. Most of - // the time, the white space will fall - // within the current read buffer; if - // not, then fall through. - if (USE_CHEATS) { - int lineAugment = 0; - int columnAugment = 0; - -loop: - for (int i = readBufferPos; i < readBufferLength; i++) { - switch (readBuffer [i]) { - case ' ': - case '\t': - case '\r': - columnAugment++; - break; - case '\n': - lineAugment++; - columnAugment = 0; - break; - case '%': - if (expandPE) - break loop; - // else fall through... - default: - readBufferPos = i; - if (lineAugment > 0) { - line += lineAugment; - column = columnAugment; - } else { - column += columnAugment; - } - return; - } - } - } - - // OK, do it the slow way. - char c = readCh (); - while (isWhitespace (c)) { - c = readCh (); - } - unread (c); - } - - - /** - * Read a name or (when parsing an enumeration) name token. - * <pre> - * [5] Name ::= (Letter | '_' | ':') (NameChar)* - * [7] Nmtoken ::= (NameChar)+ - * </pre> - */ - private String readNmtoken (boolean isName) - throws SAXException, IOException - { - char c; - - if (USE_CHEATS) { -loop: - for (int i = readBufferPos; i < readBufferLength; i++) { - c = readBuffer [i]; - switch (c) { - case '%': - if (expandPE) - break loop; - // else fall through... - - // What may legitimately come AFTER a name/nmtoken? - case '<': case '>': case '&': - case ',': case '|': case '*': case '+': case '?': - case ')': - case '=': - case '\'': case '"': - case '[': - case ' ': case '\t': case '\r': case '\n': - case ';': - case '/': - int start = readBufferPos; - if (i == start) - error ("name expected", readBuffer [i], null); - readBufferPos = i; - return intern (readBuffer, start, i - start); - - default: -// FIXME ... per IBM's OASIS test submission, these: -// ? U+06dd -// REJECT -// BaseChar U+0132 U+0133 U+013F U+0140 U+0149 U+017F U+01C4 U+01CC -// U+01F1 U+01F3 U+0E46 U+1011 U+1104 U+1108 U+110A U+110D -// U+113B U+113F U+1141 U+114D U+114F U+1151 U+1156 U+1162 -// U+1164 U+1166 U+116B U+116F U+1174 U+119F U+11AC U+11B6 -// U+11B9 U+11BB U+11C3 U+11F1 U+212F U+0587 -// Combining U+309B - - // punt on exact tests from Appendix A; approximate - // them using the Unicode ID start/part rules - if (i == readBufferPos && isName) { - if (!Character.isUnicodeIdentifierStart (c) - && c != ':' && c != '_') - error ("Not a name start character, U+" - + Integer.toHexString (c)); - } else if (!Character.isUnicodeIdentifierPart (c) - && c != '-' && c != ':' && c != '_' && c != '.' - && !isExtender (c)) - error ("Not a name character, U+" - + Integer.toHexString (c)); - } - } - } - - nameBufferPos = 0; - - // Read the first character. -loop: - while (true) { - c = readCh (); - switch (c) { - case '%': - case '<': case '>': case '&': - case ',': case '|': case '*': case '+': case '?': - case ')': - case '=': - case '\'': case '"': - case '[': - case ' ': case '\t': case '\n': case '\r': - case ';': - case '/': - unread (c); - if (nameBufferPos == 0) { - error ("name expected"); - } - // punt on exact tests from Appendix A, but approximate them - if (isName - && !Character.isUnicodeIdentifierStart ( - nameBuffer [0]) - && ":_".indexOf (nameBuffer [0]) == -1) - error ("Not a name start character, U+" - + Integer.toHexString (nameBuffer [0])); - String s = intern (nameBuffer, 0, nameBufferPos); - nameBufferPos = 0; - return s; - default: - // punt on exact tests from Appendix A, but approximate them - - if ((nameBufferPos != 0 || !isName) - && !Character.isUnicodeIdentifierPart (c) - && ":-_.".indexOf (c) == -1 - && !isExtender (c)) - error ("Not a name character, U+" - + Integer.toHexString (c)); - if (nameBufferPos >= nameBuffer.length) - nameBuffer = - (char[]) extendArray (nameBuffer, - nameBuffer.length, nameBufferPos); - nameBuffer [nameBufferPos++] = c; - } - } - } - - private static boolean isExtender (char c) - { - // [88] Extender ::= ... - return c == 0x00b7 || c == 0x02d0 || c == 0x02d1 || c == 0x0387 - || c == 0x0640 || c == 0x0e46 || c == 0x0ec6 || c == 0x3005 - || (c >= 0x3031 && c <= 0x3035) - || (c >= 0x309d && c <= 0x309e) - || (c >= 0x30fc && c <= 0x30fe); - } - - - /** - * Read a literal. With matching single or double quotes as - * delimiters (and not embedded!) this is used to parse: - * <pre> - * [9] EntityValue ::= ... ([^%&] | PEReference | Reference)* ... - * [10] AttValue ::= ... ([^<&] | Reference)* ... - * [11] SystemLiteral ::= ... (URLchar - "'")* ... - * [12] PubidLiteral ::= ... (PubidChar - "'")* ... - * </pre> - * as well as the quoted strings in XML and text declarations - * (for version, encoding, and standalone) which have their - * own constraints. - */ - private String readLiteral (int flags) - throws SAXException, IOException - { - char delim, c; - int startLine = line; - boolean saved = expandPE; - boolean savedReport = doReport; - - // Find the first delimiter. - delim = readCh (); - if (delim != '"' && delim != '\'') { - error ("expected '\"' or \"'\"", delim, null); - return null; - } - inLiteral = true; - if ((flags & LIT_DISABLE_PE) != 0) - expandPE = false; - doReport = false; - - // Each level of input source has its own buffer; remember - // ours, so we won't read the ending delimiter from any - // other input source, regardless of entity processing. - char ourBuf [] = readBuffer; - - // Read the literal. - try { - c = readCh (); -loop: - while (! (c == delim && readBuffer == ourBuf)) { - switch (c) { - // attributes and public ids are normalized - // in almost the same ways - case '\n': - case '\r': - if ((flags & (LIT_ATTRIBUTE | LIT_PUBID)) != 0) - c = ' '; - break; - case '\t': - if ((flags & LIT_ATTRIBUTE) != 0) - c = ' '; - break; - case '&': - c = readCh (); - // Char refs are expanded immediately, except for - // all the cases where it's deferred. - if (c == '#') { - if ((flags & LIT_DISABLE_CREF) != 0) { - dataBufferAppend ('&'); - break; - } - parseCharRef (false /* Do not do flushDataBuffer */); - - // exotic WFness risk: this is an entity literal, - // dataBuffer [dataBufferPos - 1] == '&', and - // following chars are a _partial_ entity/char ref - - // It looks like an entity ref ... - } else { - unread (c); - // Expand it? - if ((flags & LIT_ENTITY_REF) > 0) { - parseEntityRef (false); - - // Is it just data? - } else if ((flags & LIT_DISABLE_EREF) != 0) { - dataBufferAppend ('&'); - - // OK, it will be an entity ref -- expanded later. - } else { - String name = readNmtoken (true); - require (';'); - dataBufferAppend ('&'); - dataBufferAppend (name); - dataBufferAppend (';'); - } - } - c = readCh (); - continue loop; - - case '<': - // and why? Perhaps so "&foo;" expands the same - // inside and outside an attribute? - if ((flags & LIT_ATTRIBUTE) != 0) - error ("attribute values may not contain '<'"); - break; - - // We don't worry about case '%' and PE refs, readCh does. - - default: - break; - } - dataBufferAppend (c); - c = readCh (); - } - } catch (EOFException e) { - error ("end of input while looking for delimiter (started on line " - + startLine + ')', null, new Character (delim).toString ()); - } - inLiteral = false; - expandPE = saved; - doReport = savedReport; - - // Normalise whitespace if necessary. - if ((flags & LIT_NORMALIZE) > 0) { - dataBufferNormalize (); - } - - // Return the value. - return dataBufferToString (); - } - - - /** - * Try reading external identifiers. - * A system identifier is not required for notations. - * @param inNotation Are we parsing a notation decl? - * @param isSubset Parsing external subset decl (may be omitted)? - * @return A three-member String array containing the identifiers, - * or nulls. Order: public, system, baseURI. - */ - private String[] readExternalIds (boolean inNotation, boolean isSubset) - throws Exception - { - char c; - String ids[] = new String [3]; - int flags = LIT_DISABLE_CREF | LIT_DISABLE_PE | LIT_DISABLE_EREF; - - if (tryRead ("PUBLIC")) { - requireWhitespace (); - ids [0] = readLiteral (LIT_NORMALIZE | LIT_PUBID | flags); - if (inNotation) { - skipWhitespace (); - c = readCh (); - unread (c); - if (c == '"' || c == '\'') { - ids [1] = readLiteral (flags); - } - } else { - requireWhitespace (); - ids [1] = readLiteral (flags); - } - - for (int i = 0; i < ids [0].length (); i++) { - c = ids [0].charAt (i); - if (c >= 'a' && c <= 'z') - continue; - if (c >= 'A' && c <= 'Z') - continue; - if (" \r\n0123456789-' ()+,./:=?;!*#@$_%".indexOf (c) != -1) - continue; - error ("illegal PUBLIC id character U+" - + Integer.toHexString (c)); - } - } else if (tryRead ("SYSTEM")) { - requireWhitespace (); - ids [1] = readLiteral (flags); - } else if (!isSubset) - error ("missing SYSTEM or PUBLIC keyword"); - - if (ids [1] != null) { - if (ids [1].indexOf ('#') != -1) - handler.verror ("SYSTEM id has a URI fragment: " + ids [1]); - ids [2] = handler.getSystemId (); - if (ids [2] == null) - handler.warn ("No base URI; hope URI is absolute: " - + ids [1]); - } - - return ids; - } - - - /** - * Test if a character is whitespace. - * <pre> - * [3] S ::= (#x20 | #x9 | #xd | #xa)+ - * </pre> - * @param c The character to test. - * @return true if the character is whitespace. - */ - private final boolean isWhitespace (char c) - { - if (c > 0x20) - return false; - if (c == 0x20 || c == 0x0a || c == 0x09 || c == 0x0d) - return true; - return false; // illegal ... - } - - - ////////////////////////////////////////////////////////////////////// - // Utility routines. - ////////////////////////////////////////////////////////////////////// - - - /** - * Add a character to the data buffer. - */ - private void dataBufferAppend (char c) - { - // Expand buffer if necessary. - if (dataBufferPos >= dataBuffer.length) - dataBuffer = - (char[]) extendArray (dataBuffer, - dataBuffer.length, dataBufferPos); - dataBuffer [dataBufferPos++] = c; - } - - - /** - * Add a string to the data buffer. - */ - private void dataBufferAppend (String s) - { - dataBufferAppend (s.toCharArray (), 0, s.length ()); - } - - - /** - * Append (part of) a character array to the data buffer. - */ - private void dataBufferAppend (char ch[], int start, int length) - { - dataBuffer = (char[]) - extendArray (dataBuffer, dataBuffer.length, - dataBufferPos + length); - - System.arraycopy (ch, start, dataBuffer, dataBufferPos, length); - dataBufferPos += length; - } - - - /** - * Normalise space characters in the data buffer. - */ - private void dataBufferNormalize () - { - int i = 0; - int j = 0; - int end = dataBufferPos; - - // Skip spaces at the start. - while (j < end && dataBuffer [j] == ' ') { - j++; - } - - // Skip whitespace at the end. - while (end > j && dataBuffer [end - 1] == ' ') { - end --; - } - - // Start copying to the left. - while (j < end) { - - char c = dataBuffer [j++]; - - // Normalise all other spaces to - // a single space. - if (c == ' ') { - while (j < end && dataBuffer [j++] == ' ') - continue; - dataBuffer [i++] = ' '; - dataBuffer [i++] = dataBuffer [j - 1]; - } else { - dataBuffer [i++] = c; - } - } - - // The new length is <= the old one. - dataBufferPos = i; - } - - - /** - * Convert the data buffer to a string. - */ - private String dataBufferToString () - { - String s = new String (dataBuffer, 0, dataBufferPos); - dataBufferPos = 0; - return s; - } - - - /** - * Flush the contents of the data buffer to the handler, as - * appropriate, and reset the buffer for new input. - */ - private void dataBufferFlush () - throws SAXException - { - if (currentElementContent == CONTENT_ELEMENTS - && dataBufferPos > 0 - && !inCDATA - ) { - // We can't just trust the buffer to be whitespace, there - // are (error) cases when it isn't - for (int i = 0; i < dataBufferPos; i++) { - if (!isWhitespace (dataBuffer [i])) { - handler.charData (dataBuffer, 0, dataBufferPos); - dataBufferPos = 0; - } - } - if (dataBufferPos > 0) { - handler.ignorableWhitespace (dataBuffer, 0, dataBufferPos); - dataBufferPos = 0; - } - } else if (dataBufferPos > 0) { - handler.charData (dataBuffer, 0, dataBufferPos); - dataBufferPos = 0; - } - } - - - /** - * Require a string to appear, or throw an exception. - * <p><em>Precondition:</em> Entity expansion is not required. - * <p><em>Precondition:</em> data buffer has no characters that - * will get sent to the application. - */ - private void require (String delim) - throws SAXException, IOException - { - int length = delim.length (); - char ch []; - - if (length < dataBuffer.length) { - ch = dataBuffer; - delim.getChars (0, length, ch, 0); - } else - ch = delim.toCharArray (); - - if (USE_CHEATS - && length <= (readBufferLength - readBufferPos)) { - int offset = readBufferPos; - - for (int i = 0; i < length; i++, offset++) - if (ch [i] != readBuffer [offset]) - error ("required string", null, delim); - readBufferPos = offset; - - } else { - for (int i = 0; i < length; i++) - require (ch [i]); - } - } - - - /** - * Require a character to appear, or throw an exception. - */ - private void require (char delim) - throws SAXException, IOException - { - char c = readCh (); - - if (c != delim) { - error ("required character", c, new Character (delim).toString ()); - } - } - - - /** - * Create an interned string from a character array. - * Ælfred uses this method to create an interned version - * of all names and name tokens, so that it can test equality - * with <code>==</code> instead of <code>String.equals ()</code>. - * - * <p>This is much more efficient than constructing a non-interned - * string first, and then interning it. - * - * @param ch an array of characters for building the string. - * @param start the starting position in the array. - * @param length the number of characters to place in the string. - * @return an interned string. - * @see #intern (String) - * @see java.lang.String#intern - */ - public String intern (char ch[], int start, int length) - { - int index = 0; - int hash = 0; - Object bucket []; - - // Generate a hash code. This is a widely used string hash, - // often attributed to Brian Kernighan. - for (int i = start; i < start + length; i++) - hash = 31 * hash + ch [i]; - hash = (hash & 0x7fffffff) % SYMBOL_TABLE_LENGTH; - - // Get the bucket -- consists of {array,String} pairs - if ((bucket = symbolTable [hash]) == null) { - // first string in this bucket - bucket = new Object [8]; - - // Search for a matching tuple, and - // return the string if we find one. - } else { - while (index < bucket.length) { - char chFound [] = (char []) bucket [index]; - - // Stop when we hit an empty entry. - if (chFound == null) - break; - - // If they're the same length, check for a match. - if (chFound.length == length) { - for (int i = 0; i < chFound.length; i++) { - // continue search on failure - if (ch [start + i] != chFound [i]) { - break; - } else if (i == length - 1) { - // That's it, we have a match! - return (String) bucket [index + 1]; - } - } - } - index += 2; - } - // Not found -- we'll have to add it. - - // Do we have to grow the bucket? - bucket = (Object []) extendArray (bucket, bucket.length, index); - } - symbolTable [hash] = bucket; - - // OK, add it to the end of the bucket -- "local" interning. - // Intern "globally" to let applications share interning benefits. - // That is, "!=" and "==" work on our strings, not just equals(). - String s = new String (ch, start, length).intern (); - bucket [index] = s.toCharArray (); - bucket [index + 1] = s; - return s; - } - - /** - * Ensure the capacity of an array, allocating a new one if - * necessary. Usually extends only for name hash collisions. - */ - private Object extendArray (Object array, int currentSize, int requiredSize) - { - if (requiredSize < currentSize) { - return array; - } else { - Object newArray = null; - int newSize = currentSize * 2; - - if (newSize <= requiredSize) - newSize = requiredSize + 1; - - if (array instanceof char[]) - newArray = new char [newSize]; - else if (array instanceof Object[]) - newArray = new Object [newSize]; - else - throw new RuntimeException (); - - System.arraycopy (array, 0, newArray, 0, currentSize); - return newArray; - } - } - - - ////////////////////////////////////////////////////////////////////// - // XML query routines. - ////////////////////////////////////////////////////////////////////// - - - boolean isStandalone () { return docIsStandalone; } - - - // - // Elements - // - - private int getContentType (Object element [], int defaultType) - { - int retval; - - if (element == null) - return defaultType; - retval = ((Integer) element [0]).intValue (); - if (retval == CONTENT_UNDECLARED) - retval = defaultType; - return retval; - } - - - /** - * Look up the content type of an element. - * @param name The element type name. - * @return An integer constant representing the content type. - * @see #CONTENT_UNDECLARED - * @see #CONTENT_ANY - * @see #CONTENT_EMPTY - * @see #CONTENT_MIXED - * @see #CONTENT_ELEMENTS - */ - public int getElementContentType (String name) - { - Object element [] = (Object []) elementInfo.get (name); - return getContentType (element, CONTENT_UNDECLARED); - } - - - /** - * Register an element. - * Array format: - * [0] element type name - * [1] content model (mixed, elements only) - * [2] attribute hash table - */ - private void setElement ( - String name, - int contentType, - String contentModel, - Hashtable attributes - ) throws SAXException - { - if (skippedPE) - return; - - Object element [] = (Object []) elementInfo.get (name); - - // first <!ELEMENT ...> or <!ATTLIST ...> for this type? - if (element == null) { - element = new Object [3]; - element [0] = new Integer (contentType); - element [1] = contentModel; - element [2] = attributes; - elementInfo.put (name, element); - return; - } - - // <!ELEMENT ...> declaration? - if (contentType != CONTENT_UNDECLARED) { - // ... following an associated <!ATTLIST ...> - if (((Integer) element [0]).intValue () == CONTENT_UNDECLARED) { - element [0] = new Integer (contentType); - element [1] = contentModel; - } else - // VC: Unique Element Type Declaration - handler.verror ("multiple declarations for element type: " - + name); - } - - // first <!ATTLIST ...>, before <!ELEMENT ...> ? - else if (attributes != null) - element [2] = attributes; - } - - - /** - * Look up the attribute hash table for an element. - * The hash table is the second item in the element array. - */ - private Hashtable getElementAttributes (String name) - { - Object element[] = (Object[]) elementInfo.get (name); - if (element == null) - return null; - else - return (Hashtable) element [2]; - } - - - - // - // Attributes - // - - /** - * Get the declared attributes for an element type. - * @param elname The name of the element type. - * @return An Enumeration of all the attributes declared for - * a specific element type. The results will be valid only - * after the DTD (if any) has been parsed. - * @see #getAttributeType - * @see #getAttributeEnumeration - * @see #getAttributeDefaultValueType - * @see #getAttributeDefaultValue - * @see #getAttributeExpandedValue - */ - private Enumeration declaredAttributes (Object element []) - { - Hashtable attlist; - - if (element == null) - return null; - if ((attlist = (Hashtable) element [2]) == null) - return null; - return attlist.keys (); - } - - /** - * Get the declared attributes for an element type. - * @param elname The name of the element type. - * @return An Enumeration of all the attributes declared for - * a specific element type. The results will be valid only - * after the DTD (if any) has been parsed. - * @see #getAttributeType - * @see #getAttributeEnumeration - * @see #getAttributeDefaultValueType - * @see #getAttributeDefaultValue - * @see #getAttributeExpandedValue - */ - public Enumeration declaredAttributes (String elname) - { - return declaredAttributes ((Object []) elementInfo.get (elname)); - } - - - /** - * Retrieve the declared type of an attribute. - * @param name The name of the associated element. - * @param aname The name of the attribute. - * @return An interend string denoting the type, or null - * indicating an undeclared attribute. - */ - public String getAttributeType (String name, String aname) - { - Object attribute[] = getAttribute (name, aname); - if (attribute == null) { - return null; - } else { - return (String) attribute [0]; - } - } - - - /** - * Retrieve the allowed values for an enumerated attribute type. - * @param name The name of the associated element. - * @param aname The name of the attribute. - * @return A string containing the token list. - */ - public String getAttributeEnumeration (String name, String aname) - { - Object attribute[] = getAttribute (name, aname); - if (attribute == null) { - return null; - } else { - // assert: attribute [0] is "ENUMERATION" or "NOTATION" - return (String) attribute [3]; - } - } - - - /** - * Retrieve the default value of a declared attribute. - * @param name The name of the associated element. - * @param aname The name of the attribute. - * @return The default value, or null if the attribute was - * #IMPLIED or simply undeclared and unspecified. - * @see #getAttributeExpandedValue - */ - public String getAttributeDefaultValue (String name, String aname) - { - Object attribute[] = getAttribute (name, aname); - if (attribute == null) { - return null; - } else { - return (String) attribute [1]; - } - } - - /* - -// FIXME: Leaving this in, until W3C finally resolves the confusion -// between parts of the XML 2nd REC about when entity declararations -// are guaranteed to be known. Current code matches what section 5.1 -// (conformance) describes, but some readings of the self-contradicting -// text in 4.1 (the "Entity Declared" WFC and VC) seem to expect that -// attribute expansion/normalization must be deferred in some cases -// (just TRY to identify them!). - - * Retrieve the expanded value of a declared attribute. - * <p>General entities (and char refs) will be expanded (once). - * @param name The name of the associated element. - * @param aname The name of the attribute. - * @return The expanded default value, or null if the attribute was - * #IMPLIED or simply undeclared - * @see #getAttributeDefaultValue - public String getAttributeExpandedValue (String name, String aname) - throws Exception - { - Object attribute[] = getAttribute (name, aname); - - if (attribute == null) { - return null; - } else if (attribute [4] == null && attribute [1] != null) { - // we MUST use the same buf for both quotes else the literal - // can't be properly terminated - char buf [] = new char [1]; - int flags = LIT_ENTITY_REF | LIT_ATTRIBUTE; - String type = getAttributeType (name, aname); - - if (type != "CDATA" && type != null) - flags |= LIT_NORMALIZE; - buf [0] = '"'; - pushCharArray (null, buf, 0, 1); - pushString (null, (String) attribute [1]); - pushCharArray (null, buf, 0, 1); - attribute [4] = readLiteral (flags); - } - return (String) attribute [4]; - } - */ - - /** - * Retrieve the default value mode of a declared attribute. - * @see #ATTRIBUTE_DEFAULT_SPECIFIED - * @see #ATTRIBUTE_DEFAULT_IMPLIED - * @see #ATTRIBUTE_DEFAULT_REQUIRED - * @see #ATTRIBUTE_DEFAULT_FIXED - */ - public int getAttributeDefaultValueType (String name, String aname) - { - Object attribute[] = getAttribute (name, aname); - if (attribute == null) { - return ATTRIBUTE_DEFAULT_UNDECLARED; - } else { - return ((Integer) attribute [2]).intValue (); - } - } - - - /** - * Register an attribute declaration for later retrieval. - * Format: - * - String type - * - String default value - * - int value type - * - enumeration - * - processed default value - */ - private void setAttribute (String elName, String name, String type, - String enumeration, - String value, int valueType) - throws Exception - { - Hashtable attlist; - - if (skippedPE) - return; - - // Create a new hashtable if necessary. - attlist = getElementAttributes (elName); - if (attlist == null) - attlist = new Hashtable (); - - // ignore multiple attribute declarations! - if (attlist.get (name) != null) { - // warn ... - return; - } else { - Object attribute [] = new Object [5]; - attribute [0] = type; - attribute [1] = value; - attribute [2] = new Integer (valueType); - attribute [3] = enumeration; - attribute [4] = null; - attlist.put (name, attribute); - - // save; but don't overwrite any existing <!ELEMENT ...> - setElement (elName, CONTENT_UNDECLARED, null, attlist); - } - } - - - /** - * Retrieve the array representing an attribute declaration. - */ - private Object[] getAttribute (String elName, String name) - { - Hashtable attlist; - - attlist = getElementAttributes (elName); - if (attlist == null) - return null; - return (Object[]) attlist.get (name); - } - - - // - // Entities - // - - /** - * Find the type of an entity. - * @returns An integer constant representing the entity type. - * @see #ENTITY_UNDECLARED - * @see #ENTITY_INTERNAL - * @see #ENTITY_NDATA - * @see #ENTITY_TEXT - */ - public int getEntityType (String ename) - { - Object entity[] = (Object[]) entityInfo.get (ename); - if (entity == null) { - return ENTITY_UNDECLARED; - } else { - return ((Integer) entity [0]).intValue (); - } - } - - - /** - * Return an external entity's identifier array. - * @param ename The name of the external entity. - * @return Three element array containing (in order) the entity's - * public identifier, system identifier, and base URI. Null if - * the entity was not declared as an external entity. - * @see #getEntityType - */ - public String [] getEntityIds (String ename) - { - Object entity[] = (Object[]) entityInfo.get (ename); - if (entity == null) { - return null; - } else { - return (String []) entity [1]; - } - } - - - /** - * Return an internal entity's replacement text. - * @param ename The name of the internal entity. - * @return The entity's replacement text, or null if - * the entity was not declared as an internal entity. - * @see #getEntityType - */ - public String getEntityValue (String ename) - { - Object entity[] = (Object[]) entityInfo.get (ename); - if (entity == null) { - return null; - } else { - return (String) entity [3]; - } - } - - - /** - * Register an entity declaration for later retrieval. - */ - private void setInternalEntity (String eName, String value) - throws SAXException - { - if (skippedPE) - return; - - if (entityInfo.get (eName) == null) { - Object entity[] = new Object [5]; - entity [0] = new Integer (ENTITY_INTERNAL); -// FIXME: shrink!! [2] useless - entity [3] = value; - entityInfo.put (eName, entity); - } - if ("lt" == eName || "gt" == eName || "quot" == eName - || "apos" == eName || "amp" == eName) - return; - handler.getDeclHandler () - .internalEntityDecl (eName, value); - } - - - /** - * Register an external entity declaration for later retrieval. - */ - private void setExternalEntity (String eName, int eClass, - String ids [], String nName) - { - if (entityInfo.get (eName) == null) { - Object entity[] = new Object [5]; - entity [0] = new Integer (eClass); - entity [1] = ids; -// FIXME: shrink!! [2] no longer used, [4] irrelevant given [0] - entity [4] = nName; - entityInfo.put (eName, entity); - } - } - - - // - // Notations. - // - - /** - * Report a notation declaration, checking for duplicates. - */ - private void setNotation (String nname, String ids []) - throws SAXException - { - if (skippedPE) - return; - - handler.notationDecl (nname, ids); - if (notationInfo.get (nname) == null) - notationInfo.put (nname, nname); - else - // VC: Unique Notation Name - handler.verror ("Duplicate notation name decl: " + nname); - } - - - // - // Location. - // - - - /** - * Return the current line number. - */ - public int getLineNumber () - { - return line; - } - - - /** - * Return the current column number. - */ - public int getColumnNumber () - { - return column; - } - - - ////////////////////////////////////////////////////////////////////// - // High-level I/O. - ////////////////////////////////////////////////////////////////////// - - - /** - * Read a single character from the readBuffer. - * <p>The readDataChunk () method maintains the buffer. - * <p>If we hit the end of an entity, try to pop the stack and - * keep going. - * <p> (This approach doesn't really enforce XML's rules about - * entity boundaries, but this is not currently a validating - * parser). - * <p>This routine also attempts to keep track of the current - * position in external entities, but it's not entirely accurate. - * @return The next available input character. - * @see #unread (char) - * @see #readDataChunk - * @see #readBuffer - * @see #line - * @return The next character from the current input source. - */ - private char readCh () - throws SAXException, IOException - { - // As long as there's nothing in the - // read buffer, try reading more data - // (for an external entity) or popping - // the entity stack (for either). - while (readBufferPos >= readBufferLength) { - switch (sourceType) { - case INPUT_READER: - case INPUT_STREAM: - readDataChunk (); - while (readBufferLength < 1) { - popInput (); - if (readBufferLength < 1) { - readDataChunk (); - } - } - break; - - default: - - popInput (); - break; - } - } - - char c = readBuffer [readBufferPos++]; - - if (c == '\n') { - line++; - column = 0; - } else { - if (c == '<') { - /* the most common return to parseContent () ... NOP */ - } else if ((c < 0x0020 && (c != '\t') && (c != '\r')) || c > 0xFFFD) - error ("illegal XML character U+" - + Integer.toHexString (c)); - - // If we're in the DTD and in a context where PEs get expanded, - // do so ... 1/14/2000 errata identify those contexts. There - // are also spots in the internal subset where PE refs are fatal - // errors, hence yet another flag. - else if (c == '%' && expandPE) { - if (peIsError) - error ("PE reference within decl in internal subset."); - parsePEReference (); - return readCh (); - } - column++; - } - - return c; - } - - - /** - * Push a single character back onto the current input stream. - * <p>This method usually pushes the character back onto - * the readBuffer. - * <p>I don't think that this would ever be called with - * readBufferPos = 0, because the methods always reads a character - * before unreading it, but just in case, I've added a boundary - * condition. - * @param c The character to push back. - * @see #readCh - * @see #unread (char[]) - * @see #readBuffer - */ - private void unread (char c) - throws SAXException - { - // Normal condition. - if (c == '\n') { - line--; - column = -1; - } - if (readBufferPos > 0) { - readBuffer [--readBufferPos] = c; - } else { - pushString (null, new Character (c).toString ()); - } - } - - - /** - * Push a char array back onto the current input stream. - * <p>NOTE: you must <em>never</em> push back characters that you - * haven't actually read: use pushString () instead. - * @see #readCh - * @see #unread (char) - * @see #readBuffer - * @see #pushString - */ - private void unread (char ch[], int length) - throws SAXException - { - for (int i = 0; i < length; i++) { - if (ch [i] == '\n') { - line--; - column = -1; - } - } - if (length < readBufferPos) { - readBufferPos -= length; - } else { - pushCharArray (null, ch, 0, length); - } - } - - - /** - * Push, or skip, a new external input source. - * The source will be some kind of parsed entity, such as a PE - * (including the external DTD subset) or content for the body. - * - * @param url The java.net.URL object for the entity. - * @see SAXDriver#resolveEntity - * @see #pushString - * @see #sourceType - * @see #pushInput - * @see #detectEncoding - * @see #sourceType - * @see #readBuffer - */ - private void pushURL ( - boolean isPE, - String ename, - String ids [], // public, system, baseURI - Reader reader, - InputStream stream, - String encoding, - boolean doResolve - ) throws SAXException, IOException - { - boolean ignoreEncoding; - String systemId; - InputSource source; - - if (!isPE) - dataBufferFlush (); - - scratch.setPublicId (ids [0]); - scratch.setSystemId (ids [1]); - - // See if we should skip or substitute the entity. - // If we're not skipping, resolving reports startEntity() - // and updates the (handler's) stack of URIs. - if (doResolve) { - // assert (stream == null && reader == null && encoding == null) - source = handler.resolveEntity (isPE, ename, scratch, ids [2]); - if (source == null) { - handler.warn ("skipping entity: " + ename); - handler.skippedEntity (ename); - if (isPE) - skippedPE = true; - return; - } - - // we might be using alternate IDs/encoding - systemId = source.getSystemId (); - // The following warning and setting systemId was deleted bcause - // the application has the option of not setting systemId - // provided that it has set the characte/byte stream. - /* - if (systemId == null) { - handler.warn ("missing system ID, using " + ids [1]); - systemId = ids [1]; - } - */ - } else { - // "[document]", or "[dtd]" via getExternalSubset() - scratch.setCharacterStream (reader); - scratch.setByteStream (stream); - scratch.setEncoding (encoding); - source = scratch; - systemId = ids [1]; - handler.startExternalEntity (ename, systemId, - "[document]" == ename); - } - - // we may have been given I/O streams directly - if (source.getCharacterStream () != null) { - if (source.getByteStream () != null) - error ("InputSource has two streams!"); - reader = source.getCharacterStream (); - } else if (source.getByteStream () != null) { - encoding = source.getEncoding (); - if (encoding == null) - stream = source.getByteStream (); - else try { - reader = new InputStreamReader ( - source.getByteStream (), - encoding); - } catch (IOException e) { - stream = source.getByteStream (); - } - } else if (systemId == null) - error ("InputSource has no URI!"); - scratch.setCharacterStream (null); - scratch.setByteStream (null); - scratch.setEncoding (null); - - // Push the existing status. - pushInput (ename); - - // Create a new read buffer. - // (Note the four-character margin) - readBuffer = new char [READ_BUFFER_MAX + 4]; - readBufferPos = 0; - readBufferLength = 0; - readBufferOverflow = -1; - is = null; - line = 1; - column = 0; - currentByteCount = 0; - - // If there's an explicit character stream, just - // ignore encoding declarations. - if (reader != null) { - sourceType = INPUT_READER; - this.reader = reader; - tryEncodingDecl (true); - return; - } - - // Else we handle the conversion, and need to ensure - // it's done right. - sourceType = INPUT_STREAM; - if (stream != null) { - is = stream; - } else { - // We have to open our own stream to the URL. - URL url = new URL (systemId); - - externalEntity = url.openConnection (); - externalEntity.connect (); - is = externalEntity.getInputStream (); - } - - // If we get to here, there must be - // an InputStream available. - if (!is.markSupported ()) { - is = new BufferedInputStream (is); - } - - // Get any external encoding label. - if (encoding == null && externalEntity != null) { - // External labels can be untrustworthy; filesystems in - // particular often have the wrong default for content - // that wasn't locally originated. Those we autodetect. - if (!"file".equals (externalEntity.getURL ().getProtocol ())) { - int temp; - - // application/xml;charset=something;otherAttr=... - // ... with many variants on 'something' - encoding = externalEntity.getContentType (); - - // MHK code (fix for Saxon 5.5.1/007): - // protect against encoding==null - if (encoding==null) { - temp = -1; - } else { - temp = encoding.indexOf ("charset"); - } - - // RFC 2376 sez MIME text defaults to ASCII, but since the - // JDK will create a MIME type out of thin air, we always - // autodetect when there's no explicit charset attribute. - if (temp < 0) - encoding = null; // autodetect - else { - // only this one attribute - if ((temp = encoding.indexOf (';')) > 0) - encoding = encoding.substring (0, temp); - - if ((temp = encoding.indexOf ('=', temp + 7)) > 0) { - encoding = encoding.substring (temp + 1); - - // attributes can have comment fields (RFC 822) - if ((temp = encoding.indexOf ('(')) > 0) - encoding = encoding.substring (0, temp); - // ... and values may be quoted - if ((temp = encoding.indexOf ('"')) > 0) - encoding = encoding.substring (temp + 1, - encoding.indexOf ('"', temp + 2)); - encoding.trim (); - } else { - handler.warn ("ignoring illegal MIME attribute: " - + encoding); - encoding = null; - } - } - } - } - - // if we got an external encoding label, use it ... - if (encoding != null) { - this.encoding = ENCODING_EXTERNAL; - setupDecoding (encoding); - ignoreEncoding = true; - - // ... else autodetect from first bytes. - } else { - detectEncoding (); - ignoreEncoding = false; - } - - // Read any XML or text declaration. - // If we autodetected, it may tell us the "real" encoding. - try { - tryEncodingDecl (ignoreEncoding); - } catch (UnsupportedEncodingException x) { - encoding = x.getMessage (); - - // if we don't handle the declared encoding, - // try letting a JVM InputStreamReader do it - try { - if (sourceType != INPUT_STREAM) - throw x; - - is.reset (); - readBufferPos = 0; - readBufferLength = 0; - readBufferOverflow = -1; - line = 1; - currentByteCount = column = 0; - - sourceType = INPUT_READER; - this.reader = new InputStreamReader (is, encoding); - is = null; - - tryEncodingDecl (true); - - } catch (IOException e) { - error ("unsupported text encoding", - encoding, - null); - } - } - } - - - /** - * Check for an encoding declaration. This is the second part of the - * XML encoding autodetection algorithm, relying on detectEncoding to - * get to the point that this part can read any encoding declaration - * in the document (using only US-ASCII characters). - * - * <p> Because this part starts to fill parser buffers with this data, - * it's tricky to setup a reader so that Java's built-in decoders can be - * used for the character encodings that aren't built in to this parser - * (such as EUC-JP, KOI8-R, Big5, etc). - * - * @return any encoding in the declaration, uppercased; or null - * @see detectEncoding - */ - private String tryEncodingDecl (boolean ignoreEncoding) - throws SAXException, IOException - { - // Read the XML/text declaration. - if (tryRead ("<?xml")) { - if (tryWhitespace ()) { - if (inputStack.size () > 0) { - return parseTextDecl (ignoreEncoding); - } else { - return parseXMLDecl (ignoreEncoding); - } - } else { - // <?xml-stylesheet ...?> or similar - unread ('l'); - unread ('m'); - unread ('x'); - unread ('?'); - unread ('<'); - } - } - return null; - } - - - /** - * Attempt to detect the encoding of an entity. - * <p>The trick here (as suggested in the XML standard) is that - * any entity not in UTF-8, or in UCS-2 with a byte-order mark, - * <b>must</b> begin with an XML declaration or an encoding - * declaration; we simply have to look for "<?xml" in various - * encodings. - * <p>This method has no way to distinguish among 8-bit encodings. - * Instead, it sets up for UTF-8, then (possibly) revises its assumption - * later in setupDecoding (). Any ASCII-derived 8-bit encoding - * should work, but most will be rejected later by setupDecoding (). - * @see #tryEncoding (byte[], byte, byte, byte, byte) - * @see #tryEncoding (byte[], byte, byte) - * @see #setupDecoding - */ - private void detectEncoding () - throws SAXException, IOException - { - byte signature[] = new byte [4]; - - // Read the first four bytes for - // autodetection. - is.mark (4); - is.read (signature); - is.reset (); - - // - // FIRST: four byte encodings (who uses these?) - // - if (tryEncoding (signature, (byte) 0x00, (byte) 0x00, - (byte) 0x00, (byte) 0x3c)) { - // UCS-4 must begin with "<?xml" - // 0x00 0x00 0x00 0x3c: UCS-4, big-endian (1234) - // "UTF-32BE" - encoding = ENCODING_UCS_4_1234; - - } else if (tryEncoding (signature, (byte) 0x3c, (byte) 0x00, - (byte) 0x00, (byte) 0x00)) { - // 0x3c 0x00 0x00 0x00: UCS-4, little-endian (4321) - // "UTF-32LE" - encoding = ENCODING_UCS_4_4321; - - } else if (tryEncoding (signature, (byte) 0x00, (byte) 0x00, - (byte) 0x3c, (byte) 0x00)) { - // 0x00 0x00 0x3c 0x00: UCS-4, unusual (2143) - encoding = ENCODING_UCS_4_2143; - - } else if (tryEncoding (signature, (byte) 0x00, (byte) 0x3c, - (byte) 0x00, (byte) 0x00)) { - // 0x00 0x3c 0x00 0x00: UCS-4, unusual (3421) - encoding = ENCODING_UCS_4_3412; - - // 00 00 fe ff UCS_4_1234 (with BOM) - // ff fe 00 00 UCS_4_4321 (with BOM) - } - - // - // SECOND: two byte encodings - // note ... with 1/14/2000 errata the XML spec identifies some - // more "broken UTF-16" autodetection cases, with no XML decl, - // which we don't handle here (that's legal too). - // - else if (tryEncoding (signature, (byte) 0xfe, (byte) 0xff)) { - // UCS-2 with a byte-order marker. (UTF-16) - // 0xfe 0xff: UCS-2, big-endian (12) - encoding = ENCODING_UCS_2_12; - is.read (); is.read (); - - } else if (tryEncoding (signature, (byte) 0xff, (byte) 0xfe)) { - // UCS-2 with a byte-order marker. (UTF-16) - // 0xff 0xfe: UCS-2, little-endian (21) - encoding = ENCODING_UCS_2_21; - is.read (); is.read (); - - } else if (tryEncoding (signature, (byte) 0x00, (byte) 0x3c, - (byte) 0x00, (byte) 0x3f)) { - // UTF-16BE (otherwise, malformed UTF-16) - // 0x00 0x3c 0x00 0x3f: UCS-2, big-endian, no byte-order mark - encoding = ENCODING_UCS_2_12; - error ("no byte-order mark for UCS-2 entity"); - - } else if (tryEncoding (signature, (byte) 0x3c, (byte) 0x00, - (byte) 0x3f, (byte) 0x00)) { - // UTF-16LE (otherwise, malformed UTF-16) - // 0x3c 0x00 0x3f 0x00: UCS-2, little-endian, no byte-order mark - encoding = ENCODING_UCS_2_21; - error ("no byte-order mark for UCS-2 entity"); - } - - // - // THIRD: ASCII-derived encodings, fixed and variable lengths - // - else if (tryEncoding (signature, (byte) 0x3c, (byte) 0x3f, - (byte) 0x78, (byte) 0x6d)) { - // ASCII derived - // 0x3c 0x3f 0x78 0x6d: UTF-8 or other 8-bit markup (read ENCODING) - encoding = ENCODING_UTF_8; - prefetchASCIIEncodingDecl (); - - } else if (signature [0] == (byte) 0xef - && signature [1] == (byte) 0xbb - && signature [2] == (byte) 0xbf) { - // 0xef 0xbb 0xbf: UTF-8 BOM (not part of document text) - // this un-needed notion slipped into XML 2nd ed through a - // "non-normative" erratum; now required by MSFT and UDDI, - // and E22 made it normative. - encoding = ENCODING_UTF_8; - is.read (); is.read (); is.read (); - - } else { - // 4c 6f a7 94 ... we don't understand EBCDIC flavors - // ... but we COULD at least kick in some fixed code page - - // (default) UTF-8 without encoding/XML declaration - encoding = ENCODING_UTF_8; - } - } - - - /** - * Check for a four-byte signature. - * <p>Utility routine for detectEncoding (). - * <p>Always looks for some part of "<?XML" in a specific encoding. - * @param sig The first four bytes read. - * @param b1 The first byte of the signature - * @param b2 The second byte of the signature - * @param b3 The third byte of the signature - * @param b4 The fourth byte of the signature - * @see #detectEncoding - */ - private static boolean tryEncoding ( - byte sig[], byte b1, byte b2, byte b3, byte b4) - { - return (sig [0] == b1 && sig [1] == b2 - && sig [2] == b3 && sig [3] == b4); - } - - - /** - * Check for a two-byte signature. - * <p>Looks for a UCS-2 byte-order mark. - * <p>Utility routine for detectEncoding (). - * @param sig The first four bytes read. - * @param b1 The first byte of the signature - * @param b2 The second byte of the signature - * @see #detectEncoding - */ - private static boolean tryEncoding (byte sig[], byte b1, byte b2) - { - return ((sig [0] == b1) && (sig [1] == b2)); - } - - - /** - * This method pushes a string back onto input. - * <p>It is useful either as the expansion of an internal entity, - * or for backtracking during the parse. - * <p>Call pushCharArray () to do the actual work. - * @param s The string to push back onto input. - * @see #pushCharArray - */ - private void pushString (String ename, String s) - throws SAXException - { - char ch[] = s.toCharArray (); - pushCharArray (ename, ch, 0, ch.length); - } - - - /** - * Push a new internal input source. - * <p>This method is useful for expanding an internal entity, - * or for unreading a string of characters. It creates a new - * readBuffer containing the characters in the array, instead - * of characters converted from an input byte stream. - * @param ch The char array to push. - * @see #pushString - * @see #pushURL - * @see #readBuffer - * @see #sourceType - * @see #pushInput - */ - private void pushCharArray (String ename, char ch[], int start, int length) - throws SAXException - { - // Push the existing status - pushInput (ename); - if (ename != null && doReport) { - dataBufferFlush (); - handler.startInternalEntity (ename); - } - sourceType = INPUT_INTERNAL; - readBuffer = ch; - readBufferPos = start; - readBufferLength = length; - readBufferOverflow = -1; - } - - - /** - * Save the current input source onto the stack. - * <p>This method saves all of the global variables associated with - * the current input source, so that they can be restored when a new - * input source has finished. It also tests for entity recursion. - * <p>The method saves the following global variables onto a stack - * using a fixed-length array: - * <ol> - * <li>sourceType - * <li>externalEntity - * <li>readBuffer - * <li>readBufferPos - * <li>readBufferLength - * <li>line - * <li>encoding - * </ol> - * @param ename The name of the entity (if any) causing the new input. - * @see #popInput - * @see #sourceType - * @see #externalEntity - * @see #readBuffer - * @see #readBufferPos - * @see #readBufferLength - * @see #line - * @see #encoding - */ - private void pushInput (String ename) - throws SAXException - { - // Check for entity recursion. - if (ename != null) { - Enumeration entities = entityStack.elements (); - while (entities.hasMoreElements ()) { - String e = (String) entities.nextElement (); - if (e != null && e == ename) { - error ("recursive reference to entity", ename, null); - } - } - } - entityStack.push (ename); - - // Don't bother if there is no current input. - if (sourceType == INPUT_NONE) { - return; - } - - // Set up a snapshot of the current - // input source. - Object input[] = new Object [12]; - - input [0] = new Integer (sourceType); - input [1] = externalEntity; - input [2] = readBuffer; - input [3] = new Integer (readBufferPos); - input [4] = new Integer (readBufferLength); - input [5] = new Integer (line); - input [6] = new Integer (encoding); - input [7] = new Integer (readBufferOverflow); - input [8] = is; - input [9] = new Integer (currentByteCount); - input [10] = new Integer (column); - input [11] = reader; - - // Push it onto the stack. - inputStack.push (input); - } - - - /** - * Restore a previous input source. - * <p>This method restores all of the global variables associated with - * the current input source. - * @exception java.io.EOFException - * If there are no more entries on the input stack. - * @see #pushInput - * @see #sourceType - * @see #externalEntity - * @see #readBuffer - * @see #readBufferPos - * @see #readBufferLength - * @see #line - * @see #encoding - */ - private void popInput () - throws SAXException, IOException - { - String ename = (String) entityStack.pop (); - - if (ename != null && doReport) - dataBufferFlush (); - switch (sourceType) { - case INPUT_STREAM: - handler.endExternalEntity (ename); - is.close (); - break; - case INPUT_READER: - handler.endExternalEntity (ename); - reader.close (); - break; - case INPUT_INTERNAL: - if (ename != null && doReport) - handler.endInternalEntity (ename); - break; - } - - // Throw an EOFException if there - // is nothing else to pop. - if (inputStack.isEmpty ()) { - throw new EOFException ("no more input"); - } - - Object input [] = (Object[]) inputStack.pop (); - - sourceType = ((Integer) input [0]).intValue (); - externalEntity = (URLConnection) input [1]; - readBuffer = (char[]) input [2]; - readBufferPos = ((Integer) input [3]).intValue (); - readBufferLength = ((Integer) input [4]).intValue (); - line = ((Integer) input [5]).intValue (); - encoding = ((Integer) input [6]).intValue (); - readBufferOverflow = ((Integer) input [7]).intValue (); - is = (InputStream) input [8]; - currentByteCount = ((Integer) input [9]).intValue (); - column = ((Integer) input [10]).intValue (); - reader = (Reader) input [11]; - } - - - /** - * Return true if we can read the expected character. - * <p>Note that the character will be removed from the input stream - * on success, but will be put back on failure. Do not attempt to - * read the character again if the method succeeds. - * @param delim The character that should appear next. For a - * insensitive match, you must supply this in upper-case. - * @return true if the character was successfully read, or false if - * it was not. - * @see #tryRead (String) - */ - private boolean tryRead (char delim) - throws SAXException, IOException - { - char c; - - // Read the character - c = readCh (); - - // Test for a match, and push the character - // back if the match fails. - if (c == delim) { - return true; - } else { - unread (c); - return false; - } - } - - - /** - * Return true if we can read the expected string. - * <p>This is simply a convenience method. - * <p>Note that the string will be removed from the input stream - * on success, but will be put back on failure. Do not attempt to - * read the string again if the method succeeds. - * <p>This method will push back a character rather than an - * array whenever possible (probably the majority of cases). - * @param delim The string that should appear next. - * @return true if the string was successfully read, or false if - * it was not. - * @see #tryRead (char) - */ - private boolean tryRead (String delim) - throws SAXException, IOException - { - return tryRead (delim.toCharArray ()); - } - - private boolean tryRead (char ch []) - throws SAXException, IOException - { - char c; - - // Compare the input, character- - // by character. - - for (int i = 0; i < ch.length; i++) { - c = readCh (); - if (c != ch [i]) { - unread (c); - if (i != 0) { - unread (ch, i); - } - return false; - } - } - return true; - } - - - - /** - * Return true if we can read some whitespace. - * <p>This is simply a convenience method. - * <p>This method will push back a character rather than an - * array whenever possible (probably the majority of cases). - * @return true if whitespace was found. - */ - private boolean tryWhitespace () - throws SAXException, IOException - { - char c; - c = readCh (); - if (isWhitespace (c)) { - skipWhitespace (); - return true; - } else { - unread (c); - return false; - } - } - - - /** - * Read all data until we find the specified string. - * This is useful for scanning CDATA sections and PIs. - * <p>This is inefficient right now, since it calls tryRead () - * for every character. - * @param delim The string delimiter - * @see #tryRead (String, boolean) - * @see #readCh - */ - private void parseUntil (String delim) - throws SAXException, IOException - { - parseUntil (delim.toCharArray ()); - } - - private void parseUntil (char delim []) - throws SAXException, IOException - { - char c; - int startLine = line; - - try { - while (!tryRead (delim)) { - c = readCh (); - dataBufferAppend (c); - } - } catch (EOFException e) { - error ("end of input while looking for delimiter " - + "(started on line " + startLine - + ')', null, new String (delim)); - } - } - - - ////////////////////////////////////////////////////////////////////// - // Low-level I/O. - ////////////////////////////////////////////////////////////////////// - - - /** - * Prefetch US-ASCII XML/text decl from input stream into read buffer. - * Doesn't buffer more than absolutely needed, so that when an encoding - * decl says we need to create an InputStreamReader, we can discard our - * buffer and reset(). Caller knows the first chars of the decl exist - * in the input stream. - */ - private void prefetchASCIIEncodingDecl () - throws SAXException, IOException - { - int ch; - readBufferPos = readBufferLength = 0; - - is.mark (readBuffer.length); - while (true) { - ch = is.read (); - readBuffer [readBufferLength++] = (char) ch; - switch (ch) { - case (int) '>': - return; - case -1: - error ("file ends before end of XML or encoding declaration.", - null, "?>"); - } - if (readBuffer.length == readBufferLength) - error ("unfinished XML or encoding declaration"); - } - } - - /** - * Read a chunk of data from an external input source. - * <p>This is simply a front-end that fills the rawReadBuffer - * with bytes, then calls the appropriate encoding handler. - * @see #encoding - * @see #rawReadBuffer - * @see #readBuffer - * @see #filterCR - * @see #copyUtf8ReadBuffer - * @see #copyIso8859_1ReadBuffer - * @see #copyUcs_2ReadBuffer - * @see #copyUcs_4ReadBuffer - */ - private void readDataChunk () - throws SAXException, IOException - { - int count; - - // See if we have any overflow (filterCR sets for CR at end) - if (readBufferOverflow > -1) { - readBuffer [0] = (char) readBufferOverflow; - readBufferOverflow = -1; - readBufferPos = 1; - sawCR = true; - } else { - readBufferPos = 0; - sawCR = false; - } - - // input from a character stream. - if (sourceType == INPUT_READER) { - count = reader.read (readBuffer, - readBufferPos, READ_BUFFER_MAX - readBufferPos); - if (count < 0) - readBufferLength = readBufferPos; - else - readBufferLength = readBufferPos + count; - if (readBufferLength > 0) - filterCR (count >= 0); - sawCR = false; - return; - } - - // Read as many bytes as possible into the raw buffer. - count = is.read (rawReadBuffer, 0, READ_BUFFER_MAX); - - // Dispatch to an encoding-specific reader method to populate - // the readBuffer. In most parser speed profiles, these routines - // show up at the top of the CPU usage chart. - if (count > 0) { - switch (encoding) { - // one byte builtins - case ENCODING_ASCII: - copyIso8859_1ReadBuffer (count, (char) 0x0080); - break; - case ENCODING_UTF_8: - copyUtf8ReadBuffer (count); - break; - case ENCODING_ISO_8859_1: - copyIso8859_1ReadBuffer (count, (char) 0); - break; - - // two byte builtins - case ENCODING_UCS_2_12: - copyUcs2ReadBuffer (count, 8, 0); - break; - case ENCODING_UCS_2_21: - copyUcs2ReadBuffer (count, 0, 8); - break; - - // four byte builtins - case ENCODING_UCS_4_1234: - copyUcs4ReadBuffer (count, 24, 16, 8, 0); - break; - case ENCODING_UCS_4_4321: - copyUcs4ReadBuffer (count, 0, 8, 16, 24); - break; - case ENCODING_UCS_4_2143: - copyUcs4ReadBuffer (count, 16, 24, 0, 8); - break; - case ENCODING_UCS_4_3412: - copyUcs4ReadBuffer (count, 8, 0, 24, 16); - break; - } - } else - readBufferLength = readBufferPos; - - readBufferPos = 0; - - // Filter out all carriage returns if we've seen any - // (including any saved from a previous read) - if (sawCR) { - filterCR (count >= 0); - sawCR = false; - - // must actively report EOF, lest some CRs get lost. - if (readBufferLength == 0 && count >= 0) - readDataChunk (); - } - - if (count > 0) - currentByteCount += count; - } - - - /** - * Filter carriage returns in the read buffer. - * CRLF becomes LF; CR becomes LF. - * @param moreData true iff more data might come from the same source - * @see #readDataChunk - * @see #readBuffer - * @see #readBufferOverflow - */ - private void filterCR (boolean moreData) - { - int i, j; - - readBufferOverflow = -1; - -loop: - for (i = j = readBufferPos; j < readBufferLength; i++, j++) { - switch (readBuffer [j]) { - case '\r': - if (j == readBufferLength - 1) { - if (moreData) { - readBufferOverflow = '\r'; - readBufferLength--; - } else // CR at end of buffer - readBuffer [i++] = '\n'; - break loop; - } else if (readBuffer [j + 1] == '\n') { - j++; - } - readBuffer [i] = '\n'; - break; - - case '\n': - default: - readBuffer [i] = readBuffer [j]; - break; - } - } - readBufferLength = i; - } - - /** - * Convert a buffer of UTF-8-encoded bytes into UTF-16 characters. - * <p>When readDataChunk () calls this method, the raw bytes are in - * rawReadBuffer, and the final characters will appear in - * readBuffer. - * <p>Note that as of Unicode 3.1, good practice became a requirement, - * so that each Unicode character has exactly one UTF-8 representation. - * @param count The number of bytes to convert. - * @see #readDataChunk - * @see #rawReadBuffer - * @see #readBuffer - * @see #getNextUtf8Byte - */ - private void copyUtf8ReadBuffer (int count) - throws SAXException, IOException - { - int i = 0; - int j = readBufferPos; - int b1; - char c = 0; - - /* - // check once, so the runtime won't (if it's smart enough) - if (count < 0 || count > rawReadBuffer.length) - throw new ArrayIndexOutOfBoundsException (Integer.toString (count)); - */ - - while (i < count) { - b1 = rawReadBuffer [i++]; - - // Determine whether we are dealing - // with a one-, two-, three-, or four- - // byte sequence. - if (b1 < 0) { - if ((b1 & 0xe0) == 0xc0) { - // 2-byte sequence: 00000yyyyyxxxxxx = 110yyyyy 10xxxxxx - c = (char) (((b1 & 0x1f) << 6) - | getNextUtf8Byte (i++, count)); - if (c < 0x0080) - encodingError ("Illegal two byte UTF-8 sequence", - c, 0); - } else if ((b1 & 0xf0) == 0xe0) { - // 3-byte sequence: - // zzzzyyyyyyxxxxxx = 1110zzzz 10yyyyyy 10xxxxxx - // most CJKV characters - c = (char) (((b1 & 0x0f) << 12) | - (getNextUtf8Byte (i++, count) << 6) | - getNextUtf8Byte (i++, count)); - if (c < 0x0800 || (c >= 0xd800 && c <= 0xdfff)) - encodingError ("Illegal three byte UTF-8 sequence", - c, 0); - } else if ((b1 & 0xf8) == 0xf0) { - // 4-byte sequence: 11101110wwwwzzzzyy + 110111yyyyxxxxxx - // = 11110uuu 10uuzzzz 10yyyyyy 10xxxxxx - // (uuuuu = wwww + 1) - // "Surrogate Pairs" ... from the "Astral Planes" - // Unicode 3.1 assigned the first characters there - int iso646 = b1 & 07; - iso646 = (iso646 << 6) + getNextUtf8Byte (i++, count); - iso646 = (iso646 << 6) + getNextUtf8Byte (i++, count); - iso646 = (iso646 << 6) + getNextUtf8Byte (i++, count); - - if (iso646 <= 0xffff) { - encodingError ("Illegal four byte UTF-8 sequence", - iso646, 0); - } else { - if (iso646 > 0x0010ffff) - encodingError ( - "UTF-8 value out of range for Unicode", - iso646, 0); - iso646 -= 0x010000; - readBuffer [j++] = (char) (0xd800 | (iso646 >> 10)); - readBuffer [j++] = (char) (0xdc00 | (iso646 & 0x03ff)); - continue; - } - } else { - // The five and six byte encodings aren't supported; - // they exceed the Unicode (and XML) range. - encodingError ( - "unsupported five or six byte UTF-8 sequence", - 0xff & b1, i); - // NOTREACHED - c = 0; - } - } else { - // 1-byte sequence: 000000000xxxxxxx = 0xxxxxxx - // (US-ASCII character, "common" case, one branch to here) - c = (char) b1; - } - readBuffer [j++] = c; - if (c == '\r') - sawCR = true; - } - // How many characters have we read? - readBufferLength = j; - } - - - /** - * Return the next byte value in a UTF-8 sequence. - * If it is not possible to get a byte from the current - * entity, throw an exception. - * @param pos The current position in the rawReadBuffer. - * @param count The number of bytes in the rawReadBuffer - * @return The significant six bits of a non-initial byte in - * a UTF-8 sequence. - * @exception EOFException If the sequence is incomplete. - */ - private int getNextUtf8Byte (int pos, int count) - throws SAXException, IOException - { - int val; - - // Take a character from the buffer - // or from the actual input stream. - if (pos < count) { - val = rawReadBuffer [pos]; - } else { - val = is.read (); - if (val == -1) { - encodingError ("unfinished multi-byte UTF-8 sequence at EOF", - -1, pos); - } - } - - // Check for the correct bits at the start. - if ((val & 0xc0) != 0x80) { - encodingError ("bad continuation of multi-byte UTF-8 sequence", - val, pos + 1); - } - - // Return the significant bits. - return (val & 0x3f); - } - - - /** - * Convert a buffer of US-ASCII or ISO-8859-1-encoded bytes into - * UTF-16 characters. - * - * <p>When readDataChunk () calls this method, the raw bytes are in - * rawReadBuffer, and the final characters will appear in - * readBuffer. - * - * @param count The number of bytes to convert. - * @param mask For ASCII conversion, 0x7f; else, 0xff. - * @see #readDataChunk - * @see #rawReadBuffer - * @see #readBuffer - */ - private void copyIso8859_1ReadBuffer (int count, char mask) - throws IOException - { - int i, j; - for (i = 0, j = readBufferPos; i < count; i++, j++) { - char c = (char) (rawReadBuffer [i] & 0xff); - if ((c & mask) != 0) - throw new CharConversionException ("non-ASCII character U+" - + Integer.toHexString (c)); - readBuffer [j] = c; - if (c == '\r') { - sawCR = true; - } - } - readBufferLength = j; - } - - - /** - * Convert a buffer of UCS-2-encoded bytes into UTF-16 characters - * (as used in Java string manipulation). - * - * <p>When readDataChunk () calls this method, the raw bytes are in - * rawReadBuffer, and the final characters will appear in - * readBuffer. - * @param count The number of bytes to convert. - * @param shift1 The number of bits to shift byte 1. - * @param shift2 The number of bits to shift byte 2 - * @see #readDataChunk - * @see #rawReadBuffer - * @see #readBuffer - */ - private void copyUcs2ReadBuffer (int count, int shift1, int shift2) - throws SAXException - { - int j = readBufferPos; - - if (count > 0 && (count % 2) != 0) { - encodingError ("odd number of bytes in UCS-2 encoding", -1, count); - } - // The loops are faster with less internal brancing; hence two - if (shift1 == 0) { // "UTF-16-LE" - for (int i = 0; i < count; i += 2) { - char c = (char) (rawReadBuffer [i + 1] << 8); - c |= 0xff & rawReadBuffer [i]; - readBuffer [j++] = c; - if (c == '\r') - sawCR = true; - } - } else { // "UTF-16-BE" - for (int i = 0; i < count; i += 2) { - char c = (char) (rawReadBuffer [i] << 8); - c |= 0xff & rawReadBuffer [i + 1]; - readBuffer [j++] = c; - if (c == '\r') - sawCR = true; - } - } - readBufferLength = j; - } - - - /** - * Convert a buffer of UCS-4-encoded bytes into UTF-16 characters. - * - * <p>When readDataChunk () calls this method, the raw bytes are in - * rawReadBuffer, and the final characters will appear in - * readBuffer. - * <p>Java has Unicode chars, and this routine uses surrogate pairs - * for ISO-10646 values between 0x00010000 and 0x000fffff. An - * exception is thrown if the ISO-10646 character has no Unicode - * representation. - * - * @param count The number of bytes to convert. - * @param shift1 The number of bits to shift byte 1. - * @param shift2 The number of bits to shift byte 2 - * @param shift3 The number of bits to shift byte 2 - * @param shift4 The number of bits to shift byte 2 - * @see #readDataChunk - * @see #rawReadBuffer - * @see #readBuffer - */ - private void copyUcs4ReadBuffer (int count, int shift1, int shift2, - int shift3, int shift4) - throws SAXException - { - int j = readBufferPos; - - if (count > 0 && (count % 4) != 0) { - encodingError ( - "number of bytes in UCS-4 encoding not divisible by 4", - -1, count); - } - for (int i = 0; i < count; i += 4) { - int value = (((rawReadBuffer [i] & 0xff) << shift1) | - ((rawReadBuffer [i + 1] & 0xff) << shift2) | - ((rawReadBuffer [i + 2] & 0xff) << shift3) | - ((rawReadBuffer [i + 3] & 0xff) << shift4)); - if (value < 0x0000ffff) { - readBuffer [j++] = (char) value; - if (value == (int) '\r') { - sawCR = true; - } - } else if (value < 0x0010ffff) { - value -= 0x010000; - readBuffer [j++] = (char) (0xd8 | ((value >> 10) & 0x03ff)); - readBuffer [j++] = (char) (0xdc | (value & 0x03ff)); - } else { - encodingError ("UCS-4 value out of range for Unicode", - value, i); - } - } - readBufferLength = j; - } - - - /** - * Report a character encoding error. - */ - private void encodingError (String message, int value, int offset) - throws SAXException - { - if (value != -1) - message = message + " (character code: 0x" + - Integer.toHexString (value) + ')'; - error (message); - } - - - ////////////////////////////////////////////////////////////////////// - // Local Variables. - ////////////////////////////////////////////////////////////////////// - - /** - * Re-initialize the variables for each parse. - */ - private void initializeVariables () - { - // First line - line = 1; - column = 0; - - // Set up the buffers for data and names - dataBufferPos = 0; - dataBuffer = new char [DATA_BUFFER_INITIAL]; - nameBufferPos = 0; - nameBuffer = new char [NAME_BUFFER_INITIAL]; - - // Set up the DTD hash tables - elementInfo = new Hashtable (); - entityInfo = new Hashtable (); - notationInfo = new Hashtable (); - skippedPE = false; - - // Set up the variables for the current - // element context. - currentElement = null; - currentElementContent = CONTENT_UNDECLARED; - - // Set up the input variables - sourceType = INPUT_NONE; - inputStack = new Stack (); - entityStack = new Stack (); - externalEntity = null; - tagAttributePos = 0; - tagAttributes = new String [100]; - rawReadBuffer = new byte [READ_BUFFER_MAX]; - readBufferOverflow = -1; - - scratch = new InputSource (); - - inLiteral = false; - expandPE = false; - peIsError = false; - - doReport = false; - - inCDATA = false; - - symbolTable = new Object [SYMBOL_TABLE_LENGTH][]; - } - - - // - // The current XML handler interface. - // - private SAXDriver handler; - - // - // I/O information. - // - private Reader reader; // current reader - private InputStream is; // current input stream - private int line; // current line number - private int column; // current column number - private int sourceType; // type of input source - private Stack inputStack; // stack of input soruces - private URLConnection externalEntity; // current external entity - private int encoding; // current character encoding - private int currentByteCount; // bytes read from current source - private InputSource scratch; // temporary - - // - // Buffers for decoded but unparsed character input. - // - private char readBuffer []; - private int readBufferPos; - private int readBufferLength; - private int readBufferOverflow; // overflow from last data chunk. - - - // - // Buffer for undecoded raw byte input. - // - private final static int READ_BUFFER_MAX = 16384; - private byte rawReadBuffer []; - - - // - // Buffer for attribute values, char refs, DTD stuff. - // - private static int DATA_BUFFER_INITIAL = 4096; - private char dataBuffer []; - private int dataBufferPos; - - // - // Buffer for parsed names. - // - private static int NAME_BUFFER_INITIAL = 1024; - private char nameBuffer []; - private int nameBufferPos; - - // - // Save any standalone flag - // - private boolean docIsStandalone; - - // - // Hashtables for DTD information on elements, entities, and notations. - // Populated until we start ignoring decls (because of skipping a PE) - // - private Hashtable elementInfo; - private Hashtable entityInfo; - private Hashtable notationInfo; - private boolean skippedPE; - - - // - // Element type currently in force. - // - private String currentElement; - private int currentElementContent; - - // - // Stack of entity names, to detect recursion. - // - private Stack entityStack; - - // - // PE expansion is enabled in most chunks of the DTD, not all. - // When it's enabled, literals are treated differently. - // - private boolean inLiteral; - private boolean expandPE; - private boolean peIsError; - - // - // can't report entity expansion inside two constructs: - // - attribute expansions (internal entities only) - // - markup declarations (parameter entities only) - // - private boolean doReport; - - // - // Symbol table, for caching interned names. - // - // These show up wherever XML names or nmtokens are used: naming elements, - // attributes, PIs, notations, entities, and enumerated attribute values. - // - // NOTE: This hashtable doesn't grow. The default size is intended to be - // rather large for most documents. Example: one snapshot of the DocBook - // XML 4.1 DTD used only about 350 such names. As a rule, only pathological - // documents (ones that don't reuse names) should ever see much collision. - // - // Be sure that SYMBOL_TABLE_LENGTH always stays prime, for best hashing. - // "2039" keeps the hash table size at about two memory pages on typical - // 32 bit hardware. - // - private final static int SYMBOL_TABLE_LENGTH = 2039; - - private Object symbolTable [][]; - - // - // Hash table of attributes found in current start tag. - // - private String tagAttributes []; - private int tagAttributePos; - - // - // Utility flag: have we noticed a CR while reading the last - // data chunk? If so, we will have to go back and normalise - // CR or CR/LF line ends. - // - private boolean sawCR; - - // - // Utility flag: are we in CDATA? If so, whitespace isn't ignorable. - // - private boolean inCDATA; -} diff --git a/external/jaxp/source/gnu/xml/aelfred2/XmlReader.java b/external/jaxp/source/gnu/xml/aelfred2/XmlReader.java deleted file mode 100644 index 01a936933..000000000 --- a/external/jaxp/source/gnu/xml/aelfred2/XmlReader.java +++ /dev/null @@ -1,304 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.aelfred2; - -import java.io.IOException; -import java.util.Locale; - -import org.xml.sax.*; -import org.xml.sax.ext.*; - -import gnu.xml.pipeline.EventFilter; -import gnu.xml.pipeline.ValidationConsumer; - - -/** - * This SAX2 parser optionally layers a validator over the Ælfred2 - * SAX2 parser. While this will not evaluate every XML validity constraint, - * it does support all the validity constraints that are of any real utility - * outside the strict SGML-compatible world. See the documentation for the - * SAXDriver class for information about the SAX2 features and properties - * that are supported, and documentation for the ValidationConsumer for - * information about what validity constraints may not be supported. - * (Ælfred2 tests some of those, even in non-validating mode, to - * achieve better conformance.) - * - * <p> Note that due to its internal construction, you can't change most - * handlers until parse() returns. This diverges slightly from SAX, which - * expects later binding to be supported. Early binding involves less - * runtime overhead, which is an issue for event pipelines as used inside - * this parser. Rather than relying on the parser to handle late binding - * to your own handlers, do it yourself. - * - * @see SAXDriver - * @see gnu.xml.pipeline.ValidationConsumer - * - * @author David Brownell - */ -public final class XmlReader implements XMLReader -{ - private SAXDriver aelfred2 = new SAXDriver (); - private EventFilter filter = new EventFilter (); - private boolean isValidating; - private boolean active; - - - /** Constructs a SAX Parser. */ - public XmlReader () - { } - - /** - * Constructs a SAX Parser, optionally treating validity errors - * as if they were fatal errors. - */ - public XmlReader (boolean invalidIsFatal) - { - if (invalidIsFatal) - setErrorHandler (new DefaultHandler2 () { - public void error (SAXParseException e) - throws SAXException - { throw e; } - }); - } - - /** - * <b>SAX2</b>: Returns the object used to report the logical - * content of an XML document. - */ - public ContentHandler getContentHandler () - { return filter.getContentHandler (); } - - /** - * <b>SAX2</b>: Assigns the object used to report the logical - * content of an XML document. - * @exception IllegalStateException if called mid-parse - */ - public void setContentHandler (ContentHandler handler) - { - if (active) - throw new IllegalStateException ("already parsing"); - filter.setContentHandler (handler); - } - - /** - * <b>SAX2</b>: Returns the object used to process declarations related - * to notations and unparsed entities. - */ - public DTDHandler getDTDHandler () - { return filter.getDTDHandler (); } - - /** - * <b>SAX1</b> Assigns DTD handler - * @exception IllegalStateException if called mid-parse - */ - public void setDTDHandler (DTDHandler handler) - { - if (active) - throw new IllegalStateException ("already parsing"); - filter.setDTDHandler (handler); - } - - /** - * <b>SAX2</b>: Returns the object used when resolving external - * entities during parsing (both general and parameter entities). - */ - public EntityResolver getEntityResolver () - { return aelfred2.getEntityResolver (); } - - /** <b>SAX1</b> Assigns parser's entity resolver */ - public void setEntityResolver (EntityResolver handler) - { aelfred2.setEntityResolver (handler); } - - /** - * <b>SAX2</b>: Returns the object used to receive callbacks for XML - * errors of all levels (fatal, nonfatal, warning); this is never null; - */ - public ErrorHandler getErrorHandler () - { return aelfred2.getErrorHandler (); } - - /** - * <b>SAX1</b> Assigns error handler - * @exception IllegalStateException if called mid-parse - */ - public void setErrorHandler (ErrorHandler handler) - { - if (active) - throw new IllegalStateException ("already parsing"); - aelfred2.setErrorHandler (handler); - } - - /** - * <b>SAX2</b>: Assigns the specified property. - * @exception IllegalStateException if called mid-parse - */ - public void setProperty (String propertyId, Object value) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if (active) - throw new IllegalStateException ("already parsing"); - if (getProperty (propertyId) != value) - filter.setProperty (propertyId, value); - } - - /** - * <b>SAX2</b>: Returns the specified property. - */ - public Object getProperty (String propertyId) - throws SAXNotRecognizedException - { - if ((SAXDriver.PROPERTY + "declaration-handler") - .equals (propertyId) - || (SAXDriver.PROPERTY + "lexical-handler") - .equals (propertyId)) - return filter.getProperty (propertyId); - throw new SAXNotRecognizedException (propertyId); - } - - private void forceValidating () - throws SAXNotRecognizedException, SAXNotSupportedException - { - aelfred2.setFeature ( - SAXDriver.FEATURE + "namespace-prefixes", - true); - aelfred2.setFeature ( - SAXDriver.FEATURE + "external-general-entities", - true); - aelfred2.setFeature ( - SAXDriver.FEATURE + "external-parameter-entities", - true); - } - - /** - * <b>SAX2</b>: Sets the state of features supported in this parser. - * Note that this parser requires reporting of namespace prefixes when - * validating. - */ - public void setFeature (String featureId, boolean state) - throws SAXNotRecognizedException, SAXNotSupportedException - { - boolean value = getFeature (featureId); - - if (state == value) - return; - - if ((SAXDriver.FEATURE + "validation").equals (featureId)) { - if (active) - throw new SAXNotSupportedException ("already parsing"); - if (state) - forceValidating (); - isValidating = state; - } else - aelfred2.setFeature (featureId, state); - } - - /** - * <b>SAX2</b>: Tells whether this parser supports the specified feature. - * At this time, this directly parallels the underlying SAXDriver, - * except that validation is optionally supported. - * - * @see SAXDriver - */ - public boolean getFeature (String featureId) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if ((SAXDriver.FEATURE + "validation").equals (featureId)) - return isValidating; - - return aelfred2.getFeature (featureId); - } - - /** - * <b>SAX1</b>: Sets the locale used for diagnostics; currently, - * only locales using the English language are supported. - * @param locale The locale for which diagnostics will be generated - */ - public void setLocale (Locale locale) - throws SAXException - { aelfred2.setLocale (locale); } - - /** - * <b>SAX1</b>: Preferred API to parse an XML document, using a - * system identifier (URI). - */ - public void parse (String systemId) - throws SAXException, IOException - { - parse (new InputSource (systemId)); - } - - /** - * <b>SAX1</b>: Underlying API to parse an XML document, used - * directly when no URI is available. When this is invoked, - * and the parser is set to validate, some features will be - * automatically reset to appropriate values: for reporting - * namespace prefixes, and incorporating external entities. - * - * @param source The XML input source. - * - * @exception IllegalStateException if called mid-parse - * @exception SAXException The handlers may throw any SAXException, - * and the parser normally throws SAXParseException objects. - * @exception IOException IOExceptions are normally through through - * the parser if there are problems reading the source document. - */ - public void parse (InputSource source) - throws SAXException, IOException - { - EventFilter next; - boolean nsdecls; - - synchronized (aelfred2) { - if (active) - throw new IllegalStateException ("already parsing"); - active = true; - } - - // set up the output pipeline - if (isValidating) { - forceValidating (); - next = new ValidationConsumer (filter); - } else - next = filter; - - // connect pipeline and error handler - // don't let _this_ call to bind() affect xmlns* attributes - nsdecls = aelfred2.getFeature ( - SAXDriver.FEATURE + "namespace-prefixes"); - EventFilter.bind (aelfred2, next); - if (!nsdecls) - aelfred2.setFeature ( - SAXDriver.FEATURE + "namespace-prefixes", - false); - - // parse, clean up - try { - aelfred2.parse (source); - } finally { - active = false; - } - } -} diff --git a/external/jaxp/source/gnu/xml/aelfred2/package.html b/external/jaxp/source/gnu/xml/aelfred2/package.html deleted file mode 100644 index e5afa1ed3..000000000 --- a/external/jaxp/source/gnu/xml/aelfred2/package.html +++ /dev/null @@ -1,477 +0,0 @@ -<!DOCTYPE html PUBLIC - '-//W3C//DTD XHTML 1.0 Transitional//EN' - 'http://www.w3.org/TR/xhtml1/DTD/transitional.dtd'> - -<html><head> - <title>package overview</title> -<!-- -/* - * Copyright (c) 1999-2001 by David Brownell. - * This file is distributed under the GPL. - * - * $Id: package.html,v 1.2 2004-05-01 16:18:49 mark Exp $ - */ ---> -</head><body> - -<p> This package contains Ælfred2, which includes an -enhanced SAX2-compatible version of the Ælfred -non-validating XML parser, a modular (and hence optional) -DTD validating parser, and modular (and hence optional) -JAXP glue to those. -Use these like any other SAX2 parsers. </p> - -<ul> - <li><a href="#about">About Ælfred</a><ul> - <li><a href="#principles">Design Principles</a></li> - <li><a href="#name">About the Name Ælfred</a></li> - <li><a href="#encodings">Character Encodings</a></li> - <li><a href="#violations">Known Conformance Violations</a></li> - <li><a href="#license">Licensing</a></li> - </ul></li> - - <li><a href="#changes">Changes Since the Last Microstar Release</a><ul> - <li><a href="#sax2">SAX2 Support</a></li> - <li><a href="#validation">Validation</a></li> - <li><a href="#smaller">You Want Smaller?</a></li> - <li><a href="#bugfixes">Bugs Fixed</a></li> - </ul></li> - -</ul> - -<p> Some of the documentation below was modified from the original -Ælfred README.txt file. All of it has been updated. </p> - - -<h2><a name="about">About Ælfred</a></h2> - -<p>Ælfred is a Java-based XML parser originally from -Microstar Software Limited (no longer in existence) and -more or less placed into the public domain. - - -<h3><a name="principles">Design Principles</a></h3> - -<p>In most Java applets and applications, XML should not be the central -feature; instead, XML is the means to another end, such as loading -configuration information, reading meta-data, or parsing transactions.</p> - -<p> When an XML parser is only a single component of a much larger -program, it cannot be large, slow, or resource-intensive. With Java -applets, in particular, code size is a significant issue. The standard -modem is still not operating at 56 Kbaud, or sometimes even with data -compression. Assuming an uncompressed 28.8 Kbaud modem, only about -3 KBytes can be downloaded in one second; compression often doubles -that speed, but a V.90 modem may not provide another doubling. When -used with embedded processors, similar size concerns apply. </p> - -<p> Ælfred is designed for easy and efficient use over the Internet, -based on the following principles: </p> <ol> - -<li> Ælfred must be as small as possible, so that it doesn't add too - much to an applet's download time. </li> - -<li> Ælfred must use as few class files as possible, to minimize the - number of HTTP connections necessary. (The use of JAR files has made this - be less of a concern.) </li> - -<li> Ælfred must be compatible with most or all Java implementations - and platforms. (Write once, run anywhere.) </li> - -<li> Ælfred must use as little memory as possible, so that it does - not take away resources from the rest of your program. (It doesn't force - you to use DOM or a similar costly data structure API.)</li> - -<li> Ælfred must run as fast as possible, so that it does not slow down - the rest of your program. </li> - -<li> Ælfred must produce correct output for well-formed and valid - documents, but need not reject every document that is not valid or - not well-formed. (In Ælfred2, correctness was a bigger concern - than in the original version; and a validation option is available.) </li> - -<li> Ælfred must provide full internationalization from the first - release. (Ælfred2 now automatically handles all encodings - supported by the underlying JVM; previous versions handled only - UTF-8, UTF_16, ASCII, and ISO-8859-1.)</li> - -</ol> - -<p>As you can see from this list, Ælfred is designed for production -use, but neither validation nor perfect conformance was a requirement. -Good validating parsers exist, including one in this package, -and you should use them as appropriate. (See conformance reviews -available at <a href="http://www.xml.com/">http://www.xml.com</a>) -</p> - -<p> One of the main goals of Ælfred2 was to significantly improve -conformance, while not significantly affecting the other goals stated above. -Since the only use of this parser is with SAX, some classes could be -removed, and so the overall size of Ælfred was actually reduced. -Subsequent performance work produced a notable speedup (over twenty -percent on larger files). That is, the tradeoffs between speed, size, and -conformance were re-targeted towards conformance and support of newer APIs -(SAX2), with a a positive performance impact. </p> - -<p> The role anticipated for this version of Ælfred is as a -lightweight Free Software SAX parser that can be used in essentially every -Java program where the handful of conformance violations (noted below) -are acceptable. -That certainly includes applets, and -nowadays one must also mention embedded systems as being even more -size-critical. -At this writing, all parsers that are more conformant are -significantly larger, even when counting the optional -validation support in this version of Ælfred. </p> - - -<h3><a name="name">About the Name <em>Ælfred</em></a></h3> - -<p>Ælfred the Great (AElfred in ASCII) was King of Wessex, and -some say of King of England, at the time of his death in 899 AD. -Ælfred introduced a wide-spread literacy program in the hope that -his people would learn to read English, at least, if Latin was too -difficult for them. This Ælfred hopes to bring another sort of -literacy to Java, using XML, at least, if full SGML is too difficult.</p> - -<p>The initial Æ ligature ("AE)" is also a reminder that XML is -not limited to ASCII.</p> - - -<h3><a name="encodings">Character Encodings</a></h3> - -<p> The Ælfred parser currently builds in support for a handful -of input encodings. Of course these include UTF-8 and UTF-16, which -all XML parsers are required to support:</p> <ul> - - <li> UTF-8 ... the standard eight bit encoding, used unless - you provide an encoding declaration or a MIME charset tag.</li> - - <li> US-ASCII ... an extremely common seven bit encoding, - which happens to be a subset of UTF-8 and ISO-8859-1 as well - as many other encodings. XHTML web pages using US-ASCII - (without an encoding declaration) are probably more - widely interoperable than those in any other encoding. </li> - - <li> ISO-8859-1 ... includes accented characters used in - much of western Europe (but excluding the Euro currency - symbol).</li> - - <li> UTF-16 ... with several variants, this encodes each - sixteen bit Unicode character in sixteen bits of output. - Variants include UTF-16BE (big endian, no byte order mark), - UTF-16LE (little endian, no byte order mark), and - ISO-10646-UCS-2 (an older and less used encoding, using a - version of Unicode without surrogate pairs). This is - essentially the native encoding used by Java. </li> - - <li> ISO-10646-UCS-4 ... a seldom-used four byte encoding, - also known as UTF-32BE. Four byte order variants are supported, - including one known as UTF-32LE. Some operating systems - standardized on UCS-4 despite its significant size penalty, - in anticipation that Unicode (even with surrogate pairs) - would eventually become limiting. UCS-4 permits encoding - of non-Unicode characters, which Java can't represent (and - XML doesn't allow). - </li> - - </ul> - -<p> If you use any encoding other than UTF-8 or UTF-16 you should -make sure to label your data appropriately: </p> - -<blockquote> -<?xml version="1.0" encoding="<b>ISO-8859-15</b>"?> -</blockquote> - -<p> Encodings accessed through <code>java.io.InputStreamReader</code> -are now fully supported for both external labels (such as MIME types) -and internal types (as shown above). -There is one limitation in the support for internal labels: -the encodings must be derived from the US-ASCII encoding, -the EBCDIC family of encodings is not recognized. -Note that Java defines its -own encoding names, which don't always correspond to the standard -Internet encoding names defined by the IETF/IANA, and that Java -may even <em>require</em> use of nonstandard encoding names. -Please report -such problems; some of them can be worked around in this parser, -and many can be worked around by using external labels. -</p> - -<p>Note that if you are using the Euro symbol with an fixed length -eight bit encoding, you should probably be using the encoding label -<em>iso-8859-15</em> or, with a Microsoft OS, <em>cp-1252</em>. -Of course, UTF-8 and UTF-16 handle the Euro symbol directly. -</p> - - -<h3><a name="violations">Known Conformance Violations</a></h3> - -<p>Known conformance issues should be of negligible importance for -most applications, and include: </p><ul> - - <li> Rather than following the voluminous "Appendix B" rules about - what characters may appear in names (and name tokens), the Unicode - rules embedded in <em>java.lang.Character</em> are used. - This means mostly that some names are inappropriately accepted, - though a few are inappropriately rejected. (It's much simpler - to avoid that much special case code. Recent OASIS/NIST test - cases may have these rules be realistically testable.) </li> - - <li> Text containing "]]>" is not rejected unless it fully resides - in an internal buffer ... which is, thankfully, the typical case. This - text is illegal, but sometimes appears in illegal attempts to - nest CDATA sections. (Not catching that boundary condition - substantially simplifies parsing text.) </li> - - <li> Surrogate characters that aren't correctly paired are ignored - rather than rejected, unless they were encoded using UTF-8. (This - simplifies parsing text.) Unicode 3.1 assigned the first characters - to those character codes, in early 2001, so few documents (or tools) - use such characters in any case. </li> - - <li> Declarations following references to an undefined parameter - entity reference are not ignored. (Not maintaining and using state - about this validity error simplifies declaration handling; few - XML parsers address this constraint in any case.) </li> - - <li> Well formedness constraints for general entity references - are not enforced. (The code to handle the "content" production - is merged with the element parsing code, making it hard to reuse - for this additional situation.) </li> - -</ul> - -<p> When tested against the July 12, 1999 version of the OASIS -XML Conformance test suite, an earlier version passed 1057 of 1067 tests. -That contrasts with the original version, which passed 867. The -current parser is top-ranked in terms of conformance, as is its -validating sibling (which has some additional conformance violations -imposed on it by SAX2 API deficiencies as well as some of the more -curious SGML layering artifacts found in the XML specification). </p> - -<p> The XML 1.0 specification itself was not without problems, -and after some delays the W3C has come out with a revised -"second edition" specification. While that doesn't resolve all -the problems identified the XML specification, many of the most -egregious problems have been resolved. (You still need to drink -magic Kool-Aid before some DTD-related issues make sense.) -To the extent possible, this parser conforms to that second -edition specification, and does well against corrected versions -of the OASIS/NIST XML conformance test cases. See <a href= -"http://xmlconf.sourceforge.net">http://xmlconf.sourceforge.net</a> -for more information about SAX2/XML conformance testing. </p> - - -<h3><a name="licensing">Licensing</a></h3> - -<p> As noted above, the original distribution was more or less -public domain. The license had the constraint that modifications -be clearly documented, as has been done here. </p> - -<p> This version is Copyright (c) 1999-2001 by David Brownell, -and all the modifications are distributed under the GNU General -Public License (GPL). It is subject to the "Library Exception", -supporting use in some environments (such as embedded systems where -dynamic linking may not be available) by proprietary code without -necessarily requiring all code to be licencsed under the GPL. -</p> - - -<h2><a name="changes">Changes Since the last Microstar Release</a></h2> - -<p> As noted above, Microstar has not updated this parser since -the summer of 1998, when it released version 1.2a on its web site. -This release is intended to benefit the developer community by -refocusing the API on SAX2, and improving conformance to the extent -that most developers should not need to use another XML parser. </p> - -<p> The code has been cleaned up (referring to the XML 1.0 spec in -all the production numbers in -comments, rather than some preliminary draft, for one example) and -has been sped up a bit as well. -JAXP support has been added, although developers are still -strongly encouraged to use the SAX2 APIs directly. </p> - - -<h3><a name="sax2">SAX2 Support</a></h3> - -<p> The original version of Ælfred did not support the -SAX2 APIs. </p> - -<p> This version supports the SAX2 APIs, exposing the standard -boolean feature descriptors. It supports the "DeclHandler" property -to provide access to all DTD declarations not already exposed -through the SAX1 API. The "LexicalHandler" property is supported, -exposing entity boundaries (including the unnamed external subset) and -things like comments and CDATA boundaries. SAX1 compatibility is -currently provided.</p> - - -<h3><a name="validation">Validation</a></h3> - -<p> In the 'pipeline' package in this same software distribution is an -<a href="../pipeline/ValidationConsumer.html">XML Validation component</a> -using any full SAX2 event stream (including all document type declarations) -to validate. There is now a <a href="XmlReader.html">XmlReader</a> class -which combines that class and this enhanced Ælfred parser, creating -an optionally validating SAX2 parser. </p> - -<p> As noted in the documentation for that validating component, certain -validity constraints can't reliably be tested by a layered validator. -These include all constraints relying on -layering violations (exposing XML at the level of tokens or below, -required since XML isn't a context-free grammar), some that -SAX2 doesn't support, and a few others. The resulting validating -parser is conformant enough for most applications that aren't doing -strange SGML tricks with DTDs. -Moreover, that validating filter can be used without -a parser ... any application component that emits SAX event streams -can DTD-validate its output on demand. </p> - -<h3><a name="smaller">You want Smaller?</a></h3> - -<p> You'll have noticed that the original version of Ælfred -had small size as a top goal. Ælfred2 normally includes a -DTD validation layer, but you can package without that. -Similarly, JAXP factory support is available but optional. -Then the main added cost due to this revision are for -supporting the SAX2 API itself; DTD validation is as -cleanly layered as allowed by SAX2.</p> - -<h3><a name="bugfixes">Bugs Fixed</a></h3> - -<p> Bugs fixed in Ælfred2 include: </p> - -<ol> - <li> Originally Ælfred didn't close file descriptors, which - led to file descriptor leakage on programs which ran for any - length of time. </li> - - <li> NOTATION declarations without system identifiers are - now handled correctly. </li> - - <li> DTD events are now reported for all invocations of a - given parser, not just the first one. </li> - - <li> More correct character handling: <ul> - - <li> Rejects out-of-range characters, both in text and in - character references. </li> - - <li> Correctly handles character references that expand to - surrogate pairs. </li> - - <li> Correctly handles UTF-8 encodings of surrogate pairs. </li> - - <li> Correctly handles Unicode 3.1 rules about illegal UTF-8 - encodings: there is only one legal encoding per character. </li> - - <li> PUBLIC identifiers are now rejected if they have illegal - characters. </li> - - <li> The parser is more correct about what characters are allowed - in names and name tokens. Uses Unicode rules (built in to Java) - rather than the voluminous XML rules, although some extensions - have been made to match XML rules more closely.</li> - - <li> Line ends are now normalized to newlines in all known - cases. </li> - - </ul></li> - - <li> Certain validity errors were previously treated as well - formedness violations. <ul> - - <li> Repeated declarations of an element type are no - longer fatal errors. </li> - - <li> Undeclared parameter entity references are no longer - fatal errors. </li> - - </ul></li> - - <li> Attribute handling is improved: <ul> - - <li> Whitespace must exist between attributes. </li> - - <li> Only one value for a given attribute is permitted. </li> - - <li> ATTLIST declarations don't need to declare attributes. </li> - - <li> Attribute values are normalized when required. </li> - - <li> Tabs in attribute values are normalized to spaces. </li> - - <li> Attribute values containing a literal "<" are rejected. </li> - - </ul></li> - - <li> More correct entity handling: <ul> - - <li> Whitespace must precede NDATA when declaring unparsed - entities.</li> - - <li> Parameter entity declarations may not have NDATA annotations. </li> - - <li> The XML specification has a bug in that it doesn't specify - that certain contexts exist within which parameter entity - expansion must not be performed. Lacking an offical erratum, - this parser now disables such expansion inside comments, - processing instructions, ignored sections, public identifiers, - and parts of entity declarations. </li> - - <li> Entity expansions that include quote characters no longer - confuse parsing of strings using such expansions. </li> - - <li> Whitespace in the values of internal entities is not mapped - to space characters. </li> - - <li> General Entity references in attribute defaults within the - DTD now cause fatal errors when the entity is not defined at the - time it is referenced. </li> - - <li> Malformed general entity references in entity declarations are - now detected. </li> - - </ul></li> - - <li> Neither conditional sections - nor parameter entity references within markup declarations - are permitted in the internal subset. </li> - - <li> Processing instructions whose target names are "XML" - (ignoring case) are now rejected. </li> - - <li> Comments may not include "--".</li> - - <li> Most "]]>" sequences in text are rejected. </li> - - <li> Correct syntax for standalone declarations is enforced. </li> - - <li> Setting a locale for diagnostics only produces an exception - if the language of that locale isn't English. </li> - - <li> Some more encoding names are recognized. These include the - Unicode 3.0 variants of UTF-16 (UTF-16BE, UTF-16LE) as well as - US-ASCII and a few commonly seen synonyms. </li> - - <li> Text (from character content, PIs, or comments) large enough - not to fit into internal buffers is now handled correctly even in - some cases which were originally handled incorrectly.</li> - - <li> Content is now reported for element types for which attributes - have been declared, but no content model is known. (Such documents - are invalid, but may still be well formed.) </li> - -</ol> - -<p> Other bugs may also have been fixed. </p> - -<p> For better overall validation support, some of the validity -constraints that can't be verified using the SAX2 event stream -are now reported directly by Ælfred2. </p> - -</body></html> - diff --git a/external/jaxp/source/gnu/xml/dom/Consumer.java b/external/jaxp/source/gnu/xml/dom/Consumer.java deleted file mode 100644 index b4e85a94f..000000000 --- a/external/jaxp/source/gnu/xml/dom/Consumer.java +++ /dev/null @@ -1,329 +0,0 @@ -/* - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - - -package gnu.xml.dom; - -import java.io.IOException; - -import org.w3c.dom.Document; -import org.w3c.dom.DocumentType; -import org.w3c.dom.DOMImplementation; -import org.w3c.dom.Node; -import org.w3c.dom.Text; - -import org.xml.sax.Attributes; -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; -import org.xml.sax.ext.Attributes2; - -import gnu.xml.pipeline.DomConsumer; -import gnu.xml.pipeline.EventConsumer; - - -/** - * Event consumer which constructs DOM documents using the implementation - * in this package, using SAX2 events. This packages various backdoors - * into this DOM implementation, as needed to address DOM requirements - * that can't be met by strictly conforming implementations of DOM. - * - * <p> These requirements all relate to {@link DocumentType} nodes and - * features of that node type. These features are normally not used, - * because that interface only exposes a subset of the information found - * in DTDs. More, that subset does not include the most important typing - * information. For example, it excludes element content models and - * attribute typing. It does expose some entity management issues, - * although entity management doesn't relate to document typing. - * - * <p> Note that SAX2 does not expose the literal text of the DTD's - * internal subset, so it will not be present in DOM trees constructed - * using this API. (Though with a good SAX2 implementation, it could - * be partially recreated...) - * - * @author David Brownell - */ -public class Consumer extends DomConsumer -{ - /** - * Constructs an unconfigured event consumer, - * as a terminus in a SAX event pipeline. - */ - // used by PipelineFactory [terminus] - public Consumer () - throws SAXException - { - super (DomDocument.class); - setHandler (new Backdoor (this)); - } - - /** - * Constructs an unconfigured event consumer, - * as a stage in a SAX event pipeline. - */ - // used by PipelineFactory [filter] - public Consumer (EventConsumer next) - throws SAXException - { - super (DomDocument.class, next); - setHandler (new Backdoor (this)); - } - - /** - * Implements the backdoors needed by DOM. - * All methods in this class use implementation-specific APIs that are - * implied by the DOM specification (needed to implement testable - * behavior) but which are excluded from the DOM specification. - */ - public static class Backdoor extends DomConsumer.Handler - { - /** - * Constructor. - * @param consumer must have been initialized to use the - * {@link DomDocument} class (or a subclass) for - * constructing DOM trees - */ - protected Backdoor (DomConsumer consumer) - throws SAXException - { super (consumer); } - - // helper routine - private DomDoctype getDoctype () - throws SAXException - { - DomDocument doc = (DomDocument) getDocument (); - DocumentType dt = doc.getDoctype (); - - if (dt == null) - throw new SAXException ("doctype missing!"); - return (DomDoctype) dt; - } - - // SAX2 "lexical" event - public void startDTD (String name, String publicId, String systemId) - throws SAXException - { - DomDocument doc = (DomDocument) getDocument (); - - super.startDTD (name, publicId, systemId); - // DOM L2 doctype creation model is bizarre - doc.appendChild (new DomDoctype (doc, name, publicId, systemId)); - } - - // SAX2 "lexical" event - public void endDTD () - throws SAXException - { - super.endDTD (); - // DOM L2 has no way to make things readonly - getDoctype ().makeReadonly (); - } - - // SAX1 DTD event - public void notationDecl ( - String name, - String publicId, String systemId - ) throws SAXException - { - // DOM L2 can't create/save notation nodes - getDoctype ().declareNotation (name, publicId, systemId); - } - - // SAX1 DTD event - public void unparsedEntityDecl ( - String name, - String publicId, String systemId, - String notationName - ) throws SAXException - { - // DOM L2 can't create/save entity nodes - getDoctype ().declareEntity (name, publicId, systemId, - notationName); - } - - // SAX2 declaration event - public void internalEntityDecl (String name, String value) - throws SAXException - { - // DOM L2 can't create/save entity nodes - // NOTE: this doesn't save the value as a child of this - // node, though it could realistically do so. - getDoctype ().declareEntity (name, null, null, null); - } - - // SAX2 declaration event - public void externalEntityDecl ( - String name, - String publicId, - String systemId - ) throws SAXException - { - // DOM L2 can't create/save entity nodes - // NOTE: DOM allows for these to have children, if - // they don't have unbound namespace references. - getDoctype ().declareEntity (name, publicId, systemId, null); - } - - // SAX2 element - public void startElement ( - String uri, - String localName, - String qName, - Attributes atts - ) throws SAXException - { - Node top; - - super.startElement (uri, localName, qName, atts); - - // might there be more work? - top = getTop (); - if (!top.hasAttributes () || !(atts instanceof Attributes2)) - return; - - // remember any attributes that got defaulted - DomNamedNodeMap map = (DomNamedNodeMap) top.getAttributes (); - Attributes2 attrs = (Attributes2) atts; - int length = atts.getLength (); - - map.compact (); - for (int i = 0; i < length; i++) { - if (attrs.isSpecified (i)) - continue; - - // value was defaulted. - String temp = attrs.getQName (i); - DomAttr attr; - - if ("".equals (temp)) - attr = (DomAttr) map.getNamedItemNS (attrs.getURI (i), - atts.getLocalName (i)); - else - attr = (DomAttr) map.getNamedItem (temp); - - // DOM L2 can't write this flag, only read it - attr.setSpecified (false); - } - } - - public void endElement ( - String uri, - String localName, - String qName - ) throws SAXException - { - DomNode top = (DomNode) getTop (); - top.compact (); - super.endElement (uri, localName, qName); - } - - protected Text createText ( - boolean isCDATA, - char buf [], - int off, - int len - ) { - DomDocument doc = (DomDocument) getDocument (); - - if (isCDATA) - return doc.createCDATASection (buf, off, len); - else - return doc.createTextNode (buf, off, len); - } - - - public void attributeDecl ( - String ename, - String aname, - String type, - String mode, - String value - ) throws SAXException - { - if (value == null && !"ID".equals (type)) - return; - - DomDoctype.ElementInfo info; - - info = getDoctype ().getElementInfo (ename); - if (value != null) - info.setAttrDefault (aname, value); - if ("ID".equals (type)) - info.setIdAttr (aname); - } - - // force duplicate name checking off while we're - // using parser output (don't duplicate the work) - public void startDocument () throws SAXException - { - DomDocument doc; - - super.startDocument (); - ((DomDocument) getDocument ()).setCheckingCharacters (false); - } - - public void endDocument () - throws SAXException - { - DomDocument doc = (DomDocument) getDocument (); - doc.setCheckingCharacters (true); - doc.compact (); - super.endDocument (); - } - - // these three methods collaborate to populate entity - // refs, marking contents readonly on end-of-entity - - public boolean canPopulateEntityRefs () - { return true; } - - public void startEntity (String name) - throws SAXException - { - if (name.charAt (0) == '%' || "[dtd]".equals (name)) - return; - super.startEntity (name); - - DomNode top = (DomNode) getTop (); - - if (top.getNodeType () == Node.ENTITY_REFERENCE_NODE) - top.readonly = false; - } - - public void endEntity (String name) - throws SAXException - { - if (name.charAt (0) == '%' || "[dtd]".equals (name)) - return; - DomNode top = (DomNode) getTop (); - - if (top.getNodeType () == Node.ENTITY_REFERENCE_NODE) { - top.compact (); - top.makeReadonly (); - } - super.endEntity (name); - } - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomAttr.java b/external/jaxp/source/gnu/xml/dom/DomAttr.java deleted file mode 100644 index 83361f982..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomAttr.java +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; -import org.w3c.dom.events.MutationEvent; - - -/** - * <p> "Attr" implementation. In DOM, attributes cost quite a lot of - * memory because their values are complex structures rather than just - * simple strings. To reduce your costs, avoid having more than one - * child of an attribute; stick to a single Text node child, and ignore - * even that by using the attribute's "nodeValue" property.</p> - * - * <p> As a bit of general advice, only look at attribute modification - * events through the DOMAttrModified event (sent to the associated - * element). Implementations are not guaranteed to report other events - * in the same order, so you're very likely to write nonportable code if - * you monitor events at the "children of Attr" level.</p> - * - * <p> At this writing, not all attribute modifications will cause the - * DOMAttrModified event to be triggered ... only the ones using the string - * methods (setNodeValue, setValue, and Element.setAttribute) to modify - * those values. That is, if you manipulate those children directly, - * elements won't get notified that attribute values have changed. - * The natural fix for that will report other modifications, but won't - * be able to expose "previous" attribute value; it'll need to be cached - * or something (at which point why bother using child nodes). </p> - * - * <p><em>You are strongly advised not to use "children" of any attribute - * nodes you work with.</em> </p> - * - * @author David Brownell - */ -public class DomAttr extends DomNsNode implements Attr -{ - private boolean specified; - - // NOTE: it could be possible to rework this code a bit so that - // this extra field isn't needed; "parent" might do double duty, - // with appropriate safeguards. Using less space is healthy! - private DomElement element; - - - /** - * Constructs an Attr node associated with the specified document. - * The "specified" flag is initialized to true, since this DOM has - * no current "back door" mechanisms to manage default values so - * that every value must effectively be "specified". - * - * <p>This constructor should only be invoked by a Document as part of - * its createAttribute functionality, or through a subclass which is - * similarly used in a "Sub-DOM" style layer. - * - * @param owner The document with which this node is associated - * @param namespaceURI Combined with the local part of the name, - * this is used to uniquely identify a type of attribute - * @param name Name of this attribute, which may include a prefix - */ - protected DomAttr (Document owner, String namespaceURI, String name) - { - super (owner, namespaceURI, name); - specified = true; - - // XXX register self to get insertion/removal events - // and character data change events and when they happen, - // report self-mutation - } - - - /** - * <b>DOM L1</b> - * Returns the attribute name (same as getNodeName) - */ - final public String getName () - { - return getNodeName (); - } - - /** - * <b>DOM L1</b> - * Returns the constant ATTRIBUTE_NODE. - */ - final public short getNodeType () - { return ATTRIBUTE_NODE; } - - - /** - * <b>DOM L1</b> - * Returns true if a parser reported this was in the source text. - */ - final public boolean getSpecified () - { - return specified; - } - - - /** - * Records whether this attribute was in the source text. - */ - final public void setSpecified (boolean value) - { - specified = value; - } - - - /** - * <b>DOM L1</b> - * Returns the attribute value, with character and entity - * references substituted. - * <em>NOTE: entity refs as children aren't currently handled.</em> - */ - public String getNodeValue () - { - int length = getLength (); - String retval = null; - - for (int i = 0; i < length; i++) { - Node n = item (i); - - if (n.getNodeType () == TEXT_NODE) { - if (retval == null) - retval = n.getNodeValue (); - else - retval += n.getNodeValue (); - continue; - } - - // XXX entity ref child of attribute - // contents exclude comments, PIs, elements - throw new DomEx (DomEx.NOT_SUPPORTED_ERR); - } - if (retval == null) - retval = ""; - return retval; - } - - - /** - * <b>DOM L1</b> - * Assigns the value of the attribute; it will have one child, - * which is a text node with the specified value (same as - * setNodeValue). - */ - final public void setValue (String value) - { - setNodeValue (value); - } - - - /** - * <b>DOM L1</b> - * Returns the value of the attribute as a non-null string; same - * as getNodeValue. - * <em>NOTE: entity refs as children aren't currently handled.</em> - */ - final public String getValue () - { - return getNodeValue (); - } - - - /** - * <b>DOM L1</b> - * Assigns the attribute value; using this API, no entity or - * character references will exist. - * Causes a DOMAttrModified mutation event to be sent. - */ - public void setNodeValue (String value) - { - int len = getLength (); - String oldValue; - - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - - oldValue = getValue (); - for (int i = 0; i < len; i++) - removeChild (getLastChild ()); - appendChild (getOwnerDocument ().createTextNode (value)); - specified = true; - - mutating (oldValue, value, MutationEvent.MODIFICATION); - } - - - /** - * <b>DOM L2</b> - * Returns the element with which this attribute is associated. - */ - final public Element getOwnerElement () - { - return element; - } - - - /** - * Records the element with which this attribute is associated. - */ - final public void setOwnerElement (Element e) - { - if (element != null) - throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR); - if (!(e instanceof DomElement)) - throw new DomEx (DomEx.WRONG_DOCUMENT_ERR); - element = (DomElement) e; - } - - - /** - * Shallow clone of the attribute, breaking all ties with any - * elements. - */ - public Object clone () - { - DomAttr retval = (DomAttr) super.clone (); - - retval.element = null; - retval.specified = false; - return retval; - } - - private void mutating (String oldValue, String newValue, short why) - { - if (!reportMutations || element == null) - return; - - // EVENT: DOMAttrModified, target = element, - // prev/new values provided, also attr name - MutationEvent event; - - event = (MutationEvent) createEvent ("MutationEvents"); - event.initMutationEvent ("DOMAttrModified", - true /* bubbles */, false /* nocancel */, - null, oldValue, newValue, getNodeName (), why); - element.dispatchEvent (event); - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomCDATA.java b/external/jaxp/source/gnu/xml/dom/DomCDATA.java deleted file mode 100644 index 078f49412..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomCDATA.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "CDATASection" implementation. - * This is a non-core DOM class, supporting the "XML" feature. - * CDATA sections are just ways to represent text using different - * delimeters. </p> - * - * <p> <em>You are strongly advised not to use CDATASection nodes.</em> - * The advantage of having slightly prettier ways to print text that may - * have lots of embedded XML delimiters, such as "&" and "<", - * can be dwarfed by the cost of dealing with multiple kinds of text - * nodes in all your algorithms. </p> - * - * @author David Brownell - */ -public class DomCDATA extends DomText implements CDATASection -{ - /** - * Constructs a CDATA section node associated with the specified - * document and holding the specified data. - * - * <p>This constructor should only be invoked by a Document as part of - * its createCDATASection functionality, or through a subclass which is - * similarly used in a "Sub-DOM" style layer. - * - */ - protected DomCDATA (Document owner, String value) - { - super (owner, value); - } - - protected DomCDATA (Document owner, char buf [], int off, int len) - { - super (owner, buf, off, len); - } - - - /** - * <b>DOM L1</b> - * Returns the string "#cdata-section". - */ - final public String getNodeName () - { - return "#cdata-section"; - } - - - /** - * <b>DOM L1</b> - * Returns the constant CDATA_SECTION_NODE. - */ - final public short getNodeType () - { return CDATA_SECTION_NODE; } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomCharacterData.java b/external/jaxp/source/gnu/xml/dom/DomCharacterData.java deleted file mode 100644 index 08c691ec1..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomCharacterData.java +++ /dev/null @@ -1,263 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; -import org.w3c.dom.events.MutationEvent; - - -/** - * <p> Abstract "CharacterData" implementation. This - * facilitates reusing code in classes implementing subtypes of that DOM - * interface (Text, Comment, CDATASection). </p> - * - * @author David Brownell - */ -public abstract class DomCharacterData extends DomNode - implements CharacterData -{ - private char raw []; - - // package private - DomCharacterData (Document doc, String value) - { - super (doc); - if (value != null) - raw = value.toCharArray (); - else - raw = new char [0]; - } - - // package private - DomCharacterData (Document doc, char buf [], int offset, int length) - { - super (doc); - if (buf == null) - raw = new char [0]; - else { - raw = new char [length]; - System.arraycopy (buf, offset, raw, 0, length); - } - } - - /** - * <b>DOM L1</b> - * Appends the specified data to the value of this node. - * Causes a DOMCharacterDataModified mutation event to be reported. - */ - public void appendData (String arg) - { - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - - char tmp [] = arg.toCharArray (); - char buf [] = new char [raw.length + tmp.length]; - - System.arraycopy (raw, 0, buf, 0, raw.length); - System.arraycopy (tmp, 0, buf, raw.length, tmp.length); - mutating (new String (buf)); - raw = buf; - } - - - /** - * <b>DOM L1</b> - * Modifies the value of this node. - * Causes a DOMCharacterDataModified mutation event to be reported. - */ - public void deleteData (int offset, int count) - { - char buf []; - - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - if (offset < 0 || count < 0 || offset > raw.length) - throw new DomEx (DomEx.INDEX_SIZE_ERR); - if ((offset + count) > raw.length) - count = raw.length - offset; - if (count == 0) - return; - buf = new char [raw.length - count]; - System.arraycopy (raw, 0, buf, 0, offset); - System.arraycopy (raw, offset + count, buf, offset, - raw.length - (offset + count)); - mutating (new String (buf)); - raw = buf; - } - - - /** - * <b>DOM L1</b> - * Returns the value of this node. - */ - public String getNodeValue () - { - return new String (raw); - } - - - /** - * <b>DOM L1</b> - * Returns the value of this node; same as getNodeValue. - */ - final public String getData () - { - return getNodeValue (); - } - - - /** - * <b>DOM L1</b> - * Returns the length of the data. - */ - public int getLength () - { - return raw.length; - } - - - static final class EmptyNodeList implements NodeList - { - public int getLength () { return 0; } - public Node item (int i) { return null; } - } - - static final EmptyNodeList theEmptyNodeList = new EmptyNodeList (); - - - /** - * <b>DOM L1</b> - * Returns an empty list of children. - */ - final public NodeList getChildNodes () - { - return theEmptyNodeList; - } - - - /** - * <b>DOM L1</b> - * Modifies the value of this node. - */ - public void insertData (int offset, String arg) - { - char tmp [] = arg.toCharArray (); - char buf [] = new char [raw.length + tmp.length]; - - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - try { - System.arraycopy (raw, 0, buf, 0, offset); - System.arraycopy (tmp, 0, buf, offset, - tmp.length); - System.arraycopy (raw, offset, buf, offset + tmp.length, - raw.length - offset); - mutating (new String (buf)); - raw = buf; - } catch (IndexOutOfBoundsException x) { - throw new DomEx (DomEx.INDEX_SIZE_ERR); - } - } - - - /** - * <b>DOM L1</b> - * Modifies the value of this node. Causes DOMCharacterDataModified - * mutation events to be reported (at least one). - */ - public void replaceData (int offset, int count, String arg) - { - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - - // this could be rewritten to be faster, - // and to report only one mutation event - deleteData (offset, count); - insertData (offset, arg); - } - - - /** - * <b>DOM L1</b> - * Assigns the value of this node. - * Causes a DOMCharacterDataModified mutation event to be reported. - */ - public void setNodeValue (String value) - { - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - if (value == null) - value = ""; - mutating (value); - raw = value.toCharArray (); - } - - - /** - * <b>DOM L1</b> - * Assigns the value of this node; same as setNodeValue. - */ - final public void setData (String data) - { - setNodeValue (data); - } - - - /** - * <b>DOM L1</b> - * Returns the specified substring. - */ - public String substringData (int offset, int count) - { - try { - return new String (raw, offset, count); - } catch (IndexOutOfBoundsException e) { - if (offset >= 0 && count >= 0) { - int len = raw.length; - if (offset < len && (offset + count) > len) - return new String (raw, offset, len - offset); - } - throw new DomEx (DomEx.INDEX_SIZE_ERR); - } - } - - private void mutating (String newValue) - { - if (!reportMutations) - return; - - // EVENT: DOMCharacterDataModified, target = this, - // prev/new values provided - MutationEvent event; - - event = (MutationEvent) createEvent ("MutationEvents"); - event.initMutationEvent ("DOMCharacterDataModified", - true /* bubbles */, false /* nocancel */, - null, new String (raw), newValue, null, (short) 0); - dispatchEvent (event); - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomComment.java b/external/jaxp/source/gnu/xml/dom/DomComment.java deleted file mode 100644 index 0596cc63b..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomComment.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "Comment" implementation. - * Comments hold data intended for direct consumption by people; - * programs should only use ProcessingInstruction nodes. Note that - * since SAX makes comment reporting optional, XML systems that - * rely on comments (such as by using this class) will often lose - * those comments at some point in the processing pipeline. </p> - * - * @author David Brownell - */ -public class DomComment extends DomCharacterData implements Comment -{ - /** - * Constructs a comment node associated with the specified - * document and holding the specified data. - * - * <p>This constructor should only be invoked by a Document as part of - * its createComment functionality, or through a subclass which is - * similarly used in a "Sub-DOM" style layer. - */ - protected DomComment (Document owner, String value) - { - super (owner, value); - } - - - /** - * <b>DOM L1</b> - * Returns the string "#comment". - */ - final public String getNodeName () - { - return "#comment"; - } - - /** - * <b>DOM L1</b> - * Returns the constant COMMENT_NODE. - */ - final public short getNodeType () - { return COMMENT_NODE; } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomDoctype.java b/external/jaxp/source/gnu/xml/dom/DomDoctype.java deleted file mode 100644 index de8a476df..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomDoctype.java +++ /dev/null @@ -1,357 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - -import java.util.Hashtable; - - -/** - * <p> "DocumentType" implementation (with no extensions for supporting - * any document typing information). This is a non-core DOM class, - * supporting the "XML" feature. </p> - * - * <p> <em>Few XML applications will actually care about this partial - * DTD support</em>, since it doesn't expose any (!) of the data typing - * facilities which can motivate applications to use DTDs. It does not - * expose element content models, or information about attribute typing - * rules. Plus the information it exposes isn't very useful; as one example, - * DOM exposes information about unparsed ENTITY objects, which is only used - * with certain element attributes, but does not expose the information about - * those attributes which is needed to apply that data! </p> - * - * <p> Also, note that there are no nonportable ways to associate even the - * notation and entity information exposed by DOM with a DocumentType. While - * there is a DOM L2 method to construct a DocumentType, it only gives access - * to the textual content of the <!DOCTYPE ...> declaration. </p> - * - * <p> In short, <em>you are strongly advised not to rely on this incomplete - * DTD functionality</em> in your application code.</p> - * - * @see DomEntity - * @see DomEntityReference - * @see DomNotation - * - * @author David Brownell - */ -public class DomDoctype extends DomExtern implements DocumentType -{ - private DomNamedNodeMap notations; - private DomNamedNodeMap entities; - private DOMImplementation implementation; - private String subset; - - private Hashtable elements = new Hashtable (); - private boolean ids; - - - /** - * Constructs a DocumentType node associated with the specified - * implementation, with the specified name. - * - * <p>This constructor should only be invoked by a DOMImplementation as - * part of its createDocumentType functionality, or through a subclass - * which is similarly used in a "Sub-DOM" style layer. - * - * <p> Note that at this time there is no standard SAX API granting - * access to the internal subset text, so that relying on that value - * is not currently portable. - * - * @param impl The implementation with which this object is associated - * @param name Name of this root element - * @param publicId If non-null, provides the external subset's - * PUBLIC identifier - * @param systemId If non-null, provides the external subset's - * SYSTEM identifier - * @param internalSubset Provides the literal value (unparsed, no - * entities expanded) of the DTD's internal subset. - */ - protected DomDoctype ( - DOMImplementation impl, - String name, - String publicId, - String systemId, - String internalSubset - ) - { - super (null, name, publicId, systemId); - implementation = impl; - subset = internalSubset; - } - - // package private - // for JAXP-style builder backdoors - DomDoctype ( - DomDocument doc, - String name, - String publicId, - String systemId - ) - { - super (doc, name, publicId, systemId); - implementation = doc.getImplementation (); - } - - - /** - * <b>DOM L1</b> - * Returns the root element's name (just like getNodeName). - */ - final public String getName () { return getNodeName (); } - - /** - * <b>DOM L1</b> - * Returns the constant DOCUMENT_TYPE_NODE. - */ - final public short getNodeType () - { return DOCUMENT_TYPE_NODE; } - - - /** - * <b>DOM L1</b> - * Returns information about any general entities declared - * in the DTD. - * - * <p><em>Note: DOM L1 doesn't throw a DOMException here, but - * then it doesn't have the strange construction rules of L2.</em> - * - * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType - * is not associated with a document. - */ - public NamedNodeMap getEntities () - { - if (entities == null) { - if (getOwnerDocument () == null) - throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR); - entities = new DomNamedNodeMap (getOwnerDocument ()); - } - return entities; - } - - - /** - * Records the declaration of a general entity in this DocumentType. - * - * @param name Name of the entity - * @param publicId If non-null, provides the entity's PUBLIC identifier - * @param systemId Provides the entity's SYSTEM identifier - * @param notation If non-null, provides the entity's notation - * (indicating an unparsed entity) - * @return The Entity that was declared, or null if the entity wasn't - * recorded (because it's a parameter entity or because an entity with - * this name was already declared). - * - * @exception DOMException NO_MODIFICATION_ALLOWED_ERR if the - * DocumentType is no longer writable. - * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType - * is not associated with a document. - */ - public Entity declareEntity ( - String name, - String publicId, - String systemId, - String notation - ) - { - DomEntity entity; - - if (name.charAt (0) == '%' || "[dtd]".equals (name)) - return null; - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - getEntities (); - - DomDocument.verifyXmlName (name); - if (entities.getNamedItem (name) != null) - return null; - - entity = new DomEntity (getOwnerDocument (), - name, publicId, systemId, notation); - entities.setNamedItem (entity); - return entity; - } - - /** - * <b>DOM L1</b> - * Returns information about any notations declared in the DTD. - * - * <p><em>Note: DOM L1 doesn't throw a DOMException here, but - * then it doesn't have the strange construction rules of L2.</em> - * - * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType - * is not associated with a document. - */ - public NamedNodeMap getNotations () - { - if (notations == null) { - if (getOwnerDocument () == null) - throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR); - notations = new DomNamedNodeMap (getOwnerDocument ()); - } - return notations; - } - - - /** - * Records the declaration of a notation in this DocumentType. - * - * @param name Name of the notation - * @param publicId If non-null, provides the notation's PUBLIC identifier - * @param systemId If non-null, provides the notation's SYSTEM identifier - * @return The notation that was declared. - * - * @exception DOMException NO_MODIFICATION_ALLOWED_ERR if the - * DocumentType is no longer writable. - * @exception DOMException HIERARCHY_REQUEST_ERR if the DocumentType - * is not associated with a document. - */ - public Notation declareNotation ( - String name, - String publicId, - String systemId - ) - { - DomNotation notation; - - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - getNotations (); - - DomDocument.verifyXmlName (name); - - notation = new DomNotation (getOwnerDocument (), - name, publicId, systemId); - notations.setNamedItem (notation); - return notation; - } - - - /** - * <b>DOM L2</b> - * Returns the internal subset of the document, as a string of unparsed - * XML declarations (and comments, PIs, whitespace); or returns null if - * there is no such subset. There is no vendor-independent expectation - * that this attribute be set, or that declarations found in it be - * reflected in the <em>entities</em> or <em>notations</em> attributes - * of this Document "Type" object. - * - * <p> Some application-specific XML profiles require that documents - * only use specific PUBLIC identifiers, without an internal subset - * to modify the interperetation of the declarations associated with - * that PUBLIC identifier through some standard. - */ - public String getInternalSubset () - { - return subset; - } - - - /** - * Sets the internal "readonly" flag so the node and its associated - * data (only lists of entities and notations, no type information - * at the moment) can't be changed. - */ - public void makeReadonly () - { - super.makeReadonly (); - if (entities != null) - entities.makeReadonly (); - if (notations != null) - notations.makeReadonly (); - } - - - /** - * <b>DOM L2</b> - * Consults the DOM implementation to determine if the requested - * feature is supported. - */ - final public boolean supports (String feature, String version) - { - return implementation.hasFeature (feature, version); - } - - - /** - * Returns the implementation associated with this document type. - */ - final public DOMImplementation getImplementation () - { - return implementation; - } - - - // Yeech. Package-private hooks, I don't like this. - // For all that it's better than making this stuff a - // public API... - - - // package private - ElementInfo getElementInfo (String element) - { - ElementInfo info = (ElementInfo) elements.get (element); - - if (info != null) - return info; - info = new ElementInfo (this); - elements.put (element, info); - return info; - } - - void setHasIds () { ids = true; } - boolean hasIds () { return ids; } - - // package private - static class ElementInfo extends Hashtable - { - private String idAttrName; - private DomDoctype doctype; - - // is-a vs has-a ... just to minimize number of objects. - // keys in table are attribute names, values are defaults. - - ElementInfo (DomDoctype dt) { super (5, 5); doctype = dt; } - - void setAttrDefault (String attName, String value) - { - if (getAttrDefault (attName) == null) - put (attName, value); - } - String getAttrDefault (String attName) - { return (String) get (attName); } - - void setIdAttr (String attName) - { - if (idAttrName == null) - idAttrName = attName; - doctype.setHasIds (); - } - String getIdAttr () - { return idAttrName; } - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomDocument.java b/external/jaxp/source/gnu/xml/dom/DomDocument.java deleted file mode 100644 index 5b7a1eeed..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomDocument.java +++ /dev/null @@ -1,789 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import java.util.Enumeration; - -import org.w3c.dom.*; -import org.w3c.dom.traversal.*; - - -/** - * <p> "Document" and "DocumentTraversal" implementation. - * - * <p> Note that when this checks names for legality, it uses an - * approximation of the XML rules, not the real ones. Specifically, - * it uses Unicode rules, with sufficient tweaks to pass a majority - * of basic XML conformance tests. (The huge XML character tables are - * hairy to implement.) - * - * @author David Brownell - */ -public class DomDocument extends DomNode - implements Document, DocumentTraversal -{ - private final DOMImplementation implementation; - private boolean checkingCharacters = true; - - // package private - final static String xmlNamespace = - "http://www.w3.org/XML/1998/namespace"; - final static String xmlnsURI = - "http://www.w3.org/2000/xmlns/"; - - - /** - * Constructs a Document node, associating it with an instance - * of the DomImpl class. - * - * <p> Note that this constructor disables character checking. - * It is normally used when connecting a DOM to an XML parser, - * and duplicating such checks is undesirable. When used for - * purposes other than connecting to a parser, you should - * re-enable that checking. - * - * @see #setCheckingCharacters - */ - public DomDocument () - { - super (null); - implementation = new DomImpl (); - } - - - /** - * Constructs a Document node, associating it with the specified - * implementation. This should only be used in conjunction with - * a specialized implementation; it will normally be called by - * that implementation. - * - * @see DomImpl - * @see #setCheckingCharacters - */ - protected DomDocument (DOMImplementation impl) - { - super (null); - implementation = impl; - } - - - /** - * <b>DOM L1</b> - * Returns the constant "#document". - */ - final public String getNodeName () - { - return "#document"; - } - - /** - * <b>DOM L1</b> - * Returns the constant DOCUMENT_NODE. - */ - final public short getNodeType () - { return DOCUMENT_NODE; } - - - /** - * <b>DOM L1</b> - * Returns the document's root element, or null. - */ - final public Element getDocumentElement () - { - for (int i = 0; i < getLength (); i++) { - Node n = item (i); - if (n.getNodeType () == ELEMENT_NODE) - return (Element) n; - } - return null; - } - - - /** - * <b>DOM L1</b> - * Returns the document's DocumentType, or null. - */ - final public DocumentType getDoctype () - { - for (int i = 0; i < getLength (); i++) { - Node n = item (i); - if (n.getNodeType () == DOCUMENT_TYPE_NODE) - return (DocumentType) n; - } - return null; - } - - - /** - * <b>DOM L1</b> - * Returns the document's DOMImplementation. - */ - final public DOMImplementation getImplementation () - { - return implementation; - } - - - /** - * <b>DOM L1 (relocated in DOM L2)</b> - * Returns the element with the specified "ID" attribute, or null. - * - * <p>Returns null unless {@link Consumer} was used to populate internal - * DTD declaration information, using package-private APIs. If that - * internal DTD information is available, the document may be searched for - * the element with that ID. - */ - public Element getElementById (String id) - { - DomDoctype doctype = (DomDoctype) getDoctype (); - - if (doctype == null || !doctype.hasIds () - || id == null || id.length () == 0) - return null; - - // yes, this is linear in size of document. - // it'd be easy enough to maintain a hashtable. - Node current = getDocumentElement (); - Node temp; - - if (current == null) - return null; - while (current != this) { - // done? - if (current.getNodeType () == ELEMENT_NODE) { - Element element = (Element) current; - DomDoctype.ElementInfo info; - - info = doctype.getElementInfo (current.getNodeName ()); - if (id.equals (element.getAttribute (info.getIdAttr ()))) - return element; - } - - // descend? - if (current.hasChildNodes ()) { - current = current.getFirstChild (); - continue; - } - - // lateral? - temp = current.getNextSibling (); - if (temp != null) { - current = temp; - continue; - } - - // back up ... - do { - temp = current.getParentNode (); - if (temp == null) - return null; - current = temp; - temp = current.getNextSibling (); - } while (temp == null); - current = temp; - } - return null; - } - - - private void checkNewChild (Node newChild) - { - if (newChild.getNodeType () == ELEMENT_NODE - && getDocumentElement () != null) - throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR, null, newChild, 0); - if (newChild.getNodeType () == DOCUMENT_TYPE_NODE - && getDoctype () != null) - throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR, null, newChild, 0); - } - - - /** - * <b>DOM L1</b> - * Appends the specified node to this node's list of children, - * enforcing the constraints that there be only one root element - * and one document type child. - */ - public Node appendChild (Node newChild) - { - checkNewChild (newChild); - return super.appendChild (newChild); - } - - - /** - * <b>DOM L1</b> - * Inserts the specified node in this node's list of children, - * enforcing the constraints that there be only one root element - * and one document type child. - */ - public Node insertBefore (Node newChild, Node refChild) - { - checkNewChild (newChild); - return super.insertBefore (newChild, refChild); - } - - - /** - * <b>DOM L1</b> - * Replaces the specified node in this node's list of children, - * enforcing the constraints that there be only one root element - * and one document type child. - */ - public Node replaceChild (Node newChild, Node refChild) - { - if (!(newChild.getNodeType () == ELEMENT_NODE - && refChild.getNodeType () != ELEMENT_NODE) - && !(newChild.getNodeType () == DOCUMENT_TYPE_NODE - && refChild.getNodeType () != ELEMENT_NODE)) - checkNewChild (newChild); - return super.replaceChild (newChild, refChild); - } - - - // NOTE: DOM can't really tell when the name of an entity, - // notation, or PI must follow the namespace rules (excluding - // colons) instead of the XML rules (which allow them without - // much restriction). That's an API issue. verifyXmlName - // aims to enforce the XML rules, not the namespace rules. - - /** - * Throws a DOM exception if the specified name is not a legal XML 1.0 - * name. Actually this uses a very similar set of rules, closer to - * Unicode rules than to the rules encoded in the large table at the - * end of the XML 1.0 specification. - * - * @exception DomException INVALID_CHARACTER_ERR if the name isn't - * legal as an XML name. - */ - static public void verifyXmlName (String name) - { - char c; - int len = name.length (); - - if (len == 0) - throw new DomEx (DomEx.NAMESPACE_ERR, name, null, 0); - - // NOTE: these aren't really the XML rules, but they're - // a close approximation that's simple to implement. - c = name.charAt (0); - if (!Character.isUnicodeIdentifierStart (c) - && c != ':' && c != '_') - throw new DomEx (DomEx.INVALID_CHARACTER_ERR, - name, null, c); - for (int i = 1; i < len; i++) { - c = name.charAt (i); - if (!Character.isUnicodeIdentifierPart (c) - && c != ':'&& c != '_' && c != '.' && c != '-' - && !isExtender (c)) - throw new DomEx (DomEx.INVALID_CHARACTER_ERR, - name, null, c); - } - } - - static private boolean isExtender (char c) - { - // [88] Extender ::= ... - return c == 0x00b7 || c == 0x02d0 || c == 0x02d1 || c == 0x0387 - || c == 0x0640 || c == 0x0e46 || c == 0x0ec6 || c == 0x3005 - || (c >= 0x3031 && c <= 0x3035) - || (c >= 0x309d && c <= 0x309e) - || (c >= 0x30fc && c <= 0x30fe); - } - - // package private - static void verifyNamespaceName (String name) - { - int index = name.indexOf (':'); - - if (index < 0) { - verifyXmlName (name); - return; - } - if (name.lastIndexOf (':') != index) - throw new DomEx (DomEx.NAMESPACE_ERR, name, null, 0); - verifyXmlName (name.substring (0, index)); - verifyXmlName (name.substring (index + 1)); - } - - // package private - static void verifyXmlCharacters (String value) - { - int len = value.length (); - - for (int i = 0; i < len; i++) { - char c = value.charAt (i); - - // assume surrogate pairing checks out OK, for simplicity - if (c >= 0x0020 && c <= 0xFFFD) - continue; - if (c == '\n' || c == '\t' || c == '\r') - continue; - - throw new DomEx (DomEx.INVALID_CHARACTER_ERR, value, null, c); - } - } - - // package private - static void verifyXmlCharacters (char buf [], int off, int len) - { - for (int i = 0; i < len; i++) { - char c = buf [off + i]; - - // assume surrogate pairing checks out OK, for simplicity - if (c >= 0x0020 && c <= 0xFFFD) - continue; - if (c == '\n' || c == '\t' || c == '\r') - continue; - - throw new DomEx (DomEx.INVALID_CHARACTER_ERR, - new String (buf, off, len), null, c); - } - } - - - /** - * Controls whether certain expensive checks, duplicating those that - * conformant XML parsers must perform, are made. - */ - final public void setCheckingCharacters (boolean value) - { - checkingCharacters = value; - } - - - /** - * Returns true if certain expensive checks are performed. - * Those checks are intended to reject illegal names, and characters - * that are illegal as XML characters. - */ - final public boolean isCheckingCharacters () - { - return checkingCharacters; - } - - - /** - * <b>DOM L1</b> - * Returns a newly created element with the specified name. - */ - public Element createElement (String name) - { - Element element; - - if (checkingCharacters) - verifyXmlName (name); - if (name.startsWith ("xml:")) - element = createElementNS (null, name); - else - element = new DomElement (this, null, name); - defaultAttributes (element, name); - return element; - } - - - /** - * <b>DOM L2</b> - * Returns a newly created element with the specified name - * and namespace information. - */ - public Element createElementNS (String namespaceURI, String name) - { - if (checkingCharacters) - verifyNamespaceName (name); - - if ("".equals (namespaceURI)) - namespaceURI = null; - if (name.startsWith ("xml:")) { - if (namespaceURI != null - && !xmlNamespace.equals (namespaceURI)) - throw new DomEx (DomEx.NAMESPACE_ERR, - "xml namespace is always " + xmlNamespace, this, 0); - namespaceURI = xmlNamespace; - } else if (name.startsWith ("xmlns:")) - throw new DomEx (DomEx.NAMESPACE_ERR, - "xmlns is reserved", this, 0); - else if (namespaceURI == null && name.indexOf (':') != -1) - throw new DomEx (DomEx.NAMESPACE_ERR, - "prefixed name needs a URI", this, 0); - - Element element = new DomElement (this, namespaceURI, name); - defaultAttributes (element, name); - return element; - } - - private void defaultAttributes (Element element, String name) - { - DomDoctype doctype = (DomDoctype) getDoctype (); - DomDoctype.ElementInfo info; - - if (doctype == null) - return; - - // default any attributes that need it - info = doctype.getElementInfo (name); - for (Enumeration e = info.keys (); e.hasMoreElements (); /* NOP */) { - String attr = (String) e.nextElement (); - DomAttr node = (DomAttr) createAttribute (attr); - - node.setValue ((String) info.get (attr)); - node.setSpecified (false); - element.setAttributeNode (node); - } - } - - - /** - * <b>DOM L1</b> - * Returns a newly created document fragment. - */ - public DocumentFragment createDocumentFragment () - { - return new DomFragment (this); - } - - - /** - * <b>DOM L1</b> - * Returns a newly created text node with the specified value. - */ - public Text createTextNode (String value) - { - if (checkingCharacters) - verifyXmlCharacters (value); - return new DomText (this, value); - } - - /** - * Returns a newly created text node with the specified value. - */ - public Text createTextNode (char buf [], int off, int len) - { - if (checkingCharacters) - verifyXmlCharacters (buf, off, len); - return new DomText (this, buf, off, len); - } - - - /** - * <b>DOM L1</b> - * Returns a newly created comment node with the specified value. - */ - public Comment createComment (String value) - { - if (checkingCharacters) - verifyXmlCharacters (value); - return new DomComment (this, value); - } - - - /** - * <b>DOM L1</b> - * Returns a newly created CDATA section node with the specified value. - */ - public CDATASection createCDATASection (String value) - { - if (checkingCharacters) - verifyXmlCharacters (value); - return new DomCDATA (this, value); - } - - - /** - * Returns a newly created CDATA section node with the specified value. - */ - public CDATASection createCDATASection (char buf [], int off, int len) - { - if (checkingCharacters) - verifyXmlCharacters (buf, off, len); - return new DomCDATA (this, buf, off, len); - } - - - /** - * <b>DOM L1</b> - * Returns a newly created processing instruction. - */ - public ProcessingInstruction createProcessingInstruction ( - String target, - String data - ) - { - if (checkingCharacters) { - verifyXmlName (target); - verifyXmlCharacters (data); - if ("xml".equalsIgnoreCase (target)) - throw new DomEx (DomEx.SYNTAX_ERR, - "illegal PI target name", this, 0); - } - return new DomPI (this, target, data); - } - - - /** - * <b>DOM L1</b> - * Returns a newly created attribute with the specified name. - */ - public Attr createAttribute (String name) - { - if (checkingCharacters) - verifyXmlName (name); - if (name.startsWith ("xml:") || name.startsWith ("xmlns:")) - return createAttributeNS (null, name); - else - return new DomAttr (this, null, name); - } - - - /** - * <b>DOM L2</b> - * Returns a newly created attribute with the specified name - * and namespace information. - */ - public Attr createAttributeNS (String namespaceURI, String name) - { - if (checkingCharacters) - verifyNamespaceName (name); - - if ("".equals (namespaceURI)) - namespaceURI = null; - if (name.startsWith ("xml:")) { - if (namespaceURI == null) - namespaceURI = xmlNamespace; - else if (!xmlNamespace.equals (namespaceURI)) - throw new DomEx (DomEx.NAMESPACE_ERR, - "xml namespace is always " + xmlNamespace, this, 0); - namespaceURI = xmlNamespace; - - } else if (name.startsWith ("xmlns:") || name.equals ("xmlns")) { - if (!xmlnsURI.equals (namespaceURI)) - throw new DomEx (DomEx.NAMESPACE_ERR, - "xmlns is reserved", this, 0); - namespaceURI = xmlnsURI; - - } else if (namespaceURI == null && name.indexOf (':') != -1) - throw new DomEx (DomEx.NAMESPACE_ERR, - "prefixed name needs a URI: " + name, this, 0); - - return new DomAttr (this, namespaceURI, name); - } - - - /** - * <b>DOM L1</b> - * Returns a newly created reference to the specified entity. - * The caller should populate this with the appropriate children - * and then mark it as readonly. - * - * @see DomNode#makeReadonly - */ - public EntityReference createEntityReference (String name) - { - DomEntityReference retval; - - if (checkingCharacters) - verifyXmlName (name); - retval = new DomEntityReference (this, name); - // - // If we have such an entity, it's allowed that one arrange that - // the children of this reference be "the same as" (in an undefined - // sense of "same", clearly not identity) the children of the entity. - // That can be immediate or deferred. It's also allowed that nothing - // be done -- we take that option here. - // - retval.makeReadonly (); - return retval; - } - - - /** - * <b>DOM L2</b> - * Makes a copy of the specified node, with all nodes "owned" by - * this document and with children optionally copied. This type - * of standard utility has become, well, a standard utility. - * - * <p> Note that EntityReference nodes created through this method (either - * directly, or recursively) never have children, and that there is no - * portable way to associate them with such children. - * - * <p> Note also that there is no requirement that the specified node - * be associated with a different document. This differs from the - * <em>cloneNode</em> operation in that the node itself is not given - * an opportunity to participate, so that any information managed - * by node subclasses will be lost. - */ - public Node importNode (Node copiedNode, boolean deep) - { - switch (copiedNode.getNodeType ()) { - case TEXT_NODE: - return createTextNode (copiedNode.getNodeValue ()); - case CDATA_SECTION_NODE: - return createCDATASection (copiedNode.getNodeValue ()); - case COMMENT_NODE: - return createComment (copiedNode.getNodeValue ()); - case PROCESSING_INSTRUCTION_NODE: - return createProcessingInstruction ( - copiedNode.getNodeName (), - copiedNode.getNodeValue ()); - case NOTATION_NODE: - { - // NOTE: There's no standard way to create - // these, or add them to a doctype. Useless. - Notation node = (Notation) copiedNode; - return new DomNotation (this, node.getNodeName (), - node.getPublicId (), node.getSystemId ()); - } - case ENTITY_NODE: - { - // NOTE: There's no standard way to create - // these, or add them to a doctype. Useless. - Entity node = (Entity) copiedNode; - - // FIXME if "deep", can/should copy children! - - return new DomEntity (this, node.getNodeName (), - node.getPublicId (), node.getSystemId (), - node.getNotationName ()); - } - case ENTITY_REFERENCE_NODE: - return createEntityReference (copiedNode.getNodeName ()); - case DOCUMENT_FRAGMENT_NODE: - { - DocumentFragment node = createDocumentFragment (); - if (deep) { - NodeList kids = copiedNode.getChildNodes (); - int len = kids.getLength (); - for (int i = 0; i < len; i++) - node.appendChild ( - importNode (kids.item (i), deep)); - } - return node; - } - case ATTRIBUTE_NODE: - { - DomAttr retval; - String name = copiedNode.getNodeName (); - String ns = copiedNode.getNamespaceURI (); - NodeList kids = copiedNode.getChildNodes (); - int len = kids.getLength (); - - if (ns != null) - retval = (DomAttr) createAttributeNS (ns, name); - else - retval = (DomAttr) createAttribute (name); - - // this is _always_ done regardless of "deep" setting - for (int i = 0; i < len; i++) - retval.appendChild (importNode (kids.item (i), false)); - return retval; - } - case ELEMENT_NODE: - { - DomElement retval; - String name = copiedNode.getNodeName (); - String ns = copiedNode.getNamespaceURI (); - NamedNodeMap attrs = copiedNode.getAttributes (); - int len = attrs.getLength (); - - if (ns != null) - retval = (DomElement) createElementNS (ns, name); - else - retval = (DomElement) createElement (name); - for (int i = 0; i < len; i++) { - Attr attr = (Attr) attrs.item (i); - Attr dflt; - - // maybe update defaulted attributes - dflt = retval.getAttributeNode (attr.getNodeName ()); - if (dflt != null) { - String newval = attr.getNodeValue (); - if (!dflt.getNodeValue ().equals (newval) - || attr.getSpecified () == true) - dflt.setNodeValue (newval); - continue; - } - - retval.setAttributeNode ((Attr) - importNode (attr, false)); - } - - if (!deep) - return retval; - - NodeList kids = copiedNode.getChildNodes (); - - len = kids.getLength (); - for (int i = 0; i < len; i++) - retval.appendChild (importNode (kids.item (i), true)); - - return retval; - } - - // can't import document or doctype nodes - case DOCUMENT_NODE: - case DOCUMENT_TYPE_NODE: - // FALLTHROUGH - - // can't import unrecognized or nonstandard nodes - default: - throw new DomEx (DomEx.NOT_SUPPORTED_ERR, null, copiedNode, 0); - } - - // FIXME cleanup a bit -- for deep copies, copy those - // children in one place, here (code sharing is healthy) - } - - - /** - * <b>DOM L2 (Traversal)</b> - * Returns a newly created node iterator. Don't forget to detach - * this iterator when you're done using it! - * - * @see DomIterator - */ - public NodeIterator createNodeIterator ( - Node root, - int whatToShow, - NodeFilter filter, - boolean expandEntities - ) - { - return new DomIterator (root, whatToShow, filter, expandEntities); - } - - - - public TreeWalker createTreeWalker ( - Node root, - int whatToShow, - NodeFilter filter, - boolean entityReferenceExpansion - ) - { -nyi (); // FIXME createTreeWalker - return null; - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomElement.java b/external/jaxp/source/gnu/xml/dom/DomElement.java deleted file mode 100644 index 61f442132..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomElement.java +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "Element" implementation. - * - * @author David Brownell - */ -public class DomElement extends DomNsNode implements Element -{ - // Attributes are VERY expensive in DOM, and not just for - // this implementation. Avoid creating them. - private DomNamedNodeMap attributes; - - - /** - * Constructs an Element node associated with the specified document. - * - * <p>This constructor should only be invoked by a Document as part - * of its createElement functionality, or through a subclass which is - * similarly used in a "Sub-DOM" style layer. - * - * @param owner The document with which this node is associated - * @param namespaceURI Combined with the local part of the name, - * this is used to uniquely identify a type of element - * @param name Name of this element, which may include a prefix - */ - protected DomElement (Document owner, String namespaceURI, String name) - { - super (owner, namespaceURI, name); - } - - - /** - * <b>DOM L1</b> - * Returns the element's attributes - */ - public NamedNodeMap getAttributes () - { - if (attributes == null) - attributes = new DomNamedNodeMap (getOwnerDocument (), this); - return attributes; - } - - - /** - * <b>DOM L2></b> - * Returns true iff this is an element node with attributes. - */ - public boolean hasAttributes () - { return attributes != null && attributes.getLength () != 0; } - - - /** - * Shallow clone of the element, except that associated - * attributes are (deep) cloned. - */ - public Object clone () - { - DomElement retval = (DomElement) super.clone (); - DomNamedNodeMap atts; - - if (attributes == null) - return retval; - - atts = new DomNamedNodeMap (getOwnerDocument (), retval); - retval.attributes = atts; - for (int i = 0; i < attributes.getLength (); i++) { - Node temp = attributes.item (i); - - temp = temp.cloneNode (true); - atts.setNamedItem (temp); - } - return retval; - } - - - /** - * Marks this element, its children, and its associated attributes as - * readonly. - */ - public void makeReadonly () - { - super.makeReadonly (); - if (attributes != null) - attributes.makeReadonly (); - } - - /** - * <b>DOM L1</b> - * Returns the element name (same as getNodeName). - */ - final public String getTagName () - { - return getNodeName (); - } - - /** - * <b>DOM L1</b> - * Returns the constant ELEMENT_NODE. - */ - final public short getNodeType () - { return ELEMENT_NODE; } - - - /** - * <b>DOM L1</b> - * Returns the value of the specified attribute, or an - * empty string. - */ - public String getAttribute (String name) - { - Attr attr = getAttributeNode (name); - - if (attr == null) - return ""; - else - return attr.getValue (); - } - - - /** - * <b>DOM L2</b> - * Returns true if the element has an attribute with the - * specified name (specified or DTD defaulted). - */ - public boolean hasAttribute (String name) - { - return getAttributeNode (name) != null; - } - - - /** - * <b>DOM L2</b> - * Returns true if the element has an attribute with the - * specified name (specified or DTD defaulted). - */ - public boolean hasAttributeNS (String namespaceURI, String local) - { - return getAttributeNodeNS (namespaceURI, local) != null; - } - - - /** - * <b>DOM L2</b> - * Returns the value of the specified attribute, or an - * empty string. - */ - public String getAttributeNS (String namespaceURI, String local) - { - Attr attr = getAttributeNodeNS (namespaceURI, local); - - if (attr == null) - return ""; - else - return attr.getValue (); - } - - - /** - * <b>DOM L1</b> - * Returns the appropriate attribute node; the name is the - * nodeName property of the attribute. - */ - public Attr getAttributeNode (String name) - { - if (attributes == null) - return null; - - return (Attr) attributes.getNamedItem (name); - } - - - /** - * <b>DOM L2</b> - * Returns the appropriate attribute node; the name combines - * the namespace name and the local part. - */ - public Attr getAttributeNodeNS (String namespace, String localPart) - { - if (attributes == null) - return null; - - return (Attr) attributes.getNamedItemNS (namespace, localPart); - } - - - /** - * <b>DOM L1</b> - * Modifies an existing attribute to have the specified value, - * or creates a new one with that value. The name used is the - * nodeName value. - */ - public void setAttribute (String name, String value) - { - Attr attr = getAttributeNode (name); - - if (attr != null) { - attr.setNodeValue (value); - return; - } - attr = getOwnerDocument ().createAttribute (name); - attr.setNodeValue (value); - setAttributeNode (attr); - } - - - /** - * <b>DOM L2</b> - * Modifies an existing attribute to have the specified value, - * or creates a new one with that value. - */ - public void setAttributeNS (String uri, String aname, String value) - { - if (("xmlns".equals (aname) || aname.startsWith ("xmlns:")) - && !DomDocument.xmlnsURI.equals (uri)) - throw new DomEx (DomEx.NAMESPACE_ERR, - "setting xmlns attribute to illegal value", this, 0); - - Attr attr = getAttributeNodeNS (uri, aname); - - if (attr != null) { - attr.setNodeValue (value); - return; - } - attr = getOwnerDocument ().createAttributeNS (uri, aname); - attr.setNodeValue (value); - setAttributeNodeNS (attr); - } - - - /** - * <b>DOM L1</b> - * Stores the specified attribute, optionally overwriting any - * existing one with that name. - */ - public Attr setAttributeNode (Attr attr) - { - return (Attr) getAttributes ().setNamedItem (attr); - } - - /** - * <b>DOM L2</b> - * Stores the specified attribute, optionally overwriting any - * existing one with that name. - */ - public Attr setAttributeNodeNS (Attr attr) - { - return (Attr) getAttributes ().setNamedItemNS (attr); - } - - /** - * <b>DOM L1</b> - * Removes the appropriate attribute node. - * If there is no such node, this is (bizarrely enough) a NOP so you - * won't see exceptions if your code deletes non-existent attributes. - * - * <p>Note that since there is no portable way for DOM to record - * DTD information, default values for attributes will never be - * provided automatically. - */ - public void removeAttribute (String name) - { - if (attributes == null) - return; - // throw new DomEx (DomEx.NOT_FOUND_ERR, name, null, 0); - - try { - attributes.removeNamedItem (name); - } catch (DomEx e) { - if (e.code == DomEx.NOT_FOUND_ERR) - return; - } - } - - - /** - * <b>DOM L1</b> - * Removes the appropriate attribute node; the name is the - * nodeName property of the attribute. - * - * <p>Note that since there is no portable way for DOM to record - * DTD information, default values for attributes will never be - * provided automatically. - */ - public Attr removeAttributeNode (Attr node) - { - if (attributes == null) - throw new DomEx (DomEx.NOT_FOUND_ERR, null, node, 0); - - return (Attr) attributes.removeNamedItem (node.getNodeName ()); - } - - - /** - * <b>DOM L2</b> - * Removes the appropriate attribute node; the name combines - * the namespace name and the local part. - * - * <p>Note that since there is no portable way for DOM to record - * DTD information, default values for attributes will never be - * provided automatically. - */ - public void removeAttributeNS (String namespace, String localPart) - { - if (attributes == null) - throw new DomEx (DomEx.NOT_FOUND_ERR, localPart, null, 0); - - attributes.removeNamedItemNS (namespace, localPart); - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomEntity.java b/external/jaxp/source/gnu/xml/dom/DomEntity.java deleted file mode 100644 index 38ebfab02..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomEntity.java +++ /dev/null @@ -1,111 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "Entity" implementation. This is a non-core DOM class, supporting the - * "XML" feature. There are two types of entities, neither of which works - * particularly well in this API:</p><dl> - * - * <dt><em>Unparsed Entities</em></dt> - * <dd>Since ENTITY/ENTITIES attributes, the only legal use of unparsed - * entities in XML, can't be detected with DOM, there isn't much point in - * trying to use unparsed entities in DOM applications. (XML Linking is - * working to provide a better version of this functionality.) </dd> - * - * <dt><em>Parsed Entities</em></dt> - * <dd> While the DOM specification permits nodes for parsed entities - * to have a readonly set of children, this is not required and there - * is no portable way to provide such children. <em>This implementation - * currently does not permit children to be added to Entities.</em> - * There are related issues with the use of EntityReference nodes. </dd> - * - * </dl> - * - * <p> In short, <em>avoid using this DOM functionality</em>. - * - * @see DomDoctype - * @see DomEntityReference - * @see DomNotation - * - * @author David Brownell - */ -public class DomEntity extends DomExtern implements Entity -{ - private String notation; - - - /** - * Constructs an Entity node associated with the specified document, - * with the specified descriptive data. - * - * <p>This constructor should only be invoked by a DomDoctype as part - * of its declareEntity functionality, or through a subclass which is - * similarly used in a "Sub-DOM" style layer. - * - * @param owner The document with which this entity is associated - * @param name Name of this entity - * @param publicId If non-null, provides the entity's PUBLIC identifier - * @param systemId Provides the entity's SYSTEM identifier (URI) - * @param notation If non-null, provides the unparsed entity's notation. - */ - protected DomEntity ( - Document owner, - String name, - String publicId, - String systemId, - String notation - ) - { - super (owner, name, publicId, systemId); - this.notation = notation; - - // NOTE: if notation == null, this is a parsed entity - // which could reasonably be given child nodes ... - makeReadonly (); - } - - - /** - * <b>DOM L1</b> - * Returns the NOTATION identifier associated with this entity, if any. - */ - final public String getNotationName () - { - return notation; - } - - /** - * <b>DOM L1</b> - * Returns the constant ENTITY_NODE. - */ - final public short getNodeType () - { return ENTITY_NODE; } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomEntityReference.java b/external/jaxp/source/gnu/xml/dom/DomEntityReference.java deleted file mode 100644 index 6868f9976..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomEntityReference.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "EntityReference" implementation (reference to parsed entity). - * This is a non-core DOM class, supporting the "XML" feature. - * It does not represent builtin entities (such as "&amp;") - * or character references, which are always directly expanded in - * DOM trees.</p> - * - * <p> Note that while the DOM specification permits these nodes to have - * a readonly set of children, this is not required. Similarly, it does - * not require a DOM to couple EntityReference nodes with any Entity nodes - * that have the same entity name (and equivalent children). It also - * effectively guarantees that references created directly or indirectly - * through the <em>Document.ImportNode</em> method will not have children. - * The level of functionality you may get is extremely variable. - * - * <p> Also significant is that even at their most functional level, the fact - * that EntityReference children must be readonly has caused significant - * problems when modifying work products held in DOM trees. Other problems - * include issues related to undeclared namespace prefixes (and references - * to the current default namespace) that may be found in the text of such - * parsed entities nodes. These must be contextually bound as part of DOM - * tree construction. When such nodes are moved, the namespace associated - * with a given prefix (or default) may change to be in conflict with the - * namespace bound to the node at creation time. - * - * <p> In short, <em>avoid using this DOM functionality</em>. - * - * @see DomDoctype - * @see DomEntity - * - * @author David Brownell - */ -public class DomEntityReference extends DomNode implements EntityReference -{ - private String name; - - - /** - * Constructs an EntityReference node associated with the specified - * document. The creator should populate this with whatever contents - * are appropriate, and then mark it as readonly. - * - * <p>This constructor should only be invoked by a Document as part of - * its createEntityReference functionality, or through a subclass which - * is similarly used in a "Sub-DOM" style layer. - * - * @see DomNode#makeReadonly - */ - protected DomEntityReference (Document owner, String name) - { - super (owner); - this.name = name; - } - - - /** - * <b>DOM L1</b> - * Returns the name of the referenced entity. - */ - final public String getNodeName () - { - return name; - } - - /** - * <b>DOM L1</b> - * Returns the constant ENTITY_REFERENCE_NODE. - */ - final public short getNodeType () - { return ENTITY_REFERENCE_NODE; } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomEvent.java b/external/jaxp/source/gnu/xml/dom/DomEvent.java deleted file mode 100644 index 2902363f9..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomEvent.java +++ /dev/null @@ -1,271 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; -import org.w3c.dom.events.*; -import org.w3c.dom.views.AbstractView; // used by UIEvent - - -/** - * "Event" implementation. Events are - * created (through DocumentEvent interface methods on the document object), - * and are sent to any target node in the document. - * - * <p> Applications may define application specific event subclasses, but - * should otherwise use the <em>DocumentTraversal</em> interface to acquire - * event objects. - * - * @author David Brownell - */ -public class DomEvent implements Event -{ - String type; // init - EventTarget target; - EventTarget currentNode; - short eventPhase; - boolean bubbles; // init - boolean cancelable; // init - long timeStamp; // ? - - /** Returns the event's type (name) as initialized */ - final public String getType () { return type; } - - /** - * Returns event's target; delivery of an event is initiated - * by a <em>target.dispatchEvent(event)</em> invocation. - */ - final public EventTarget getTarget () { return target; } - - /** - * Returns the target to which events are currently being - * delivered. When capturing or bubbling, this will not - * be what <em>getTarget</em> returns. - */ - final public EventTarget getCurrentTarget () { return currentNode; } - - /** - * Returns CAPTURING_PHASE, AT_TARGET, or BUBBLING; - * only meaningful within EventListener.handleEvent - */ - final public short getEventPhase () { return eventPhase; } - - /** - * Returns true if the news of the event bubbles to tree tops - * (as specified during initialization). - */ - final public boolean getBubbles () { return bubbles; } - - /** - * Returns true if the default handling may be canceled - * (as specified during initialization). - */ - final public boolean getCancelable () { return cancelable; } - - /** - * Returns the event's timestamp. - */ - final public long getTimeStamp () { return timeStamp; } - - boolean stop; - boolean doDefault; - - - /** - * Requests the event no longer be captured or bubbled; only - * listeners on the event target will see the event, if they - * haven't yet been notified. - * - * <p> <em> Avoid using this </em> except for application-specific - * events, for which you the protocol explicitly "blesses" the use - * of this with some event types. Otherwise, you are likely to break - * algorithms which depend on event notification either directly or - * through bubbling or capturing. </p> - * - * <p> Note that this method is not final, specifically to enable - * enforcing of policies about events always propagating. </p> - */ - public void stopPropagation () { stop = true; } - - - /** - * Requests that whoever dispatched the event not perform their - * default processing when event delivery completes. Initializes - * event timestamp. - */ - final public void preventDefault () { doDefault = false; } - - /** Initializes basic event state. */ - public void initEvent ( - String typeArg, - boolean canBubbleArg, - boolean cancelableArg - ) { - eventPhase = 0; - type = typeArg; - bubbles = canBubbleArg; - cancelable = cancelableArg; - timeStamp = System.currentTimeMillis (); - } - - /** Constructs, but does not initialize, an event. */ - public DomEvent (String type) { this.type = type; } - - /** - * Returns a basic printable description of the event's type, - * state, and delivery conditions - */ - public String toString () - { - StringBuffer buf = new StringBuffer ("[Event "); - buf.append (type); - switch (eventPhase) { - case CAPTURING_PHASE: buf.append (", CAPTURING"); break; - case AT_TARGET: buf.append (", AT TARGET"); break; - case BUBBLING_PHASE: buf.append (", BUBBLING"); break; - default: buf.append (", (inactive)"); break; - } - if (bubbles && eventPhase != BUBBLING_PHASE) - buf.append (", bubbles"); - if (cancelable) - buf.append (", can cancel"); - // were we to provide subclass info, this's where it'd live - buf.append ("]"); - return buf.toString (); - } - - - /** - * "MutationEvent" implementation. - */ - public static final class DomMutationEvent extends DomEvent - implements MutationEvent - { - // package private - Node relatedNode; // init - - private String prevValue; // init - private String newValue; // init - - private String attrName; // init - private short attrChange; // init - - /** Returns any "related" node provided by this type of event */ - final public Node getRelatedNode () { return relatedNode; } - /** Returns any "previous value" provided by this type of event */ - final public String getPrevValue () { return prevValue; } - /** Returns any "new value" provided by this type of event */ - final public String getNewValue () { return newValue; } - - /** For attribute change events, returns the attribute's name */ - final public String getAttrName () { return attrName; } - /** For attribute change events, returns how the attribuet changed */ - final public short getAttrChange () { return attrChange; } - - /** Initializes a mutation event */ - public final void initMutationEvent ( - String typeArg, - boolean canBubbleArg, - boolean cancelableArg, - Node relatedNodeArg, - String prevValueArg, - String newValueArg, - String attrNameArg, - short attrChangeArg - ) { - // super.initEvent is inlined here for speed - // (mutation events are issued on all DOM changes) - eventPhase = 0; - type = typeArg; - bubbles = canBubbleArg; - cancelable = cancelableArg; - timeStamp = System.currentTimeMillis (); - - relatedNode = relatedNodeArg; - prevValue = prevValueArg; - newValue = newValueArg; - attrName = attrNameArg; - attrChange = attrChangeArg; - } - - // clear everything that should be GC-able - void clear () - { - type = null; - target = null; - relatedNode = null; - currentNode = null; - prevValue = newValue = attrName = null; - } - - /** Constructs an uninitialized mutation event. */ - public DomMutationEvent (String type) { super (type); } - } - - - /** - * "UIEvent" implementation. - */ - public static class DomUIEvent extends DomEvent - implements UIEvent - { - private AbstractView view; // init - private int detail; // init - - /** Constructs an uninitialized User Interface (UI) event */ - public DomUIEvent (String type) { super (type); } - - final public AbstractView getView () { return view; } - final public int getDetail () { return detail; } - - /** Initializes a UI event */ - final public void initUIEvent ( - String typeArg, - boolean canBubbleArg, - boolean cancelableArg, - AbstractView viewArg, - int detailArg - ) { - super.initEvent (typeArg, canBubbleArg, cancelableArg); - view = viewArg; - detail = detailArg; - } - } - - - /* - - static final class DomMouseEvent extends DomUIEvent - implements MouseEvent - { - // another half dozen state variables/accessors - } - - */ - -} - diff --git a/external/jaxp/source/gnu/xml/dom/DomEx.java b/external/jaxp/source/gnu/xml/dom/DomEx.java deleted file mode 100644 index 121f23c4f..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomEx.java +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> DOMException implementation. The version that - * is provided by the W3C is abstract, so it can't be instantiated. - * - * <p> This also provides a bit more information about the error - * that is being reported, in terms of the relevant DOM structures - * and data. - * - * @author David Brownell - */ -public class DomEx extends DOMException -{ - /** @serial Data that caused an error to be reported */ - private String data; - - /** @serial Node associated with the error. */ - private Node node; - - /** @serial Data associated with the error. */ - private int value; - - /** - * Constructs an exception, with the diagnostic message - * corresponding to the specified code. - */ - public DomEx (short code) - { - super (code, diagnostic (code)); - } - - /** - * Constructs an exception, with the diagnostic message - * corresponding to the specified code and additional - * information as provided. - */ - public DomEx (short code, String data, Node node, int value) - { - super (code, diagnostic (code)); - this.data = data; - this.node = node; - this.value = value; - } - - /** Returns the node to which the diagnotic applies, or null. */ - final public Node getNode () { return node; } - - /** Returns data to which the diagnotic applies, or null. */ - final public String getData () { return data; } - - /** Returns data to which the diagnotic applies, or null. */ - final public int getValue () { return value; } - - - /** - * Returns a diagnostic message that may be slightly more useful - * than the generic one, where possible. - */ - public String getMessage () - { - String retval = super.getMessage (); - - if (data != null) - retval += "\nMore Information: " + data; - if (value != 0) - retval += "\nNumber: " + value; - if (node != null) - retval += "\nNode Name: " + node.getNodeName (); - return retval; - } - - - // these strings should be localizable. - - private static String diagnostic (short code) - { - switch (code) { - - // DOM L1: - case INDEX_SIZE_ERR: - return "An index or size is out of range."; - case DOMSTRING_SIZE_ERR: - return "A string is too big."; - case HIERARCHY_REQUEST_ERR: - return "The node doesn't belong here."; - case WRONG_DOCUMENT_ERR: - return "The node belongs in another document."; - case INVALID_CHARACTER_ERR: - return "That character is not permitted."; - case NO_DATA_ALLOWED_ERR: - return "This node does not permit data."; - case NO_MODIFICATION_ALLOWED_ERR: - return "No changes are allowed."; - case NOT_FOUND_ERR: - return "The node was not found in that context."; - case NOT_SUPPORTED_ERR: - return "That object is not supported."; - case INUSE_ATTRIBUTE_ERR: - return "The attribute belongs to a different element."; - - // DOM L2: - case INVALID_STATE_ERR: - return "The object is not usable."; - case SYNTAX_ERR: - return "An illegal string was provided."; - case INVALID_MODIFICATION_ERR: - return "An object's type may not be changed."; - case NAMESPACE_ERR: - return "The operation violates XML Namespaces."; - case INVALID_ACCESS_ERR: - return "Parameter or operation isn't supported by this node."; - } - return "Reserved exception number: " + code; - } - -} diff --git a/external/jaxp/source/gnu/xml/dom/DomExtern.java b/external/jaxp/source/gnu/xml/dom/DomExtern.java deleted file mode 100644 index 273905f40..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomExtern.java +++ /dev/null @@ -1,104 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> Abstract implemention of nodes describing external DTD-related - * objects. This facilitates reusing code for Entity, Notation, and - * DocumentType (really, external subset) nodes. Such support is not - * part of the core DOM; it's for the "XML" feature. </p> - * - * <p> Note that you are strongly advised to avoid using the DOM - * features that take advantage of this class, since (as of L2) none - * of them is defined fully enough to permit full use of the - * XML feature they partially expose. </p> - * - * @author David Brownell - */ -public abstract class DomExtern extends DomNode -{ - private String name; - private String publicId; - private String systemId; - - - /** - * Constructs a node associated with the specified document, - * with the specified descriptive data. - * - * @param owner The document with which this object is associated - * @param name Name of this object - * @param publicId If non-null, provides the entity's PUBLIC identifier - * @param systemId If non-null, provides the entity's SYSTEM identifier - */ - // package private - DomExtern ( - Document owner, - String name, - String publicId, - String systemId - ) - { - super (owner); - this.name = name; - this.publicId = publicId; - this.systemId = systemId; - } - - - /** - * <b>DOM L1</b> - * Returns the SYSTEM identifier associated with this object, if any. - */ - final public String getSystemId () - { - return systemId; - } - - - /** - * <b>DOM L1</b> - * Returns the PUBLIC identifier associated with this object, if any. - */ - final public String getPublicId () - { - return publicId; - } - - - /** - * <b>DOM L1</b> - * Returns the object's name. - */ - final public String getNodeName () - { - return name; - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomFragment.java b/external/jaxp/source/gnu/xml/dom/DomFragment.java deleted file mode 100644 index 32c28d0ea..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomFragment.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "DocumentFragment" implementation. </p> - * - * @author David Brownell - */ -public class DomFragment extends DomNode implements DocumentFragment -{ - /** - * Constructs a DocumentFragment node associated with the - * specified document. - * - * <p>This constructor should only be invoked by a Document as part of - * its createDocumentFragment functionality, or through a subclass which - * is similarly used in a "Sub-DOM" style layer. - */ - protected DomFragment (Document owner) - { - super (owner); - } - - - /** - * <b>DOM L1</b> - * Returns the string "#document-fragment". - */ - final public String getNodeName () - { - return "#document-fragment"; - } - - /** - * <b>DOM L1</b> - * Returns the constant DOCUMENT_FRAGMENT_NODE. - */ - final public short getNodeType () - { return DOCUMENT_FRAGMENT_NODE; } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomImpl.java b/external/jaxp/source/gnu/xml/dom/DomImpl.java deleted file mode 100644 index 1e7ec6af8..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomImpl.java +++ /dev/null @@ -1,172 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import java.util.Vector; - -import org.w3c.dom.*; - - -/** - * <p> "DOMImplementation" implementation. </p> - * - * <p> At this writing, the following features are supported: "XML" (L1, L2), - * "Events" (L2), "MutationEvents" (L2), "USER-Events" (a conformant extension), - * "HTMLEvents" (L2), "UIEvents" (L2), "Traversal" (L2). It is possible to - * compile the package so it doesn't support some of these features (notably, - * Traversal). - * - * @author David Brownell - */ -public class DomImpl implements DOMImplementation -{ - /** - * Constructs a DOMImplementation object which supports - * "XML" and other DOM Level 2 features. - */ - public DomImpl () {} - - /** - * <b>DOM L1</b> - * Returns true if the specified feature and version are - * supported. Note that the case of the feature name is ignored. - */ - public boolean hasFeature (String name, String version) - { - name = name.toLowerCase (); - - if ("xml".equals (name) || "core".equals (name)) { - if (version == null || version.equals ("")) - return true; - if ("1.0".equals (version)) - return true; - if ("2.0".equals (version)) - return true; - - } else if ("events".equals (name) - || "mutationevents".equals (name) - || "uievents".equals (name) - // || "mouseevents".equals (name) - || "htmlevents".equals (name) - ) { - if (version == null || version.equals ("")) - return true; - if ("2.0".equals (version)) - return true; - - // Extension: "USER-" prefix event types can - // be created and passed through the DOM. - - } else if ("user-events".equals (name)) { - if (version == null || version.equals ("")) - return true; - if ("0.1".equals (version)) - return true; - - // NOTE: "hasFeature" for events is here interpreted to - // mean the DOM can manufacture those sorts of events, - // since actually choosing to report the events is more - // often part of the environment or application. It's - // only really an issue for mutation events. - - } else if (DomNode.reportMutations - && "traversal".equals (name)) { - - // Note: nyet tree walker support ... - - if (version == null || version.equals ("")) - return true; - if ("2.0".equals (version)) - return true; - } - - // views - // stylesheets - // css, css2 - // range - - return false; - } - - - /** - * <b>DOM L2</b> - * Creates and returns a DocumentType, associated with this - * implementation. This DocumentType can have no associated - * objects (notations, entities) until the DocumentType is - * first associated with a document. - * - * <p> Note that there is no implication that this DTD will - * be parsed by the DOM, or ever have contents. Moreover, the - * DocumentType created here can only be added to a document by - * the createDocument method (below). <em>That means that the only - * portable way to create a Document object is to start parsing, - * queue comment and processing instruction (PI) nodes, and then only - * create a DOM Document after <b>(a)</b> it's known if a DocumentType - * object is needed, and <b>(b) the name and namespace of the root - * element is known. Queued comment and PI nodes would then be - * inserted appropriately in the document prologue, both before and - * after the DTD node, and additional attributes assigned to the - * root element.</em> - * (One hopes that the final DOM REC fixes this serious botch.) - */ - public DocumentType createDocumentType ( - String rootName, - String publicId, - String systemId - // CR2 deleted internal subset, ensuring DocumentType - // is 100% useless instead of just 90% so. - ) { - DomDocument.verifyNamespaceName (rootName); - return new DomDoctype (this, rootName, publicId, systemId, null); - } - - - /** - * <b>DOM L2</b> - * Creates and returns a Document, populated only with a root element and - * optionally a document type (if that was provided). - */ - public Document createDocument ( - String namespaceURI, - String rootName, - DocumentType doctype - ) { - Document doc = new DomDocument (this); - Element root; - - root = doc.createElementNS (namespaceURI, rootName); - if (rootName.startsWith ("xmlns:")) - throw new DomEx (DomEx.NAMESPACE_ERR, - "xmlns is reserved", null, 0); - // Bleech -- L2 seemingly _requires_ omission of xmlns attributes. - if (doctype != null) - doc.appendChild (doctype); // handles WRONG_DOCUMENT error - doc.appendChild (root); - return doc; - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomIterator.java b/external/jaxp/source/gnu/xml/dom/DomIterator.java deleted file mode 100644 index 76b200b57..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomIterator.java +++ /dev/null @@ -1,320 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import java.util.Vector; - -import org.w3c.dom.*; -import org.w3c.dom.events.*; -import org.w3c.dom.traversal.*; - - -/** - * <p> "NodeIterator" implementation, usable with any L2 DOM which - * supports MutationEvents. </p> - * - * @author David Brownell - */ -final public class DomIterator implements NodeIterator, EventListener -{ - private Node reference; - private boolean right; - private boolean done; - - private final Node root; - private final int whatToShow; - private final NodeFilter filter; - private final boolean expandEntityReferences; - - - /** - * Constructs and initializes an iterator. - */ - protected DomIterator ( - Node root, - int whatToShow, - NodeFilter filter, - boolean entityReferenceExpansion - ) { - if (!root.isSupported ("MutationEvents", "2.0")) - throw new DomEx (DomEx.NOT_SUPPORTED_ERR, - "Iterator needs mutation events", root, 0); - - this.root = root; - this.whatToShow = whatToShow; - this.filter = filter; - this.expandEntityReferences = entityReferenceExpansion; - - // start condition: going right, seen nothing yet. - reference = null; - right = true; - - EventTarget target = (EventTarget) root; - target.addEventListener ("DOMNodeRemoved", this, false); - } - - - /** - * <b>DOM L2</b> - * Flags the iterator as done, unregistering its event listener so - * that the iterator can be garbage collected without relying on weak - * references (a "Java 2" feature) in the event subsystem. - */ - public void detach () - { - EventTarget target = (EventTarget) root; - target.removeEventListener ("DOMNodeRemoved", this, false); - done = true; - } - - - /** - * <b>DOM L2</b> - * Returns the flag controlling whether iteration descends - * through entity references. - */ - public boolean getExpandEntityReferences () - { - return expandEntityReferences; - } - - - /** - * <b>DOM L2</b> - * Returns the filter provided during construction. - */ - public NodeFilter getFilter () - { - return filter; - } - - - /** - * <b>DOM L2</b> - * Returns the root of the tree this is iterating through. - */ - public Node getRoot () - { - return root; - } - - - /** - * <b>DOM L2</b> - * Returns the mask of flags provided during construction. - */ - public int getWhatToShow () - { - return whatToShow; - } - - - /** - * <b>DOM L2</b> - * Returns the next node in a forward iteration, masked and filtered. - * Note that the node may be read-only due to entity expansions. - * A null return indicates the iteration is complete, but may still - * be processed backwards. - */ - public Node nextNode () - { - if (done) - throw new DomEx (DomEx.INVALID_STATE_ERR); - right = true; - return walk (true); - } - - - /** - * <b>DOM L2</b> - * Returns the next node in a backward iteration, masked and filtered. - * Note that the node may be read-only due to entity expansions. - * A null return indicates the iteration is complete, but may still - * be processed forwards. - */ - public Node previousNode () - { - if (done) - throw new DomEx (DomEx.INVALID_STATE_ERR); - Node previous = reference; - right = false; - walk (false); - return previous; - } - - private boolean shouldShow (Node node) - // raises Runtime exceptions indirectly, via acceptNode() - { - if ((whatToShow & (1 << (node.getNodeType () - 1))) == 0) - return false; - if (filter == null) - return true; - return filter.acceptNode (node) == NodeFilter.FILTER_ACCEPT; - } - - // - // scenario: root = 1, sequence = 1 2 ... 3 4 - // forward walk: 1 2 ... 3 4 null - // then backward: 4 3 ... 2 1 null - // - // At the leftmost end, "previous" == null - // At the rightmost end, "previous" == 4 - // - // The current draft spec really seem to make no sense re the - // role of the reference node, so what it says is ignored here. - // - private Node walk (boolean forward) - { - Node here = reference; - - while ((here = successor (here, forward)) != null - && !shouldShow (here)) - continue; - if (here != null || !forward) - reference = here; - return here; - } - - private boolean isLeaf (Node here) - { - boolean leaf = !here.hasChildNodes (); - if (!leaf && !expandEntityReferences) - leaf = (here.getNodeType () == Node.ENTITY_REFERENCE_NODE); - return leaf; - } - - // - // Returns the immediate successor in a forward (or backward) - // document order walk, sans filtering ... except that it knows - // how to stop, returning null when done. This is a depth first - // preorder traversal when run in the forward direction. - // - private Node successor (Node here, boolean forward) - { - Node next; - - // the "leftmost" end is funky - if (here == null) - return forward ? root : null; - - // - // Forward, this is preorder: children before siblings. - // Backward, it's postorder: we saw the children already. - // - if (forward && !isLeaf (here)) - return here.getFirstChild (); - - // - // Siblings ... if forward, we visit them, if backwards - // we visit their children first. - // - if (forward) { - if ((next = here.getNextSibling ()) != null) - return next; - } else if ((next = here.getPreviousSibling ()) != null) { - if (isLeaf (next)) - return next; - next = next.getLastChild (); - while (!isLeaf (next)) - next = next.getLastChild (); - return next; - } - - // - // We can't go down or lateral -- it's up, then. The logic is - // the converse of what's above: backwards is easy (the parent - // is next), forwards isn't. - // - next = here.getParentNode (); - if (!forward) - return next; - - Node temp = null; - while (next != null - && next != root - && (temp = next.getNextSibling ()) == null) - next = next.getParentNode (); - if (next == root) - return null; - return temp; - } - - - /** - * Not for public use. This lets the iterator know when its - * reference node will be removed from the tree, so that a new - * one may be selected. - * - * <p> This version works by watching removal events as they - * bubble up. So, don't prevent them from bubbling. - */ - public void handleEvent (Event e) - { - MutationEvent event; - Node ancestor, removed; - - if (reference == null - || !"DOMNodeRemoved".equals (e.getType ()) - || e.getEventPhase () != Event.BUBBLING_PHASE) - return; - - event = (MutationEvent) e; - removed = (Node) event.getTarget (); - - // See if the removal will cause trouble for this iterator - // by being the reference node or an ancestor of it. - for (ancestor = reference; - ancestor != null && ancestor != root; - ancestor = ancestor.getParentNode ()) { - if (ancestor == removed) - break; - } - if (ancestor != removed) - return; - - // OK, it'll cause trouble. We want to make the "next" - // node in our current traversal direction seem right. - // So we pick the nearest node that's not getting removed, - // but go in the _opposite_ direction from our current - // traversal ... so the "next" doesn't skip anything. - Node candidate; - -search: - while ((candidate = walk (!right)) != null) { - for (ancestor = candidate; - ancestor != null && ancestor != root; - ancestor = ancestor.getParentNode ()) { - if (ancestor == removed) - continue search; - } - return; - } - - // The current DOM WD talks about a special case here; - // I've not yet seen it. - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomNamedNodeMap.java b/external/jaxp/source/gnu/xml/dom/DomNamedNodeMap.java deleted file mode 100644 index e46d57947..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomNamedNodeMap.java +++ /dev/null @@ -1,342 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import java.util.Vector; - -import org.w3c.dom.*; - - -/** - * <p> "NamedNodeMap" implementation. </p> - * Used mostly to hold element attributes, but sometimes also - * to list notations or entities. - * - * @author David Brownell - */ -public class DomNamedNodeMap implements NamedNodeMap -{ - private final Document owner; - - private DomNode contents [] = new DomNode [1]; - private int length; - private boolean readonly; - private final Element element; - - private static final int DELTA = 5; - - - /** - * Constructs an empty map associated with the specified document. - */ - public DomNamedNodeMap (Document owner) - { - this.owner = owner; - this.element = null; - } - - // package private - DomNamedNodeMap (Document owner, Element element) - { - this.owner = owner; - this.element = element; - } - - /** - * Reduces space utilization for this object. - */ - public void compact () - { - if (contents.length != length) - setCapacity (length); - } - - private void setCapacity (int len) - { - DomNode newContents [] = new DomNode [len]; - - System.arraycopy (contents, 0, newContents, 0, length); - contents = newContents; - } - - /** - * Exposes the internal "readonly" flag. In DOM, all NamedNodeMap - * objects found in a DocumentType object are read-only (after - * they are fully constructed), and those holding attributes of - * a readonly element will also be readonly. - */ - final public boolean isReadonly () - { - return readonly; - } - - - /** - * Sets the internal "readonly" flag so the node and its - * children can't be changed. - */ - public void makeReadonly () - { - readonly = true; - for (int i = 0; i < length; i++) - contents [i].makeReadonly (); - } - - - /** - * <b>DOM L1</b> - * Returns the named item from the map, or null; names are just - * the nodeName property. - */ - public Node getNamedItem (String name) - { - for (int i = 0; i < length; i++) { - if (contents [i].getNodeName ().equals (name)) - return contents [i]; - } - return null; - } - - - /** - * <b>DOM L2</b> - * Returns the named item from the map, or null; names are the - * localName and namespaceURI properties, ignoring any prefix. - */ - public Node getNamedItemNS (String namespaceURI, String localName) - { - for (int i = 0; i < length; i++) { - DomNode temp = contents [i]; - String tempName = temp.getLocalName (); - String ns; - - if (tempName != null && tempName.equals (localName)) { - ns = temp.getNamespaceURI (); - if ((ns == null && namespaceURI == null) - || ns.equals (namespaceURI)) { - return temp; - } - } - } - return null; - } - - - private void checkAttr (Attr arg) - { - if (element == null) - return; - - Element argOwner = arg.getOwnerElement (); - - if (argOwner != null) { - if (argOwner != element) - throw new DomEx (DomEx.INUSE_ATTRIBUTE_ERR); - return; - } - - // We can't escape implementation dependencies here; we let - // the Java runtime deal with error reporting - ((DomAttr)arg).setOwnerElement (element); - } - - - /** - * <b>DOM L1</b> - * Stores the named item into the map, optionally overwriting - * any existing node with that name. The name used is just - * the nodeName attribute. - */ - public Node setNamedItem (Node arg) - { - if (readonly) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - if (arg.getOwnerDocument () != owner) - throw new DomEx (DomEx.WRONG_DOCUMENT_ERR); - if (arg instanceof Attr) - checkAttr ((Attr) arg); - - String name = arg.getNodeName (); - -// maybe attribute ADDITION events (?) - - for (int i = 0; i < length; i++) { - Node temp = contents [i]; - if (temp.getNodeName ().equals (name)) { - contents [i] = (DomNode) arg; - return temp; - } - } - if (length == contents.length) - setCapacity (length + DELTA); - contents [length++] = (DomNode) arg; - return null; - } - - - /** - * <b>DOM L2</b> - * Stores the named item into the map, optionally overwriting - * any existing node with that fully qualified name. The name - * used incorporates the localName and namespaceURI properties, - * and ignores any prefix. - */ - public Node setNamedItemNS (Node arg) - { - if (readonly) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - if (arg.getOwnerDocument () != owner) - throw new DomEx (DomEx.WRONG_DOCUMENT_ERR); - if (arg instanceof Attr) - checkAttr ((Attr) arg); - - String localName = arg.getLocalName (); - String namespaceURI = arg.getNamespaceURI (); - - if (localName == null) - throw new DomEx (DomEx.INVALID_ACCESS_ERR); - - for (int i = 0; i < length; i++) { - DomNode temp = contents [i]; - String tempName = temp.getLocalName (); - String ns; - - if (tempName != null && tempName.equals (localName)) { - ns = temp.getNamespaceURI (); - if ((ns == null && namespaceURI == null) - || ns.equals (namespaceURI)) { - contents [i] = (DomNode) arg; - return temp; - } - } - } - if (length == contents.length) - setCapacity (length + DELTA); - contents [length++] = (DomNode) arg; - return null; - } - - private void maybeRestoreDefault (String uri, String name) - { - DomDoctype doctype = (DomDoctype)owner.getDoctype (); - DomDoctype.ElementInfo info; - String value; - DomAttr attr; - - if (doctype == null) - return; - if ((info = doctype.getElementInfo (element.getNodeName ())) == null) - return; - if ((value = info.getAttrDefault (name)) == null) - return; - if (uri == null) - attr = (DomAttr) owner.createAttribute (name); - else - attr = (DomAttr) owner.createAttributeNS (uri, name); - attr.setNodeValue (value); - attr.setSpecified (false); - setNamedItem (attr); - } - - /** - * <b>DOM L1</b> - * Removes the named item from the map, or reports an exception; - * names are just the nodeName property. - */ - public Node removeNamedItem (String name) - { - if (readonly) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - -// report attribute REMOVAL event? - - for (int i = 0; i < length; i++) { - DomNode temp = contents [i]; - if (temp.getNodeName ().equals (name)) { - System.arraycopy (contents, i+1, contents, i, - length - (i + 1)); - contents [--length] = null; - if (element != null) - maybeRestoreDefault (temp.getNamespaceURI (), name); - return temp; - } - } - throw new DomEx (DomEx.NOT_FOUND_ERR); - } - - - /** - * <b>DOM L2</b> - * Removes the named item from the map, or reports an exception; - * names are the localName and namespaceURI properties. - */ - public Node removeNamedItemNS (String namespaceURI, String localName) - { - if (readonly) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - - for (int i = 0; i < length; i++) { - DomNode temp = contents [i]; - String tempName = temp.getLocalName (); - String ns; - - if (tempName != null && tempName.equals (localName)) { - ns = temp.getNamespaceURI (); - if ((ns == null && namespaceURI == null) - || ns.equals (namespaceURI)) { - System.arraycopy (contents, i+1, contents, i, - length - (i + 1)); - contents [--length] = null; - if (element != null) - maybeRestoreDefault (ns, temp.getNodeName ()); - return temp; - } - } - } - throw new DomEx (DomEx.NOT_FOUND_ERR); - } - - - /** - * <b>DOM L1</b> - * Returns the indexed item from the map, or null. - */ - public Node item (int index) - { - if (index < 0 || index >= length) - return null; - return contents [index]; - } - - - /** - * <b>DOM L1</b> - * Returns the length of the map. - */ - public int getLength () - { return length; } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomNode.java b/external/jaxp/source/gnu/xml/dom/DomNode.java deleted file mode 100644 index dd8e2d764..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomNode.java +++ /dev/null @@ -1,1567 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; -import org.w3c.dom.events.*; -import org.w3c.dom.traversal.*; - - -/** - * <p> "Node", "EventTarget", and "DocumentEvent" implementation. - * This provides most of the core DOM functionality; only more - * specialized features are provided by subclasses. Those subclasses may - * have some particular constraints they must implement, by overriding - * methods defined here. Such constraints are noted here in the method - * documentation. </p> - * - * <p> Note that you can create events with type names prefixed with "USER-", - * and pass them through this DOM. This lets you use the DOM event scheme - * for application specific purposes, although you must use a predefined event - * structure (such as MutationEvent) to pass data along with those events. - * Test for existence of this feature with the "USER-Events" DOM feature - * name.</p> - * - * <p> Other kinds of events you can send include the "html" events, - * like "load", "unload", "abort", "error", and "blur"; and the mutation - * events. If this DOM has been compiled with mutation event support - * enabled, it will send mutation events when you change parts of the - * tree; otherwise you may create and send such events yourself, but - * they won't be generated by the DOM itself. </p> - * - * <p> Note that there is a namespace-aware name comparison method, - * <em>nameAndTypeEquals</em>, which compares the names (and types) of - * two nodes in conformance with the "Namespaces in XML" specification. - * While mostly intended for use with elements and attributes, this should - * also be helpful for ProcessingInstruction nodes and some others which - * do not have namespace URIs. - * - * @author David Brownell - */ -public abstract class DomNode - implements Node, NodeList, EventTarget, DocumentEvent, Cloneable -{ - // - // CLASS DATA - // - - // tunable - // NKIDS_* affects arrays of children (which grow) - // (currently) fixed size: - // ANCESTORS_* is for event capture/bubbling, # ancestors - // NOTIFICATIONS_* is for per-node event delivery, # events - private static final int NKIDS_INIT = 5; - private static final int NKIDS_DELTA = 8; - private static final int ANCESTORS_INIT = 20; - private static final int NOTIFICATIONS_INIT = 10; - - // tunable: enable mutation events or not? Enabling it costs about - // 10-15% in DOM construction time, last time it was measured. - - // package private !!! - static final boolean reportMutations = true; - - // locking protocol changeable only within this class - private static final Object lockNode = new Object (); - - // optimize space to share what we can - private static final DomNode noKids [] = new DomNode [0]; - - - // NON-FINAL class data - - // Optimize event dispatch by not allocating memory each time - private static boolean dispatchDataLock; - private static DomNode ancestors [] - = new DomNode [ANCESTORS_INIT]; - private static ListenerRecord notificationSet [] - = new ListenerRecord [NOTIFICATIONS_INIT]; - - // Ditto for the (most common) event object itself! - private static boolean eventDataLock; - private static DomEvent.DomMutationEvent mutationEvent - = new DomEvent.DomMutationEvent (null); - - // - // PER-INSTANCE DATA - // - - private Document owner; - private DomNode parent; - - // Bleech ... "package private" so a builder can populate entity refs. - // writable during construction. DOM spec is nasty. - boolean readonly; - - // children - private DomNode children []; - private int length; - - // event registrations - private ListenerRecord listeners []; - private int nListeners; - - // Optimize access to siblings by caching indices. - private transient int parentIndex; - - // - // Some of the methods here are declared 'final' because - // knowledge about their implementation is built into this - // class -- for both integrity and performance. - // - - // package private - void nyi () - { - throw new DomEx (DomEx.NOT_SUPPORTED_ERR, - "feature not yet implemented", this, 0); - } - - /** - * Reduces space utilization for this node. - */ - public void compact () - { - if (children != null && children != noKids) { - if (length == 0) - children = noKids; - // allow a bit of fuzz (max NKIDS_DELTA). - // the JVM won't always use less memory for smaller arrays... - else if ((children.length - length) > 1) { - DomNode newKids [] = new DomNode [length]; - System.arraycopy (children, 0, newKids, 0, length); - children = newKids; - } - } - if (listeners != null && listeners.length != nListeners) { - if (nListeners == 0) - listeners = null; - else { - ListenerRecord l [] = new ListenerRecord [nListeners]; - System.arraycopy (listeners, 0, l, 0, nListeners); - listeners = l; - } - } - } - - /** - * Constructs a node and associates it with its owner. Only - * Document and DocumentType nodes may be created with no owner, - * and DocumentType nodes get an owner as soon as they are - * associated with a document. - */ - protected DomNode (Document owner) - { - short type = getNodeType (); - - if (owner == null) { - // DOM calls never go down this path - if (type != DOCUMENT_NODE && type != DOCUMENT_TYPE_NODE) - throw new IllegalArgumentException ("no owner!"); - } - this.owner = owner; - - switch (type) { - case DOCUMENT_NODE: - case DOCUMENT_FRAGMENT_NODE: - case ENTITY_REFERENCE_NODE: - case ELEMENT_NODE: - children = new DomNode [NKIDS_INIT]; - break; - // no sane app wants the attributes-with-children model - case ATTRIBUTE_NODE: - children = new DomNode [1]; - break; - // we don't currently build children with entities - case ENTITY_NODE: - children = noKids; - - // no other kinds of nodes may have children; so for - // such nodes, length stays zero, children stays null - } - } - - - /** - * <b>DOM L1</b> - * Returns null; Element subclasses must override this method. - */ - public NamedNodeMap getAttributes () - { return null; } - - /** - * <b>DOM L2></b> - * Returns true iff this is an element node with attributes. - */ - public boolean hasAttributes () - { return false; } - - /** - * <b>DOM L1</b> - * Returns a list, possibly empty, of the children of this node. - * In this implementation, to conserve memory, nodes are the same - * as their list of children. This can have ramifications for - * subclasses, which may need to provide their own getLength method - * for reasons unrelated to the NodeList method of the same name. - */ - public NodeList getChildNodes () - { return this; } - - - /** - * <b>DOM L1</b> - * Returns the first child of this node, or null if there are none. - */ - final public Node getFirstChild () - { return item (0); } - - - /** - * <b>DOM L1</b> - * Returns the last child of this node, or null if there are none. - */ - final public Node getLastChild () - { return item (length - 1); } - - - /** - * <b>DOM L1</b> - * Returns true if this node has children. - */ - final public boolean hasChildNodes () - { return length > 0; } - - - /** - * Exposes the internal "readonly" flag. In DOM, children of - * entities and entity references are readonly, as are the - * objects associated with DocumentType objets. - */ - final public boolean isReadonly () - { - return readonly; - } - - - /** - * Sets the internal "readonly" flag so this subtree can't be changed. - * Subclasses need to override this method for any associated content - * that's not a child node, such as an element's attributes or the - * (few) declarations associated with a DocumentType. - */ - public void makeReadonly () - { - readonly = true; - - for (int i = 0; i < length; i++) - children [i].makeReadonly (); - } - - - // we need to have at least N more kids - private void ensureEnough (int n) - { - if ((children.length - length) > n) - return; - - // don't grow in micro-chunks - if (n < NKIDS_DELTA) - n = NKIDS_DELTA; - n += children.length; - - DomNode newKids [] = new DomNode [n]; - - for (int i = 0; i < length; i++) - newKids [i] = children [i]; - children = newKids; - } - - // just checks the node for inclusion -- may be called many - // times (docfrag) before anything is allowed to change - private void checkMisc (DomNode child) - { - if (readonly) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR, - null, this, 0); - if (children == null) - throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR, - null, this, 0); - if (parent != null && child.length > 0) { - for (Node temp = parent; - temp != null; - temp = temp.getParentNode ()) { - if (child == parent) - throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR, - "can't make ancestor into a child", this, 0); - } - } - - Node myOwner = owner; - Node newOwner = child.owner; - short nodeType = getNodeType (); - short newType = child.getNodeType (); - - if (nodeType == DOCUMENT_NODE) - myOwner = this; - - if (newOwner != myOwner) { - // new in DOM L2, this case -- patch it up later, in reparent() - if (!(newType == DOCUMENT_TYPE_NODE && newOwner == null)) - throw new DomEx (DomEx.WRONG_DOCUMENT_ERR, - null, child, 0); - } - - // Test code. - // System.out.println("DOMNode node type = " + nodeType - // + " new type: " + newType); - - // if (newType == 3) - // System.out.println("child content = " + child.getNodeValue()); - - // enforce various structural constraints - switch (nodeType) { - case DOCUMENT_NODE: - if (newType == ELEMENT_NODE - || newType == PROCESSING_INSTRUCTION_NODE - || newType == COMMENT_NODE - || newType == DOCUMENT_TYPE_NODE) - return; - break; - - case ATTRIBUTE_NODE: - if (newType == TEXT_NODE || newType == ENTITY_REFERENCE_NODE) - return; - break; - - case DOCUMENT_FRAGMENT_NODE: - case ENTITY_REFERENCE_NODE: - case ELEMENT_NODE: - case ENTITY_NODE: - if (newType == ELEMENT_NODE - || newType == TEXT_NODE - || newType == COMMENT_NODE - || newType == PROCESSING_INSTRUCTION_NODE - || newType == CDATA_SECTION_NODE - || newType == ENTITY_REFERENCE_NODE) - return; - } - throw new DomEx (DomEx.HIERARCHY_REQUEST_ERR, - "this node can't have that type of child", this, 0); - } - - // - // NOTE: after this method, the new child knows its parent, - // but the parent doesn't know the child. Don't let that - // intermediate state be seen by the application. - // - // XXX prefer to pass in a mutation event object, making removeChild reuse - // it appropriately. That'll shorten critical paths, and remove the - // guarantee that the three-message replaceChild case will hit the heap. - // - private void reparent (DomNode newChild) - { - short childType = newChild.getNodeType (); - - if (getNodeType () == DOCUMENT_NODE - && childType == DOCUMENT_TYPE_NODE) { - DomDoctype doctype = (DomDoctype) newChild; - - if (doctype.getImplementation () - != ((Document)this).getImplementation ()) - throw new DomEx (DomEx.WRONG_DOCUMENT_ERR, - "implementation mismatch", newChild, 0); - newChild.owner = (Document) this; - } - - // get rid of old parent - Node oldParent = newChild.parent; - - if (oldParent != null) - oldParent.removeChild (newChild); - - if (childType != ATTRIBUTE_NODE) - newChild.parent = this; - } - - - // Here's hoping a good optimizer will detect the case when the - // next several methods are never called, and won't allocate - // object code space of any kind. (Case: not reporting any - // mutation events. We can also remove some static variables - // listed above.) - - - private void insertionEvent ( - DomEvent.DomMutationEvent event, - DomNode target - ) { - boolean doFree = false; - - if (event == null) { - event = getMutationEvent (); - if (event != null) - doFree = true; - else - event = new DomEvent.DomMutationEvent (null); - } - event.initMutationEvent ("DOMNodeInserted", - true /* bubbles */, false /* nocancel */, - this /* related */, null, null, null, (short) 0); - target.dispatchEvent (event); - - // XXX should really visit every descendant of 'target' - // and sent a DOMNodeInsertedIntoDocument event to it... - // bleech, there's no way to keep that acceptably fast. - - if (doFree) { - event.target = null; - event.relatedNode = null; - event.currentNode = null; - eventDataLock = false; - } // else we created work for the GC - } - - - private void removalEvent ( - DomEvent.DomMutationEvent event, - DomNode target - ) { - boolean doFree = false; - - if (event == null) { - event = getMutationEvent (); - if (event != null) - doFree = true; - else - event = new DomEvent.DomMutationEvent (null); - } - event.initMutationEvent ("DOMNodeRemoved", - true /* bubbles */, false /* nocancel */, - this /* related */, null, null, null, (short) 0); - target.dispatchEvent (event); - - // XXX should really visit every descendant of 'target' - // and sent a DOMNodeRemovedFromDocument event to it... - // bleech, there's no way to keep that acceptably fast. - - event.target = null; - event.relatedNode = null; - event.currentNode = null; - if (doFree) - eventDataLock = false; - // else we created more work for the GC - } - - // - // Avoid creating lots of memory management work, by using a simple - // allocation strategy for the mutation event objects that get used - // at least once per tree modification. We can't use stack allocation, - // so we do the next simplest thing -- more or less, static allocation. - // Concurrent notifications should be rare, anyway. - // - // Returns the preallocated object, which needs to be carefully freed, - // or null to indicate the caller needs to allocate their own. - // - static private DomEvent.DomMutationEvent getMutationEvent () - { - synchronized (lockNode) { - if (eventDataLock) - return null; - eventDataLock = true; - return mutationEvent; - } - } - - // NOTE: this is manually inlined in the insertion - // and removal event methods above; change in sync. - static private void freeMutationEvent () - { - // clear fields to enable GC - mutationEvent.clear (); - eventDataLock = false; - } - - - /** - * <b>DOM L1</b> - * Appends the specified node to this node's list of children. - * Document subclasses must override this to enforce the restrictions - * that there be only one element and document type child. - * - * <p> Causes a DOMNodeInserted mutation event to be reported. - * Will first cause a DOMNodeRemoved event to be reported if the - * parameter already has a parent. If the new child is a document - * fragment node, both events will be reported for each child of - * the fragment; the order in which children are removed and - * inserted is implementation-specific. - * - * <p> If this DOM has been compiled without mutation event support, - * these events will not be reported. - */ - public Node appendChild (Node newChild) - { - try { - DomNode child = (DomNode) newChild; - - if (newChild.getNodeType () != DOCUMENT_FRAGMENT_NODE) { - checkMisc (child); - if (!(length < children.length)) - ensureEnough (1); - reparent (child); - children [length++] = child; - if (reportMutations) - insertionEvent (null, child); - } else { - // See if we can append all the nodes in the fragment - for (int i = 0; i < child.length; i++) - checkMisc (child.children [i]); - - // yep -- do so! - ensureEnough (child.length); - for (int i = 0; i <= child.length; i++) - appendChild (child.children [0]); - } - return child; - - } catch (ClassCastException e) { - throw new DomEx (DomEx.WRONG_DOCUMENT_ERR, - null, newChild, 0); - } - } - - - /** - * <b>DOM L1</b> - * Inserts the specified node in this node's list of children. - * Document subclasses must override this to enforce the restrictions - * that there be only one element and document type child. - * - * <p> Causes a DOMNodeInserted mutation event to be reported. Will - * first cause a DOMNodeRemoved event to be reported if the newChild - * parameter already has a parent. If the new child is a document - * fragment node, both events will be reported for each child of - * the fragment; the order in which children are removed and inserted - * is implementation-specific. - * - * <p> If this DOM has been compiled without mutation event support, - * these events will not be reported. - */ - public Node insertBefore (Node newChild, Node refChild) - { - if (refChild == null) - return appendChild (newChild); - - try { - DomNode child = (DomNode) newChild; - - if (newChild.getNodeType () != DOCUMENT_FRAGMENT_NODE) { - checkMisc (child); - for (int i = 0; i < length; i++) { - if (children [i] != refChild) - continue; - - ensureEnough (1); - reparent (child); - if (children [i] != refChild) - i--; - for (int j = ++length; j > i; j--) - children [j] = children [j - 1]; - children [i] = child; - if (reportMutations) - insertionEvent (null, child); - - return newChild; - } - throw new DomEx (DomEx.NOT_FOUND_ERR, - "that's no child of mine", refChild, 0); - - } else { - // See if we can insert all the nodes in the fragment - for (int i = 0; i < child.length; i++) - checkMisc (child.children [i]); - - // yep -- do so! - ensureEnough (child.length); - for (int i = 0; i <= child.length; i++) - insertBefore (child.children [0], refChild); - return newChild; - } - } catch (ClassCastException e) { - throw new DomEx (DomEx.WRONG_DOCUMENT_ERR, - null, newChild, 0); - } - } - - - /** - * <b>DOM L1</b> - * Replaces the specified node in this node's list of children. - * Document subclasses must override this to test the restrictions - * that there be only one element and document type child. - * - * <p> Causes DOMNodeRemoved and DOMNodeInserted mutation event to be - * reported. Will cause another DOMNodeRemoved event to be reported if - * the newChild parameter already has a parent. These events may be - * delivered in any order, except that the event reporting removal - * from such an existing parent will always be delivered before the - * event reporting its re-insertion as a child of some other node. - * The order in which children are removed and inserted is implementation - * specific. - * - * <p> If your application needs to depend on the in which those removal - * and insertion events are delivered, don't use this API. Instead, - * invoke the removeChild and insertBefore methods directly, to guarantee - * a specific delivery order. Similarly, don't use document fragments, - * Otherwise your application code may not work on a DOM which implements - * this method differently. - * - * <p> If this DOM has been compiled without mutation event support, - * these events will not be reported. - */ - public Node replaceChild (Node newChild, Node refChild) - { - try { - DomNode child = (DomNode) newChild; - - if (newChild.getNodeType () != DOCUMENT_FRAGMENT_NODE) { - checkMisc (child); - for (int i = 0; i < length; i++) { - if (children [i] != refChild) - continue; - - DomNode rmchild = (DomNode) refChild; - DomEvent.DomMutationEvent event; - boolean doFree; - - event = getMutationEvent (); - if (event != null) - doFree = true; - else - doFree = false; - if (reportMutations) - removalEvent (event, rmchild); - reparent (child); - if (children [i] != refChild) - i--; - children [i] = child; - rmchild.parent = null; - if (reportMutations) - insertionEvent (event, child); - if (doFree) - freeMutationEvent (); - - return refChild; - } - throw new DomEx (DomEx.NOT_FOUND_ERR, - "that's no child of mine", newChild, 0); - } else { -// XXX implement me - throw new DomEx (DomEx.NOT_SUPPORTED_ERR, - "replacing with fragment, NYI", null, 0); - } - } catch (ClassCastException e) { - throw new DomEx (DomEx.WRONG_DOCUMENT_ERR, - null, newChild, 0); - } - } - - - /** - * <b>DOM L1</b> - * Removes the specified child from this node's list of children, - * or else reports an exception. - * - * <p> Causes a DOMNodeRemoved mutation event to be reported. - * - * <p> If this DOM has been compiled without mutation event support, - * these events will not be reported. - */ - public Node removeChild (Node refChild) - { - if (readonly) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR, - null, this, 0); - for (int i = 0; i < length; i++) { - if (children [i] != refChild) - continue; - - DomNode child = (DomNode) refChild; - - if (reportMutations) - removalEvent (null, child); - for (int j = i + 1; j < length; j++, i++) - children [i] = children [j]; - children [i] = null; - child.parent = null; - length--; - - return refChild; - } - throw new DomEx (DomEx.NOT_FOUND_ERR, - "that's no child of mine", refChild, 0); - } - - - /** - * <b>DOM L1 (NodeList)</b> - * Returns the item with the specified index in this NodeList, - * else null. - */ - final public Node item (int index) - { - try { - if (index < length) - return children [index]; - } catch (RuntimeException e) { - // children == null or index < 0 ... bad parameter - // FALLTHROUGh - } - return null; - } - - - /** - * <b>DOM L1 (NodeList)</b> - * Returns the number of elements in this NodeList. - * (Note that many interfaces have a "Length" property, not just - * NodeList, and if a node subtype must implement one of those, - * it will also need to override getChildNodes.) - */ - public int getLength () - { return length; } - - - /** - * Minimize extra space consumed by this node to hold children and event - * listeners. - */ - public void trimToSize () - { - if (children != null && children.length != length) { - DomNode newKids [] = new DomNode [length]; - - for (int i = 0; i < length; i++) - newKids [i] = children [i]; - children = newKids; - } - - if (listeners != null && listeners.length != nListeners) { - ListenerRecord newKids [] = new ListenerRecord [length]; - - for (int i = 0; i < nListeners; i++) - newKids [i] = listeners [i]; - listeners = newKids; - } - } - - - /** - * <b>DOM L1</b> - * Returns the previous sibling, if one is known. - */ - final public Node getNextSibling () - { - if (parent == null || getNodeType() == ATTRIBUTE_NODE) - return null; - - // we know parent.getChildNodes () returns itself - // ... and that we're somewhere in parent.children[] - int index; - - if (parentIndex < parent.length - && parent.children [parentIndex] == this) { - index = parentIndex + 1; - if (index < parent.length) - return parent.children [index]; - else - return null; - } - - for (index = 0; index < parent.length; index++) { - if (parent.children [index] == this) { - parentIndex = index++; - if (index < parent.length) - return parent.children [index]; - else - break; - } - } - return null; - } - - - /** - * <b>DOM L1</b> - * Returns the previous sibling, if one is known. - */ - final public Node getPreviousSibling () - { - if (parent == null || getNodeType () == ATTRIBUTE_NODE) - return null; - - NodeList siblings = parent.getChildNodes (); - int len = siblings.getLength (); - - if (siblings.item (parentIndex) == this) - return siblings.item (parentIndex - 1); - - for (int i = 0; i < len; i++) - if (siblings.item (i) == this) { - parentIndex = i; - return siblings.item (--i); - } - return null; - } - - - /** - * <b>DOM L1</b> - * Returns the parent node, if one is known. - */ - final public Node getParentNode () - { return parent; } - - // parent node is only set in reparent() after sanity chex - - - /** - * <b>DOM L2</b> - * Consults the DOM implementation to determine if the requested - * feature is supported. DocumentType subclasses must override - * this method, and associate themselves directly with the - * DOMImplementation node used. (This method relies on being able - * to access the DOMImplementation from the owner document, but - * DocumentType nodes can be created without an owner.) - */ - public boolean isSupported (String feature, String version) - { - Document doc = owner; - DOMImplementation impl = null; - - if (doc == null && getNodeType () == DOCUMENT_NODE) - doc = (Document) this; - - if (doc == null) - // possible for DocumentType - throw new IllegalStateException ("unbound ownerDocument"); - - impl = doc.getImplementation (); - return impl.hasFeature (feature, version); - } - - - /** - * <b>DOM L1 (modified in L2)</b> - * Returns the owner document. This is only null for Document nodes, - * and (new in L2) for DocumentType nodes which have not yet been - * associated with the rest of their document. - */ - final public Document getOwnerDocument () - { return owner; } - - - /** - * <b>DOM L1</b> - * Does nothing; this must be overridden (along with the - * getNodeValue method) for nodes with a non-null defined value. - */ - public void setNodeValue (String value) - { } - - - /** - * <b>DOM L1</b> - * Returns null; this must be overridden for nodes types with - * a defined value, along with the setNodeValue method. - */ - public String getNodeValue () - { return null; } - - - /** This forces GCJ compatibility. - * Without this method GCJ is unable to compile to byte code. - */ - public abstract short getNodeType (); - - /** This forces GCJ compatibility. - * Without this method GCJ seems unable to natively compile GNUJAXP. - */ - public abstract String getNodeName (); - - /** - * <b>DOM L2</b> - * Does nothing; this must be overridden (along with the - * getPrefix method) for element and attribute nodes. - */ - public void setPrefix (String prefix) - { } - - - /** - * <b>DOM L2</b> - * Returns null; this must be overridden for element and - * attribute nodes. - */ - public String getPrefix () - { return null; } - - - /** - * <b>DOM L2</b> - * Returns null; this must be overridden for element and - * attribute nodes. - */ - public String getNamespaceURI () - { return null; } - - - /** - * <b>DOM L2</b> - * Returns the node name; this must be overridden for element and - * attribute nodes. - */ - public String getLocalName () - { return null; } - - - /** - * <b>DOM L1</b> - * Returns a clone of this node which optionally includes cloned - * versions of child nodes. Clones are always mutable, except for - * entity reference nodes. - */ - public Node cloneNode (boolean deep) - { - DomNode retval = (DomNode) clone (); - - if (deep && children != null) { - DomNode newKids [] = retval.children; - - if (newKids.length < length) - newKids = new DomNode [length]; - for (int i = 0; i < length; i++) - newKids [i] = (DomNode) children [i].cloneNode (true); - retval.children = newKids; - retval.length = length; - - if (getNodeType () == ENTITY_REFERENCE_NODE) - retval.makeReadonly (); - } - return retval; - } - - /** - * Clones this node; roughly equivalent to cloneNode(false). - * Element subclasses must provide a new implementation which - * invokes this method to handle the basics, and then arranges - * to clone any element attributes directly. Attribute subclasses - * must make similar arrangements, ensuring that existing ties to - * elements are broken by cloning. - */ - public Object clone () - { - try { - DomNode retval = (DomNode) super.clone (); - - retval.parent = null; - retval.readonly = false; - if (retval.children != null) { - retval.children = noKids; - retval.length = 0; - } - retval.listeners = null; - retval.nListeners = 0; - return retval; - - } catch (CloneNotSupportedException x) { - throw new Error ("clone didn't work"); - } - } - - - // the elements-by-tagname stuff is needed for both - // elements and documents ... this is in lieu of a - // common base class between Node and NodeNS. - - /** - * <b>DOM L1</b> - * Creates a NodeList giving array-style access to elements with - * the specified name. Access is fastest if indices change by - * small values, and the DOM is not modified. - */ - public NodeList getElementsByTagName (String tag) - { - return new ShadowList (null, tag); - } - - /** - * <b>DOM L2</b> - * Creates a NodeList giving array-style access to elements with - * the specified namespace and local name. Access is fastest if - * indices change by small values, and the DOM is not modified. - */ - public NodeList getElementsByTagNameNS (String namespace, String local) - { - return new ShadowList (namespace, local); - } - - - // - // This shadow class is GC-able even when the live list it shadows - // can't be, because of event registration hookups. Its finalizer - // makes that live list become GC-able. - // - final class ShadowList implements NodeList - { - private LiveNodeList liveList; - - ShadowList (String ns, String local) - { liveList = new LiveNodeList (ns, local); } - - public void finalize () - { - liveList.detach (); - liveList = null; - } - - public Node item (int index) - { return liveList.item (index); } - - public int getLength () - { return liveList.getLength (); } - } - - - final class LiveNodeList implements NodeList, EventListener, NodeFilter - { - private String elementURI; - private String elementName; - - private DomIterator current; - private int lastIndex; - - - LiveNodeList (String uri, String name) - { - elementURI = uri; - elementName = name; - DomNode.this.addEventListener ("DOMNodeInserted", this, true); - DomNode.this.addEventListener ("DOMNodeRemoved", this, true); - } - - void detach () - { - current.detach (); - current = null; - DomNode.this.removeEventListener ("DOMNodeInserted", this, true); - DomNode.this.removeEventListener ("DOMNodeRemoved", this, true); - } - - public short acceptNode (Node element) - { - if (element == DomNode.this) - return FILTER_SKIP; - - // use namespace-aware matching ... - if (elementURI != null) { - if (!("*".equals (elementURI) - || elementURI.equals (element.getNamespaceURI ()))) - return FILTER_SKIP; - if (!("*".equals (elementName) - || elementName.equals (element.getLocalName ()))) - return FILTER_SKIP; - - // ... or qName-based kind. - } else { - if (!("*".equals (elementName) - || elementName.equals (element.getNodeName ()))) - return FILTER_SKIP; - } - return FILTER_ACCEPT; - } - - private DomIterator createIterator () - { - return new DomIterator (DomNode.this, - NodeFilter.SHOW_ELEMENT, - this, /* filter */ - true /* expand entity refs */ - ); - } - - public void handleEvent (Event e) - { - MutationEvent mutation = (MutationEvent) e; - Node related = mutation.getRelatedNode (); - - // XXX if it's got children ... check all kids too, they - // will invalidate our saved index - - if (related.getNodeType () != Node.ELEMENT_NODE) - return; - if (related.getNodeName () != elementName) - return; - if (related.getNamespaceURI () != elementURI) - return; - - current = null; - } - - public Node item (int index) - { - if (current == null) { - current = createIterator (); - lastIndex = -1; - } - - // last node or before? go backwards - if (index <= lastIndex) { - while (index != lastIndex) { - current.previousNode (); - lastIndex--; - } - return current.previousNode (); - } - - // somewhere after last node - while (++lastIndex != index) - current.nextNode (); - return current.nextNode (); - } - - public int getLength () - { - int retval = 0; - NodeIterator iter = createIterator (); - - while (iter.nextNode () != null) - retval++; - return retval; - } - } - - // - // EventTarget support - // - static final class ListenerRecord { - String type; - EventListener listener; - boolean useCapture; - - // XXX use JDK 1.2 java.lang.ref.WeakReference to listener, - // and we can both get rid of "shadow" classes and remove - // the need for applications to apply similar trix ... but - // JDK 1.2 support isn't generally available yet - - ListenerRecord ( - String type, - EventListener listener, - boolean useCapture - ) { - this.type = type.intern (); - this.listener = listener; - this.useCapture = useCapture; - } - - boolean equals (ListenerRecord rec) - { - return listener == rec.listener - && useCapture == rec.useCapture - && type == rec.type; - } - } - - /** - * <b>DOM L2 (Events)</b> - * Returns an instance of the specified type of event object. - * Understands about DOM Mutation, HTML, and UI events. - * - * <p>If the name of the event type begins with "USER-", then an object - * implementing the "Event" class will be returned; this provides a - * limited facility for application-defined events to use the DOM event - * infrastructure. Alternatively, use one of the standard DOM event - * classes and initialize it using use such a "USER-" event type name; - * or defin, instantiate, and initialize an application-specific subclass - * of DomEvent and pass that to dispatchEvent(). - * - * @param eventType Identifies the particular DOM feature module - * defining the type of event, such as "MutationEvents". - * <em>The event "name" is a different kind of "type".</em> - */ - public Event createEvent (String eventType) - { - eventType = eventType.toLowerCase (); - - if ("mutationevents".equals (eventType)) - return new DomEvent.DomMutationEvent (null); - - if ("htmlevents".equals (eventType) - || "events".equals (eventType) - || "user-events".equals (eventType)) - return new DomEvent (null); - - if ("uievents".equals (eventType)) - return new DomEvent.DomUIEvent (null); - - // mouse events - - throw new DomEx (DomEx.NOT_SUPPORTED_ERR, - eventType, null, 0); - } - - - /** - * <b>DOM L2 (Events)</b> - * Registers an event listener's interest in a class of events. - */ - final public void addEventListener ( - String type, - EventListener listener, - boolean useCapture - ) { - if (listeners == null) - listeners = new ListenerRecord [1]; - else if (nListeners == listeners.length) { - ListenerRecord newListeners []; - newListeners = - new ListenerRecord [listeners.length + NKIDS_DELTA]; - for (int i = 0; i < nListeners; i++) - newListeners [i] = listeners [i]; - listeners = newListeners; - } - - // prune duplicates - ListenerRecord record; - - record = new ListenerRecord (type, listener, useCapture); - for (int i = 0; i < nListeners; i++) { - if (record.equals (listeners [i])) - return; - } - listeners [nListeners++] = record; - } - - - // XXX this exception should be discarded from DOM - - // this class can be instantiated, unlike the one in the spec - final static class DomEventException extends EventException { - DomEventException () - { super (UNSPECIFIED_EVENT_TYPE_ERR, "unspecified event type"); } - } - - - /** - * <b>DOM L2 (Events)</b> - * Delivers an event to all relevant listeners, returning true if the - * caller should perform their default action. Note that the event - * must have been provided by the createEvent() method on this - * class, else it can't be dispatched. - * - * @see #createEvent - * - * @exception NullPointerException When a null event is passed. - * @exception ClassCastException When the event wasn't provided by - * the createEvent method, or otherwise isn't a DomEvent. - * @exception EventException If the event type wasn't specified - */ - final public boolean dispatchEvent (Event event) - throws EventException - { - DomEvent e = (DomEvent) event; - DomNode ancestors [] = null; - int ancestorMax = 0; - boolean haveDispatchDataLock = false; - - if (e.type == null) - throw new DomEventException (); - - e.doDefault = true; - e.target = this; - - // - // Typical case: one nonrecursive dispatchEvent call at a time - // for this class. If that's our case, we can avoid allocating - // garbage, which is overall a big win. Even with advanced GCs - // that deal well with short-lived garbage, and wayfast allocators, - // it still helps. - // - // Remember -- EVERY mutation goes though here at least once. - // - // When populating a DOM tree, trying to send mutation events is - // the primary cost; this dominates the critical path. - // - try { - DomNode current; - int index; - boolean haveAncestorRegistrations = false; - ListenerRecord notificationSet []; - int ancestorLen; - - synchronized (lockNode) { - if (!dispatchDataLock) { - haveDispatchDataLock = dispatchDataLock = true; - notificationSet = DomNode.notificationSet; - ancestors = DomNode.ancestors; - } else { - notificationSet = new ListenerRecord [NOTIFICATIONS_INIT]; - ancestors = new DomNode [ANCESTORS_INIT]; - } - ancestorLen = ancestors.length; - } - - // XXX autogrow ancestors ... based on statistics - - // Climb to the top of this subtree and handle capture, letting - // each node (from the top down) capture until one stops it or - // until we get to this one. - - for (index = 0, current = parent; - current != null && index < ancestorLen; - index++, current = current.parent) { - if (current.nListeners != 0) - haveAncestorRegistrations = true; - ancestors [index] = current; - } - if (current != null) - throw new RuntimeException ("dispatchEvent capture stack size"); - - ancestorMax = index; - e.stop = false; - - if (haveAncestorRegistrations) { - e.eventPhase = Event.CAPTURING_PHASE; - while (!e.stop && index-- > 0) { - current = ancestors [index]; - if (current.nListeners != 0) - notifyNode (e, current, true, notificationSet); - } - } - - // Always deliver events to the target node (this) - // unless stopPropagation was called. If we saw - // no registrations yet (typical!), we never will. - if (!e.stop && nListeners != 0) { - e.eventPhase = Event.AT_TARGET; - notifyNode (e, this, false, notificationSet); - } else if (!haveAncestorRegistrations) - e.stop = true; - - // If the event bubbles and propagation wasn't halted, - // walk back up the ancestor list. Stop bubbling when - // any bubbled event handler stops it. - - if (!e.stop && e.bubbles) { - e.eventPhase = Event.BUBBLING_PHASE; - for (index = 0; - !e.stop - && index < ancestorMax - && (current = ancestors [index]) != null; - index++) { - if (current.nListeners != 0) - notifyNode (e, current, false, notificationSet); - } - } - e.eventPhase = 0; - - // Caller chooses whether to perform the default - // action based on return from this method. - return e.doDefault; - - } finally { - if (haveDispatchDataLock) { - // synchronize to force write ordering - synchronized (lockNode) { - // null out refs to ensure they'll be GC'd - for (int i = 0; i < ancestorMax; i++) - ancestors [i] = null; - // notificationSet handled by notifyNode - - dispatchDataLock = false; - } - } - } - } - - - private void notifyNode ( - DomEvent e, - DomNode current, - boolean capture, - ListenerRecord notificationSet [] - ) { - int count = 0; - - // do any of this set of listeners get notified? - for (int i = 0; i < current.nListeners; i++) { - ListenerRecord rec = current.listeners [i]; - - if (rec.useCapture != capture) - continue; - if (!e.type.equals (rec.type)) - continue; - if (count < notificationSet.length) - notificationSet [count++] = rec; - else - // XXX fire up some cheap growth algorithm - throw new RuntimeException ( - "Event notification set size exceeded"); - } - - // Notify just those listeners - e.currentNode = current; - for (int i = 0; i < count; i++) { - try { - // Late in the DOM CR process (3rd or 4th CR?) the - // removeEventListener spec became asymmetric with respect - // to addEventListener ... effect is now immediate. - for (int j = 0; j < current.nListeners; j++) { - if (current.listeners [j].equals (notificationSet [i])) { - notificationSet [i].listener.handleEvent (e); - break; - } - } - - } catch (Exception x) { - // ignore all exceptions - } - notificationSet [i] = null; // free for GC - } - } - - /** - * <b>DOM L2 (Events)</b> - * Unregisters an event listener. - */ - final public void removeEventListener ( - String type, - EventListener listener, - boolean useCapture - ) { - for (int i = 0; i < nListeners; i++) { - if (listeners [i].listener != listener) - continue; - if (listeners [i].useCapture != useCapture) - continue; - if (!listeners [i].type.equals (type)) - continue; - - if (nListeners == 1) { - listeners = null; - nListeners = 0; - } else { - for (int j = i + 1; j < nListeners; j++) - listeners [i++] = listeners [j++]; - listeners [--nListeners] = null; - } - break; - } - // no exceptions reported - } - - - /** - * <b>DOM L1 (relocated in DOM L2)</b> - * In this node and all contained nodes (including attributes if - * relevant) merge adjacent text nodes. This is done while ignoring - * text which happens to use CDATA delimiters). - */ - public void normalize () - { - int index = 0; - Node child, next; - Text temp; - NamedNodeMap attributes; - - while ((child = item (index)) != null) { - switch (child.getNodeType ()) { - case TEXT_NODE: - next = item (index + 1); - if (next == null || next.getNodeType () != TEXT_NODE) - break; - temp = (Text) child; - temp.appendData (next.getNodeValue ()); - removeChild (next); - // don't increment index ... we do extra fetches - // of the current node, affecting only speed. - continue; - - case ELEMENT_NODE: - child.normalize (); - attributes = child.getAttributes (); - for (int i = 0; i < attributes.getLength (); i++) - attributes.item (i).normalize (); - // FALLTHROUGH - } - index++; - continue; - } - } - - - /** - * Returns true iff node types match, and either (a) both nodes have no - * namespace and their getNodeName() values are the same, or (b) both - * nodes have the same getNamespaceURI() and same getLocalName() values. - * - * <p>Note that notion of a "Per-Element-Type" attribute name scope, as - * found in a non-normative appendix of the XML Namespaces specification, - * is not supported here. Your application must implement that notion, - * typically by not bothering to check nameAndTypeEquals for attributes - * without namespace URIs unless you already know their elements are - * nameAndTypeEquals. - */ - public boolean nameAndTypeEquals (Node other) - { - // node types must match - if (getNodeType () != other.getNodeType ()) - return false; - - // if both have namespaces, do a "full" comparision - // this is a "global" partition - String ns1 = this.getNamespaceURI (); - String ns2 = other.getNamespaceURI (); - - if (ns1 != null && ns2 != null) - return ns1.equals (ns2) - && getLocalName ().equals (other.getLocalName ()); - - // if neither has a namespace, this is a "no-namespace" name. - if (ns1 == null && ns2 == null) { - if (getNodeName().equals (other.getNodeName ()) == false) - return false; - // can test the non-normative "per-element-type" scope here. - // if this is an attribute node and both nodes have been bound - // to elements (!!), then return the nameAndTypeEquals() - // comparison of those elements. - return true; - } - - // otherwise they're unequal: one scoped, one not. - return false; - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomNotation.java b/external/jaxp/source/gnu/xml/dom/DomNotation.java deleted file mode 100644 index a64969a2d..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomNotation.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "Notation" implementation. This is a non-core DOM class, supporting - * the "XML" feature. </p> - * - * <p> Although unparsed entities using this notation can be detected using - * DOM, neither NOTATIONS nor ENTITY/ENTITIES attributes can be so detected. - * More, there is no portable way to construct a Notation node, so there's - * no way that vendor-neutral DOM construction APIs could even report a - * NOTATION used to identify the intended meaning of a ProcessingInstruction. - * </p> - * - * <p> In short, <em>avoid using this DOM functionality</em>. - * - * @see DomDoctype - * @see DomEntity - * @see DomPI - * - * @author David Brownell - */ -public class DomNotation extends DomExtern implements Notation -{ - /** - * Constructs a Notation node associated with the specified document, - * with the specified descriptive data. Note that at least one of - * the PUBLIC and SYSTEM identifiers must be provided; unlike other - * external objects in XML, notations may have only a PUBLIC identifier. - * - * <p>This constructor should only be invoked by a DomDoctype object - * as part of its declareNotation functionality, or through a subclass - * which is similarly used in a "Sub-DOM" style layer. - * - * @param owner The document with which this notation is associated - * @param name Name of this notation - * @param publicId If non-null, provides the notation's PUBLIC identifier - * @param systemId If non-null, rovides the notation's SYSTEM identifier - */ - protected DomNotation ( - Document owner, - String name, - String publicId, - String systemId - ) - { - super (owner, name, publicId, systemId); - makeReadonly (); - } - - /** - * <b>DOM L1</b> - * Returns the constant NOTATION_NODE. - */ - final public short getNodeType () - { return NOTATION_NODE; } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomNsNode.java b/external/jaxp/source/gnu/xml/dom/DomNsNode.java deleted file mode 100644 index 9dd23be1d..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomNsNode.java +++ /dev/null @@ -1,161 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> Abstract implemention of namespace support. This facilitates - * sharing code for attribute and element nodes. - * - * @author David Brownell - */ -public abstract class DomNsNode extends DomNode -{ - private String name; // changed by setPrefix - private final String namespace; - - - /** - * Constructs a node associated with the specified document, and - * with the specified namespace information. - * - * @param owner The document with which this entity is associated - * @param namespaceURI Combined with the local part of the name, - * this identifies a type of element or attribute; may be null. - * If this is the empty string, it is reassigned as null so that - * applications only need to test that case. - * @param name Name of this node, which may include a prefix - */ - // package private - DomNsNode (Document owner, String namespaceURI, String name) - { - super (owner); - this.name = name; - if ("".equals (namespaceURI)) - namespaceURI = null; - this.namespace = namespaceURI; - } - - - /** - * <b>DOM L1</b> - * Returns the node's name, including any namespace prefix. - */ - final public String getNodeName () - { - return name; - } - - - /** - * <b>DOM L2</b> - * Returns the node's namespace URI - * <em>or null</em> if the node name is not namespace scoped. - */ - final public String getNamespaceURI () - { - return namespace; - } - - - /** - * <b>DOM L2</b> - * Returns any prefix part of the node's name (before any colon). - */ - public String getPrefix () - { - if (namespace == null) - return null; - - int index = name.indexOf (':'); - if (index < 0) - return null; - else - return name.substring (0, index); - } - - - /** - * <b>DOM L2</b> - * Assigns the prefix part of the node's name (before any colon). - */ - public void setPrefix (String prefix) - { - String local = getLocalName (); - - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - - if (prefix == null) { - name = local; - return; - } else if (namespace == null) - throw new DomEx (DomEx.NAMESPACE_ERR, - "can't set prefix, node has no namespace URI", this, 0); - - DomDocument.verifyXmlName (prefix); - if (prefix.indexOf (':') != -1) - throw new DomEx (DomEx.NAMESPACE_ERR, - "illegal prefix " + prefix, this, 0); - - if ("xml".equals (prefix) - && !DomDocument.xmlNamespace.equals (namespace)) - throw new DomEx (DomEx.NAMESPACE_ERR, - "xml namespace is always " + DomDocument.xmlNamespace, this, 0); - - if ("xmlns".equals (prefix)) { - if (namespace != null || getNodeType () != ATTRIBUTE_NODE) - throw new DomEx (DomEx.NAMESPACE_ERR, - "xmlns attribute prefix is reserved", this, 0); - } else if (getNodeType () == ATTRIBUTE_NODE - && ("xmlns".equals (name) || name.startsWith ("xmlns:"))) - throw new DomEx (DomEx.NAMESPACE_ERR, - "namespace declarations can't change names", this, 0); - - name = prefix + ':' + local; - } - - - /** - * <b>DOM L2</b> - * Returns the local part of the node's name (after any colon), - * <em>or null</em> if the node name is not namespace scoped. - */ - public String getLocalName () - { - if (namespace == null) - return null; - - int index = name.indexOf (':'); - if (index < 0) - return name; - else - return name.substring (index + 1); - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomPI.java b/external/jaxp/source/gnu/xml/dom/DomPI.java deleted file mode 100644 index 28c12fe40..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomPI.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "ProcessingInstruction" (PI) implementation. - * This is a non-core DOM class, supporting the "XML" feature. </p> - * - * <p> Unlike other DOM APIs in the "XML" feature, this one fully - * exposes the functionality it describes. So there is no reason - * inherent in DOM to avoid using this API, unless you want to rely - * on NOTATION declarations to associate meaning with your PIs; - * there is no vendor-neutal way to record those notations in DOM.</p> - * - * <p> Also of note is that PI support is part of SAX, so that XML - * systems using PIs can choose among multiple APIs. </p> - * - * @see DomNotation - * - * @author David Brownell - */ -public class DomPI extends DomNode implements ProcessingInstruction -{ - private String target; - private String data; - - - /** - * Constructs a ProcessingInstruction node associated with the - * specified document, with the specified data. - * - * <p>This constructor should only be invoked by a Document object as - * part of its createProcessingInstruction functionality, or through - * a subclass which is similarly used in a "Sub-DOM" style layer. - */ - protected DomPI (Document owner, String target, String data) - { - super (owner); - this.target = target; - this.data = data; - } - - - /** - * <b>DOM L1</b> - * Returns the target of the processing instruction. - */ - final public String getTarget () - { - return target; - } - - - /** - * <b>DOM L1</b> - * Returns the target of the processing instruction - * (same as getTarget). - */ - final public String getNodeName () - { - return target; - } - - - /** - * <b>DOM L1</b> - * Returns the constant PROCESSING_INSTRUCTION_NODE. - */ - final public short getNodeType () - { return PROCESSING_INSTRUCTION_NODE; } - - - /** - * <b>DOM L1</b> - * Returns the data associated with the processing instruction. - */ - final public String getData () - { - return data; - } - - - /** - * <b>DOM L1</b> - * Returns the data associated with the processing instruction - * (same as getData). - */ - final public String getNodeValue () - { - return data; - } - - - /** - * <b>DOM L1</b> - * Assigns the data associated with the processing instruction; - * same as setNodeValue. - */ - final public void setData (String data) - { - setNodeValue (data); - } - - - /** - * <b>DOM L1</b> - * Assigns the data associated with the processing instruction. - */ - final public void setNodeValue (String data) - { - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - this.data = data; - } -} diff --git a/external/jaxp/source/gnu/xml/dom/DomText.java b/external/jaxp/source/gnu/xml/dom/DomText.java deleted file mode 100644 index 0c4ef1c15..000000000 --- a/external/jaxp/source/gnu/xml/dom/DomText.java +++ /dev/null @@ -1,107 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.dom; - -import org.w3c.dom.*; - - -/** - * <p> "Text" implementation. </p> - * - * @author David Brownell - */ -public class DomText extends DomCharacterData implements Text -{ - // NOTE: deleted unused per-instance "isIgnorable" - // support to reclaim its space. - - /** - * Constructs a text node associated with the specified - * document and holding the specified data. - * - * <p>This constructor should only be invoked by a Document object - * as part of its createTextNode functionality, or through a subclass - * which is similarly used in a "Sub-DOM" style layer. - */ - protected DomText (Document owner, String value) - { - super (owner, value); - } - - protected DomText (Document owner, char buf [], int off, int len) - { - super (owner, buf, off, len); - } - - - /** - * <b>DOM L1</b> - * Returns the string "#text". - */ - // can't be 'final' with CDATA subclassing - public String getNodeName () - { - return "#text"; - } - - /** - * <b>DOM L1</b> - * Returns the constant TEXT_NODE. - */ - // would be final except DomCDATA subclasses this ... - public short getNodeType () - { return TEXT_NODE; } - - - /** - * <b>DOM L1</b> - * Splits this text node in two parts at the offset, returning - * the new text node (the sibling with the second part). - */ - public Text splitText (int offset) - { - if (isReadonly ()) - throw new DomEx (DomEx.NO_MODIFICATION_ALLOWED_ERR); - try { - String before = getNodeValue ().substring (0, offset); - String after = getNodeValue ().substring (offset); - Text next; - - if (getNodeType () == TEXT_NODE) - next = getOwnerDocument ().createTextNode (after); - else // CDATA_SECTION_NODE - next = getOwnerDocument ().createCDATASection (after); - - getParentNode ().insertBefore (next, getNextSibling ()); - setNodeValue (before); - return next; - - } catch (IndexOutOfBoundsException x) { - throw new DomEx (DomEx.INDEX_SIZE_ERR); - } - } -} diff --git a/external/jaxp/source/gnu/xml/dom/JAXPFactory.java b/external/jaxp/source/gnu/xml/dom/JAXPFactory.java deleted file mode 100644 index fcf3fd333..000000000 --- a/external/jaxp/source/gnu/xml/dom/JAXPFactory.java +++ /dev/null @@ -1,231 +0,0 @@ -/* - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - - -package gnu.xml.dom; - -import java.io.IOException; - -import org.w3c.dom.Document; -import org.w3c.dom.DocumentType; -import org.w3c.dom.DOMImplementation; - -import org.xml.sax.EntityResolver; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.XMLReader; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; - -import javax.xml.parsers.DocumentBuilder; -import javax.xml.parsers.DocumentBuilderFactory; -import javax.xml.parsers.ParserConfigurationException; -import javax.xml.parsers.SAXParserFactory; - - -/** - * DOM bootstrapping API, for use with JAXP. - * - * @see Consumer - * - * @author David Brownell - */ -public final class JAXPFactory extends DocumentBuilderFactory -{ - private static final String PROPERTY = "http://xml.org/sax/properties/"; - private static final String FEATURE = "http://xml.org/sax/features/"; - - private SAXParserFactory pf; - - /** - * Default constructor. - */ - public JAXPFactory () { } - - /** - * Constructs a JAXP document builder which uses the default - * JAXP SAX2 parser and the DOM implementation in this package. - */ - public DocumentBuilder newDocumentBuilder () - throws ParserConfigurationException - { - if (pf == null) { - // Force use of AElfred2 since not all JAXP parsers - // conform very well to the SAX2 API spec ... - pf = new gnu.xml.aelfred2.JAXPFactory (); - // pf = SAXParserFactory.newInstance (); - } - - // JAXP default: false - pf.setValidating (isValidating ()); - - // FIXME: this namespace setup may cause errors in some - // conformant SAX2 parsers, which we CAN patch up by - // splicing a "NSFilter" stage up front ... - - // JAXP default: false - pf.setNamespaceAware (isNamespaceAware ()); - - try { - // undo rude "namespace-prefixes=false" default - pf.setFeature (FEATURE + "namespace-prefixes", true); - - return new JAXPBuilder (pf.newSAXParser ().getXMLReader (), this); - } catch (SAXException e) { - throw new ParserConfigurationException ( - "can't create JAXP DocumentBuilder: " + e.getMessage ()); - } - } - - /** There seems to be no useful specification for attribute names */ - public void setAttribute (String name, Object value) - throws IllegalArgumentException - { - throw new IllegalArgumentException (name); - } - - /** There seems to be no useful specification for attribute names */ - public Object getAttribute (String name) - throws IllegalArgumentException - { - throw new IllegalArgumentException (name); - } - - static final class JAXPBuilder extends DocumentBuilder - implements ErrorHandler - { - private Consumer consumer; - private XMLReader producer; - private DomImpl impl; - - JAXPBuilder (XMLReader parser, JAXPFactory factory) - throws ParserConfigurationException - { - impl = new DomImpl (); - - // set up consumer side - try { - consumer = new Consumer (); - } catch (SAXException e) { - throw new ParserConfigurationException (e.getMessage ()); - } - - // JAXP defaults: true, noise nodes are good (bleech) - consumer.setHidingReferences ( - factory.isExpandEntityReferences ()); - consumer.setHidingComments ( - factory.isIgnoringComments ()); - consumer.setHidingWhitespace ( - factory.isIgnoringElementContentWhitespace ()); - consumer.setHidingCDATA ( - factory.isCoalescing ()); - - // set up producer side - producer = parser; - producer.setContentHandler (consumer.getContentHandler ()); - producer.setDTDHandler (consumer.getDTDHandler ()); - - try { - String id; - - // if validating, report validity errors, and default - // to treating them as fatal - if (factory.isValidating ()) { - producer.setFeature (FEATURE + "validation", - true); - producer.setErrorHandler (this); - } - - // always save prefix info, maybe do namespace processing - producer.setFeature (FEATURE + "namespace-prefixes", - true); - producer.setFeature (FEATURE + "namespaces", - factory.isNamespaceAware ()); - - // set important handlers - id = PROPERTY + "lexical-handler"; - producer.setProperty (id, consumer.getProperty (id)); - - id = PROPERTY + "declaration-handler"; - producer.setProperty (id, consumer.getProperty (id)); - - } catch (SAXException e) { - throw new ParserConfigurationException (e.getMessage ()); - } - } - - - public Document parse (InputSource source) - throws SAXException, IOException - { - producer.parse (source); - return consumer.getDocument (); - } - - public boolean isNamespaceAware () - { - try { - return producer.getFeature (FEATURE + "namespaces"); - } catch (SAXException e) { - // "can't happen" - throw new RuntimeException (e.getMessage ()); - } - } - - public boolean isValidating () - { - try { - return producer.getFeature (FEATURE + "validation"); - } catch (SAXException e) { - // "can't happen" - throw new RuntimeException (e.getMessage ()); - } - } - - public void setEntityResolver (EntityResolver resolver) - { producer.setEntityResolver (resolver); } - - public void setErrorHandler (ErrorHandler handler) - { - producer.setErrorHandler (handler); - consumer.setErrorHandler (handler); - } - - public DOMImplementation getDOMImplementation () - { return impl; } - - public Document newDocument () - { return new DomDocument (); } - - // implementation of error handler that's used when validating - public void fatalError (SAXParseException e) throws SAXException - { throw e; } - public void error (SAXParseException e) throws SAXException - { throw e; } - public void warning (SAXParseException e) throws SAXException - { /* ignore */ } - } -} diff --git a/external/jaxp/source/gnu/xml/dom/package.html b/external/jaxp/source/gnu/xml/dom/package.html deleted file mode 100644 index d65e85da3..000000000 --- a/external/jaxp/source/gnu/xml/dom/package.html +++ /dev/null @@ -1,270 +0,0 @@ -<html><head> -<!-- $Id: package.html,v 1.2 2004-05-01 16:18:50 mark Exp $ --> -<title>foo</title> -</head><body> - -<p> This is a Free Software -DOM Level 2 implementation, supporting these features: -"XML", -"Events", "MutationEvents", -"HTMLEvents" (won't generate them though), -"UIEvents" (also won't generate them), -"USER-Events" (a conformant extension), -and -"Traversal" (optional; no TreeWalker yet). -It includes JAXP bootstrapping support, addressing the issue that -DOM (Levels 1 and 2) doesn't include bootstrapping APIs. -It is intended to be a reasonable base both for -experimentation and supporting additional DOM modules as clean layers. -</p> - -<p>Note that while DOM does not specify its behavior in the -face of concurrent access, this implementation does. -Specifically: -if only one thread at a time accesses a Document, -of if several threads cooperate for read-only access, -then no concurrency conflicts will occur. -If several threads mutate a given document -(or send events using it) at the same time, -there is currently no guarantee that -they won't interfere with each other. -</p> - -<h3> Design Goals </h3> - -<p> A number of DOM implementations are available in Java, including -commercial ones from Sun, IBM, Oracle, and DataChannel as well as -noncommercial ones from Docuverse, OpenXML, and Silfide. Why have -another? Some of the goals of this version: </p> <ul> - - <li> DOM Level 2 support. This was the first generally available - implementation of DOM Level 2 in Java. </li> - - <li> Free Software. This one is distributed under the GPL (with - "library exception") so it can be used with a different class of - application. </li> - - <li> Second implementation syndrome. I can do it simpler this time - around ... and heck, writing it only takes a bit over a day once you - know your way around. (Debugging is of course a different story, - since W3C hasn't provided any conformance test suite and publicly - available suites have poor coverage.) </li> - - <li> Sanity check the then-current Last Call DOM draft. Best to find - bugs early, when they're relatively fixable. Yes, bugs were found. - </li> - - <li> Modularity. Most of the implementations mentioned above are part - of huge packages; take all (including bugs, of which some have far - too many), or take nothing. I prefer a menu approach, when possible. - This code is standalone, not beholden to any particular parser or XSL - or XPath code. </li> - - <li> OK, I'm a hacker, I like to write code. </li> - - </ul> - -<p> This also works with the Gnu Compiler for Java (GCJ). GCJ promises -to be quite the environment for programming Java, both directly and from -C++ using the new CNI interfaces (which really use C++, unlike JNI). </p> - - -<h3> Open Issues </h3> - -<p> At this writing: </p> <ul> - - <li> An approximation of XML rules for legal names is used (Unicode - rules with minor tweaks) rather than the huge character tables in the - XML appendix. </li> - - <li> See below for some restrictions on the mutation event - support ... some events aren't reported (and likely won't be). </li> - - <li> There's no implementation (yet) - for the TreeWalker traversal API.</li> - - <li> More testing and conformance work is needed. </li> - - </ul> - -<p> I ran a profiler a few times and remove some of the performance hotspots, -but it's not tuned. Reporting mutation events, in particular, is -rather costly -- it started at about a 40% penalty for appendNode calls, -I've got it down around 12%, but it'll be hard to shrink it much further. -The overall code size is relatively small, though you may want to be rid of -many of the unused DOM interface classes (HTML, CSS, and so on).</p> - - -<h2><a name="features">Features of this Package</a></h2> - -<p> Starting with DOM Level 2, you can really see that DOM is constructed -as a bunch of optional modules around a core of either XML or HTML -functionality. Different implementations will support different optional -modules. This implementation provides a set of features that should be -useful if you're not depending on the HTML functionality (lots of convenience -functions that mostly don't buy much except API surface area) and user -interface support. That is, browsers will want more -- but what they -need should be cleanly layered over what's already here. </p> - -<h3> Core Feature Set: "XML" </h3> - -<p> This DOM implementation supports the "XML" feature set, which basically -gets you four things over the bare core (which you're officially not supposed -to implement except in conjunction with the "XML" or "HTML" feature). In -order of decreasing utility, those four things are: </p> <ol> - - <li> ProcessingInstruction nodes. These are probably the most - valuable thing. Handy little buggers, in part because all the APIs - you need to use them are provided, and they're designed to let you - escape XML document structure rules in controlled ways.</li> - - <li> CDATASection nodes. These are of of limited utility since CDATA - is just text that prints funny. These are of use to some sorts of - applications, though I encourage folk to not use them. </li> - - <li> DocumentType nodes, and associated Notation and Entity nodes. - These appear to be useless. Briefly, these "Type" nodes expose no - typing information. They're only really usable to expose some lexical - structure that almost every application needs to ignore. (XML editors - might like to see them, but they need true typing information much more.) - I strongly encourage people not to use these. </li> - - <li> EntityReference nodes can show up. These are actively annoying, - since they add an extra level of hierarchy, are the cause of most of - the complexity in attribute values, and their contents are immutable. - Avoid these.</li> - - </ol> - -<h3> Optional Feature Sets: "Events", and friends </h3> - -<p> Events may be one of the more interesting new features in Level 2. -This package provides the core feature set and exposes mutation events. -No gooey events though; if you want that, write a layered implementation! </p> - -<p> Three mutation events aren't currently generated:</p> <ul> - - <li> <em>DOMSubtreeModified</em> is poorly specified. Think of this - as generating one such event around the time of finalization, which - is a fully conformant implementation. This implementation is exactly - as useful as that one. </li> - - <li> <em>DOMNodeRemovedFromDocument</em> and - <em>DOMNodeInsertedIntoDocument</em> are supposed to get sent to - every node in a subtree that gets removed or inserted (respectively). - This can be <em>extremely costly</em>, and the removal and insertion - processing is already significantly slower due to event reporting. - It's much easier, and more efficient, to have a listener higher in the - tree watch removal and insertion events through the bubbling or capture - mechanisms, than it is to watch for these two events.</li> - - </ul> - -<p> In addition, certain kinds of attribute modification aren't reported. -A fix is known, but it couldn't report the previous value of the attribute. -More work could fix all of this (as well as reduce the generally high cost -of childful attributes), but that's not been done yet. </p> - -<p> Also, note that it is a <em>Bad Thing™</em> to have the listener -for a mutation event change the ancestry for the target of that event. -Or to prevent mutation events from bubbling to where they're needed. -Just don't do those, OK? </p> - -<p> As an experimental feature (named "USER-Events"), you can provide -your own "user" events. Just name them anything starting with "USER-" -and you're set. Dispatch them through, bubbling, capturing, or what -ever takes your fancy. One important thing you can't currently do is -pass any data (like an object) with those events. Maybe later there -will be a "UserEvent" interface letting you get some substantial use -out of this mechanism even if you're not "inside" of a DOM package.</p> - -<p> You can create and send HTML events. Ditto UIEvents. Since DOM -doesn't require a UI, it's the UI's job to send them; perhaps that's -part of your application. </p> - -<p><em>This package may be built without the ability to report mutation -events, gaining a significant speedup in DOM construction time. However, -if that is done then certain other features -- notably node iterators -and getElementsByTagname -- will not be available.</em> - - -<h3> Optional Feature: "Traversal" </h3> - -<p> Each DOM node has all you need to walk to everything connected -to that node. Lightweight, efficient utilities are easily layered on -top of just the core APIs. </p> - -<p> Traversal APIs are an optional part of DOM Level 2, providing -a not-so-lightweight way to walk over DOM trees, if your application -didn't already have such utilities for use with data represented via -DOM. Implementing this helped debug the (optional) event and mutation -event subsystems, so it's provided here. </p> - -<p> At this writing, the "TreeWalker" interface isn't implemented. </p> - - - -<h2><a name='avoid'>DOM Functionality to Avoid</a></h2> - -<p> For what appear to be a combination of historical and "committee -logic" reasons, DOM has a number of <em>features which I strongly advise -you to avoid using</em> in your library and application code. These -include the following types of DOM nodes; see the documentation for the -implementation class for more information: <ul> - - <li> CDATASection - (<a href='DomCDATA.html'>DomCDATA</a> class) - ... use normal Text nodes instead, so you don't have to make - every algorithm recognize multiple types of character data - - <li> DocumentType - (<a href='DomDoctype.html'>DomDocType</a> class) - ... if this held actual typing information, it might be useful - - <li> Entity - (<a href='DomEntity.html'>DomEntity</a> class) - ... neither parsed nor unparsed entities work well in DOM; it - won't even tell you which attributes identify unparsed entities - - <li> EntityReference - (<a href='DomEntityReference.html'>DomEntityReference</a> class) - ... permitted implementation variances are extreme, all children - are readonly, and these can interact poorly with namespaces - - <li> Notation - (<a href='DomNotation.html'>DomNotation</a> class) - ... only really usable with unparsed entities (which aren't well - supported; see above) or perhaps with PIs after the DTD, not with - NOTATION attributes - - </ul> - -<p> If you really need to use unparsed entities or notations, use SAX; -it offers better support for all DTD-related functionality. -It also exposes actual -document typing information (such as element content models).</p> - -<p> Also, when accessing attribute values, use methods that provide their -values as single strings, rather than those which expose value substructure -(Text and EntityReference nodes). (See the <a href='DomAttr.html'>DomAttr</a> -documentation for more information.) </p> - -<p> Note that many of these features were provided as partial support for -editor functionality (including the incomplete DTD access). Full editor -functionality requires access to potentially malformed lexical structure, -at the level of unparsed tokens and below. Access at such levels is so -complex that using it in non-editor applications sacrifices all the -benefits of XML; editor aplications need extremely specialized APIs. </p> - -<p> (This isn't a slam against DTDs, note; only against the broken support -for them in DOM. Even despite inclusion of some dubious SGML legacy features -such as notations and unparsed entities, -and the ongoing proliferation of alternative schema and validation tools, -DTDs are still the most widely adopted tool -to constrain XML document structure. -Alternative schemes generally focus on data transfer style -applications; open document architectures comparable to -DocBook 4.0 don't yet exist in the schema world. -Feel free to use DTDs; just don't expect DOM to help you.) </p> - -</body></html> diff --git a/external/jaxp/source/gnu/xml/pipeline/CallFilter.java b/external/jaxp/source/gnu/xml/pipeline/CallFilter.java deleted file mode 100644 index 2d8d4180b..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/CallFilter.java +++ /dev/null @@ -1,239 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.io.*; -import java.net.*; - -import org.xml.sax.*; -import org.xml.sax.ext.*; -import org.xml.sax.helpers.XMLReaderFactory; - -import gnu.xml.util.Resolver; -import gnu.xml.util.XMLWriter; - - -/** - * Input is sent as an XML request to given URI, and the output of this - * filter is the parsed response to that request. - * A connection is opened to the remote URI when the startDocument call is - * issued through this filter, and the request is finished when the - * endDocument call is issued. Events should be written quickly enough to - * prevent the remote HTTP server from aborting the connection due to - * inactivity; you may want to buffer text in an earlier pipeline stage. - * If your application requires validity checking of such - * outputs, have the output pipeline include a validation stage. - * - * <p>In effect, this makes a remote procedure call to the URI, with the - * request and response document syntax as chosen by the application. - * <em>Note that all the input events must be seen, and sent to the URI, - * before the first output event can be seen. </em> Clients are delayed - * at least by waiting for the server to respond, constraining concurrency. - * Services can thus be used to synchronize concurrent activities, and - * even to prioritize service among different clients. - * - * <p> You are advised to avoid restricting yourself to an "RPC" model - * for distributed computation. With a World Wide Web, network latencies - * and failures (e.g. non-availability) - * are significant; adopting a "procedure" model, rather than a workflow - * model where bulk requests are sent and worked on asynchronously, is not - * generally an optimal system-wide architecture. When the messages may - * need authentication, such as with an OpenPGP signature, or when server - * loads don't argue in favor of immediate responses, non-RPC models can - * be advantageous. (So-called "peer to peer" computing models are one - * additional type of model, though too often that term is applied to - * systems that still have a centralized control structure.) - * - * <p> <em>Be strict in what you send, liberal in what you accept,</em> as - * the Internet tradition goes. Strictly conformant data should never cause - * problems to its receiver; make your request pipeline be very strict, and - * don't compromise on that. Make your response pipeline strict as well, - * but be ready to tolerate specific mild, temporary, and well-documented - * variations from specific communications peers. - * - * @see XmlServlet - * - * @author David Brownell - */ -final public class CallFilter implements EventConsumer -{ - private Requestor req; - private EventConsumer next; - private URL target; - private URLConnection conn; - private ErrorHandler errHandler; - - - /** - * Initializes a call filter so that its inputs are sent to the - * specified URI, and its outputs are sent to the next consumer - * provided. - * - * @exception IOException if the URI isn't accepted as a URL - */ - // constructor used by PipelineFactory - public CallFilter (String uri, EventConsumer next) - throws IOException - { - this.next = next; - req = new Requestor (); - setCallTarget (uri); - } - - /** - * Assigns the URI of the call target to be used. - * Does not affect calls currently being made. - */ - final public void setCallTarget (String uri) - throws IOException - { - target = new URL (uri); - } - - /** - * Assigns the error handler to be used to present most fatal - * errors. - */ - public void setErrorHandler (ErrorHandler handler) - { - req.setErrorHandler (handler); - } - - - /** - * Returns the call target's URI. - */ - final public String getCallTarget () - { - return target.toString (); - } - - /** Returns the content handler currently in use. */ - final public org.xml.sax.ContentHandler getContentHandler () - { - return req; - } - - /** Returns the DTD handler currently in use. */ - final public DTDHandler getDTDHandler () - { - return req; - } - - - /** - * Returns the declaration or lexical handler currently in - * use, or throws an exception for other properties. - */ - final public Object getProperty (String id) - throws SAXNotRecognizedException - { - if (EventFilter.DECL_HANDLER.equals (id)) - return req; - if (EventFilter.LEXICAL_HANDLER.equals (id)) - return req; - throw new SAXNotRecognizedException (id); - } - - - // JDK 1.1 seems to need it to be done this way, sigh - ErrorHandler getErrorHandler () { return errHandler; } - - // - // Takes input and echoes to server as POST input. - // Then sends the POST reply to the next pipeline element. - // - final class Requestor extends XMLWriter - { - Requestor () - { - super ((Writer)null); - } - - public synchronized void startDocument () throws SAXException - { - // Connect to remote object and set up to send it XML text - try { - if (conn != null) - throw new IllegalStateException ("call is being made"); - - conn = target.openConnection (); - conn.setDoOutput (true); - conn.setRequestProperty ("Content-Type", - "application/xml;charset=UTF-8"); - - setWriter (new OutputStreamWriter ( - conn.getOutputStream (), - "UTF8"), "UTF-8"); - - } catch (IOException e) { - fatal ("can't write (POST) to URI: " + target, e); - } - - // NOW base class can safely write that text! - super.startDocument (); - } - - public void endDocument () throws SAXException - { - // - // Finish writing the request (for HTTP, a POST); - // this closes the output stream. - // - super.endDocument (); - - // - // Receive the response. - // Produce events for the next stage. - // - InputSource source; - XMLReader producer; - String encoding; - - try { - - source = new InputSource (conn.getInputStream ()); - -// FIXME if status is anything but success, report it!! It'd be good to -// save the request data just in case we need to deal with a forward. - - encoding = Resolver.getEncoding (conn.getContentType ()); - if (encoding != null) - source.setEncoding (encoding); - - producer = XMLReaderFactory.createXMLReader (); - producer.setErrorHandler (getErrorHandler ()); - EventFilter.bind (producer, next); - producer.parse (source); - conn = null; - - } catch (IOException e) { - fatal ("I/O Exception reading response, " + e.getMessage (), e); - } - } - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/DomConsumer.java b/external/jaxp/source/gnu/xml/pipeline/DomConsumer.java deleted file mode 100755 index 76ea7d37b..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/DomConsumer.java +++ /dev/null @@ -1,943 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.util.Hashtable; - -import org.w3c.dom.*; -import org.xml.sax.*; -import org.xml.sax.ext.DeclHandler; -import org.xml.sax.ext.LexicalHandler; -import org.xml.sax.helpers.AttributesImpl; - -import gnu.xml.util.DomParser; - - -/** - * This consumer builds a DOM Document from its input, acting either as a - * pipeline terminus or as an intermediate buffer. When a document's worth - * of events has been delivered to this consumer, that document is read with - * a {@link DomParser} and sent to the next consumer. It is also available - * as a read-once property. - * - * <p>The DOM tree is constructed as faithfully as possible. There are some - * complications since a DOM should expose behaviors that can't be implemented - * without API backdoors into that DOM, and because some SAX parsers don't - * report all the information that DOM permits to be exposed. The general - * problem areas involve information from the Document Type Declaration (DTD). - * DOM only represents a limited subset, but has some behaviors that depend - * on much deeper knowledge of a document's DTD. You shouldn't have much to - * worry about unless you change handling of "noise" nodes from its default - * setting (which ignores them all); note if you use JAXP to populate your - * DOM trees, it wants to save "noise" nodes by default. (Such nodes include - * ignorable whitespace, comments, entity references and CDATA boundaries.) - * Otherwise, your - * main worry will be if you use a SAX parser that doesn't flag ignorable - * whitespace unless it's validating (few don't). - * - * <p> The SAX2 events used as input must contain XML Names for elements - * and attributes, with original prefixes. In SAX2, - * this is optional unless the "namespace-prefixes" parser feature is set. - * Moreover, many application components won't provide completely correct - * structures anyway. <em>Before you convert a DOM to an output document, - * you should plan to postprocess it to create or repair such namespace - * information.</em> The {@link NSFilter} pipeline stage does such work. - * - * <p> <em>Note: changes late in DOM L2 process made it impractical to - * attempt to create the DocumentType node in any implementation-neutral way, - * much less to populate it (L1 didn't support even creating such nodes). - * To create and populate such a node, subclass the inner - * {@link DomConsumer.Handler} class and teach it about the backdoors into - * whatever DOM implementation you want. It's possible that some revised - * DOM API (L3?) will make this problem solvable again. </em> - * - * @see DomParser - * - * @author David Brownell - */ -public class DomConsumer implements EventConsumer -{ - private Class domImpl; - - private boolean hidingCDATA = true; - private boolean hidingComments = true; - private boolean hidingWhitespace = true; - private boolean hidingReferences = true; - - private Handler handler; - private ErrorHandler errHandler; - - private EventConsumer next; - - // FIXME: this can't be a generic pipeline stage just now, - // since its input became a Class not a String (to be turned - // into a class, using the right class loader) - - - /** - * Configures this pipeline terminus to use the specified implementation - * of DOM when constructing its result value. - * - * @param impl class implementing {@link org.w3c.dom.Document Document} - * which publicly exposes a default constructor - * - * @exception SAXException when there is a problem creating an - * empty DOM document using the specified implementation - */ - public DomConsumer (Class impl) - throws SAXException - { - domImpl = impl; - handler = new Handler (this); - } - - /** - * This is the hook through which a subclass provides a handler - * which knows how to access DOM extensions, specific to some - * implementation, to record additional data in a DOM. - * Treat this as part of construction; don't call it except - * before (or between) parses. - */ - protected void setHandler (Handler h) - { - handler = h; - } - - - private Document emptyDocument () - throws SAXException - { - try { - return (Document) domImpl.newInstance (); - } catch (IllegalAccessException e) { - throw new SAXException ("can't access constructor: " - + e.getMessage ()); - } catch (InstantiationException e) { - throw new SAXException ("can't instantiate Document: " - + e.getMessage ()); - } - } - - - /** - * Configures this consumer as a buffer/filter, using the specified - * DOM implementation when constructing its result value. - * - * <p> This event consumer acts as a buffer and filter, in that it - * builds a DOM tree and then writes it out when <em>endDocument</em> - * is invoked. Because of the limitations of DOM, much information - * will as a rule not be seen in that replay. To get a full fidelity - * copy of the input event stream, use a {@link TeeConsumer}. - * - * @param impl class implementing {@link org.w3c.dom.Document Document} - * which publicly exposes a default constructor - * @param next receives a "replayed" sequence of parse events when - * the <em>endDocument</em> method is invoked. - * - * @exception SAXException when there is a problem creating an - * empty DOM document using the specified DOM implementation - */ - public DomConsumer (Class impl, EventConsumer n) - throws SAXException - { - this (impl); - next = n; - } - - - /** - * Returns the document constructed from the preceding - * sequence of events. This method should not be - * used again until another sequence of events has been - * given to this EventConsumer. - */ - final public Document getDocument () - { - return handler.clearDocument (); - } - - public void setErrorHandler (ErrorHandler handler) - { - errHandler = handler; - } - - - /** - * Returns true if the consumer is hiding entity references nodes - * (the default), and false if EntityReference nodes should - * instead be created. Such EntityReference nodes will normally be - * empty, unless an implementation arranges to populate them and then - * turn them back into readonly objects. - * - * @see #setHidingReferences - */ - final public boolean isHidingReferences () - { return hidingReferences; } - - /** - * Controls whether the consumer will hide entity expansions, - * or will instead mark them with entity reference nodes. - * - * @see #isHidingReferences - * @param flag False if entity reference nodes will appear - */ - final public void setHidingReferences (boolean flag) - { hidingReferences = flag; } - - - /** - * Returns true if the consumer is hiding comments (the default), - * and false if they should be placed into the output document. - * - * @see #setHidingComments - */ - public final boolean isHidingComments () - { return hidingComments; } - - /** - * Controls whether the consumer is hiding comments. - * - * @see #isHidingComments - */ - public final void setHidingComments (boolean flag) - { hidingComments = flag; } - - - /** - * Returns true if the consumer is hiding ignorable whitespace - * (the default), and false if such whitespace should be placed - * into the output document as children of element nodes. - * - * @see #setHidingWhitespace - */ - public final boolean isHidingWhitespace () - { return hidingWhitespace; } - - /** - * Controls whether the consumer hides ignorable whitespace - * - * @see #isHidingComments - */ - public final void setHidingWhitespace (boolean flag) - { hidingWhitespace = flag; } - - - /** - * Returns true if the consumer is saving CDATA boundaries, or - * false (the default) otherwise. - * - * @see #setHidingCDATA - */ - final public boolean isHidingCDATA () - { return hidingCDATA; } - - /** - * Controls whether the consumer will save CDATA boundaries. - * - * @see #isHidingCDATA - * @param flag True to treat CDATA text differently from other - * text nodes - */ - final public void setHidingCDATA (boolean flag) - { hidingCDATA = flag; } - - - - /** Returns the document handler being used. */ - final public ContentHandler getContentHandler () - { return handler; } - - /** Returns the DTD handler being used. */ - final public DTDHandler getDTDHandler () - { return handler; } - - /** - * Returns the lexical handler being used. - * (DOM construction can't really use declaration handlers.) - */ - final public Object getProperty (String id) - throws SAXNotRecognizedException - { - if ("http://xml.org/sax/properties/lexical-handler".equals (id)) - return handler; - if ("http://xml.org/sax/properties/declaration-handler".equals (id)) - return handler; - throw new SAXNotRecognizedException (id); - } - - EventConsumer getNext () { return next; } - - ErrorHandler getErrorHandler () { return errHandler; } - - /** - * Class used to intercept various parsing events and use them to - * populate a DOM document. Subclasses would typically know and use - * backdoors into specific DOM implementations, used to implement - * DTD-related functionality. - * - * <p> Note that if this ever throws a DOMException (runtime exception) - * that will indicate a bug in the DOM (e.g. doesn't support something - * per specification) or the parser (e.g. emitted an illegal name, or - * accepted illegal input data). </p> - */ - public static class Handler - implements ContentHandler, LexicalHandler, - DTDHandler, DeclHandler - { - protected DomConsumer consumer; - - private DOMImplementation impl; - private Document document; - private boolean isL2; - - private Locator locator; - private Node top; - private boolean inCDATA; - private boolean mergeCDATA; - private boolean inDTD; - private String currentEntity; - - private boolean recreatedAttrs; - private AttributesImpl attributes = new AttributesImpl (); - - /** - * Subclasses may use SAX2 events to provide additional - * behaviors in the resulting DOM. - */ - protected Handler (DomConsumer consumer) - throws SAXException - { - this.consumer = consumer; - document = consumer.emptyDocument (); - impl = document.getImplementation (); - isL2 = impl.hasFeature ("XML", "2.0"); - } - - private void fatal (String message, Exception x) - throws SAXException - { - SAXParseException e; - ErrorHandler errHandler = consumer.getErrorHandler ();; - - if (locator == null) - e = new SAXParseException (message, null, null, -1, -1, x); - else - e = new SAXParseException (message, locator, x); - if (errHandler != null) - errHandler.fatalError (e); - throw e; - } - - /** - * Returns and forgets the document produced. If the handler is - * reused, a new document may be created. - */ - Document clearDocument () - { - Document retval = document; - document = null; - locator = null; - return retval; - } - - /** - * Returns the document under construction. - */ - protected Document getDocument () - { return document; } - - /** - * Returns the current node being populated. This is usually - * an Element or Document, but it might be an EntityReference - * node if some implementation-specific code knows how to put - * those into the result tree and later mark them as readonly. - */ - protected Node getTop () - { return top; } - - - // SAX1 - public void setDocumentLocator (Locator locator) - { - this.locator = locator; - } - - // SAX1 - public void startDocument () - throws SAXException - { - if (document == null) - try { - if (isL2) { - // couple to original implementation - document = impl.createDocument (null, "foo", null); - document.removeChild (document.getFirstChild ()); - } else { - document = consumer.emptyDocument (); - } - } catch (Exception e) { - fatal ("DOM create document", e); - } - top = document; - } - - // SAX1 - public void endDocument () - throws SAXException - { - try { - if (consumer.getNext () != null && document != null) { - DomParser parser = new DomParser (document); - - EventFilter.bind (parser, consumer.getNext ()); - parser.parse ("ignored"); - } - } finally { - top = null; - } - } - - // SAX1 - public void processingInstruction (String target, String data) - throws SAXException - { - // we can't create populated entity ref nodes using - // only public DOM APIs (they've got to be readonly) - if (currentEntity != null) - return; - - ProcessingInstruction pi; - - if (isL2 - // && consumer.isUsingNamespaces () - && target.indexOf (':') != -1) - namespaceError ( - "PI target name is namespace nonconformant: " - + target); - if (inDTD) - return; - pi = document.createProcessingInstruction (target, data); - top.appendChild (pi); - } - - /** - * Subclasses may overrride this method to provide a more efficient - * way to construct text nodes. - * Typically, copying the text into a single character array will - * be more efficient than doing that as well as allocating other - * needed for a String, including an internal StringBuffer. - * Those additional memory and CPU costs can be incurred later, - * if ever needed. - * Unfortunately the standard DOM factory APIs encourage those costs - * to be incurred early. - */ - protected Text createText ( - boolean isCDATA, - char ch [], - int start, - int length - ) { - String value = new String (ch, start, length); - - if (isCDATA) - return document.createCDATASection (value); - else - return document.createTextNode (value); - } - - // SAX1 - public void characters (char ch [], int start, int length) - throws SAXException - { - // we can't create populated entity ref nodes using - // only public DOM APIs (they've got to be readonly - // at creation time) - if (currentEntity != null) - return; - - Node lastChild = top.getLastChild (); - - // merge consecutive text or CDATA nodes if appropriate. - if (lastChild instanceof Text) { - if (consumer.isHidingCDATA () - // consecutive Text content ... always merge - || (!inCDATA - && !(lastChild instanceof CDATASection)) - // consecutive CDATASection content ... don't - // merge between sections, only within them - || (inCDATA && mergeCDATA - && lastChild instanceof CDATASection) - ) { - CharacterData last = (CharacterData) lastChild; - String value = new String (ch, start, length); - - last.appendData (value); - return; - } - } - if (inCDATA && !consumer.isHidingCDATA ()) { - top.appendChild (createText (true, ch, start, length)); - mergeCDATA = true; - } else - top.appendChild (createText (false, ch, start, length)); - } - - // SAX2 - public void skippedEntity (String name) - throws SAXException - { - // this callback is useless except to report errors, since - // we can't know if the ref was in content, within an - // attribute, within a declaration ... only one of those - // cases supports more intelligent action than a panic. - fatal ("skipped entity: " + name, null); - } - - // SAX2 - public void startPrefixMapping (String prefix, String uri) - throws SAXException - { - // reconstruct "xmlns" attributes deleted by all - // SAX2 parsers without "namespace-prefixes" = true - if ("".equals (prefix)) - attributes.addAttribute ("", "", "xmlns", - "CDATA", uri); - else - attributes.addAttribute ("", "", "xmlns:" + prefix, - "CDATA", uri); - recreatedAttrs = true; - } - - // SAX2 - public void endPrefixMapping (String prefix) - throws SAXException - { } - - // SAX2 - public void startElement ( - String uri, - String localName, - String qName, - Attributes atts - ) throws SAXException - { - // we can't create populated entity ref nodes using - // only public DOM APIs (they've got to be readonly) - if (currentEntity != null) - return; - - // parser discarded basic information; DOM tree isn't writable - // without massaging to assign prefixes to all nodes. - // the "NSFilter" class does that massaging. - if (qName.length () == 0) - qName = localName; - - - Element element; - int length = atts.getLength (); - - if (!isL2) { - element = document.createElement (qName); - - // first the explicit attributes ... - length = atts.getLength (); - for (int i = 0; i < length; i++) - element.setAttribute (atts.getQName (i), - atts.getValue (i)); - // ... then any recreated ones (DOM deletes duplicates) - if (recreatedAttrs) { - recreatedAttrs = false; - length = attributes.getLength (); - for (int i = 0; i < length; i++) - element.setAttribute (attributes.getQName (i), - attributes.getValue (i)); - attributes.clear (); - } - - top.appendChild (element); - top = element; - return; - } - - // For an L2 DOM when namespace use is enabled, use - // createElementNS/createAttributeNS except when - // (a) it's an element in the default namespace, or - // (b) it's an attribute with no prefix - String namespace; - - if (localName.length () != 0) - namespace = (uri.length () == 0) ? null : uri; - else - namespace = getNamespace (getPrefix (qName), atts); - - if (namespace == null) - element = document.createElement (qName); - else - element = document.createElementNS (namespace, qName); - - populateAttributes (element, atts); - if (recreatedAttrs) { - recreatedAttrs = false; - // ... DOM deletes any duplicates - populateAttributes (element, attributes); - attributes.clear (); - } - - top.appendChild (element); - top = element; - } - - final static String xmlnsURI = "http://www.w3.org/2000/xmlns/"; - - private void populateAttributes (Element element, Attributes attrs) - throws SAXParseException - { - int length = attrs.getLength (); - - for (int i = 0; i < length; i++) { - String type = attrs.getType (i); - String value = attrs.getValue (i); - String name = attrs.getQName (i); - String local = attrs.getLocalName (i); - String uri = attrs.getURI (i); - - // parser discarded basic information, DOM tree isn't writable - if (name.length () == 0) - name = local; - - // all attribute types other than these three may not - // contain scoped names... enumerated attributes get - // reported as NMTOKEN, except for NOTATION values - if (!("CDATA".equals (type) - || "NMTOKEN".equals (type) - || "NMTOKENS".equals (type))) { - if (value.indexOf (':') != -1) { - namespaceError ( - "namespace nonconformant attribute value: " - + "<" + element.getNodeName () - + " " + name + "='" + value + "' ...>"); - } - } - - // xmlns="" is legal (undoes default NS) - // xmlns:foo="" is illegal - String prefix = getPrefix (name); - String namespace; - - if ("xmlns".equals (prefix)) { - if ("".equals (value)) - namespaceError ("illegal null namespace decl, " + name); - namespace = xmlnsURI; - } else if ("xmlns".equals (name)) - namespace = xmlnsURI; - - else if (prefix == null) - namespace = null; - else if (uri != "" && uri.length () != 0) - namespace = uri; - else - namespace = getNamespace (prefix, attrs); - - if (namespace == null) - element.setAttribute (name, value); - else - element.setAttributeNS (namespace, name, value); - } - } - - private String getPrefix (String name) - { - int temp; - - if ((temp = name.indexOf (':')) > 0) - return name.substring (0, temp); - return null; - } - - // used with SAX1-level parser output - private String getNamespace (String prefix, Attributes attrs) - throws SAXParseException - { - String namespace; - String decl; - - // defaulting - if (prefix == null) { - decl = "xmlns"; - namespace = attrs.getValue (decl); - if ("".equals (namespace)) - return null; - else if (namespace != null) - return namespace; - - // "xmlns" is like a keyword - // ... according to the Namespace REC, but DOM L2 CR2+ - // and Infoset violate that by assigning a namespace. - // that conflict is resolved elsewhere. - } else if ("xmlns".equals (prefix)) - return null; - - // "xml" prefix is fixed - else if ("xml".equals (prefix)) - return "http://www.w3.org/XML/1998/namespace"; - - // otherwise, expect a declaration - else { - decl = "xmlns:" + prefix; - namespace = attrs.getValue (decl); - } - - // if we found a local declaration, great - if (namespace != null) - return namespace; - - - // ELSE ... search up the tree we've been building - for (Node n = top; - n != null && n.getNodeType () != Node.DOCUMENT_NODE; - n = (Node) n.getParentNode ()) { - if (n.getNodeType () == Node.ENTITY_REFERENCE_NODE) - continue; - Element e = (Element) n; - Attr attr = e.getAttributeNode (decl); - if (attr != null) - return attr.getNodeValue (); - } - // see above re "xmlns" as keyword - if ("xmlns".equals (decl)) - return null; - - namespaceError ("Undeclared namespace prefix: " + prefix); - return null; - } - - // SAX2 - public void endElement (String uri, String localName, String qName) - throws SAXException - { - // we can't create populated entity ref nodes using - // only public DOM APIs (they've got to be readonly) - if (currentEntity != null) - return; - - top = top.getParentNode (); - } - - // SAX1 (mandatory reporting if validating) - public void ignorableWhitespace (char ch [], int start, int length) - throws SAXException - { - if (consumer.isHidingWhitespace ()) - return; - characters (ch, start, length); - } - - // SAX2 lexical event - public void startCDATA () - throws SAXException - { - inCDATA = true; - // true except for the first fragment of a cdata section - mergeCDATA = false; - } - - // SAX2 lexical event - public void endCDATA () - throws SAXException - { - inCDATA = false; - } - - // SAX2 lexical event - // - // this SAX2 callback merges two unrelated things: - // - Declaration of the root element type ... belongs with - // the other DTD declaration methods, NOT HERE. - // - IDs for the optional external subset ... belongs here - // with other lexical information. - // - // ...and it doesn't include the internal DTD subset, desired - // both to support DOM L2 and to enable "pass through" processing - // - public void startDTD (String name, String publicId, String SystemId) - throws SAXException - { - // need to filter out comments and PIs within the DTD - inDTD = true; - } - - // SAX2 lexical event - public void endDTD () - throws SAXException - { - inDTD = false; - } - - // SAX2 lexical event - public void comment (char ch [], int start, int length) - throws SAXException - { - Node comment; - - // we can't create populated entity ref nodes using - // only public DOM APIs (they've got to be readonly) - if (consumer.isHidingComments () - || inDTD - || currentEntity != null) - return; - comment = document.createComment (new String (ch, start, length)); - top.appendChild (comment); - } - - /** - * May be overridden by subclasses to return true, indicating - * that entity reference nodes can be populated and then made - * read-only. - */ - public boolean canPopulateEntityRefs () - { return false; } - - // SAX2 lexical event - public void startEntity (String name) - throws SAXException - { - // are we ignoring what would be contents of an - // entity ref, since we can't populate it? - if (currentEntity != null) - return; - - // Are we hiding all entity boundaries? - if (consumer.isHidingReferences ()) - return; - - // SAX2 shows parameter entities; DOM hides them - if (name.charAt (0) == '%' || "[dtd]".equals (name)) - return; - - // Since we can't create a populated entity ref node in any - // standard way, we create an unpopulated one. - EntityReference ref = document.createEntityReference (name); - top.appendChild (ref); - top = ref; - - // ... allowing subclasses to populate them - if (!canPopulateEntityRefs ()) - currentEntity = name; - } - - // SAX2 lexical event - public void endEntity (String name) - throws SAXException - { - if (name.charAt (0) == '%' || "[dtd]".equals (name)) - return; - if (name.equals (currentEntity)) - currentEntity = null; - if (!consumer.isHidingReferences ()) - top = top.getParentNode (); - } - - - // SAX1 DTD event - public void notationDecl ( - String name, - String publicId, String SystemId - ) throws SAXException - { - /* IGNORE -- no public DOM API lets us store these - * into the doctype node - */ - } - - // SAX1 DTD event - public void unparsedEntityDecl ( - String name, - String publicId, String SystemId, - String notationName - ) throws SAXException - { - /* IGNORE -- no public DOM API lets us store these - * into the doctype node - */ - } - - // SAX2 declaration event - public void elementDecl (String name, String model) - throws SAXException - { - /* IGNORE -- no content model support in DOM L2 */ - } - - // SAX2 declaration event - public void attributeDecl ( - String eName, - String aName, - String type, - String mode, - String value - ) throws SAXException - { - /* IGNORE -- no attribute model support in DOM L2 */ - } - - // SAX2 declaration event - public void internalEntityDecl (String name, String value) - throws SAXException - { - /* IGNORE -- no public DOM API lets us store these - * into the doctype node - */ - } - - // SAX2 declaration event - public void externalEntityDecl ( - String name, - String publicId, - String SystemId - ) throws SAXException - { - /* IGNORE -- no public DOM API lets us store these - * into the doctype node - */ - } - - // - // These really should offer the option of nonfatal handling, - // like other validity errors, though that would cause major - // chaos in the DOM data structures. DOM is already spec'd - // to treat many of these as fatal, so this is consistent. - // - private void namespaceError (String description) - throws SAXParseException - { - SAXParseException err; - - err = new SAXParseException (description, locator); - throw err; - } - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/EventConsumer.java b/external/jaxp/source/gnu/xml/pipeline/EventConsumer.java deleted file mode 100755 index 8d2844d64..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/EventConsumer.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import org.xml.sax.*; - - -/** - * Collects the event consumption apparatus of a SAX pipeline stage. - * Consumers which permit some handlers or other characteristics to be - * configured will provide methods to support that configuration. - * - * <p> Two important categories of consumers include <em>filters</em>, which - * process events and pass them on to other consumers, and <em>terminus</em> - * (or <em>terminal</em>) stages, which don't pass events on. Filters are not - * necessarily derived from the {@link EventFilter} class, although that - * class can substantially simplify their construction by automating the - * most common activities. - * - * <p> Event consumers which follow certain conventions for the signatures - * of their constructors can be automatically assembled into pipelines - * by the {@link PipelineFactory} class. - * - * @author David Brownell - */ -public interface EventConsumer -{ - /** Most stages process these core SAX callbacks. */ - public ContentHandler getContentHandler (); - - /** Few stages will use unparsed entities. */ - public DTDHandler getDTDHandler (); - - /** - * This method works like the SAX2 XMLReader method of the same name, - * and is used to retrieve the optional lexical and declaration handlers - * in a pipeline. - * - * @param id This is a URI identifying the type of property desired. - * @return The value of that property, if it is defined. - * - * @exception SAXNotRecognizedException Thrown if the particular - * pipeline stage does not understand the specified identifier. - */ - public Object getProperty (String id) - throws SAXNotRecognizedException; - - /** - * This method provides a filter stage with a handler that abstracts - * presentation of warnings and both recoverable and fatal errors. - * Most pipeline stages should share a single policy and mechanism - * for such reports, since application components require consistency - * in such activities. Accordingly, typical responses to this method - * invocation involve saving the handler for use; filters will pass - * it on to any other consumers they use. - * - * @param handler encapsulates error handling policy for this stage - */ - public void setErrorHandler (ErrorHandler handler); -} diff --git a/external/jaxp/source/gnu/xml/pipeline/EventFilter.java b/external/jaxp/source/gnu/xml/pipeline/EventFilter.java deleted file mode 100755 index 1292914fd..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/EventFilter.java +++ /dev/null @@ -1,786 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.lang.reflect.InvocationTargetException; -import java.lang.reflect.Method; - -import org.xml.sax.*; -import org.xml.sax.ext.*; -import org.xml.sax.helpers.XMLFilterImpl; - - -/** - * A customizable event consumer, used to assemble various kinds of filters - * using SAX handlers and an optional second consumer. It can be constructed - * in two ways: <ul> - * - * <li> To serve as a passthrough, sending all events to a second consumer. - * The second consumer may be identified through {@link #getNext}. - * - * <li> To serve as a dead end, with all handlers null; - * {@link #getNext} returns null. - * - * </ul> - * - * <p> Additionally, SAX handlers may be assigned, which completely replace - * the "upstream" view (through {@link EventConsumer}) of handlers, initially - * null or the "next" consumer provided to the constructor. To make - * it easier to build specialized filter classes, this class implements - * all the standard SAX consumer handlers, and those implementations - * delegate "downstream" to the consumer accessed by {@link #getNext}. - * - * <p> The simplest way to create a custom a filter class is to create a - * subclass which overrides one or more handler interface methods. The - * constructor for that subclass then registers itself as a handler for - * those interfaces using a call such as <em>setContentHandler(this)</em>, - * so the "upstream" view of event delivery is modified from the state - * established in the base class constructor. That way, - * the overridden methods intercept those event callbacks - * as they go "downstream", and - * all other event callbacks will pass events to any next consumer. - * Overridden methods may invoke superclass methods (perhaps after modifying - * parameters) if they wish to delegate such calls. Such subclasses - * should use {@link #getErrorHandler} to report errors using the - * common error reporting mechanism. - * - * <p> Another important technique is to construct a filter consisting - * of only a few specific types of handler. For example, one could easily - * prune out lexical events or various declarations by providing handlers - * which don't pass those events downstream, or by providing null handlers. - * - * <hr /> - * - * <p> This may be viewed as the consumer oriented analogue of the SAX2 - * {@link org.xml.sax.helpers.XMLFilterImpl XMLFilterImpl} class. - * Key differences include: <ul> - * - * <li> This fully separates consumer and producer roles: it - * does not implement the producer side <em>XMLReader</em> or - * <em>EntityResolver</em> interfaces, so it can only be used - * in "push" mode (it has no <em>parse()</em> methods). - * - * <li> "Extension" handlers are fully supported, enabling a - * richer set of application requirements. - * And it implements {@link EventConsumer}, which groups related - * consumer methods together, rather than leaving them separated. - * - * <li> The chaining which is visible is "downstream" to the next - * consumer, not "upstream" to the preceding producer. - * It supports "fan-in", where - * a consumer can be fed by several producers. (For "fan-out", - * see the {@link TeeConsumer} class.) - * - * <li> Event chaining is set up differently. It is intended to - * work "upstream" from terminus towards producer, during filter - * construction, as described above. - * This is part of an early binding model: - * events don't need to pass through stages which ignore them. - * - * <li> ErrorHandler support is separated, on the grounds that - * pipeline stages need to share the same error handling policy. - * For the same reason, error handler setup goes "downstream": - * when error handlers get set, they are passed to subsequent - * consumers. - * - * </ul> - * - * <p> The {@link #chainTo chainTo()} convenience routine supports chaining to - * an XMLFilterImpl, in its role as a limited functionality event - * consumer. Its event producer role ({@link XMLFilter}) is ignored. - * - * <hr /> - * - * <p> The {@link #bind bind()} routine may be used associate event pipelines - * with any kind of {@link XMLReader} that will produce the events. - * Such pipelines don't necessarily need to have any members which are - * implemented using this class. That routine has some intelligence - * which supports automatic changes to parser feature flags, letting - * event piplines become largely independent of the particular feature - * sets of parsers. - * - * @author David Brownell - */ -public class EventFilter - implements EventConsumer, ContentHandler, DTDHandler, - LexicalHandler, DeclHandler -{ - // SAX handlers - private ContentHandler docHandler, docNext; - private DTDHandler dtdHandler, dtdNext; - private LexicalHandler lexHandler, lexNext; - private DeclHandler declHandler, declNext; - // and ideally, one more for the stuff SAX2 doesn't show - - private Locator locator; - private EventConsumer next; - private ErrorHandler errHandler; - - - /** SAX2 URI prefix for standard feature flags. */ - public static final String FEATURE_URI - = "http://xml.org/sax/features/"; - /** SAX2 URI prefix for standard properties (mostly for handlers). */ - public static final String PROPERTY_URI - = "http://xml.org/sax/properties/"; - - /** SAX2 property identifier for {@link DeclHandler} events */ - public static final String DECL_HANDLER - = PROPERTY_URI + "declaration-handler"; - /** SAX2 property identifier for {@link LexicalHandler} events */ - public static final String LEXICAL_HANDLER - = PROPERTY_URI + "lexical-handler"; - - // - // These class objects will be null if the relevant class isn't linked. - // Small configurations (pJava and some kinds of embedded systems) need - // to facilitate smaller executables. So "instanceof" is undesirable - // when bind() sees if it can remove some stages. - // - // SECURITY NOTE: assuming all these classes are part of the same sealed - // package, there's no problem saving these in the instance of this class - // that's associated with "this" class loader. But that wouldn't be true - // for classes in another package. - // - private static boolean loaded; - private static Class nsClass; - private static Class validClass; - private static Class wfClass; - private static Class xincClass; - - static ClassLoader getClassLoader () - { - Method m = null; - - try { - m = Thread.class.getMethod("getContextClassLoader", null); - } catch (NoSuchMethodException e) { - // Assume that we are running JDK 1.1, use the current ClassLoader - return EventFilter.class.getClassLoader(); - } - - try { - return (ClassLoader) m.invoke(Thread.currentThread(), null); - } catch (IllegalAccessException e) { - // assert(false) - throw new UnknownError(e.getMessage()); - } catch (InvocationTargetException e) { - // assert(e.getTargetException() instanceof SecurityException) - throw new UnknownError(e.getMessage()); - } - } - - static Class loadClass (ClassLoader classLoader, String className) - { - try { - if (classLoader == null) - return Class.forName(className); - else - return classLoader.loadClass(className); - } catch (Exception e) { - return null; - } - } - - static private void loadClasses () - { - ClassLoader loader = getClassLoader (); - - nsClass = loadClass (loader, "gnu.xml.pipeline.NSFilter"); - validClass = loadClass (loader, "gnu.xml.pipeline.ValidationConsumer"); - wfClass = loadClass (loader, "gnu.xml.pipeline.WellFormednessFilter"); - xincClass = loadClass (loader, "gnu.xml.pipeline.XIncludeFilter"); - loaded = true; - } - - - /** - * Binds the standard SAX2 handlers from the specified consumer - * pipeline to the specified producer. These handlers include the core - * {@link ContentHandler} and {@link DTDHandler}, plus the extension - * {@link DeclHandler} and {@link LexicalHandler}. Any additional - * application-specific handlers need to be bound separately. - * The {@link ErrorHandler} is handled differently: the producer's - * error handler is passed through to the consumer pipeline. - * The producer is told to include namespace prefix information if it - * can, since many pipeline stages need that Infoset information to - * work well. - * - * <p> At the head of the pipeline, certain standard event filters are - * recognized and handled specially. This facilitates construction - * of processing pipelines that work regardless of the capabilities - * of the XMLReader implementation in use; for example, it permits - * validating output of a {@link gnu.xml.util.DomParser}. <ul> - * - * <li> {@link NSFilter} will be removed if the producer can be - * told not to discard namespace data, using the "namespace-prefixes" - * feature flag. - * - * <li> {@link ValidationConsumer} will be removed if the producer - * can be told to validate, using the "validation" feature flag. - * - * <li> {@link WellFormednessFilter} is always removed, on the - * grounds that no XMLReader is permitted to producee malformed - * event streams and this would just be processing overhead. - * - * <li> {@link XIncludeFilter} stops the special handling, except - * that it's told about the "namespace-prefixes" feature of the - * event producer so that the event stream is internally consistent. - * - * <li> The first consumer which is not one of those classes stops - * such special handling. This means that if you want to force - * one of those filters to be used, you could just precede it with - * an instance of {@link EventFilter} configured as a pass-through. - * You might need to do that if you are using an {@link NSFilter} - * subclass to fix names found in attributes or character data. - * - * </ul> - * - * <p> Other than that, this method works with any kind of event consumer, - * not just event filters. Note that in all cases, the standard handlers - * are assigned; any previous handler assignments for the handler will - * be overridden. - * - * @param producer will deliver events to the specified consumer - * @param consumer pipeline supplying event handlers to be associated - * with the producer (may not be null) - */ - public static void bind (XMLReader producer, EventConsumer consumer) - { - Class klass = null; - boolean prefixes; - - if (!loaded) - loadClasses (); - - // DOM building, printing, layered validation, and other - // things don't work well when prefix info is discarded. - // Include it by default, whenever possible. - try { - producer.setFeature (FEATURE_URI + "namespace-prefixes", - true); - prefixes = true; - } catch (SAXException e) { - prefixes = false; - } - - // NOTE: This loop doesn't use "instanceof", since that - // would prevent compiling/linking without those classes - // being present. - while (consumer != null) { - klass = consumer.getClass (); - - // we might have already changed this problematic SAX2 default. - if (nsClass != null && nsClass.isAssignableFrom (klass)) { - if (!prefixes) - break; - consumer = ((EventFilter)consumer).getNext (); - - // the parser _might_ do DTD validation by default ... - // if not, maybe we can change this setting. - } else if (validClass != null - && validClass.isAssignableFrom (klass)) { - try { - producer.setFeature (FEATURE_URI + "validation", - true); - consumer = ((ValidationConsumer)consumer).getNext (); - } catch (SAXException e) { - break; - } - - // parsers are required not to have such bugs - } else if (wfClass != null && wfClass.isAssignableFrom (klass)) { - consumer = ((WellFormednessFilter)consumer).getNext (); - - // stop on the first pipeline stage we can't remove - } else - break; - - if (consumer == null) - klass = null; - } - - // the actual setting here doesn't matter as much - // as that producer and consumer agree - if (xincClass != null && klass != null - && xincClass.isAssignableFrom (klass)) - ((XIncludeFilter)consumer).setSavingPrefixes (prefixes); - - // Some SAX parsers can't handle null handlers -- bleech - DefaultHandler2 h = new DefaultHandler2 (); - - if (consumer != null && consumer.getContentHandler () != null) - producer.setContentHandler (consumer.getContentHandler ()); - else - producer.setContentHandler (h); - if (consumer != null && consumer.getDTDHandler () != null) - producer.setDTDHandler (consumer.getDTDHandler ()); - else - producer.setDTDHandler (h); - - try { - Object dh; - - if (consumer != null) - dh = consumer.getProperty (DECL_HANDLER); - else - dh = null; - if (dh == null) - dh = h; - producer.setProperty (DECL_HANDLER, dh); - } catch (Exception e) { /* ignore */ } - try { - Object lh; - - if (consumer != null) - lh = consumer.getProperty (LEXICAL_HANDLER); - else - lh = null; - if (lh == null) - lh = h; - producer.setProperty (LEXICAL_HANDLER, lh); - } catch (Exception e) { /* ignore */ } - - // this binding goes the other way around - if (producer.getErrorHandler () == null) - producer.setErrorHandler (h); - if (consumer != null) - consumer.setErrorHandler (producer.getErrorHandler ()); - } - - /** - * Initializes all handlers to null. - */ - // constructor used by PipelineFactory - public EventFilter () { } - - - /** - * Handlers that are not otherwise set will default to those from - * the specified consumer, making it easy to pass events through. - * If the consumer is null, all handlers are initialzed to null. - */ - // constructor used by PipelineFactory - public EventFilter (EventConsumer consumer) - { - if (consumer == null) - return; - - next = consumer; - - // We delegate through the "xxNext" handlers, and - // report the "xxHandler" ones on our input side. - - // Normally a subclass would both override handler - // methods and register itself as the "xxHandler". - - docHandler = docNext = consumer.getContentHandler (); - dtdHandler = dtdNext = consumer.getDTDHandler (); - try { - declHandler = declNext = (DeclHandler) - consumer.getProperty (DECL_HANDLER); - } catch (SAXException e) { /* leave value null */ } - try { - lexHandler = lexNext = (LexicalHandler) - consumer.getProperty (LEXICAL_HANDLER); - } catch (SAXException e) { /* leave value null */ } - } - - /** - * Treats the XMLFilterImpl as a limited functionality event consumer, - * by arranging to deliver events to it; this lets such classes be - * "wrapped" as pipeline stages. - * - * <p> <em>Upstream Event Setup:</em> - * If no handlers have been assigned to this EventFilter, then the - * handlers from specified XMLFilterImpl are returned from this - * {@link EventConsumer}: the XMLFilterImpl is just "wrapped". - * Otherwise the specified handlers will be returned. - * - * <p> <em>Downstream Event Setup:</em> - * Subclasses may chain event delivery to the specified XMLFilterImpl - * by invoking the appropiate superclass methods, - * as if their constructor passed a "next" EventConsumer to the - * constructor for this class. - * If this EventFilter has an ErrorHandler, it is assigned as - * the error handler for the XMLFilterImpl, just as would be - * done for a next stage implementing {@link EventConsumer}. - * - * @param next the next downstream component of the pipeline. - * @exception IllegalStateException if the "next" consumer has - * already been set through the constructor. - */ - public void chainTo (XMLFilterImpl next) - { - if (this.next != null) - throw new IllegalStateException (); - - docNext = next.getContentHandler (); - if (docHandler == null) - docHandler = docNext; - dtdNext = next.getDTDHandler (); - if (dtdHandler == null) - dtdHandler = dtdNext; - - try { - declNext = (DeclHandler) next.getProperty (DECL_HANDLER); - if (declHandler == null) - declHandler = declNext; - } catch (SAXException e) { /* leave value null */ } - try { - lexNext = (LexicalHandler) next.getProperty (LEXICAL_HANDLER); - if (lexHandler == null) - lexHandler = lexNext; - } catch (SAXException e) { /* leave value null */ } - - if (errHandler != null) - next.setErrorHandler (errHandler); - } - - /** - * Records the error handler that should be used by this stage, and - * passes it "downstream" to any subsequent stage. - */ - final public void setErrorHandler (ErrorHandler handler) - { - errHandler = handler; - if (next != null) - next.setErrorHandler (handler); - } - - /** - * Returns the error handler assigned this filter stage, or null - * if no such assigment has been made. - */ - final public ErrorHandler getErrorHandler () - { - return errHandler; - } - - - /** - * Returns the next event consumer in sequence; or null if there - * is no such handler. - */ - final public EventConsumer getNext () - { return next; } - - - /** - * Assigns the content handler to use; a null handler indicates - * that these events will not be forwarded. - * This overrides the previous settting for this handler, which was - * probably pointed to the next consumer by the base class constructor. - */ - final public void setContentHandler (ContentHandler h) - { - docHandler = h; - } - - /** Returns the content handler being used. */ - final public ContentHandler getContentHandler () - { - return docHandler; - } - - /** - * Assigns the DTD handler to use; a null handler indicates - * that these events will not be forwarded. - * This overrides the previous settting for this handler, which was - * probably pointed to the next consumer by the base class constructor. - */ - final public void setDTDHandler (DTDHandler h) - { dtdHandler = h; } - - /** Returns the dtd handler being used. */ - final public DTDHandler getDTDHandler () - { - return dtdHandler; - } - - /** - * Stores the property, normally a handler; a null handler indicates - * that these events will not be forwarded. - * This overrides the previous handler settting, which was probably - * pointed to the next consumer by the base class constructor. - */ - final public void setProperty (String id, Object o) - throws SAXNotRecognizedException, SAXNotSupportedException - { - try { - Object value = getProperty (id); - - if (value == o) - return; - if (DECL_HANDLER.equals (id)) { - declHandler = (DeclHandler) o; - return; - } - if (LEXICAL_HANDLER.equals (id)) { - lexHandler = (LexicalHandler) o; - return; - } - throw new SAXNotSupportedException (id); - - } catch (ClassCastException e) { - throw new SAXNotSupportedException (id); - } - } - - /** Retrieves a property of unknown intent (usually a handler) */ - final public Object getProperty (String id) - throws SAXNotRecognizedException - { - if (DECL_HANDLER.equals (id)) - return declHandler; - if (LEXICAL_HANDLER.equals (id)) - return lexHandler; - - throw new SAXNotRecognizedException (id); - } - - /** - * Returns any locator provided to the next consumer, if this class - * (or a subclass) is handling {@link ContentHandler } events. - */ - public Locator getDocumentLocator () - { return locator; } - - - // CONTENT HANDLER DELEGATIONS - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void setDocumentLocator (Locator locator) - { - this.locator = locator; - if (docNext != null) - docNext.setDocumentLocator (locator); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void startDocument () throws SAXException - { - if (docNext != null) - docNext.startDocument (); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void skippedEntity (String name) throws SAXException - { - if (docNext != null) - docNext.skippedEntity (name); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void processingInstruction (String target, String data) - throws SAXException - { - if (docNext != null) - docNext.processingInstruction (target, data); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void characters (char ch [], int start, int length) - throws SAXException - { - if (docNext != null) - docNext.characters (ch, start, length); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void ignorableWhitespace (char ch [], int start, int length) - throws SAXException - { - if (docNext != null) - docNext.ignorableWhitespace (ch, start, length); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void startPrefixMapping (String prefix, String uri) - throws SAXException - { - if (docNext != null) - docNext.startPrefixMapping (prefix, uri); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void startElement ( - String uri, String localName, - String qName, Attributes atts - ) throws SAXException - { - if (docNext != null) - docNext.startElement (uri, localName, qName, atts); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void endElement (String uri, String localName, String qName) - throws SAXException - { - if (docNext != null) - docNext.endElement (uri, localName, qName); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void endPrefixMapping (String prefix) throws SAXException - { - if (docNext != null) - docNext.endPrefixMapping (prefix); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void endDocument () throws SAXException - { - if (docNext != null) - docNext.endDocument (); - locator = null; - } - - - // DTD HANDLER DELEGATIONS - - /** <b>SAX1:</b> passes this callback to the next consumer, if any */ - public void unparsedEntityDecl ( - String name, - String publicId, - String systemId, - String notationName - ) throws SAXException - { - if (dtdNext != null) - dtdNext.unparsedEntityDecl (name, publicId, systemId, notationName); - } - - /** <b>SAX1:</b> passes this callback to the next consumer, if any */ - public void notationDecl (String name, String publicId, String systemId) - throws SAXException - { - if (dtdNext != null) - dtdNext.notationDecl (name, publicId, systemId); - } - - - // LEXICAL HANDLER DELEGATIONS - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void startDTD (String name, String publicId, String systemId) - throws SAXException - { - if (lexNext != null) - lexNext.startDTD (name, publicId, systemId); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void endDTD () - throws SAXException - { - if (lexNext != null) - lexNext.endDTD (); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void comment (char ch [], int start, int length) - throws SAXException - { - if (lexNext != null) - lexNext.comment (ch, start, length); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void startCDATA () - throws SAXException - { - if (lexNext != null) - lexNext.startCDATA (); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void endCDATA () - throws SAXException - { - if (lexNext != null) - lexNext.endCDATA (); - } - - /** - * <b>SAX2:</b> passes this callback to the next consumer, if any. - */ - public void startEntity (String name) - throws SAXException - { - if (lexNext != null) - lexNext.startEntity (name); - } - - /** - * <b>SAX2:</b> passes this callback to the next consumer, if any. - */ - public void endEntity (String name) - throws SAXException - { - if (lexNext != null) - lexNext.endEntity (name); - } - - - // DECLARATION HANDLER DELEGATIONS - - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void elementDecl (String name, String model) - throws SAXException - { - if (declNext != null) - declNext.elementDecl (name, model); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void attributeDecl (String eName, String aName, - String type, String mode, String value) - throws SAXException - { - if (declNext != null) - declNext.attributeDecl (eName, aName, type, mode, value); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void externalEntityDecl (String name, - String publicId, String systemId) - throws SAXException - { - if (declNext != null) - declNext.externalEntityDecl (name, publicId, systemId); - } - - /** <b>SAX2:</b> passes this callback to the next consumer, if any */ - public void internalEntityDecl (String name, String value) - throws SAXException - { - if (declNext != null) - declNext.internalEntityDecl (name, value); - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/LinkFilter.java b/external/jaxp/source/gnu/xml/pipeline/LinkFilter.java deleted file mode 100644 index 811fc0300..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/LinkFilter.java +++ /dev/null @@ -1,232 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.io.IOException; -import java.net.URL; -import java.util.Enumeration; -import java.util.Vector; - -import org.xml.sax.Attributes; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; - - -/** - * Pipeline filter to remember XHTML links found in a document, - * so they can later be crawled. Fragments are not counted, and duplicates - * are ignored. Callers are responsible for filtering out URLs they aren't - * interested in. Events are passed through unmodified. - * - * <p> Input MUST include a setDocumentLocator() call, as it's used to - * resolve relative links in the absence of a "base" element. Input MUST - * also include namespace identifiers, since it is the XHTML namespace - * identifier which is used to identify the relevant elements. - * - * <p><em>FIXME:</em> handle xml:base attribute ... in association with - * a stack of base URIs. Similarly, recognize/support XLink data. - * - * @author David Brownell - */ -public class LinkFilter extends EventFilter -{ - // for storing URIs - private Vector vector = new Vector (); - - // struct for "full" link record (tbd) - // these for troubleshooting original source: - // original uri - // uri as resolved (base, relative, etc) - // URI of originating doc - // line # - // original element + attrs (img src, desc, etc) - - // XLink model of the link ... for inter-site pairups ? - - private String baseURI; - - private boolean siteRestricted = false; - - // - // XXX leverage blacklist info (like robots.txt) - // - // XXX constructor w/param ... pipeline for sending link data - // probably XHTML --> XLink, providing info as sketched above - // - - - /** - * Constructs a new event filter, which collects links in private data - * structure for later enumeration. - */ - // constructor used by PipelineFactory - public LinkFilter () - { - super.setContentHandler (this); - } - - - /** - * Constructs a new event filter, which collects links in private data - * structure for later enumeration and passes all events, unmodified, - * to the next consumer. - */ - // constructor used by PipelineFactory - public LinkFilter (EventConsumer next) - { - super (next); - super.setContentHandler (this); - } - - - /** - * Returns an enumeration of the links found since the filter - * was constructed, or since removeAllLinks() was called. - * - * @return enumeration of strings. - */ - public Enumeration getLinks () - { - return vector.elements (); - } - - /** - * Removes records about all links reported to the event - * stream, as if the filter were newly created. - */ - public void removeAllLinks () - { - vector = new Vector (); - } - - - /** - * Collects URIs for (X)HTML content from elements which hold them. - */ - public void startElement ( - String uri, - String localName, - String qName, - Attributes atts - ) throws SAXException - { - String link; - - // Recognize XHTML links. - if ("http://www.w3.org/1999/xhtml".equals (uri)) { - - if ("a".equals (localName) || "base".equals (localName) - || "area".equals (localName)) - link = atts.getValue ("href"); - else if ("iframe".equals (localName) || "frame".equals (localName)) - link = atts.getValue ("src"); - else if ("blockquote".equals (localName) || "q".equals (localName) - || "ins".equals (localName) || "del".equals (localName)) - link = atts.getValue ("cite"); - else - link = null; - link = maybeAddLink (link); - - // "base" modifies designated baseURI - if ("base".equals (localName) && link != null) - baseURI = link; - - if ("iframe".equals (localName) || "img".equals (localName)) - maybeAddLink (atts.getValue ("longdesc")); - } - - super.startElement (uri, localName, qName, atts); - } - - private String maybeAddLink (String link) - { - int index; - - // ignore empty links and fragments inside docs - if (link == null) - return null; - if ((index = link.indexOf ("#")) >= 0) - link = link.substring (0, index); - if (link.equals ("")) - return null; - - try { - // get the real URI - URL base = new URL ((baseURI != null) - ? baseURI - : getDocumentLocator ().getSystemId ()); - URL url = new URL (base, link); - - link = url.toString (); - - // ignore duplicates - if (vector.contains (link)) - return link; - - // other than what "base" does, stick to original site: - if (siteRestricted) { - // don't switch protocols - if (!base.getProtocol ().equals (url.getProtocol ())) - return link; - // don't switch servers - if (base.getHost () != null - && !base.getHost ().equals (url.getHost ())) - return link; - } - - vector.addElement (link); - - return link; - - } catch (IOException e) { - // bad URLs we don't want - } - return null; - } - - /** - * Reports an error if no Locator has been made available. - */ - public void startDocument () - throws SAXException - { - if (getDocumentLocator () == null) - throw new SAXException ("no Locator!"); - } - - /** - * Forgets about any base URI information that may be recorded. - * Applications will often want to call removeAllLinks(), likely - * after examining the links which were reported. - */ - public void endDocument () - throws SAXException - { - baseURI = null; - super.endDocument (); - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/NSFilter.java b/external/jaxp/source/gnu/xml/pipeline/NSFilter.java deleted file mode 100644 index a93ab43e0..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/NSFilter.java +++ /dev/null @@ -1,329 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.util.EmptyStackException; -import java.util.Enumeration; -import java.util.Stack; - -import org.xml.sax.*; -import org.xml.sax.ext.*; -import org.xml.sax.helpers.AttributesImpl; -import org.xml.sax.helpers.NamespaceSupport; - - -/** - * This filter ensures that element and attribute names are properly prefixed, - * and that such prefixes are declared. Such data is critical for operations - * like writing XML text, and validating against DTDs: names or their prefixes - * may have been discarded, although they are essential to the exchange of - * information using XML. There are various common ways that such data - * gets discarded: <ul> - * - * <li> By default, SAX2 parsers must discard the "xmlns*" - * attributes, and may also choose not to report properly prefixed - * names for elements or attributes. (Some parsers may support - * changing the <em>namespace-prefixes</em> value from the default - * to <em>true</em>, effectively eliminating the need to use this - * filter on their output.) - * - * <li> When event streams are generated from a DOM tree, they may - * have never have had prefixes or declarations for namespaces; or - * the existing prefixes or declarations may have been invalidated - * by structural modifications to that DOM tree. - * - * <li> Other software writing SAX event streams won't necessarily - * be worrying about prefix management, and so they will need to - * have a transparent solution for managing them. - * - * </ul> - * - * <p> This filter uses a heuristic to choose the prefix to assign to any - * particular name which wasn't already corectly prefixed. The associated - * namespace will be correct, and the prefix will be declared. Original - * structures facilitating text editing, such as conventions about use of - * mnemonic prefix names or the scoping of prefixes, can't always be - * reconstructed after they are discarded, as strongly encouraged by the - * current SAX2 defaults. - * - * <p> Note that this can't possibly know whether values inside attribute - * value or document content involve prefixed names. If your application - * requires using prefixed names in such locations you'll need to add some - * appropriate logic (perhaps adding additional heuristics in a subclass). - * - * @author David Brownell - */ -public class NSFilter extends EventFilter -{ - private NamespaceSupport nsStack = new NamespaceSupport (); - private Stack elementStack = new Stack (); - - private boolean pushedContext; - private String nsTemp [] = new String [3]; - private AttributesImpl attributes = new AttributesImpl (); - private boolean usedDefault; - - // gensymmed prefixes use this root name - private static final String prefixRoot = "prefix-"; - - - /** - * Passes events through to the specified consumer, after first - * processing them. - * - * @param next the next event consumer to receive events. - */ - // constructor used by PipelineFactory - public NSFilter (EventConsumer next) - { - super (next); - - setContentHandler (this); - } - - private void fatalError (String message) - throws SAXException - { - SAXParseException e; - ErrorHandler handler = getErrorHandler (); - Locator locator = getDocumentLocator (); - - if (locator == null) - e = new SAXParseException (message, null, null, -1, -1); - else - e = new SAXParseException (message, locator); - if (handler != null) - handler.fatalError (e); - throw e; - } - - - public void startDocument () throws SAXException - { - elementStack.removeAllElements (); - nsStack.reset (); - pushedContext = false; - super.startDocument (); - } - - /** - * This call is not passed to the next consumer in the chain. - * Prefix declarations and scopes are only exposed in the form - * of attributes; this callback just records a declaration that - * will be exposed as an attribute. - */ - public void startPrefixMapping (String prefix, String uri) - throws SAXException - { - if (pushedContext == false) { - nsStack.pushContext (); - pushedContext = true; - } - - // this check is awkward, but the paranoia prevents big trouble - for (Enumeration e = nsStack.getDeclaredPrefixes (); - e.hasMoreElements (); - /* NOP */ ) { - String declared = (String) e.nextElement (); - - if (!declared.equals (prefix)) - continue; - if (uri.equals (nsStack.getURI (prefix))) - return; - fatalError ("inconsistent binding for prefix '" + prefix - + "' ... " + uri + " (was " + nsStack.getURI (prefix) + ")"); - } - - if (!nsStack.declarePrefix (prefix, uri)) - fatalError ("illegal prefix declared: " + prefix); - } - - private String fixName (String ns, String l, String name, boolean isAttr) - throws SAXException - { - if ("".equals (name) || name == null) { - name = l; - if ("".equals (name) || name == null) - fatalError ("empty/null name"); - } - - // can we correctly process the name as-is? - // handles "element scope" attribute names here. - if (nsStack.processName (name, nsTemp, isAttr) != null - && nsTemp [0].equals (ns) - ) { - return nsTemp [2]; - } - - // nope, gotta modify the name or declare a default mapping - int temp; - - // get rid of any current prefix - if ((temp = name.indexOf (':')) >= 0) { - name = name.substring (temp + 1); - - // ... maybe that's enough (use/prefer default namespace) ... - if (!isAttr && nsStack.processName (name, nsTemp, false) != null - && nsTemp [0].equals (ns) - ) { - return nsTemp [2]; - } - } - - // must we define and use the default/undefined prefix? - if ("".equals (ns)) { - if (isAttr) - fatalError ("processName bug"); - if (attributes.getIndex ("xmlns") != -1) - fatalError ("need to undefine default NS, but it's bound: " - + attributes.getValue ("xmlns")); - - nsStack.declarePrefix ("", ""); - attributes.addAttribute ("", "", "xmlns", "CDATA", ""); - return name; - } - - // is there at least one non-null prefix we can use? - for (Enumeration e = nsStack.getDeclaredPrefixes (); - e.hasMoreElements (); - /* NOP */) { - String prefix = (String) e.nextElement (); - String uri = nsStack.getURI (prefix); - - if (uri == null || !uri.equals (ns)) - continue; - return prefix + ":" + name; - } - - // no such luck. create a prefix name, declare it, use it. - for (temp = 0; temp >= 0; temp++) { - String prefix = prefixRoot + temp; - - if (nsStack.getURI (prefix) == null) { - nsStack.declarePrefix (prefix, ns); - attributes.addAttribute ("", "", "xmlns:" + prefix, - "CDATA", ns); - return prefix + ":" + name; - } - } - fatalError ("too many prefixes genned"); - // NOTREACHED - return null; - } - - public void startElement ( - String uri, String localName, - String qName, Attributes atts - ) throws SAXException - { - if (!pushedContext) - nsStack.pushContext (); - pushedContext = false; - - // make sure we have all NS declarations handy before we start - int length = atts.getLength (); - - for (int i = 0; i < length; i++) { - String aName = atts.getQName (i); - - if (!aName.startsWith ("xmlns")) - continue; - - String prefix; - - if ("xmlns".equals (aName)) - prefix = ""; - else if (aName.indexOf (':') == 5) - prefix = aName.substring (6); - else // "xmlnsfoo" etc. - continue; - startPrefixMapping (prefix, atts.getValue (i)); - } - - // put namespace decls at the start of our regenned attlist - attributes.clear (); - for (Enumeration e = nsStack.getDeclaredPrefixes (); - e.hasMoreElements (); - /* NOP */) { - String prefix = (String) e.nextElement (); - - attributes.addAttribute ("", "", - ("".equals (prefix) - ? "xmlns" - : "xmlns:" + prefix), - "CDATA", - nsStack.getURI (prefix)); - } - - // name fixups: element, then attributes. - // fixName may declare a new prefix or, for the element, - // redeclare the default (if element name needs it). - qName = fixName (uri, localName, qName, false); - - for (int i = 0; i < length; i++) { - String aName = atts.getQName (i); - String aNS = atts.getURI (i); - String aLocal = atts.getLocalName (i); - String aType = atts.getType (i); - String aValue = atts.getValue (i); - - if (aName.startsWith ("xmlns")) - continue; - aName = fixName (aNS, aLocal, aName, true); - attributes.addAttribute (aNS, aLocal, aName, aType, aValue); - } - - elementStack.push (qName); - - // pass event along, with cleaned-up names and decls. - super.startElement (uri, localName, qName, attributes); - } - - public void endElement (String uri, String localName, String qName) - throws SAXException - { - nsStack.popContext (); - qName = (String) elementStack.pop (); - super.endElement (uri, localName, qName); - } - - /** - * This call is not passed to the next consumer in the chain. - * Prefix declarations and scopes are only exposed in their - * attribute form. - */ - public void endPrefixMapping (String prefix) - throws SAXException - { } - - public void endDocument () throws SAXException - { - elementStack.removeAllElements (); - nsStack.reset (); - super.endDocument (); - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/PipelineFactory.java b/external/jaxp/source/gnu/xml/pipeline/PipelineFactory.java deleted file mode 100644 index 27c25df62..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/PipelineFactory.java +++ /dev/null @@ -1,712 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.io.File; -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.lang.reflect.Constructor; -import java.util.StringTokenizer; - -import org.xml.sax.*; -import org.xml.sax.ext.*; - - -/** - * This provides static factory methods for creating simple event pipelines. - * These pipelines are specified by strings, suitable for passing on - * command lines or embedding in element attributes. For example, one way - * to write a pipeline that restores namespace syntax, validates (stopping - * the pipeline on validity errors) and then writes valid data to standard - * output is this: <pre> - * nsfix | validate | write ( stdout )</pre> - * - * <p> In this syntax, the tokens are always separated by whitespace, and each - * stage of the pipeline may optionally have a parameter (which can be a - * pipeline) in parentheses. Interior stages are called filters, and the - * rightmost end of a pipeline is called a terminus. - * - * <p> Stages are usually implemented by a single class, which may not be - * able to act as both a filter and a terminus; but any terminus can be - * automatically turned into a filter, through use of a {@link TeeConsumer}. - * The stage identifiers are either class names, or are one of the following - * short identifiers built into this class. (Most of these identifiers are - * no more than aliases for classes.) The built-in identifiers include:</p> - - <table border="1" cellpadding="3" cellspacing="0"> - <tr bgcolor="#ccccff" class="TableHeadingColor"> - <th align="center" width="5%">Stage</th> - <th align="center" width="9%">Parameter</th> - <th align="center" width="1%">Terminus</th> - <th align="center">Description</th> - </tr> - - <tr valign="top" align="center"> - <td><a href="../dom/Consumer.html">dom</a></td> - <td><em>none</em></td> - <td> yes </td> - <td align="left"> Applications code can access a DOM Document built - from the input event stream. When used as a filter, this buffers - data up to an <em>endDocument</em> call, and then uses a DOM parser - to report everything that has been recorded (which can easily be - less than what was reported to it). </td> - </tr> - <tr valign="top" align="center"> - <td><a href="NSFilter.html">nsfix</a></td> - <td><em>none</em></td> - <td>no</td> - <td align="left">This stage ensures that the XML element and attribute - names in its output use namespace prefixes and declarations correctly. - That is, so that they match the "Namespace plus LocalName" naming data - with which each XML element and attribute is already associated. </td> - </tr> - <tr valign="top" align="center"> - <td><a href="EventFilter.html">null</a></td> - <td><em>none</em></td> - <td>yes</td> - <td align="left">This stage ignores all input event data.</td> - </tr> - <tr valign="top" align="center"> - <td><a href="CallFilter.html">server</a></td> - <td><em>required</em><br> server URL </td> - <td>no</td> - <td align="left">Sends its input as XML request to a remote server, - normally a web application server using the HTTP or HTTPS protocols. - The output of this stage is the parsed response from that server.</td> - </tr> - <tr valign="top" align="center"> - <td><a href="TeeConsumer.html">tee</a></td> - <td><em>required</em><br> first pipeline</td> - <td>no</td> - <td align="left">This sends its events down two paths; its parameter - is a pipeline descriptor for the first path, and the second path - is the output of this stage.</td> - </tr> - - <tr valign="top" align="center"> - <td><a href="ValidationConsumer.html">validate</a></td> - <td><em>none</em></td> - <td>yes</td> - <td align="left">This checks for validity errors, and reports them - through its error handler. The input must include declaration events - and some lexical events. </td> - </tr> - <tr valign="top" align="center"> - <td><a href="WellFormednessFilter.html">wf</a></td> - <td><em>none</em></td> - <td>yes</td> - <td align="left"> This class provides some basic "well formedness" - tests on the input event stream, and reports a fatal error if any - of them fail. One example: start/end calls for elements must match. - No SAX parser is permitted to produce malformed output, but other - components can easily do so.</td> - </tr> - <tr valign="top" align="center"> - <td>write</td> - <td><em>required</em><br> "stdout", "stderr", or filename</td> - <td>yes</td> - <td align="left"> Writes its input to the specified output, as pretty - printed XML text encoded using UTF-8. Input events must be well - formed and "namespace fixed", else the output won't be XML (or possibly - namespace) conformant. The symbolic names represent - <em>System.out</em> and <em>System.err</em> respectively; names must - correspond to files which don't yet exist.</td> - </tr> - <tr valign="top" align="center"> - <td>xhtml</td> - <td><em>required</em><br> "stdout", "stderr", or filename</td> - <td>yes</td> - <td align="left"> Like <em>write</em> (above), except that XHTML rules - are followed. The XHTML 1.0 Transitional document type is declared, - and only ASCII characters are written (for interoperability). Other - characters are written as entity or character references; the text is - pretty printed.</td> - </tr> - <tr valign="top" align="center"> - <td><a href="XIncludeFilter.html">xinclude</a></td> - <td><em>none</em></td> - <td>no</td> - <td align="left">This stage handles XInclude processing. - This is like entity inclusion, except that the included content - is declared in-line rather than in the DTD at the beginning of - a document. - </td> - </tr> - <tr valign="top" align="center"> - <td><a href="XsltFilter.html">xslt</a></td> - <td><em>required</em><br> XSLT stylesheet URI</td> - <td>no</td> - <td align="left">This stage handles XSLT transformation - according to a stylesheet. - The implementation of the transformation may not actually - stream data, although if such an XSLT engine is in use - then that can happen. - </td> - </tr> - - </table> - - * <p> Note that {@link EventFilter#bind} can automatically eliminate - * some filters by setting SAX2 parser features appropriately. This means - * that you can routinely put filters like "nsfix", "validate", or "wf" at the - * front of a pipeline (for components that need inputs conditioned to match - * that level of correctness), and know that it won't actually be used unless - * it's absolutely necessary. - * - * @author David Brownell - */ -public class PipelineFactory -{ - /** - * Creates a simple pipeline according to the description string passed in. - */ - public static EventConsumer createPipeline (String description) - throws IOException - { - return createPipeline (description, null); - } - - /** - * Extends an existing pipeline by prepending the filter pipeline to the - * specified consumer. Some pipelines need more customization than can - * be done through this simplified syntax. When they are set up with - * direct API calls, use this method to merge more complex pipeline - * segments with easily configured ones. - */ - public static EventConsumer createPipeline ( - String description, - EventConsumer next - ) throws IOException - { - // tokens are (for now) what's separated by whitespace; - // very easy to parse, but IDs never have spaces. - - StringTokenizer tokenizer; - String tokens []; - - tokenizer = new StringTokenizer (description); - tokens = new String [tokenizer.countTokens ()]; - for (int i = 0; i < tokens.length; i++) - tokens [i] = tokenizer.nextToken (); - - PipelineFactory factory = new PipelineFactory (); - Pipeline pipeline = factory.parsePipeline (tokens, next); - - return pipeline.createPipeline (); - } - - - private PipelineFactory () { /* NYET */ } - - - /** - * Extends an existing pipeline by prepending a pre-tokenized filter - * pipeline to the specified consumer. Tokens are class names (or the - * predefined aliases) left and right parenthesis, and the vertical bar. - */ - public static EventConsumer createPipeline ( - String tokens [], - EventConsumer next - ) throws IOException - { - PipelineFactory factory = new PipelineFactory (); - Pipeline pipeline = factory.parsePipeline (tokens, next); - - return pipeline.createPipeline (); - } - - - private String tokens []; - private int index; - - private Pipeline parsePipeline (String toks [], EventConsumer next) - { - tokens = toks; - index = 0; - - Pipeline retval = parsePipeline (next); - - if (index != toks.length) - throw new ArrayIndexOutOfBoundsException ( - "extra token: " + tokens [index]); - return retval; - } - - // pipeline ::= stage | stage '|' pipeline - private Pipeline parsePipeline (EventConsumer next) - { - Pipeline retval = new Pipeline (parseStage ()); - - // minimal pipelines: "stage" and "... | id" - if (index > (tokens.length - 2) - || !"|".equals (tokens [index]) - ) { - retval.next = next; - return retval; - } - index++; - retval.rest = parsePipeline (next); - return retval; - } - - // stage ::= id | id '(' pipeline ')' - private Stage parseStage () - { - Stage retval = new Stage (tokens [index++]); - - // minimal stages: "id" and "id ( id )" - if (index > (tokens.length - 2) - || !"(".equals (tokens [index]) /*)*/ - ) - return retval; - - index++; - retval.param = parsePipeline (null); - if (index >= tokens.length) - throw new ArrayIndexOutOfBoundsException ( - "missing right paren"); - if (/*(*/ !")".equals (tokens [index++])) - throw new ArrayIndexOutOfBoundsException ( - "required right paren, not: " + tokens [index - 1]); - return retval; - } - - - // - // these classes obey the conventions for constructors, so they're - // only built in to this table of shortnames - // - // - filter (one or two types of arglist) - // * last constructor is 'next' element - // * optional (first) string parameter - // - // - terminus (one or types of arglist) - // * optional (only) string parameter - // - // terminus stages are transformed into filters if needed, by - // creating a "tee". filter stages aren't turned to terminus - // stages though; either eliminate such stages, or add some - // terminus explicitly. - // - private static final String builtinStages [][] = { - { "dom", "gnu.xml.dom.Consumer" }, - { "nsfix", "gnu.xml.pipeline.NSFilter" }, - { "null", "gnu.xml.pipeline.EventFilter" }, - { "server", "gnu.xml.pipeline.CallFilter" }, - { "tee", "gnu.xml.pipeline.TeeConsumer" }, - { "validate", "gnu.xml.pipeline.ValidationConsumer" }, - { "wf", "gnu.xml.pipeline.WellFormednessFilter" }, - { "xinclude", "gnu.xml.pipeline.XIncludeFilter" }, - { "xslt", "gnu.xml.pipeline.XsltFilter" }, - -// XXX want: option for validate, to preload external part of a DTD - - // xhtml, write ... nyet generic-ready - }; - - private static class Stage - { - String id; - Pipeline param; - - Stage (String name) - { id = name; } - - public String toString () - { - if (param == null) - return id; - return id + " ( " + param + " )"; - } - - private void fail (String message) - throws IOException - { - throw new IOException ("in '" + id - + "' stage of pipeline, " + message); - } - - EventConsumer createStage (EventConsumer next) - throws IOException - { - String name = id; - - // most builtins are just class aliases - for (int i = 0; i < builtinStages.length; i++) { - if (id.equals (builtinStages [i][0])) { - name = builtinStages [i][1]; - break; - } - } - - // Save output as XML or XHTML text - if ("write".equals (name) || "xhtml".equals (name)) { - String filename; - boolean isXhtml = "xhtml".equals (name); - OutputStream out = null; - TextConsumer consumer; - - if (param == null) - fail ("parameter is required"); - - filename = param.toString (); - if ("stdout".equals (filename)) - out = System.out; - else if ("stderr".equals (filename)) - out = System.err; - else { - File f = new File (filename); - -/* - if (!f.isAbsolute ()) - fail ("require absolute file paths"); - */ - if (f.exists ()) - fail ("file already exists: " + f.getName ()); - -// XXX this races against the existence test - out = new FileOutputStream (f); - } - - if (!isXhtml) - consumer = new TextConsumer (out); - else - consumer = new TextConsumer ( - new OutputStreamWriter (out, "8859_1"), - true); - - consumer.setPrettyPrinting (true); - if (next == null) - return consumer; - return new TeeConsumer (consumer, next); - - } else { - // - // Here go all the builtins that are just aliases for - // classes, and all stage IDs that started out as such - // class names. The following logic relies on several - // documented conventions for constructor invocation. - // - String msg = null; - - try { - Class klass = Class.forName (name); - Class argTypes [] = null; - Constructor constructor = null; - boolean filter = false; - Object params [] = null; - Object obj = null; - - // do we need a filter stage? - if (next != null) { - // "next" consumer is always passed, with - // or without the optional string param - if (param == null) { - argTypes = new Class [1]; - argTypes [0] = EventConsumer.class; - - params = new Object [1]; - params [0] = next; - - msg = "no-param filter"; - } else { - argTypes = new Class [2]; - argTypes [0] = String.class; - argTypes [1] = EventConsumer.class; - - params = new Object [2]; - params [0] = param.toString (); - params [1] = next; - - msg = "one-param filter"; - } - - - try { - constructor = klass.getConstructor (argTypes); - } catch (NoSuchMethodException e) { - // try creating a filter from a - // terminus and a tee - filter = true; - msg += " built from "; - } - } - - // build from a terminus stage, with or - // without the optional string param - if (constructor == null) { - String tmp; - - if (param == null) { - argTypes = new Class [0]; - params = new Object [0]; - - tmp = "no-param terminus"; - } else { - argTypes = new Class [1]; - argTypes [0] = String.class; - - params = new Object [1]; - params [0] = param.toString (); - - tmp = "one-param terminus"; - } - if (msg == null) - msg = tmp; - else - msg += tmp; - constructor = klass.getConstructor (argTypes); - // NOT creating terminus by dead-ending - // filters ... users should think about - // that one, something's likely wrong - } - - obj = constructor.newInstance (params); - - // return EventConsumers directly, perhaps after - // turning them into a filter - if (obj instanceof EventConsumer) { - if (filter) - return new TeeConsumer ((EventConsumer) obj, next); - return (EventConsumer) obj; - } - - // if it's not a handler, it's an error - // we can wrap handlers in a filter - EventFilter retval = new EventFilter (); - boolean updated = false; - - if (obj instanceof ContentHandler) { - retval.setContentHandler ((ContentHandler) obj); - updated = true; - } - if (obj instanceof DTDHandler) { - retval.setDTDHandler ((DTDHandler) obj); - updated = true; - } - if (obj instanceof LexicalHandler) { - retval.setProperty ( - EventFilter.PROPERTY_URI + "lexical-handler", - obj); - updated = true; - } - if (obj instanceof DeclHandler) { - retval.setProperty ( - EventFilter.PROPERTY_URI + "declaration-handler", - obj); - updated = true; - } - - if (!updated) - fail ("class is neither Consumer nor Handler"); - - if (filter) - return new TeeConsumer (retval, next); - return retval; - - } catch (IOException e) { - throw e; - - } catch (NoSuchMethodException e) { - fail (name + " constructor missing -- " + msg); - - } catch (ClassNotFoundException e) { - fail (name + " class not found"); - - } catch (Exception e) { - // e.printStackTrace (); - fail ("stage not available: " + e.getMessage ()); - } - } - // NOTREACHED - return null; - } - } - - private static class Pipeline - { - Stage stage; - - // rest may be null - Pipeline rest; - EventConsumer next; - - Pipeline (Stage s) - { stage = s; } - - public String toString () - { - if (rest == null && next == null) - return stage.toString (); - if (rest != null) - return stage + " | " + rest; - throw new IllegalArgumentException ("next"); - } - - EventConsumer createPipeline () - throws IOException - { - if (next == null) { - if (rest == null) - next = stage.createStage (null); - else - next = stage.createStage (rest.createPipeline ()); - } - return next; - } - } - -/* - public static void main (String argv []) - { - try { - // three basic terminus cases - createPipeline ("null"); - createPipeline ("validate"); - createPipeline ("write ( stdout )"); - - // four basic filters - createPipeline ("nsfix | write ( stderr )"); - createPipeline ("wf | null"); - createPipeline ("null | null"); - createPipeline ( -"call ( http://www.example.com/services/xml-1a ) | xhtml ( stdout )"); - - // tee junctions - createPipeline ("tee ( validate ) | write ( stdout )"); - createPipeline ("tee ( nsfix | write ( stdout ) ) | validate"); - - // longer pipeline - createPipeline ("nsfix | tee ( validate ) | write ( stdout )"); - createPipeline ( - "null | wf | nsfix | tee ( validate ) | write ( stdout )"); - - // try some parsing error cases - try { - createPipeline ("null ("); // extra token '(' - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - - try { - createPipeline ("nsfix |"); // extra token '|' - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - - try { - createPipeline ("xhtml ( foo"); // missing right paren - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - - try { - createPipeline ("xhtml ( foo bar"); // required right paren - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - - try { - createPipeline ("tee ( nsfix | validate");// missing right paren - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - - // try some construction error cases - - try { - createPipeline ("call"); // missing param - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - createPipeline ("call ( foobar )"); // broken param - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - createPipeline ("nsfix ( foobar )"); // illegal param - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - createPipeline ("null ( foobar )"); // illegal param - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - createPipeline ("wf ( foobar )"); // illegal param - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - createPipeline ("xhtml ( foobar.html )"); - new File ("foobar.html").delete (); - // now supported - } catch (Exception e) { - System.err.println ("** err: " + e.getMessage ()); } - try { - createPipeline ("xhtml"); // missing param - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - createPipeline ("write ( stdout ) | null"); // nonterminal - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - createPipeline ("validate | null"); - // now supported - } catch (Exception e) { - System.err.println ("** err: " + e.getMessage ()); } - try { - createPipeline ("validate ( foo )"); // illegal param - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - createPipeline ("tee"); // missing param - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - try { - // only builtins so far - createPipeline ("com.example.xml.FilterClass"); - System.err.println ("** didn't report error"); - } catch (Exception e) { - System.err.println ("== err: " + e.getMessage ()); } - - } catch (Exception e) { - e.printStackTrace (); - } - } -/**/ - -} diff --git a/external/jaxp/source/gnu/xml/pipeline/TeeConsumer.java b/external/jaxp/source/gnu/xml/pipeline/TeeConsumer.java deleted file mode 100644 index 1ed689393..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/TeeConsumer.java +++ /dev/null @@ -1,402 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.io.IOException; -import org.xml.sax.*; -import org.xml.sax.ext.*; -//import gnu.xml.util; - - -/** - * Fans its events out to two other consumers, a "tee" filter stage in an - * event pipeline. Networks can be assembled with multiple output points. - * - * <p> Error handling should be simple if you remember that exceptions - * you throw will cancel later stages in that callback's pipeline, and - * generally the producer will stop if it sees such an exception. You - * may want to protect your pipeline against such backflows, making a - * kind of reverse filter (or valve?) so that certain exceptions thrown by - * your pipeline will caught and handled before the producer sees them. - * Just use a "try/catch" block, rememebering that really important - * cleanup tasks should be in "finally" clauses. - * - * <p> That issue isn't unique to "tee" consumers, but tee consumers have - * the additional twist that exceptions thrown by the first consumer - * will cause the second consumer not to see the callback (except for - * the endDocument callback, which signals state cleanup). - * - * @author David Brownell - */ -final public class TeeConsumer - implements EventConsumer, - ContentHandler, DTDHandler, - LexicalHandler,DeclHandler -{ - private EventConsumer first, rest; - - // cached to minimize time overhead - private ContentHandler docFirst, docRest; - private DeclHandler declFirst, declRest; - private LexicalHandler lexFirst, lexRest; - - - /** - * Constructs a consumer which sends all its events to the first - * consumer, and then the second one. If the first consumer throws - * an exception, the second one will not see the event which - * caused that exception to be reported. - * - * @param car The first consumer to get the events - * @param cdr The second consumer to get the events - */ - public TeeConsumer (EventConsumer car, EventConsumer cdr) - { - if (car == null || cdr == null) - throw new NullPointerException (); - first = car; - rest = cdr; - - // - // Cache the handlers. - // - docFirst = first.getContentHandler (); - docRest = rest.getContentHandler (); - // DTD handler isn't cached (rarely needed) - - try { - declFirst = null; - declFirst = (DeclHandler) first.getProperty ( - EventFilter.DECL_HANDLER); - } catch (SAXException e) {} - try { - declRest = null; - declRest = (DeclHandler) rest.getProperty ( - EventFilter.DECL_HANDLER); - } catch (SAXException e) {} - - try { - lexFirst = null; - lexFirst = (LexicalHandler) first.getProperty ( - EventFilter.LEXICAL_HANDLER); - } catch (SAXException e) {} - try { - lexRest = null; - lexRest = (LexicalHandler) rest.getProperty ( - EventFilter.LEXICAL_HANDLER); - } catch (SAXException e) {} - } - -/* FIXME - /** - * Constructs a pipeline, and is otherwise a shorthand for the - * two-consumer constructor for this class. - * - * @param first Description of the first pipeline to get events, - * which will be passed to {@link PipelineFactory#createPipeline} - * @param rest The second pipeline to get the events - * / - // constructor used by PipelineFactory - public TeeConsumer (String first, EventConsumer rest) - throws IOException - { - this (PipelineFactory.createPipeline (first), rest); - } -*/ - - /** Returns the first pipeline to get event calls. */ - public EventConsumer getFirst () - { return first; } - - /** Returns the second pipeline to get event calls. */ - public EventConsumer getRest () - { return rest; } - - /** Returns the content handler being used. */ - final public ContentHandler getContentHandler () - { - if (docRest == null) - return docFirst; - if (docFirst == null) - return docRest; - return this; - } - - /** Returns the dtd handler being used. */ - final public DTDHandler getDTDHandler () - { - // not cached (hardly used) - if (rest.getDTDHandler () == null) - return first.getDTDHandler (); - if (first.getDTDHandler () == null) - return rest.getDTDHandler (); - return this; - } - - /** Returns the declaration or lexical handler being used. */ - final public Object getProperty (String id) - throws SAXNotRecognizedException - { - // - // in degenerate cases, we have no work to do. - // - Object firstProp = null, restProp = null; - - try { firstProp = first.getProperty (id); } - catch (SAXNotRecognizedException e) { /* ignore */ } - try { restProp = rest.getProperty (id); } - catch (SAXNotRecognizedException e) { /* ignore */ } - - if (restProp == null) - return firstProp; - if (firstProp == null) - return restProp; - - // - // we've got work to do; handle two builtin cases. - // - if (EventFilter.DECL_HANDLER.equals (id)) - return this; - if (EventFilter.LEXICAL_HANDLER.equals (id)) - return this; - - // - // non-degenerate, handled by both consumers, but we don't know - // how to handle this. - // - throw new SAXNotRecognizedException ("can't tee: " + id); - } - - /** - * Provides the error handler to both subsequent nodes of - * this filter stage. - */ - public void setErrorHandler (ErrorHandler handler) - { - first.setErrorHandler (handler); - rest.setErrorHandler (handler); - } - - - // - // ContentHandler - // - public void setDocumentLocator (Locator locator) - { - // this call is not made by all parsers - docFirst.setDocumentLocator (locator); - docRest.setDocumentLocator (locator); - } - - public void startDocument () - throws SAXException - { - docFirst.startDocument (); - docRest.startDocument (); - } - - public void endDocument () - throws SAXException - { - try { - docFirst.endDocument (); - } finally { - docRest.endDocument (); - } - } - - public void startPrefixMapping (String prefix, String uri) - throws SAXException - { - docFirst.startPrefixMapping (prefix, uri); - docRest.startPrefixMapping (prefix, uri); - } - - public void endPrefixMapping (String prefix) - throws SAXException - { - docFirst.endPrefixMapping (prefix); - docRest.endPrefixMapping (prefix); - } - - public void skippedEntity (String name) - throws SAXException - { - docFirst.skippedEntity (name); - docRest.skippedEntity (name); - } - - public void startElement (String uri, String localName, - String qName, Attributes atts) - throws SAXException - { - docFirst.startElement (uri, localName, qName, atts); - docRest.startElement (uri, localName, qName, atts); - } - - public void endElement (String uri, String localName, String qName) - throws SAXException - { - docFirst.endElement (uri, localName, qName); - docRest.endElement (uri, localName, qName); - } - - public void processingInstruction (String target, String data) - throws SAXException - { - docFirst.processingInstruction (target, data); - docRest.processingInstruction (target, data); - } - - public void characters (char ch [], int start, int length) - throws SAXException - { - docFirst.characters (ch, start, length); - docRest.characters (ch, start, length); - } - - public void ignorableWhitespace (char ch [], int start, int length) - throws SAXException - { - docFirst.ignorableWhitespace (ch, start, length); - docRest.ignorableWhitespace (ch, start, length); - } - - - // - // DTDHandler - // - public void notationDecl (String name, String publicId, String systemId) - throws SAXException - { - DTDHandler l1 = first.getDTDHandler (); - DTDHandler l2 = rest.getDTDHandler (); - - l1.notationDecl (name, publicId, systemId); - l2.notationDecl (name, publicId, systemId); - } - - public void unparsedEntityDecl (String name, - String publicId, String systemId, - String notationName - ) throws SAXException - { - DTDHandler l1 = first.getDTDHandler (); - DTDHandler l2 = rest.getDTDHandler (); - - l1.unparsedEntityDecl (name, publicId, systemId, notationName); - l2.unparsedEntityDecl (name, publicId, systemId, notationName); - } - - - // - // DeclHandler - // - public void attributeDecl (String eName, String aName, - String type, - String mode, String value) - throws SAXException - { - declFirst.attributeDecl (eName, aName, type, mode, value); - declRest.attributeDecl (eName, aName, type, mode, value); - } - - public void elementDecl (String name, String model) - throws SAXException - { - declFirst.elementDecl (name, model); - declRest.elementDecl (name, model); - } - - public void externalEntityDecl (String name, - String publicId, String systemId) - throws SAXException - { - declFirst.externalEntityDecl (name, publicId, systemId); - declRest.externalEntityDecl (name, publicId, systemId); - } - - public void internalEntityDecl (String name, String value) - throws SAXException - { - declFirst.internalEntityDecl (name, value); - declRest.internalEntityDecl (name, value); - } - - - // - // LexicalHandler - // - public void comment (char ch [], int start, int length) - throws SAXException - { - lexFirst.comment (ch, start, length); - lexRest.comment (ch, start, length); - } - - public void startCDATA () - throws SAXException - { - lexFirst.startCDATA (); - lexRest.startCDATA (); - } - - public void endCDATA () - throws SAXException - { - lexFirst.endCDATA (); - lexRest.endCDATA (); - } - - public void startEntity (String name) - throws SAXException - { - lexFirst.startEntity (name); - lexRest.startEntity (name); - } - - public void endEntity (String name) - throws SAXException - { - lexFirst.endEntity (name); - lexRest.endEntity (name); - } - - public void startDTD (String name, String publicId, String systemId) - throws SAXException - { - lexFirst.startDTD (name, publicId, systemId); - lexRest.startDTD (name, publicId, systemId); - } - - public void endDTD () - throws SAXException - { - lexFirst.endDTD (); - lexRest.endDTD (); - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/TextConsumer.java b/external/jaxp/source/gnu/xml/pipeline/TextConsumer.java deleted file mode 100644 index 43d47e36a..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/TextConsumer.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.io.*; - -import org.xml.sax.*; - -import gnu.xml.util.XMLWriter; - - -/** - * Terminates a pipeline, consuming events to print them as well formed - * XML (or XHTML) text. - * - * <p> Input must be well formed, and must include XML names (e.g. the - * prefixes and prefix declarations must be present), or the output of - * this class is undefined. - * - * @see NSFilter - * @see WellFormednessFilter - * - * @author David Brownell - */ -public class TextConsumer extends XMLWriter implements EventConsumer -{ - /** - * Constructs an event consumer which echoes its input as text, - * optionally adhering to some basic XHTML formatting options - * which increase interoperability with old (v3) browsers. - * - * <p> For the best interoperability, when writing as XHTML only - * ASCII characters are emitted; other characters are turned to - * entity or character references as needed, and no XML declaration - * is provided in the document. - */ - public TextConsumer (Writer w, boolean isXhtml) - throws IOException - { - super (w, isXhtml ? "US-ASCII" : null); - setXhtml (isXhtml); - } - - /** - * Constructs a consumer that writes its input as XML text. - * XHTML rules are not followed. - */ - public TextConsumer (Writer w) - throws IOException - { - this (w, false); - } - - /** - * Constructs a consumer that writes its input as XML text, - * encoded in UTF-8. XHTML rules are not followed. - */ - public TextConsumer (OutputStream out) - throws IOException - { - this (new OutputStreamWriter (out, "UTF8"), false); - } - - /** <b>EventConsumer</b> Returns the document handler being used. */ - public ContentHandler getContentHandler () - { return this; } - - /** <b>EventConsumer</b> Returns the dtd handler being used. */ - public DTDHandler getDTDHandler () - { return this; } - - /** <b>XMLReader</b>Retrieves a property (lexical and decl handlers) */ - public Object getProperty (String propertyId) - throws SAXNotRecognizedException - { - if (EventFilter.LEXICAL_HANDLER.equals (propertyId)) - return this; - if (EventFilter.DECL_HANDLER.equals (propertyId)) - return this; - throw new SAXNotRecognizedException (propertyId); - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/ValidationConsumer.java b/external/jaxp/source/gnu/xml/pipeline/ValidationConsumer.java deleted file mode 100644 index 65b962edd..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/ValidationConsumer.java +++ /dev/null @@ -1,1911 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.io.*; - -import java.util.EmptyStackException; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Stack; -import java.util.StringTokenizer; -import java.util.Vector; - -import org.xml.sax.*; -import org.xml.sax.ext.*; -import org.xml.sax.helpers.XMLReaderFactory; - - -/** - * This class checks SAX2 events to report validity errors; it works as - * both a filter and a terminus on an event pipeline. It relies on the - * producer of SAX events to: </p> <ol> - * - * <li> Conform to the specification of a non-validating XML parser that - * reads all external entities, reported using SAX2 events. </li> - * - * <li> Report ignorable whitespace as such (through the ContentHandler - * interface). This is, strictly speaking, optional for nonvalidating - * XML processors. </li> - * - * <li> Make SAX2 DeclHandler callbacks, with default - * attribute values already normalized (and without "<").</li> - * - * <li> Make SAX2 LexicalHandler startDTD() and endDTD () - * callbacks. </li> - * - * <li> Act as if the <em>(URI)/namespace-prefixes</em> property were - * set to true, by providing XML 1.0 names and all <code>xmlns*</code> - * attributes (rather than omitting either or both). </li> - * - * </ol> - * - * <p> At this writing, the major SAX2 parsers (such as Ælfred2, - * Crimson, and Xerces) meet these requirements, and this validation - * module is used by the optional Ælfred2 validation support. - * </p> - * - * <p> Note that because this is a layered validator, it has to duplicate some - * work that the parser is doing; there are also other cost to layering. - * However, <em>because of layering it doesn't need a parser</em> in order - * to work! You can use it with anything that generates SAX events, such - * as an application component that wants to detect invalid content in - * a changed area without validating an entire document, or which wants to - * ensure that it doesn't write invalid data to a communications partner.</p> - * - * <p> Also, note that because this is a layered validator, the line numbers - * reported for some errors may seem strange. For example, if an element does - * not permit character content, the validator - * will use the locator provided to it. - * That might reflect the last character of a <em>characters</em> event - * callback, rather than the first non-whitespace character. </p> - * - * <hr /> - * - * <!-- - * <p> Of interest is the fact that unlike most currently known XML validators, - * this one can report some cases of non-determinism in element content models. - * It is a compile-time option, enabled by default. This will only report - * such XML errors if they relate to content actually appearing in a document; - * content models aren't aggressively scanned for non-deterministic structure. - * Documents which trigger such non-deterministic transitions may be handled - * differently by different validating parsers, without losing conformance - * to the XML specification. </p> - * --> - * - * <p> Current limitations of the validation performed are in roughly three - * categories. </p> - * - * <p> The first category represents constraints which demand violations - * of software layering: exposing lexical details, one of the first things - * that <em>application</em> programming interfaces (APIs) hide. These - * invariably relate to XML entity handling, and to historical oddities - * of the XML validation semantics. Curiously, - * recent (Autumn 1999) conformance testing showed that these constraints are - * among those handled worst by existing XML validating parsers. Arguments - * have been made that each of these VCs should be turned into WFCs (most - * of them) or discarded (popular for the standalone declaration); in short, - * that these are bugs in the XML specification (not all via SGML): </p><ul> - * - * <li> The <em>Proper Declaration/PE Nesting</em> and - * <em>Proper Group/PE Nesting</em> VCs can't be tested because they - * require access to particularly low level lexical level information. - * In essence, the reason XML isn't a simple thing to parse is that - * it's not a context free grammar, and these constraints elevate that - * SGML-derived context sensitivity to the level of a semantic rule. - * - * <li> The <em>Standalone Document Declaration</em> VC can't be - * tested. This is for two reasons. First, this flag isn't made - * available through SAX2. Second, it also requires breaking that - * lexical layering boundary. (If you ever wondered why classes - * in compiler construction or language design barely mention the - * existence of context-sensitive grammars, it's because of messy - * issues like these.) - * - * <li> The <em>Entity Declared</em> VC can't be tested, because it - * also requires breaking that lexical layering boundary! There's also - * another issue: the VC wording (and seemingly intent) is ambiguous. - * (This is still true in the "Second edition" XML spec.) - * Since there is a WFC of the same name, everyone's life would be - * easier if references to undeclared parsed entities were always well - * formedness errors, regardless of whether they're parameter entities - * or not. (Note that nonvalidating parsers are not required - * to report all such well formedness errors if they don't read external - * parameter entities, although currently most XML parsers read them - * in an attempt to avoid problems from inconsistent parser behavior.) - * - * </ul> - * - * <p> The second category of limitations on this validation represent - * constraints associated with information that is not guaranteed to be - * available (or in one case, <em>is guaranteed not to be available</em>, - * through the SAX2 API: </p><ul> - * - * <li> The <em>Unique Element Type Declaration</em> VC may not be - * reportable, if the underlying parser happens not to expose - * multiple declarations. (Ælfred2 reports these validity - * errors directly.)</li> - * - * <li> Similarly, the <em>Unique Notation Name</em> VC, added in the - * 14-January-2000 XML spec errata to restrict typing models used by - * elements, may not be reportable. (Ælfred reports these - * validity errors directly.) </li> - * - * </ul> - * - * <p> A third category relates to ease of implementation. (Think of this - * as "bugs".) The most notable issue here is character handling. Rather - * than attempting to implement the voluminous character tables in the XML - * specification (Appendix B), Unicode rules are used directly from - * the java.lang.Character class. Recent JVMs have begun to diverge from - * the original specification for that class (Unicode 2.0), meaning that - * different JVMs may handle that aspect of conformance differently. - * </p> - * - * <p> Note that for some of the validity errors that SAX2 does not - * expose, a nonvalidating parser is permitted (by the XML specification) - * to report validity errors. When used with a parser that does so for - * the validity constraints mentioned above (or any other SAX2 event - * stream producer that does the same thing), overall conformance is - * substantially improved. - * - * @see gnu.xml.aelfred2.SAXDriver - * @see gnu.xml.aelfred2.XmlReader - * - * @author David Brownell - */ -public final class ValidationConsumer extends EventFilter -{ - // report error if we happen to notice a non-deterministic choice? - // we won't report buggy content models; just buggy instances - private static final boolean warnNonDeterministic = false; - - // for tracking active content models - private String rootName; - private Stack contentStack = new Stack (); - - // flags for "saved DTD" processing - private boolean disableDeclarations; - private boolean disableReset; - - // - // most VCs get tested when we see element start tags. the per-element - // info (including attributes) recorded here duplicates that found inside - // many nonvalidating parsers, hence dual lookups etc ... that's why a - // layered validator isn't going to be as fast as a non-layered one. - // - - // key = element name; value = ElementInfo - private Hashtable elements = new Hashtable (); - - // some VCs relate to ID/IDREF/IDREFS attributes - // key = id; value = boolean true (defd) or false (refd) - private Hashtable ids = new Hashtable (); - - // we just record declared notation and unparsed entity names. - // the implementation here is simple/slow; these features - // are seldom used, one hopes they'll wither away soon - private Vector notations = new Vector (5, 5); - private Vector nDeferred = new Vector (5, 5); - private Vector unparsed = new Vector (5, 5); - private Vector uDeferred = new Vector (5, 5); - - // note: DocBk 3.1.7 XML defines over 2 dozen notations, - // used when defining unparsed entities for graphics - // (and maybe in other places) - - - - /** - * Creates a pipeline terminus which consumes all events passed to - * it; this will report validity errors as if they were fatal errors, - * unless an error handler is assigned. - * - * @see #setErrorHandler - */ - // constructor used by PipelineFactory - // ... and want one taking system ID of an external subset - public ValidationConsumer () - { - this (null); - } - - /** - * Creates a pipeline filter which reports validity errors and then - * passes events on to the next consumer if they were not fatal. - * - * @see #setErrorHandler - */ - // constructor used by PipelineFactory - // ... and want one taking system ID of an external subset - // (which won't send declaration events) - public ValidationConsumer (EventConsumer next) - { - super (next); - - setContentHandler (this); - setDTDHandler (this); - try { setProperty (DECL_HANDLER, this); } - catch (Exception e) { /* "can't happen" */ } - try { setProperty (LEXICAL_HANDLER, this); } - catch (Exception e) { /* "can't happen" */ } - } - - - private static final String fakeRootName - = ":Nobody:in:their_Right.Mind_would:use:this-name:1x:"; - - /** - * Creates a validation consumer which is preloaded with the DTD provided. - * It does this by constructing a document with that DTD, then parsing - * that document and recording its DTD declarations. Then it arranges - * not to modify that information. - * - * <p> The resulting validation consumer will only validate against - * the specified DTD, regardless of whether some other DTD is found - * in a document being parsed. - * - * @param rootName The name of the required root element; if this is - * null, any root element name will be accepted. - * @param publicId If non-null and there is a non-null systemId, this - * identifier provides an alternate access identifier for the DTD's - * external subset. - * @param systemId If non-null, this is a URI (normally URL) that - * may be used to access the DTD's external subset. - * @param internalSubset If non-null, holds literal markup declarations - * comprising the DTD's internal subset. - * @param resolver If non-null, this will be provided to the parser for - * use when resolving parameter entities (including any external subset). - * @param resolver If non-null, this will be provided to the parser for - * use when resolving parameter entities (including any external subset). - * @param minimalElement If non-null, a minimal valid document. - * - * @exception SAXNotSupportedException If the default SAX parser does - * not support the standard lexical or declaration handlers. - * @exception SAXParseException If the specified DTD has either - * well-formedness or validity errors - * @exception IOException If the specified DTD can't be read for - * some reason - */ - public ValidationConsumer ( - String rootName, - String publicId, - String systemId, - String internalSubset, - EntityResolver resolver, - String minimalDocument - ) throws SAXException, IOException - { - this (null); - - disableReset = true; - if (rootName == null) - rootName = fakeRootName; - - // - // Synthesize document with that DTD; is it possible to do - // better for the declaration of the root element? - // - // NOTE: can't use SAX2 to write internal subsets. - // - StringWriter writer = new StringWriter (); - - writer.write ("<!DOCTYPE "); - writer.write (rootName); - if (systemId != null) { - writer.write ("\n "); - if (publicId != null) { - writer.write ("PUBLIC '"); - writer.write (publicId); - writer.write ("'\n\t'"); - } else - writer.write ("SYSTEM '"); - writer.write (systemId); - writer.write ("'"); - } - writer.write (" [ "); - if (rootName == fakeRootName) { - writer.write ("\n<!ELEMENT "); - writer.write (rootName); - writer.write (" EMPTY>"); - } - if (internalSubset != null) - writer.write (internalSubset); - writer.write ("\n ]>"); - - if (minimalDocument != null) { - writer.write ("\n"); - writer.write (minimalDocument); - writer.write ("\n"); - } else { - writer.write (" <"); - writer.write (rootName); - writer.write ("/>\n"); - } - minimalDocument = writer.toString (); - - // - // OK, load it - // - XMLReader producer; - - producer = XMLReaderFactory.createXMLReader (); - bind (producer, this); - - if (resolver != null) - producer.setEntityResolver (resolver); - - InputSource in; - - in = new InputSource (new StringReader (minimalDocument)); - producer.parse (in); - - disableDeclarations = true; - if (rootName == fakeRootName) - this.rootName = null; - } - - private void resetState () - { - if (!disableReset) { - rootName = null; - contentStack.removeAllElements (); - elements.clear (); - ids.clear (); - - notations.removeAllElements (); - nDeferred.removeAllElements (); - unparsed.removeAllElements (); - uDeferred.removeAllElements (); - } - } - - - private void warning (String description) - throws SAXException - { - ErrorHandler errHandler = getErrorHandler (); - Locator locator = getDocumentLocator (); - SAXParseException err; - - if (errHandler == null) - return; - - if (locator == null) - err = new SAXParseException (description, null, null, -1, -1); - else - err = new SAXParseException (description, locator); - errHandler.warning (err); - } - - // package private (for ChildrenRecognizer) - private void error (String description) - throws SAXException - { - ErrorHandler errHandler = getErrorHandler (); - Locator locator = getDocumentLocator (); - SAXParseException err; - - if (locator == null) - err = new SAXParseException (description, null, null, -1, -1); - else - err = new SAXParseException (description, locator); - if (errHandler != null) - errHandler.error (err); - else // else we always treat it as fatal! - throw err; - } - - private void fatalError (String description) - throws SAXException - { - ErrorHandler errHandler = getErrorHandler (); - Locator locator = getDocumentLocator (); - SAXParseException err; - - if (locator != null) - err = new SAXParseException (description, locator); - else - err = new SAXParseException (description, null, null, -1, -1); - if (errHandler != null) - errHandler.fatalError (err); - // we always treat this as fatal, regardless of the handler - throw err; - } - - - private static boolean isExtender (char c) - { - // [88] Extender ::= ... - return c == 0x00b7 || c == 0x02d0 || c == 0x02d1 || c == 0x0387 - || c == 0x0640 || c == 0x0e46 || c == 0x0ec6 || c == 0x3005 - || (c >= 0x3031 && c <= 0x3035) - || (c >= 0x309d && c <= 0x309e) - || (c >= 0x30fc && c <= 0x30fe); - } - - - // use augmented Unicode rules, not full XML rules - private boolean isName (String name, String context, String id) - throws SAXException - { - char buf [] = name.toCharArray (); - boolean pass = true; - - if (!Character.isUnicodeIdentifierStart (buf [0]) - && ":_".indexOf (buf [0]) == -1) - pass = false; - else { - int max = buf.length; - for (int i = 1; pass && i < max; i++) { - char c = buf [i]; - if (!Character.isUnicodeIdentifierPart (c) - && ":-_.".indexOf (c) == -1 - && !isExtender (c)) - pass = false; - } - } - - if (!pass) - error ("In " + context + " for " + id - + ", '" + name + "' is not a name"); - return pass; // true == OK - } - - // use augmented Unicode rules, not full XML rules - private boolean isNmtoken (String nmtoken, String context, String id) - throws SAXException - { - char buf [] = nmtoken.toCharArray (); - boolean pass = true; - int max = buf.length; - - // XXX make this share code with isName - - for (int i = 0; pass && i < max; i++) { - char c = buf [i]; - if (!Character.isUnicodeIdentifierPart (c) - && ":-_.".indexOf (c) == -1 - && !isExtender (c)) - pass = false; - } - - if (!pass) - error ("In " + context + " for " + id - + ", '" + nmtoken + "' is not a name token"); - return pass; // true == OK - } - - private void checkEnumeration (String value, String type, String name) - throws SAXException - { - if (!hasMatch (value, type)) - // VC: Enumeration - error ("Value '" + value - + "' for attribute '" + name - + "' is not permitted: " + type); - } - - // used to test enumerated attributes and mixed content models - // package private - static boolean hasMatch (String value, String orList) - { - int len = value.length (); - int max = orList.length () - len; - - for (int start = 0; - (start = orList.indexOf (value, start)) != -1; - start++) { - char c; - - if (start > max) - break; - c = orList.charAt (start - 1); - if (c != '|' && c != '('/*)*/) - continue; - c = orList.charAt (start + len); - if (c != '|' && /*(*/ c != ')') - continue; - return true; - } - return false; - } - - /** - * <b>LexicalHandler</b> Records the declaration of the root - * element, so it can be verified later. - * Passed to the next consumer, unless this one was - * preloaded with a particular DTD. - */ - public void startDTD (String name, String publicId, String systemId) - throws SAXException - { - if (disableDeclarations) - return; - - rootName = name; - super.startDTD (name, publicId, systemId); - } - - /** - * <b>LexicalHandler</b> Verifies that all referenced notations - * and unparsed entities have been declared. - * Passed to the next consumer, unless this one was - * preloaded with a particular DTD. - */ - public void endDTD () - throws SAXException - { - if (disableDeclarations) - return; - - // this is a convenient hook for end-of-dtd checks, but we - // could also trigger it in the first startElement call. - // locator info is more appropriate here though. - - // VC: Notation Declared (NDATA can refer to them before decls, - // as can NOTATION attribute enumerations and defaults) - int length = nDeferred.size (); - for (int i = 0; i < length; i++) { - String notation = (String) nDeferred.elementAt (i); - if (!notations.contains (notation)) { - error ("A declaration referred to notation '" + notation - + "' which was never declared"); - } - } - nDeferred.removeAllElements (); - - // VC: Entity Name (attribute values can refer to them - // before they're declared); VC Attribute Default Legal - length = uDeferred.size (); - for (int i = 0; i < length; i++) { - String entity = (String) uDeferred.elementAt (i); - if (!unparsed.contains (entity)) { - error ("An attribute default referred to entity '" + entity - + "' which was never declared"); - } - } - uDeferred.removeAllElements (); - super.endDTD (); - } - - - // These are interned, so we can rely on "==" to find the type of - // all attributes except enumerations ... - // "(this|or|that|...)" and "NOTATION (this|or|that|...)" - static final String types [] = { - "CDATA", - "ID", "IDREF", "IDREFS", - "NMTOKEN", "NMTOKENS", - "ENTITY", "ENTITIES" - }; - - - /** - * <b>DecllHandler</b> Records attribute declaration for later use - * in validating document content, and checks validity constraints - * that are applicable to attribute declarations. - * Passed to the next consumer, unless this one was - * preloaded with a particular DTD. - */ - public void attributeDecl ( - String eName, - String aName, - String type, - String mode, - String value - ) throws SAXException - { - if (disableDeclarations) - return; - - ElementInfo info = (ElementInfo) elements.get (eName); - AttributeInfo ainfo = new AttributeInfo (); - boolean checkOne = false; - boolean interned = false; - - // cheap interning of type names and #FIXED, #REQUIRED - // for faster startElement (we can use "==") - for (int i = 0; i < types.length; i++) { - if (types [i].equals (type)) { - type = types [i]; - interned = true; - break; - } - } - if ("#FIXED".equals (mode)) - mode = "#FIXED"; - else if ("#REQUIRED".equals (mode)) - mode = "#REQUIRED"; - - ainfo.type = type; - ainfo.mode = mode; - ainfo.value = value; - - // we might not have seen the content model yet - if (info == null) { - info = new ElementInfo (eName); - elements.put (eName, info); - } - if ("ID" == type) { - checkOne = true; - if (!("#REQUIRED" == mode || "#IMPLIED".equals (mode))) { - // VC: ID Attribute Default - error ("ID attribute '" + aName - + "' must be #IMPLIED or #REQUIRED"); - } - - } else if (!interned && type.startsWith ("NOTATION ")) { - checkOne = true; - - // VC: Notation Attributes (notations must be declared) - StringTokenizer tokens = new StringTokenizer ( - type.substring (10, type.lastIndexOf (')')), - "|"); - while (tokens.hasMoreTokens ()) { - String token = tokens.nextToken (); - if (!notations.contains (token)) - nDeferred.addElement (token); - } - } - if (checkOne) { - for (Enumeration e = info.attributes.keys (); - e.hasMoreElements (); - /* NOP */) { - String name; - AttributeInfo ainfo2; - - name = (String) e.nextElement (); - ainfo2 = (AttributeInfo) info.attributes.get (name); - if (type == ainfo2.type || !interned /* NOTATION */) { - // VC: One ID per Element Type - // VC: One Notation per Element TYpe - error ("Element '" + eName - + "' already has an attribute of type " - + (interned ? "NOTATION" : type) - + " ('" + name - + "') so '" + aName - + "' is a validity error"); - } - } - } - - // VC: Attribute Default Legal - if (value != null) { - - if ("CDATA" == type) { - // event source rejected '<' - - } else if ("NMTOKEN" == type) { - // VC: Name Token (is a nmtoken) - isNmtoken (value, "attribute default", aName); - - } else if ("NMTOKENS" == type) { - // VC: Name Token (is a nmtoken; at least one value) - StringTokenizer tokens = new StringTokenizer (value); - if (!tokens.hasMoreTokens ()) - error ("Default for attribute '" + aName - + "' must have at least one name token."); - else do { - String token = tokens.nextToken (); - isNmtoken (token, "attribute default", aName); - } while (tokens.hasMoreTokens ()); - - } else if ("IDREF" == type || "ENTITY" == type) { - // VC: Entity Name (is a name) - // VC: IDREF (is a name) (is declared) - isName (value, "attribute default", aName); - if ("ENTITY" == type && !unparsed.contains (value)) - uDeferred.addElement (value); - - } else if ("IDREFS" == type || "ENTITIES" == type) { - // VC: Entity Name (is a name; at least one value) - // VC: IDREF (is a name; at least one value) - StringTokenizer names = new StringTokenizer (value); - if (!names.hasMoreTokens ()) - error ("Default for attribute '" + aName - + "' must have at least one name."); - else do { - String name = names.nextToken (); - isName (name, "attribute default", aName); - if ("ENTITIES" == type && !unparsed.contains (name)) - uDeferred.addElement (value); - } while (names.hasMoreTokens ()); - - } else if (type.charAt (0) == '(' /*)*/ ) { - // VC: Enumeration (must match) - checkEnumeration (value, type, aName); - - } else if (!interned && checkOne) { /* NOTATION */ - // VC: Notation attributes (must be names) - isName (value, "attribute default", aName); - - // VC: Notation attributes (must be declared) - if (!notations.contains (value)) - nDeferred.addElement (value); - - // VC: Enumeration (must match) - checkEnumeration (value, type, aName); - - } else if ("ID" != type) - throw new RuntimeException ("illegal attribute type: " + type); - } - - if (info.attributes.get (aName) == null) - info.attributes.put (aName, ainfo); - /* - else - warning ("Element '" + eName - + "' already has an attribute named '" + aName + "'"); - */ - - if ("xml:space".equals (aName)) { - if (!("(default|preserve)".equals (type) - || "(preserve|default)".equals (type) - // these next two are arguable; XHTML's DTD doesn't - // deserve errors. After all, it's not like any - // illegal _value_ could pass ... - || "(preserve)".equals (type) - || "(default)".equals (type) - )) - error ( - "xml:space attribute type must be like '(default|preserve)'" - + " not '" + type + "'" - ); - - } - super.attributeDecl (eName, aName, type, mode, value); - } - - /** - * <b>DecllHandler</b> Records the element declaration for later use - * when checking document content, and checks validity constraints that - * apply to element declarations. Passed to the next consumer, unless - * this one was preloaded with a particular DTD. - */ - public void elementDecl (String name, String model) - throws SAXException - { - if (disableDeclarations) - return; - - ElementInfo info = (ElementInfo) elements.get (name); - - // we might have seen an attribute decl already - if (info == null) { - info = new ElementInfo (name); - elements.put (name, info); - } - if (info.model != null) { - // NOTE: not all parsers can report such duplicates. - // VC: Unique Element Type Declaration - error ("Element type '" + name - + "' was already declared."); - } else { - info.model = model; - - // VC: No Duplicate Types (in mixed content models) - if (model.charAt (1) == '#') // (#PCDATA... - info.getRecognizer (this); - } - super.elementDecl (name, model); - } - - /** - * <b>DecllHandler</b> passed to the next consumer, unless this - * one was preloaded with a particular DTD - */ - public void internalEntityDecl (String name, String value) - throws SAXException - { - if (!disableDeclarations) - super.internalEntityDecl (name, value); - } - - /** - * <b>DecllHandler</b> passed to the next consumer, unless this - * one was preloaded with a particular DTD - */ - public void externalEntityDecl (String name, - String publicId, String systemId) - throws SAXException - { - if (!disableDeclarations) - super.externalEntityDecl (name, publicId, systemId); - } - - - /** - * <b>DTDHandler</b> Records the notation name, for checking - * NOTATIONS attribute values and declararations of unparsed - * entities. Passed to the next consumer, unless this one was - * preloaded with a particular DTD. - */ - public void notationDecl (String name, String publicId, String systemId) - throws SAXException - { - if (disableDeclarations) - return; - - notations.addElement (name); - super.notationDecl (name, publicId, systemId); - } - - /** - * <b>DTDHandler</b> Records the entity name, for checking - * ENTITY and ENTITIES attribute values; records the notation - * name if it hasn't yet been declared. Passed to the next consumer, - * unless this one was preloaded with a particular DTD. - */ - public void unparsedEntityDecl ( - String name, - String publicId, - String systemId, - String notationName - ) throws SAXException - { - if (disableDeclarations) - return; - - unparsed.addElement (name); - if (!notations.contains (notationName)) - nDeferred.addElement (notationName); - super.unparsedEntityDecl (name, publicId, systemId, notationName); - } - - - /** - * <b>ContentHandler</b> Ensures that state from any previous parse - * has been deleted. - * Passed to the next consumer. - */ - public void startDocument () - throws SAXException - { - resetState (); - super.startDocument (); - } - - - private static boolean isAsciiLetter (char c) - { - return (c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z'); - } - - - /** - * <b>ContentHandler</b> Reports a fatal exception. Validating - * XML processors may not skip any entities. - */ - public void skippedEntity (String name) - throws SAXException - { - fatalError ("may not skip entities"); - } - - /* - * SAX2 doesn't expand non-PE refs in attribute defaults... - */ - private String expandDefaultRefs (String s) - throws SAXException - { - if (s.indexOf ('&') < 0) - return s; - -// FIXME: handle &#nn; &#xnn; &name; - String message = "Can't expand refs in attribute default: " + s; - warning (message); - - return s; - } - - /** - * <b>ContentHandler</b> Performs validity checks against element - * (and document) content models, and attribute values. - * Passed to the next consumer. - */ - public void startElement ( - String uri, - String localName, - String qName, - Attributes atts - ) throws SAXException - { - // - // First check content model for the enclosing scope. - // - if (contentStack.isEmpty ()) { - // VC: Root Element Type - if (!qName.equals (rootName)) { - if (rootName == null) - warning ("This document has no DTD, can't be valid"); - else - error ("Root element type '" + qName - + "' was declared to be '" + rootName + "'"); - } - } else { - Recognizer state = (Recognizer) contentStack.peek (); - - if (state != null) { - Recognizer newstate = state.acceptElement (qName); - - if (newstate == null) - error ("Element type '" + qName - + "' in element '" + state.type.name - + "' violates content model " + state.type.model - ); - if (newstate != state) { - contentStack.pop (); - contentStack.push (newstate); - } - } - } - - // - // Then check that this element was declared, and push the - // object used to validate its content model onto our stack. - // - // This is where the recognizer gets created, if needed; if - // it's a "children" (elements) content model, an NDFA is - // created. (One recognizer is used per content type, no - // matter how complex that recognizer is.) - // - ElementInfo info; - - info = (ElementInfo) elements.get (qName); - if (info == null || info.model == null) { - // VC: Element Valid (base clause) - error ("Element type '" + qName + "' was not declared"); - contentStack.push (null); - - // for less diagnostic noise, fake a declaration. - elementDecl (qName, "ANY"); - } else - contentStack.push (info.getRecognizer (this)); - - // - // Then check each attribute present - // - int len; - String aname; - AttributeInfo ainfo; - - if (atts != null) - len = atts.getLength (); - else - len = 0; - - for (int i = 0; i < len; i++) { - aname = atts.getQName (i); - - if (info == null - || (ainfo = (AttributeInfo) info.attributes.get (aname)) - == null) { - // VC: Attribute Value Type - error ("Attribute '" + aname - + "' was not declared for element type " + qName); - continue; - } - - String value = atts.getValue (i); - - // note that "==" for type names and "#FIXED" is correct - // (and fast) since we've interned those literals. - - if ("#FIXED" == ainfo.mode) { - String expanded = expandDefaultRefs (ainfo.value); - - // VC: Fixed Attribute Default - if (!value.equals (expanded)) { - error ("Attribute '" + aname - + "' must match " + expanded - ); - continue; - } - } - - if ("CDATA" == ainfo.type) - continue; - - // - // For all other attribute types, there are various - // rules to follow. - // - - if ("ID" == ainfo.type) { - // VC: ID (must be a name) - if (isName (value, "ID attribute", aname)) { - if (Boolean.TRUE == ids.get (value)) - // VC: ID (appears once) - error ("ID attribute " + aname - + " uses an ID value '" + value - + "' which was already declared."); - else - // any forward refs are no longer problems - ids.put (value, Boolean.TRUE); - } - continue; - } - - if ("IDREF" == ainfo.type) { - // VC: IDREF (value must be a name) - if (isName (value, "IDREF attribute", aname)) { - // VC: IDREF (must match some ID attribute) - if (ids.get (value) == null) - // new -- assume it's a forward ref - ids.put (value, Boolean.FALSE); - } - continue; - } - - if ("IDREFS" == ainfo.type) { - StringTokenizer tokens = new StringTokenizer (value, " "); - - if (!tokens.hasMoreTokens ()) { - // VC: IDREF (one or more values) - error ("IDREFS attribute " + aname - + " must have at least one ID ref"); - } else do { - String id = tokens.nextToken (); - - // VC: IDREF (value must be a name) - if (isName (id, "IDREFS attribute", aname)) { - // VC: IDREF (must match some ID attribute) - if (ids.get (id) == null) - // new -- assume it's a forward ref - ids.put (id, Boolean.FALSE); - } - } while (tokens.hasMoreTokens ()); - continue; - } - - if ("NMTOKEN" == ainfo.type) { - // VC: Name Token (is a name token) - isNmtoken (value, "NMTOKEN attribute", aname); - continue; - } - - if ("NMTOKENS" == ainfo.type) { - StringTokenizer tokens = new StringTokenizer (value, " "); - - if (!tokens.hasMoreTokens ()) { - // VC: Name Token (one or more values) - error ("NMTOKENS attribute " + aname - + " must have at least one name token"); - } else do { - String token = tokens.nextToken (); - - // VC: Name Token (is a name token) - isNmtoken (token, "NMTOKENS attribute", aname); - } while (tokens.hasMoreTokens ()); - continue; - } - - if ("ENTITY" == ainfo.type) { - if (!unparsed.contains (value)) - // VC: Entity Name - error ("Value of attribute '" + aname - + "' refers to unparsed entity '" + value - + "' which was not declared."); - continue; - } - - if ("ENTITIES" == ainfo.type) { - StringTokenizer tokens = new StringTokenizer (value, " "); - - if (!tokens.hasMoreTokens ()) { - // VC: Entity Name (one or more values) - error ("ENTITIES attribute " + aname - + " must have at least one name token"); - } else do { - String entity = tokens.nextToken (); - - if (!unparsed.contains (entity)) - // VC: Entity Name - error ("Value of attribute '" + aname - + "' refers to unparsed entity '" + entity - + "' which was not declared."); - } while (tokens.hasMoreTokens ()); - continue; - } - - // - // check for enumerations last; more expensive - // - if (ainfo.type.charAt (0) == '(' /*)*/ - || ainfo.type.startsWith ("NOTATION ") - ) { - // VC: Enumeration (value must be defined) - checkEnumeration (value, ainfo.type, aname); - continue; - } - } - - // - // Last, check that all #REQUIRED attributes were provided - // - if (info != null) { - Hashtable table = info.attributes; - - if (table.size () != 0) { - Enumeration e = table.keys (); - - // XXX table.keys uses the heap, bleech -- slows things - - while (e.hasMoreElements ()) { - aname = (String) e.nextElement (); - ainfo = (AttributeInfo) table.get (aname); - - // "#REQUIRED" mode was interned in attributeDecl - if ("#REQUIRED" == ainfo.mode - && atts.getValue (aname) == null) { - // VC: Required Attribute - error ("Attribute '" + aname + "' must be specified " - + "for element type " + qName); - } - } - } - } - super.startElement (uri, localName, qName, atts); - } - - /** - * <b>ContentHandler</b> Reports a validity error if the element's content - * model does not permit character data. - * Passed to the next consumer. - */ - public void characters (char ch [], int start, int length) - throws SAXException - { - Recognizer state; - - if (contentStack.empty ()) - state = null; - else - state = (Recognizer) contentStack.peek (); - - // NOTE: if this ever supports with SAX parsers that don't - // report ignorable whitespace as such (only XP?), this class - // needs to morph it into ignorableWhitespace() as needed ... - - if (state != null && !state.acceptCharacters ()) - // VC: Element Valid (clauses three, four -- see recognizer) - error ("Character content not allowed in element " - + state.type.name); - - super.characters (ch, start, length); - } - - - /** - * <b>ContentHandler</b> Reports a validity error if the element's content - * model does not permit end-of-element yet, or a well formedness error - * if there was no matching startElement call. - * Passed to the next consumer. - */ - public void endElement (String uri, String localName, String qName) - throws SAXException - { - try { - Recognizer state = (Recognizer) contentStack.pop (); - - if (state != null && !state.completed ()) - // VC: Element valid (clauses two, three, four; see Recognizer) - error ("Premature end for element '" - + state.type.name - + "', content model " - + state.type.model); - - // could insist on match of start element, but that's - // something the input stream must to guarantee. - - } catch (EmptyStackException e) { - fatalError ("endElement without startElement: " + qName - + ((uri == null) - ? "" - : ( " { '" + uri + "', " + localName + " }"))); - } - super.endElement (uri, localName, qName); - } - - /** - * <b>ContentHandler</b> Checks whether all ID values that were - * referenced have been declared, and releases all resources. - * Passed to the next consumer. - * - * @see #setDocumentLocator - */ - public void endDocument () - throws SAXException - { - for (Enumeration idNames = ids.keys (); - idNames.hasMoreElements (); - /* NOP */) { - String id = (String) idNames.nextElement (); - - if (Boolean.FALSE == ids.get (id)) { - // VC: IDREF (must match ID) - error ("Undeclared ID value '" + id - + "' was referred to by an IDREF/IDREFS attribute"); - } - } - - resetState (); - super.endDocument (); - } - - - /** Holds per-element declarations */ - static private final class ElementInfo - { - String name; - String model; - - // key = attribute name; value = AttributeInfo - Hashtable attributes = new Hashtable (11); - - ElementInfo (String n) { name = n; } - - private Recognizer recognizer; - - // for validating content models: one per type, shared, - // and constructed only on demand ... so unused elements do - // not need to consume resources. - Recognizer getRecognizer (ValidationConsumer consumer) - throws SAXException - { - if (recognizer == null) { - if ("ANY".equals (model)) - recognizer = ANY; - else if ("EMPTY".equals (model)) - recognizer = new EmptyRecognizer (this); - else if ('#' == model.charAt (1)) - // n.b. this constructor does a validity check - recognizer = new MixedRecognizer (this, consumer); - else - recognizer = new ChildrenRecognizer (this, consumer); - } - return recognizer; - } - } - - /** Holds per-attribute declarations */ - static private final class AttributeInfo - { - String type; - String mode; // #REQUIRED, etc (or null) - String value; // or null - } - - - // - // Content model validation - // - - static private final Recognizer ANY = new Recognizer (null); - - - // Base class defines the calls used to validate content, - // and supports the "ANY" content model - static private class Recognizer - { - final ElementInfo type; - - Recognizer (ElementInfo t) { type = t; } - - // return true iff character data is legal here - boolean acceptCharacters () - throws SAXException - // VC: Element Valid (third and fourth clauses) - { return true; } - - // null return = failure - // otherwise, next state (like an FSM) - // prerequisite: tested that name was declared - Recognizer acceptElement (String name) - throws SAXException - // VC: Element Valid (fourth clause) - { return this; } - - // return true iff model is completed, can finish - boolean completed () - throws SAXException - // VC: Element Valid (fourth clause) - { return true; } - - public String toString () - // n.b. "children" is the interesting case! - { return (type == null) ? "ANY" : type.model; } - } - - // "EMPTY" content model -- no characters or elements - private static final class EmptyRecognizer extends Recognizer - { - public EmptyRecognizer (ElementInfo type) - { super (type); } - - // VC: Element Valid (first clause) - boolean acceptCharacters () - { return false; } - - // VC: Element Valid (first clause) - Recognizer acceptElement (String name) - { return null; } - } - - // "Mixed" content model -- ANY, but restricts elements - private static final class MixedRecognizer extends Recognizer - { - private String permitted []; - - // N.B. constructor tests for duplicated element names (VC) - public MixedRecognizer (ElementInfo t, ValidationConsumer v) - throws SAXException - { - super (t); - - // (#PCDATA...)* or (#PCDATA) ==> ... or empty - // with the "..." being "|elname|..." - StringTokenizer tokens = new StringTokenizer ( - t.model.substring (8, t.model.lastIndexOf (')')), - "|"); - Vector vec = new Vector (); - - while (tokens.hasMoreTokens ()) { - String token = tokens.nextToken (); - - if (vec.contains (token)) - v.error ("element " + token - + " is repeated in mixed content model: " - + t.model); - else - vec.addElement (token.intern ()); - } - permitted = new String [vec.size ()]; - for (int i = 0; i < permitted.length; i++) - permitted [i] = (String) vec.elementAt (i); - - // in one large machine-derived DTD sample, most of about - // 250 mixed content models were empty, and 25 had ten or - // more entries. 2 had over a hundred elements. Linear - // search isn't obviously wrong. - } - - // VC: Element Valid (third clause) - Recognizer acceptElement (String name) - { - int length = permitted.length; - - // first pass -- optimistic w.r.t. event source interning - // (and document validity) - for (int i = 0; i < length; i++) - if (permitted [i] == name) - return this; - // second pass -- pessimistic w.r.t. event source interning - for (int i = 0; i < length; i++) - if (permitted [i].equals (name)) - return this; - return null; - } - } - - - // recognizer loop flags, see later - private static final int F_LOOPHEAD = 0x01; - private static final int F_LOOPNEXT = 0x02; - - // for debugging -- used to label/count nodes in toString() - private static int nodeCount; - - /** - * "Children" content model -- these are nodes in NDFA state graphs. - * They work in fixed space. Note that these graphs commonly have - * cycles, handling features such as zero-or-more and one-or-more. - * - * <p>It's readonly, so only one copy is ever needed. The content model - * stack may have any number of pointers into each graph, when a model - * happens to be needed more than once due to element nesting. Since - * traversing the graph just moves to another node, and never changes - * it, traversals never interfere with each other. - * - * <p>There is an option to report non-deterministic models. These are - * always XML errors, but ones which are not often reported despite the - * fact that they can lead to different validating parsers giving - * different results for the same input. (The XML spec doesn't require - * them to be reported.) - * - * <p><b>FIXME</b> There's currently at least one known bug here, in that - * it's not actually detecting the non-determinism it tries to detect. - * (Of the "optional.xml" test, the once-or-twice-2* tests are all non-D; - * maybe some others.) This may relate to the issue flagged below as - * "should not" happen (but it was), which showed up when patching the - * graph to have one exit node (or more EMPTY nodes). - */ - private static final class ChildrenRecognizer extends Recognizer - implements Cloneable - { - // for reporting non-deterministic content models - // ... a waste of space if we're not reporting those! - // ... along with the 'model' member (in base class) - private ValidationConsumer consumer; - - // for CHOICE nodes -- each component is an arc that - // accepts a different NAME (or is EMPTY indicating - // NDFA termination). - private Recognizer components []; - - // for NAME/SEQUENCE nodes -- accepts that NAME and - // then goes to the next node (CHOICE, NAME, EMPTY). - private String name; - private Recognizer next; - - // loops always point back to a CHOICE node. we mark such choice - // nodes (F_LOOPHEAD) for diagnostics and faster deep cloning. - // We also mark nodes before back pointers (F_LOOPNEXT), to ensure - // termination when we patch sequences and loops. - private int flags; - - - // prevent a needless indirection between 'this' and 'node' - private void copyIn (ChildrenRecognizer node) - { - // model & consumer are already set - components = node.components; - name = node.name; - next = node.next; - flags = node.flags; - } - - // used to construct top level "children" content models, - public ChildrenRecognizer (ElementInfo type, ValidationConsumer vc) - { - this (vc, type); - populate (type.model.toCharArray (), 0); - patchNext (new EmptyRecognizer (type), null); - } - - // used internally; populating is separate - private ChildrenRecognizer (ValidationConsumer vc, ElementInfo type) - { - super (type); - consumer = vc; - } - - - // - // When rewriting some graph nodes we need deep clones in one case; - // mostly shallow clones (what the JVM handles for us) are fine. - // - private ChildrenRecognizer shallowClone () - { - try { - return (ChildrenRecognizer) clone (); - } catch (CloneNotSupportedException e) { - throw new Error ("clone"); - } - } - - private ChildrenRecognizer deepClone () - { - return deepClone (new Hashtable (37)); - } - - private ChildrenRecognizer deepClone (Hashtable table) - { - ChildrenRecognizer retval; - - if ((flags & F_LOOPHEAD) != 0) { - retval = (ChildrenRecognizer) table.get (this); - if (retval != null) - return this; - - retval = shallowClone (); - table.put (this, retval); - } else - retval = shallowClone (); - - if (next != null) { - if (next instanceof ChildrenRecognizer) - retval.next = ((ChildrenRecognizer)next) - .deepClone (table); - else if (!(next instanceof EmptyRecognizer)) - throw new RuntimeException ("deepClone"); - } - - if (components != null) { - retval.components = new Recognizer [components.length]; - for (int i = 0; i < components.length; i++) { - Recognizer temp = components [i]; - - if (temp == null) - retval.components [i] = null; - else if (temp instanceof ChildrenRecognizer) - retval.components [i] = ((ChildrenRecognizer)temp) - .deepClone (table); - else if (!(temp instanceof EmptyRecognizer)) - throw new RuntimeException ("deepClone"); - } - } - - return retval; - } - - // connect subgraphs, first to next (sequencing) - private void patchNext (Recognizer theNext, Hashtable table) - { - // backpointers must not be repatched or followed - if ((flags & F_LOOPNEXT) != 0) - return; - - // XXX this table "shouldn't" be needed, right? - // but some choice nodes looped if it isn't there. - if (table != null && table.get (this) != null) - return; - if (table == null) - table = new Hashtable (); - - // NAME/SEQUENCE - if (name != null) { - if (next == null) - next = theNext; - else if (next instanceof ChildrenRecognizer) { - ((ChildrenRecognizer)next).patchNext (theNext, table); - } else if (!(next instanceof EmptyRecognizer)) - throw new RuntimeException ("patchNext"); - return; - } - - // CHOICE - for (int i = 0; i < components.length; i++) { - if (components [i] == null) - components [i] = theNext; - else if (components [i] instanceof ChildrenRecognizer) { - ((ChildrenRecognizer)components [i]) - .patchNext (theNext, table); - } else if (!(components [i] instanceof EmptyRecognizer)) - throw new RuntimeException ("patchNext"); - } - - if (table != null && (flags | F_LOOPHEAD) != 0) - table.put (this, this); - } - - /** - * Parses a 'children' spec (or recursively 'cp') and makes this - * become a regular graph node. - * - * @return index after this particle - */ - private int populate (char parseBuf [], int startPos) - { - int nextPos = startPos + 1; - char c; - - if (nextPos < 0 || nextPos >= parseBuf.length) - throw new IndexOutOfBoundsException (); - - // Grammar of the string is from the XML spec, but - // with whitespace removed by the SAX parser. - - // children ::= (choice | seq) ('?' | '*' | '+')? - // cp ::= (Name | choice | seq) ('?' | '*' | '+')? - // choice ::= '(' cp ('|' choice)* ')' - // seq ::= '(' cp (',' choice)* ')' - - // interior nodes only - // cp ::= name ... - if (parseBuf [startPos] != '('/*)*/) { - boolean done = false; - do { - switch (c = parseBuf [nextPos]) { - case '?': case '*': case '+': - case '|': case ',': - case /*(*/ ')': - done = true; - continue; - default: - nextPos++; - continue; - } - } while (!done); - name = new String (parseBuf, startPos, nextPos - startPos); - - // interior OR toplevel nodes - // cp ::= choice .. - // cp ::= seq .. - } else { - // collect everything as a separate list, and merge it - // into "this" later if we can (SEQUENCE or singleton) - ChildrenRecognizer first; - - first = new ChildrenRecognizer (consumer, type); - nextPos = first.populate (parseBuf, nextPos); - c = parseBuf [nextPos++]; - - if (c == ',' || c == '|') { - ChildrenRecognizer current = first; - char separator = c; - Vector v = null; - - if (separator == '|') { - v = new Vector (); - v.addElement (first); - } - - do { - ChildrenRecognizer link; - - link = new ChildrenRecognizer (consumer, type); - nextPos = link.populate (parseBuf, nextPos); - - if (separator == ',') { - current.patchNext (link, null); - current = link; - } else - v.addElement (link); - - c = parseBuf [nextPos++]; - } while (c == separator); - - // choice ... collect everything into one array. - if (separator == '|') { - // assert v.size() > 1 - components = new Recognizer [v.size ()]; - for (int i = 0; i < components.length; i++) { - components [i] = (Recognizer) - v.elementAt (i); - } - // assert flags == 0 - - // sequence ... merge into "this" to be smaller. - } else - copyIn (first); - - // treat singletons like one-node sequences. - } else - copyIn (first); - - if (c != /*(*/ ')') - throw new RuntimeException ("corrupt content model"); - } - - // - // Arity is optional, and the root of all fun. We keep the - // FSM state graph simple by only having NAME/SEQUENCE and - // CHOICE nodes (or EMPTY to terminate a model), easily - // evaluated. So we rewrite each node that has arity, using - // those primitives. We create loops here, if needed. - // - if (nextPos < parseBuf.length) { - c = parseBuf [nextPos]; - if (c == '?' || c == '*' || c == '+') { - nextPos++; - - // Rewrite 'zero-or-one' "?" arity to a CHOICE: - // - SEQUENCE (clone, what's next) - // - or, what's next - // Size cost: N --> N + 1 - if (c == '?') { - Recognizer once = shallowClone (); - - components = new Recognizer [2]; - components [0] = once; - // components [1] initted to null - name = null; - next = null; - flags = 0; - - - // Rewrite 'zero-or-more' "*" arity to a CHOICE. - // - LOOP (clone, back to this CHOICE) - // - or, what's next - // Size cost: N --> N + 1 - } else if (c == '*') { - ChildrenRecognizer loop = shallowClone (); - - loop.patchNext (this, null); - loop.flags |= F_LOOPNEXT; - flags = F_LOOPHEAD; - - components = new Recognizer [2]; - components [0] = loop; - // components [1] initted to null - name = null; - next = null; - - - // Rewrite 'one-or-more' "+" arity to a SEQUENCE. - // Basically (a)+ --> ((a),(a)*). - // - this - // - CHOICE - // * LOOP (clone, back to the CHOICE) - // * or, whatever's next - // Size cost: N --> 2N + 1 - } else if (c == '+') { - ChildrenRecognizer loop = deepClone (); - ChildrenRecognizer choice; - - choice = new ChildrenRecognizer (consumer, type); - loop.patchNext (choice, null); - loop.flags |= F_LOOPNEXT; - choice.flags = F_LOOPHEAD; - - choice.components = new Recognizer [2]; - choice.components [0] = loop; - // choice.components [1] initted to null - // choice.name, choice.next initted to null - - patchNext (choice, null); - } - } - } - - return nextPos; - } - - // VC: Element Valid (second clause) - boolean acceptCharacters () - { return false; } - - // VC: Element Valid (second clause) - Recognizer acceptElement (String type) - throws SAXException - { - // NAME/SEQUENCE - if (name != null) { - if (name.equals (type)) - return next; - return null; - } - - // CHOICE ... optionally reporting nondeterminism we - // run across. we won't check out every transition - // for nondeterminism; only the ones we follow. - Recognizer retval = null; - - for (int i = 0; i < components.length; i++) { - Recognizer temp = components [i].acceptElement (type); - - if (temp == null) - continue; - else if (!warnNonDeterministic) - return temp; - else if (retval == null) - retval = temp; - else if (retval != temp) - consumer.error ("Content model " + this.type.model - + " is non-deterministic for " + type); - } - return retval; - } - - // VC: Element Valid (second clause) - boolean completed () - throws SAXException - { - // expecting a specific element - if (name != null) - return false; - - // choice, some sequences - for (int i = 0; i < components.length; i++) { - if (components [i].completed ()) - return true; - } - - return false; - } - -/** / - // FOR DEBUGGING ... flattens the graph for printing. - - public String toString () - { - StringBuffer buf = new StringBuffer (); - - // only one set of loop labels can be generated - // at a time... - synchronized (ANY) { - nodeCount = 0; - - toString (buf, new Hashtable ()); - return buf.toString (); - } - } - - private void toString (StringBuffer buf, Hashtable table) - { - // When we visit a node, label and count it. - // Nodes are never visited/counted more than once. - // For small models labels waste space, but if arity - // mappings were used the savings are substantial. - // (Plus, the output can be more readily understood.) - String temp = (String) table.get (this); - - if (temp != null) { - buf.append ('{'); - buf.append (temp); - buf.append ('}'); - return; - } else { - StringBuffer scratch = new StringBuffer (15); - - if ((flags & F_LOOPHEAD) != 0) - scratch.append ("loop"); - else - scratch.append ("node"); - scratch.append ('-'); - scratch.append (++nodeCount); - temp = scratch.toString (); - - table.put (this, temp); - buf.append ('['); - buf.append (temp); - buf.append (']'); - buf.append (':'); - } - - // NAME/SEQUENCE - if (name != null) { - // n.b. some output encodings turn some name chars into '?' - // e.g. with Japanese names and ASCII output - buf.append (name); - if (components != null) // bug! - buf.append ('$'); - if (next == null) - buf.append (",*"); - else if (next instanceof EmptyRecognizer) // patch-to-next - buf.append (",{}"); - else if (next instanceof ChildrenRecognizer) { - buf.append (','); - ((ChildrenRecognizer)next).toString (buf, table); - } else // bug! - buf.append (",+"); - return; - } - - // CHOICE - buf.append ("<"); - for (int i = 0; i < components.length; i++) { - if (i != 0) - buf.append ("|"); - if (components [i] instanceof EmptyRecognizer) { - buf.append ("{}"); - } else if (components [i] == null) { // patch-to-next - buf.append ('*'); - } else { - ChildrenRecognizer r; - - r = (ChildrenRecognizer) components [i]; - r.toString (buf, table); - } - } - buf.append (">"); - } -/**/ - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/WellFormednessFilter.java b/external/jaxp/source/gnu/xml/pipeline/WellFormednessFilter.java deleted file mode 100644 index c3c8ec129..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/WellFormednessFilter.java +++ /dev/null @@ -1,350 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.util.EmptyStackException; -import java.util.Stack; - -import org.xml.sax.*; -import org.xml.sax.ext.*; - - -/** - * This filter reports fatal exceptions in the case of event streams that - * are not well formed. The rules currently tested include: <ul> - * - * <li>setDocumentLocator ... may be called only before startDocument - * - * <li>startDocument/endDocument ... must be paired, and all other - * calls (except setDocumentLocator) must be nested within these. - * - * <li>startElement/endElement ... must be correctly paired, and - * may never appear within CDATA sections. - * - * <li>comment ... can't contain "--" - * - * <li>character data ... can't contain "]]>" - * - * <li>whitespace ... can't contain CR - * - * <li>whitespace and character data must be within an element - * - * <li>processing instruction ... can't contain "?>" or CR - * - * <li>startCDATA/endCDATA ... must be correctly paired. - * - * </ul> - * - * <p> Other checks for event stream correctness may be provided in - * the future. For example, insisting that - * entity boundaries nest correctly, - * namespace scopes nest correctly, - * namespace values never contain relative URIs, - * attributes don't have "<" characters; - * and more. - * - * @author David Brownell - */ -public final class WellFormednessFilter extends EventFilter -{ - private boolean startedDoc; - private Stack elementStack = new Stack (); - private boolean startedCDATA; - private String dtdState = "before"; - - - /** - * Swallows all events after performing well formedness checks. - */ - // constructor used by PipelineFactory - public WellFormednessFilter () - { this (null); } - - - /** - * Passes events through to the specified consumer, after first - * processing them. - */ - // constructor used by PipelineFactory - public WellFormednessFilter (EventConsumer consumer) - { - super (consumer); - - setContentHandler (this); - setDTDHandler (this); - - try { - setProperty (LEXICAL_HANDLER, this); - } catch (SAXException e) { /* can't happen */ } - } - - /** - * Resets state as if any preceding event stream was well formed. - * Particularly useful if it ended through some sort of error, - * and the endDocument call wasn't made. - */ - public void reset () - { - startedDoc = false; - startedCDATA = false; - elementStack.removeAllElements (); - } - - - private SAXParseException getException (String message) - { - SAXParseException e; - Locator locator = getDocumentLocator (); - - if (locator == null) - return new SAXParseException (message, null, null, -1, -1); - else - return new SAXParseException (message, locator); - } - - private void fatalError (String message) - throws SAXException - { - SAXParseException e = getException (message); - ErrorHandler handler = getErrorHandler (); - - if (handler != null) - handler.fatalError (e); - throw e; - } - - /** - * Throws an exception when called after startDocument. - * - * @param locator the locator, to be used in error reporting or relative - * URI resolution. - * - * @exception IllegalStateException when called after the document - * has already been started - */ - public void setDocumentLocator (Locator locator) - { - if (startedDoc) - throw new IllegalStateException ( - "setDocumentLocator called after startDocument"); - super.setDocumentLocator (locator); - } - - public void startDocument () throws SAXException - { - if (startedDoc) - fatalError ("startDocument called more than once"); - startedDoc = true; - startedCDATA = false; - elementStack.removeAllElements (); - super.startDocument (); - } - - public void startElement ( - String uri, String localName, - String qName, Attributes atts - ) throws SAXException - { - if (!startedDoc) - fatalError ("callback outside of document?"); - if ("inside".equals (dtdState)) - fatalError ("element inside DTD?"); - else - dtdState = "after"; - if (startedCDATA) - fatalError ("element inside CDATA section"); - if (qName == null || "".equals (qName)) - fatalError ("startElement name missing"); - elementStack.push (qName); - super.startElement (uri, localName, qName, atts); - } - - public void endElement (String uri, String localName, String qName) - throws SAXException - { - if (!startedDoc) - fatalError ("callback outside of document?"); - if (startedCDATA) - fatalError ("element inside CDATA section"); - if (qName == null || "".equals (qName)) - fatalError ("endElement name missing"); - - try { - String top = (String) elementStack.pop (); - - if (!qName.equals (top)) - fatalError ("<" + top + " ...>...</" + qName + ">"); - // XXX could record/test namespace info - } catch (EmptyStackException e) { - fatalError ("endElement without startElement: </" + qName + ">"); - } - super.endElement (uri, localName, qName); - } - - public void endDocument () throws SAXException - { - if (!startedDoc) - fatalError ("callback outside of document?"); - dtdState = "before"; - startedDoc = false; - super.endDocument (); - } - - - public void startDTD (String root, String publicId, String systemId) - throws SAXException - { - if (!startedDoc) - fatalError ("callback outside of document?"); - if ("before" != dtdState) - fatalError ("two DTDs?"); - if (!elementStack.empty ()) - fatalError ("DTD must precede root element"); - dtdState = "inside"; - super.startDTD (root, publicId, systemId); - } - - public void notationDecl (String name, String publicId, String systemId) - throws SAXException - { -// FIXME: not all parsers will report startDTD() ... -// we'd rather insist we're "inside". - if ("after" == dtdState) - fatalError ("not inside DTD"); - super.notationDecl (name, publicId, systemId); - } - - public void unparsedEntityDecl (String name, - String publicId, String systemId, String notationName) - throws SAXException - { -// FIXME: not all parsers will report startDTD() ... -// we'd rather insist we're "inside". - if ("after" == dtdState) - fatalError ("not inside DTD"); - super.unparsedEntityDecl (name, publicId, systemId, notationName); - } - - // FIXME: add the four DeclHandler calls too - - public void endDTD () - throws SAXException - { - if (!startedDoc) - fatalError ("callback outside of document?"); - if ("inside" != dtdState) - fatalError ("DTD ends without start?"); - dtdState = "after"; - super.endDTD (); - } - - public void characters (char ch [], int start, int length) - throws SAXException - { - int here = start, end = start + length; - if (elementStack.empty ()) - fatalError ("characters must be in an element"); - while (here < end) { - if (ch [here++] != ']') - continue; - if (here == end) // potential problem ... - continue; - if (ch [here++] != ']') - continue; - if (here == end) // potential problem ... - continue; - if (ch [here++] == '>') - fatalError ("character data can't contain \"]]>\""); - } - super.characters (ch, start, length); - } - - public void ignorableWhitespace (char ch [], int start, int length) - throws SAXException - { - int here = start, end = start + length; - if (elementStack.empty ()) - fatalError ("characters must be in an element"); - while (here < end) { - if (ch [here++] == '\r') - fatalError ("whitespace can't contain CR"); - } - super.ignorableWhitespace (ch, start, length); - } - - public void processingInstruction (String target, String data) - throws SAXException - { - if (data.indexOf ('\r') > 0) - fatalError ("PIs can't contain CR"); - if (data.indexOf ("?>") > 0) - fatalError ("PIs can't contain \"?>\""); - } - - public void comment (char ch [], int start, int length) - throws SAXException - { - if (!startedDoc) - fatalError ("callback outside of document?"); - if (startedCDATA) - fatalError ("comments can't nest in CDATA"); - int here = start, end = start + length; - while (here < end) { - if (ch [here] == '\r') - fatalError ("comments can't contain CR"); - if (ch [here++] != '-') - continue; - if (here == end) - fatalError ("comments can't end with \"--->\""); - if (ch [here++] == '-') - fatalError ("comments can't contain \"--\""); - } - super.comment (ch, start, length); - } - - public void startCDATA () - throws SAXException - { - if (!startedDoc) - fatalError ("callback outside of document?"); - if (startedCDATA) - fatalError ("CDATA starts can't nest"); - startedCDATA = true; - super.startCDATA (); - } - - public void endCDATA () - throws SAXException - { - if (!startedDoc) - fatalError ("callback outside of document?"); - if (!startedCDATA) - fatalError ("CDATA end without start?"); - startedCDATA = false; - super.endCDATA (); - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/XIncludeFilter.java b/external/jaxp/source/gnu/xml/pipeline/XIncludeFilter.java deleted file mode 100644 index a914f153e..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/XIncludeFilter.java +++ /dev/null @@ -1,569 +0,0 @@ -/* - * Copyright (C) 2001-2002 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.io.IOException; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.net.URL; -import java.net.URLConnection; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Stack; -import java.util.Vector; - -import org.xml.sax.Attributes; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; -import org.xml.sax.XMLReader; -import org.xml.sax.helpers.XMLReaderFactory; - -import gnu.xml.util.Resolver; - - - -/** - * Filter to process an XPointer-free subset of - * <a href="http://www.w3.org/TR/xinclude">XInclude</a>, supporting its - * use as a kind of replacement for parsed general entities. - * XInclude works much like the <code>#include</code> of C/C++ but - * works for XML documents as well as unparsed text files. - * Restrictions from the 17-Sept-2002 CR draft of XInclude are as follows: - * - * <ul> - * - * <li> URIs must not include fragment identifiers. - * The CR specifies support for XPointer <em>element()</em> fragment IDs, - * which is not currently implemented here. - * - * <li> <em>xi:fallback</em> handling of resource errors is not - * currently supported. - * - * <li> DTDs are not supported in included files, since the SAX DTD events - * must have completely preceded any included file. - * The CR explicitly allows the DTD related portions of the infoset to - * grow as an effect of including XML documents. - * - * <li> <em>xml:base</em> fixup isn't done. - * - * </ul> - * - * <p> XML documents that are included will normally be processed using - * the default SAX namespace rules, meaning that prefix information may - * be discarded. This may be changed with {@link #setSavingPrefixes - * setSavingPrefixes()}. <em>You are strongly advised to do this.</em> - * - * <p> Note that XInclude allows highly incompatible implementations, which - * are specialized to handle application-specific infoset extensions. Some - * such implementations can be implemented by subclassing this one, but - * they may only be substituted in applications at "user option". - * - * <p>TBD: "IURI" handling. - * - * @author David Brownell - */ -public class XIncludeFilter extends EventFilter implements Locator -{ - private Hashtable extEntities = new Hashtable (5, 5); - private int ignoreCount; - private Stack uris = new Stack (); - private Locator locator; - private Vector inclusions = new Vector (5, 5); - private boolean savingPrefixes; - - /** - */ - public XIncludeFilter (EventConsumer next) - throws SAXException - { - super (next); - setContentHandler (this); - // DTDHandler callbacks pass straight through - setProperty (DECL_HANDLER, this); - setProperty (LEXICAL_HANDLER, this); - } - - private void fatal (SAXParseException e) throws SAXException - { - ErrorHandler eh; - - eh = getErrorHandler (); - if (eh != null) - eh.fatalError (e); - throw e; - } - - /** - * Passes "this" down the filter chain as a proxy locator. - */ - public void setDocumentLocator (Locator locator) - { - this.locator = locator; - super.setDocumentLocator (this); - } - - /** Used for proxy locator; do not call directly. */ - public String getSystemId () - { return (locator == null) ? null : locator.getSystemId (); } - /** Used for proxy locator; do not call directly. */ - public String getPublicId () - { return (locator == null) ? null : locator.getPublicId (); } - /** Used for proxy locator; do not call directly. */ - public int getLineNumber () - { return (locator == null) ? -1 : locator.getLineNumber (); } - /** Used for proxy locator; do not call directly. */ - public int getColumnNumber () - { return (locator == null) ? -1 : locator.getColumnNumber (); } - - /** - * Assigns the flag controlling the setting of the SAX2 - * <em>namespace-prefixes</em> flag. - */ - public void setSavingPrefixes (boolean flag) - { savingPrefixes = flag; } - - /** - * Returns the flag controlling the setting of the SAX2 - * <em>namespace-prefixes</em> flag when parsing included documents. - * The default value is the SAX2 default (false), which discards - * information that can be useful. - */ - public boolean isSavingPrefixes () - { return savingPrefixes; } - - // - // Two mechanisms are interacting here. - // - // - XML Base implies a stack of base URIs, updated both by - // "real entity" boundaries and element boundaries. - // - // - Active "Real Entities" (for document and general entities, - // and by xincluded files) are tracked to prevent circular - // inclusions. - // - private String addMarker (String uri) - throws SAXException - { - if (locator != null && locator.getSystemId () != null) - uri = locator.getSystemId (); - - // guard against InputSource objects without system IDs - if (uri == null) - fatal (new SAXParseException ("Entity URI is unknown", locator)); - - try { - URL url = new URL (uri); - - uri = url.toString (); - if (inclusions.contains (uri)) - fatal (new SAXParseException ( - "XInclude, circular inclusion", locator)); - inclusions.addElement (uri); - uris.push (url); - } catch (IOException e) { - // guard against illegal relative URIs (Xerces) - fatal (new SAXParseException ("parser bug: relative URI", - locator, e)); - } - return uri; - } - - private void pop (String uri) - { - inclusions.removeElement (uri); - uris.pop (); - } - - // - // Document entity boundaries get both treatments. - // - public void startDocument () throws SAXException - { - ignoreCount = 0; - addMarker (null); - super.startDocument (); - } - - public void endDocument () throws SAXException - { - inclusions.setSize (0); - extEntities.clear (); - uris.setSize (0); - super.endDocument (); - } - - // - // External general entity boundaries get both treatments. - // - public void externalEntityDecl (String name, - String publicId, String systemId) - throws SAXException - { - if (name.charAt (0) == '%') - return; - try { - URL url = new URL (locator.getSystemId ()); - systemId = new URL (url, systemId).toString (); - } catch (IOException e) { - // what could we do? - } - extEntities.put (name, systemId); - } - - public void startEntity (String name) - throws SAXException - { - if (ignoreCount != 0) { - ignoreCount++; - return; - } - - String uri = (String) extEntities.get (name); - if (uri != null) - addMarker (uri); - super.startEntity (name); - } - - public void endEntity (String name) - throws SAXException - { - if (ignoreCount != 0) { - if (--ignoreCount != 0) - return; - } - - String uri = (String) extEntities.get (name); - - if (uri != null) - pop (uri); - super.endEntity (name); - } - - // - // element boundaries only affect the base URI stack, - // unless they're XInclude elements. - // - public void - startElement (String uri, String localName, String qName, Attributes atts) - throws SAXException - { - if (ignoreCount != 0) { - ignoreCount++; - return; - } - - URL baseURI = (URL) uris.peek (); - String base; - - base = atts.getValue ("http://www.w3.org/XML/1998/namespace", "base"); - if (base == null) - uris.push (baseURI); - else { - URL url; - - if (base.indexOf ('#') != -1) - fatal (new SAXParseException ( - "xml:base with fragment: " + base, - locator)); - - try { - baseURI = new URL (baseURI, base); - uris.push (baseURI); - } catch (Exception e) { - fatal (new SAXParseException ( - "xml:base with illegal uri: " + base, - locator, e)); - } - } - - if (!"http://www.w3.org/2001/XInclude".equals (uri)) { - super.startElement (uri, localName, qName, atts); - return; - } - - if ("include".equals (localName)) { - String href = atts.getValue ("href"); - String parse = atts.getValue ("parse"); - String encoding = atts.getValue ("encoding"); - URL url = (URL) uris.peek (); - SAXParseException x = null; - - if (href == null) - fatal (new SAXParseException ( - "XInclude missing href", - locator)); - if (href.indexOf ('#') != -1) - fatal (new SAXParseException ( - "XInclude with fragment: " + href, - locator)); - - if (parse == null || "xml".equals (parse)) - x = xinclude (url, href); - else if ("text".equals (parse)) - x = readText (url, href, encoding); - else - fatal (new SAXParseException ( - "unknown XInclude parsing mode: " + parse, - locator)); - if (x == null) { - // strip out all child content - ignoreCount++; - return; - } - - // FIXME the 17-Sept-2002 CR of XInclude says we "must" - // use xi:fallback elements to handle resource errors, - // if they exist. - fatal (x); - - } else if ("fallback".equals (localName)) { - fatal (new SAXParseException ( - "illegal top level XInclude 'fallback' element", - locator)); - } else { - ErrorHandler eh = getErrorHandler (); - - // CR doesn't say this is an error - if (eh != null) - eh.warning (new SAXParseException ( - "unrecognized toplevel XInclude element: " + localName, - locator)); - super.startElement (uri, localName, qName, atts); - } - } - - public void endElement (String uri, String localName, String qName) - throws SAXException - { - if (ignoreCount != 0) { - if (--ignoreCount != 0) - return; - } - - uris.pop (); - if (!("http://www.w3.org/2001/XInclude".equals (uri) - && "include".equals (localName))) - super.endElement (uri, localName, qName); - } - - // - // ignore all content within non-empty xi:include elements - // - public void characters (char ch [], int start, int length) - throws SAXException - { - if (ignoreCount == 0) - super.characters (ch, start, length); - } - - public void processingInstruction (String target, String value) - throws SAXException - { - if (ignoreCount == 0) - super.processingInstruction (target, value); - } - - public void ignorableWhitespace (char ch [], int start, int length) - throws SAXException - { - if (ignoreCount == 0) - super.ignorableWhitespace (ch, start, length); - } - - public void comment (char ch [], int start, int length) - throws SAXException - { - if (ignoreCount == 0) - super.comment (ch, start, length); - } - - public void startCDATA () throws SAXException - { - if (ignoreCount == 0) - super.startCDATA (); - } - - public void endCDATA () throws SAXException - { - if (ignoreCount == 0) - super.endCDATA (); - } - - public void startPrefixMapping (String prefix, String uri) - throws SAXException - { - if (ignoreCount == 0) - super.startPrefixMapping (prefix, uri); - } - - public void endPrefixMapping (String prefix) throws SAXException - { - if (ignoreCount == 0) - super.endPrefixMapping (prefix); - } - - public void skippedEntity (String name) throws SAXException - { - if (ignoreCount == 0) - super.skippedEntity (name); - } - - // JDK 1.1 seems to need it to be done this way, sigh - void setLocator (Locator l) { locator = l; } - Locator getLocator () { return locator; } - - - // - // for XIncluded entities, manage the current locator and - // filter out events that would be incorrect to report - // - private class Scrubber extends EventFilter - { - Scrubber (EventFilter f) - throws SAXException - { - // delegation passes to next in chain - super (f); - - // process all content events - super.setContentHandler (this); - super.setProperty (LEXICAL_HANDLER, this); - - // drop all DTD events - super.setDTDHandler (null); - super.setProperty (DECL_HANDLER, null); - } - - // maintain proxy locator - // only one startDocument()/endDocument() pair per event stream - public void setDocumentLocator (Locator l) - { setLocator (l); } - public void startDocument () - { } - public void endDocument () - { } - - private void reject (String message) throws SAXException - { fatal (new SAXParseException (message, getLocator ())); } - - // only the DTD from the "base document" gets reported - public void startDTD (String root, String publicId, String systemId) - throws SAXException - { reject ("XIncluded DTD: " + systemId); } - public void endDTD () - throws SAXException - { reject ("XIncluded DTD"); } - // ... so this should never happen - public void skippedEntity (String name) throws SAXException - { reject ("XInclude skipped entity: " + name); } - - // since we rejected DTDs, only builtin entities can be reported - } - - // <xi:include parse='xml' ...> - // relative to the base URI passed - private SAXParseException xinclude (URL url, String href) - throws SAXException - { - XMLReader helper; - Scrubber scrubber; - Locator savedLocator = locator; - - // start with a parser acting just like our input - // modulo DTD-ish stuff (validation flag, entity resolver) - helper = XMLReaderFactory.createXMLReader (); - helper.setErrorHandler (getErrorHandler ()); - helper.setFeature (FEATURE_URI + "namespace-prefixes", true); - - // Set up the proxy locator and event filter. - scrubber = new Scrubber (this); - locator = null; - bind (helper, scrubber); - - // Merge the included document, except its DTD - try { - url = new URL (url, href); - href = url.toString (); - - if (inclusions.contains (href)) - fatal (new SAXParseException ( - "XInclude, circular inclusion", locator)); - - inclusions.addElement (href); - uris.push (url); - helper.parse (new InputSource (href)); - return null; - } catch (java.io.IOException e) { - return new SAXParseException (href, locator, e); - } finally { - pop (href); - locator = savedLocator; - } - } - - // <xi:include parse='text' ...> - // relative to the base URI passed - private SAXParseException readText (URL url, String href, String encoding) - throws SAXException - { - InputStream in = null; - - try { - URLConnection conn; - InputStreamReader reader; - char buf [] = new char [4096]; - int count; - - url = new URL (url, href); - conn = url.openConnection (); - in = conn.getInputStream (); - if (encoding == null) - encoding = Resolver.getEncoding (conn.getContentType ()); - if (encoding == null) { - ErrorHandler eh = getErrorHandler (); - if (eh != null) - eh.warning (new SAXParseException ( - "guessing text encoding for URL: " + url, - locator)); - reader = new InputStreamReader (in); - } else - reader = new InputStreamReader (in, encoding); - - while ((count = reader.read (buf, 0, buf.length)) != -1) - super.characters (buf, 0, count); - in.close (); - return null; - } catch (IOException e) { - return new SAXParseException ( - "can't XInclude text", - locator, e); - } - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/XsltFilter.java b/external/jaxp/source/gnu/xml/pipeline/XsltFilter.java deleted file mode 100644 index 3310d734e..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/XsltFilter.java +++ /dev/null @@ -1,120 +0,0 @@ -/* - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.pipeline; - -import java.io.IOException; - -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.TransformerConfigurationException; -import javax.xml.transform.sax.*; -import javax.xml.transform.stream.StreamSource; - -import org.xml.sax.ContentHandler; -import org.xml.sax.SAXException; -import org.xml.sax.ext.LexicalHandler; - - -/** - * Packages an XSLT transform as a pipeline component. - * Note that all DTD events (callbacks to DeclHandler and DTDHandler - * interfaces) are discarded, although XSLT transforms may be set up to - * use the LexicalHandler to write DTDs with only an external subset. - * Not every XSLT engine will necessarily be usable with this filter, - * but current versions of - * <a href="http://saxon.sourceforge.net">SAXON</a> and - * <a href="http://xml.apache.org/xalan-j">Xalan</a> should work well. - * - * @see TransformerFactory - * - * @author David Brownell - */ -final public class XsltFilter extends EventFilter -{ - /** - * Creates a filter that performs the specified transform. - * Uses the JAXP 1.1 interfaces to access the default XSLT - * engine configured for in the current execution context, - * and parses the stylesheet without custom EntityResolver - * or ErrorHandler support. - * - * @param stylesheet URI for the stylesheet specifying the - * XSLT transform - * @param next provides the ContentHandler and LexicalHandler - * to receive XSLT output. - * @exception SAXException if the stylesheet can't be parsed - * @exception IOException if there are difficulties - * bootstrapping the XSLT engine, such as it not supporting - * SAX well enough to use this way. - */ - public XsltFilter (String stylesheet, EventConsumer next) - throws SAXException, IOException - { - // First, get a transformer with the stylesheet preloaded - TransformerFactory tf = null; - TransformerHandler th; - - try { - SAXTransformerFactory stf; - - tf = TransformerFactory.newInstance (); - if (!tf.getFeature (SAXTransformerFactory.FEATURE) // sax inputs - || !tf.getFeature (SAXResult.FEATURE) // sax outputs - || !tf.getFeature (StreamSource.FEATURE) // stylesheet - ) - throw new IOException ("XSLT factory (" - + tf.getClass ().getName () - + ") does not support SAX"); - stf = (SAXTransformerFactory) tf; - th = stf.newTransformerHandler (new StreamSource (stylesheet)); - } catch (TransformerConfigurationException e) { - throw new IOException ("XSLT factory (" - + (tf == null - ? "none available" - : tf.getClass ().getName ()) - + ") configuration error, " - + e.getMessage () - ); - } - - // Hook its outputs up to the pipeline ... - SAXResult out = new SAXResult (); - - out.setHandler (next.getContentHandler ()); - try { - LexicalHandler lh; - lh = (LexicalHandler) next.getProperty (LEXICAL_HANDLER); - out.setLexicalHandler (lh); - } catch (Exception e) { - // ignore - } - th.setResult (out); - - // ... and make sure its inputs look like ours. - setContentHandler (th); - setProperty (LEXICAL_HANDLER, th); - } -} diff --git a/external/jaxp/source/gnu/xml/pipeline/package.html b/external/jaxp/source/gnu/xml/pipeline/package.html deleted file mode 100644 index 91ba3b927..000000000 --- a/external/jaxp/source/gnu/xml/pipeline/package.html +++ /dev/null @@ -1,257 +0,0 @@ -<html><head><title> -blah -<!-- -/* - * Copyright (c) 1999-2001 by David Brownell. All Rights Reserved. - * - * $Id: package.html,v 1.2 2004-05-01 16:18:51 mark Exp $ - */ ---> -</title></head><body> - -<p>This package exposes a kind of XML processing pipeline, based on sending -SAX events, which can be used as components of application architectures. -Pipelines are used to convey streams of processing events from a producer -to one or more consumers, and to let each consumer control the data seen by -later consumers. - -<p> There is a <a href="PipelineFactory.html">PipelineFactory</a> class which -accepts a syntax describing how to construct some simple pipelines. Strings -describing such pipelines can be used in command line tools (see the -<a href="../util/DoParse.html">DoParse</a> class) -and in other places that it is -useful to let processing be easily reconfigured. Pipelines can of course -be constructed programmatically, providing access to options that the -factory won't. - -<p> Web applications are supported by making it easy for servlets (or -non-Java web application components) to be part of a pipeline. They can -originate XML (or XHTML) data through an <em>InputSource</em> or in -response to XML messages sent from clients using <em>CallFilter</em> -pipeline stages. Such facilities are available using the simple syntax -for pipeline construction. - - -<h2> Programming Models </h2> - -<p> Pipelines should be simple to understand. - -<ul> - <li> XML content, typically entire documents, - is pushed through consumers by producers. - - <li> Pipelines are basically about consuming SAX2 callback events, - where the events encapsulate XML infoset-level data.<ul> - - <li> Pipelines are constructed by taking one or more consumer - stages and combining them to produce a composite consumer. - - <li> A pipeline is presumed to have pending tasks and state from - the beginning of its ContentHandler.startDocument() callback until - it's returned from its ContentHandler.doneDocument() callback. - - <li> Pipelines may have multiple output stages ("fan-out") - or multiple input stages ("fan-in") when appropriate. - - <li> Pipelines may be long-lived, but need not be. - - </ul> - - <li> There is flexibility about event production. <ul> - - <li> SAX2 XMLReader objects are producers, which - provide a high level "pull" model: documents (text or DOM) are parsed, - and the parser pushes individual events through the pipeline. - - <li> Events can be pushed directly to event consumer components - by application modules, if they invoke SAX2 callbacks directly. - That is, application modules use the XML Infoset as exposed - through SAX2 event callbacks. - - </ul> - - <li> Multiple producer threads may concurrently access a pipeline, - if they coordinate appropriately. - - <li> Pipeline processing is not the only framework applications - will use. - - </ul> - - -<h3> Producers: XMLReader or Custom </h3> - -<p> Many producers will be SAX2 XMLReader objects, and -will read (pull) data which is then written (pushed) as events. -Typically these will parse XML text (acquired from -<code>org.xml.sax.helpers.XMLReaderFactory</code>) or a DOM tree -(using a <code><a href="../util/DomParser.html">DomParser</a></code>) -These may be bound to event consumer using a convenience routine, -<em><a href="EventFilter.html">EventFilter</a>.bind()</em>. -Once bound, these producers may be given additional documents to -sent through its pipeline. - -<p> In other cases, you will write producers yourself. For example, some -data structures might know how to write themselves out using one or -more XML models, expressed as sequences of SAX2 event callbacks. -An application module might -itself be a producer, issuing startDocument and endDocument events -and then asking those data structures to write themselves out to a -given EventConsumer, or walking data structures (such as JDBC query -results) and applying its own conversion rules. WAP format XML -(WBMXL) can be directly converted to producer output. - -<p> SAX2 introduced an "XMLFilter" interface, which is a kind of XMLReader. -It is most useful in conjunction with its XMLFilterImpl helper class; -see the <em><a href="EventFilter.html">EventFilter</a></em> javadoc -for information contrasting that XMLFilterImpl approach with the -relevant parts of this pipeline framework. Briefly, such XMLFilterImpl -children can be either producers or consumers, and are more limited in -configuration flexibility. In this framework, the focus of filters is -on the EventConsumer side; see the section on -<a href="#fitting">pipe fitting</a> below. - - -<h3> Consume to Standard or Custom Data Representations </h3> - -<p> Many consumers will be used to create standard representations of XML -data. The <a href="TextConsumer.html">TextConsumer</a> takes its events -and writes them as text for a single XML document, -using an internal <a href="../util/XMLWriter.html">XMLWriter</a>. -The <a href="DomConsumer.html">DomConsumer</a> takes its events and uses -them to create and populate a DOM Document. - -<p> In other cases, you will write consumers yourself. For example, -you might use a particular unmarshaling filter to produce objects -that fit your application's requirements, instead of using DOM. -Such consumers work at the level of XML data models, rather than with -specific representations such as XML text or a DOM tree. You could -convert your output directly to WAP format data (WBXML). - - -<h3><a name="fitting">Pipe Fitting</a></h3> - -<p> Pipelines are composite event consumers, with each stage having -the opportunity to transform the data before delivering it to any -subsequent stages. - -<p> The <a href="PipelineFactory.html">PipelineFactory</a> class -provides access to much of this functionality through a simple syntax. -See the table in that class's javadoc describing a number of standard -components. Direct API calls are still needed for many of the most -interesting pipeline configurations, including ones leveraging actual -or logical concurrency. - -<p> Four basic types of pipe fitting are directly supported. These may -be used to construct complex pipeline networks. <ul> - - <li> <a href="TeeConsumer.html">TeeConsumer</a> objects split event - flow so it goes to two two different consumers, one before the other. - This is a basic form of event fan-out; you can use this class to - copy events to any number of output pipelines. - - <li> Clients can call remote components through HTTP or HTTPS using - the <a href="CallFilter.html">CallFilter</a> component, and Servlets - can implement such components by extending the - <a href="XmlServlet.html">XmlServlet</a> component. Java is not - required on either end, and transport protocols other than HTTP may - also be used. - - <li> <a href="EventFilter.html">EventFilter</a> objects selectively - provide handling for callbacks, and can pass unhandled ones to a - subsequent stage. They are often subclassed, since much of the - basic filtering machinery is already in place in the base class. - - <li> Applications can merge two event flows by just using the same - consumer in each one. If multiple threads are in use, synchronization - needs to be addressed by the appropriate application level policy. - - </ul> - -<p> Note that filters can be as complex as -<a href="XsltFilter.html">XSLT transforms</a> -available) on input data, or as simple as removing simple syntax data -such as ignorable whitespace, comments, and CDATA delimiters. -Some simple "built-in" filters are part of this package. - - -<h3> Coding Conventions: Filter and Terminus Stages</h3> - -<p> If you follow these coding conventions, your classes may be used -directly (give the full class name) in pipeline descriptions as understood -by the PipelineFactory. There are four constructors the factory may -try to use; in order of decreasing numbers of parameters, these are: <ul> - - <li> Filters that need a single String setup parameter should have - a public constructor with two parameters: that string, then the - EventConsumer holding the "next" consumer to get events. - - <li> Filters that don't need setup parameters should have a public - constructor that accepts a single EventConsumer holding the "next" - consumer to get events when they are done. - - <li> Terminus stages may have a public constructor taking a single - paramter: the string value of that parameter. - - <li> Terminus stages may have a public no-parameters constructor. - - </ul> - -<p> Of course, classes may support more than one such usage convention; -if they do, they can automatically be used in multiple modes. If you -try to use a terminus class as a filter, and that terminus has a constructor -with the appropriate number of arguments, it is automatically wrapped in -a "tee" filter. - - -<h2> Debugging Tip: "Tee" Joints can Snapshot Data</h2> - -<p> It can sometimes be hard to see what's happening, when something -goes wrong. Easily fixed: just snapshot the data. Then you can find -out where things start to go wrong. - -<p> If you're using pipeline descriptors so that they're easily -administered, just stick a <em>write ( filename )</em> -filter into the pipeline at an appropriate point. - -<p> Inside your programs, you can do the same thing directly: perhaps -by saving a Writer (perhaps a StringWriter) in a variable, using that -to create a TextConsumer, and making that the first part of a tee -- -splicing that into your pipeline at a convenient location. - -<p> You can also use a DomConsumer to buffer the data, but remember -that DOM doesn't save all the information that XML provides, so that DOM -snapshots are relatively low fidelity. They also are substantially more -expensive in terms of memory than a StringWriter holding similar data. - -<h2> Debugging Tip: Non-XML Producers</h2> - -<p> Producers in pipelines don't need to start from XML -data structures, such as text in XML syntax (likely coming -from some <em>XMLReader</em> that parses XML) or a -DOM representation (perhaps with a -<a href="../util/DomParser.html">DomParser</a>). - -<p> One common type of event producer will instead make -direct calls to SAX event handlers returned from an -<a href="EventConsumer.html">EventConsumer</a>. -For example, making <em>ContentHandler.startElement</em> -calls and matching <em>ContentHandler.endElement</em> calls. - -<p> Applications making such calls can catch certain -common "syntax errors" by using a -<a href="WellFormednessFilter.html">WellFormednessFilter</a>. -That filter will detect (and report) erroneous input data -such as mismatched document, element, or CDATA start/end calls. -Use such a filter near the head of the pipeline that your -producer feeds, at least while debugging, to help ensure that -you're providing legal XML Infoset data. - -<p> You can also arrange to validate data on the fly. -For DTD validation, you can configure a -<a href="ValidationConsumer.html">ValidationConsumer</a> -to work as a filter, using any DTD you choose. -Other validation schemes can be handled with other -validation filters. - -</body></html> diff --git a/external/jaxp/source/gnu/xml/util/DoParse.java b/external/jaxp/source/gnu/xml/util/DoParse.java deleted file mode 100644 index 821604d10..000000000 --- a/external/jaxp/source/gnu/xml/util/DoParse.java +++ /dev/null @@ -1,295 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.util; - -import java.io.*; - -import org.xml.sax.*; -import org.xml.sax.helpers.XMLReaderFactory; -import org.xml.sax.ext.*; - -// import gnu.xml.pipeline.*; -// Added imports directly to fix a GCJ problem. -import gnu.xml.pipeline.CallFilter; -import gnu.xml.pipeline.DomConsumer; -import gnu.xml.pipeline.EventConsumer; -import gnu.xml.pipeline.EventFilter; -import gnu.xml.pipeline.LinkFilter; -import gnu.xml.pipeline.NSFilter; -import gnu.xml.pipeline.PipelineFactory; -import gnu.xml.pipeline.TeeConsumer; -import gnu.xml.pipeline.TextConsumer; -import gnu.xml.pipeline.ValidationConsumer; -import gnu.xml.pipeline.WellFormednessFilter; -import gnu.xml.pipeline.XIncludeFilter; -import gnu.xml.pipeline.XsltFilter; - - -/** - * This class provides a driver which may be invoked from the command line - * to process a document using a SAX2 parser and a specified XML processing - * pipeline. - * This facilitates some common types of command line tools, such as parsing an - * XML document in order test it for well formedness or validity. - * - * <p>The SAX2 XMLReaderFactory should return a SAX2 XML parser which - * supports both of the standardized extension handlers (for declaration - * and lexical events). That parser will be used to produce events. - * - * <p>The first parameter to the command gives the name of the document that - * will be given to that processor. If it is a file name, it is converted - * to a URL first. - * - * <p>The second parameter describes a simple processing pipeline, and will - * be used as input to {@link gnu.xml.pipeline.PipelineFactory} - * methods which identify the processing to be done. Examples of such a - * pipeline include <pre> - * - * nsfix | validate <em>to validate the input document </em> - * nsfix | write ( stdout ) <em>to echo the file as XML text</em> - * dom | nsfix | write ( stdout ) <em>parse into DOM, print the result</em> - * </pre> - * - * <p> Relatively complex pipelines can be described on the command line, but - * not all interesting ones will require as little configuration as can be done - * in that way. Put filters like "nsfix", perhaps followed by "validate", - * at the front of the pipeline so they can be optimized out if a parser - * supports those modes natively. - * - * <p> If the parsing is aborted for any reason, the JVM will exit with a - * failure code. If a validating parse was done then both validation and - * well formedness errors will cause a failure. A non-validating parse - * will report failure on well formedness errors. - * - * @see gnu.xml.pipeline.PipelineFactory - * - * @author David Brownell - */ -final public class DoParse -{ - private DoParse () { /* no instances allowed */ } - - // first reported nonrecoverable error - private static SAXParseException fatal; - - // error categories - private static int errorCount; - private static int fatalCount; - - /** - * Command line invoker for this class; pass a filename or URL - * as the first argument, and a pipeline description as the second. - * Make sure to use filters to condition the input to stages that - * require it; an <em>nsfix</em> filter will be a common requirement, - * to restore syntax that SAX2 parsers delete by default. Some - * conditioning filters may be eliminated by setting parser options. - * (For example, "nsfix" can set the "namespace-prefixes" feature to - * a non-default value of "true". In the same way, "validate" can set - * the "validation" feature to "true".) - */ - public static void main (String argv []) - throws IOException - { - int exitStatus = 1; - - if (argv.length != 2) { - System.err.println ("Usage: DoParse [filename|URL] pipeline-spec"); - System.err.println ("Example pipeline specs:"); - System.err.println (" 'nsfix | validate'"); - System.err.println ( - " ... restore namespace syntax, validate"); - System.err.println (" 'nsfix | write ( stdout )'"); - System.err.println ( - " ... restore namespace syntax, write to stdout as XML" - ); - System.exit (1); - } - - try { - // - // Get input source for specified document (or try ;-) - // - argv [0] = Resolver.getURL (argv [0]); - InputSource input = new InputSource (argv [0]); - - // - // Get the producer, using the system default parser (which - // can be overridden for this particular invocation). - // - // And the pipeline, using commandline options. - // - XMLReader producer; - EventConsumer consumer; - - producer = XMLReaderFactory.createXMLReader (); - - // - // XXX pipeline factory now has a pre-tokenized input - // method, use it ... that way at least some params - // can be written using quotes (have spaces, ...) - // - consumer = PipelineFactory.createPipeline (argv [1]); - - // - // XXX want commandline option for tweaking error handler. - // Want to be able to present warnings. - // - producer.setErrorHandler (new MyErrorHandler ()); - - // XXX need facility enabling resolving to local DTDs - - // - // Parse. The pipeline may get optimized a bit, so we - // can't always fail cleanly for validation without taking - // a look at the filter stages. - // - EventFilter.bind (producer, consumer); - producer.parse (input); - - try { - if (producer.getFeature ( - "http://org.xml/sax/features/validation")) - exitStatus = ((errorCount + fatalCount) > 0) ? 1 : 0; - else if (fatalCount == 0) - exitStatus = 0; - } catch (SAXException e) { - if (hasValidator (consumer)) - exitStatus = ((errorCount + fatalCount) > 0) ? 1 : 0; - else if (fatalCount == 0) - exitStatus = 0; - } - - } catch (java.net.MalformedURLException e) { - System.err.println ("** Malformed URL: " + e.getMessage ()); - System.err.println ("Is '" + argv [0] + "' a non-existent file?"); - e.printStackTrace (); - // e.g. FNF - - } catch (SAXParseException e) { - if (e != fatal) { - System.err.print (printParseException ("Parsing Aborted", e)); - e.printStackTrace (); - if (e.getException () != null) { - System.err.println ("++ Wrapped exception:"); - e.getException ().printStackTrace (); - } - } - - } catch (SAXException e) { - Exception x = e; - if (e.getException () != null) - x = e.getException (); - x.printStackTrace (); - - } catch (Throwable t) { - t.printStackTrace (); - } - - System.exit (exitStatus); - } - - // returns true if saw a validator (before end or unrecognized node) - // false otherwise - private static boolean hasValidator (EventConsumer e) - { - if (e == null) - return false; - if (e instanceof ValidationConsumer) - return true; - if (e instanceof TeeConsumer) { - TeeConsumer t = (TeeConsumer) e; - return hasValidator (t.getFirst ()) - || hasValidator (t.getRest ()); - } - if (e instanceof WellFormednessFilter - || e instanceof NSFilter - ) - return hasValidator (((EventFilter)e).getNext ()); - - // else ... gee, we can't know. Assume not. - - return false; - } - - static class MyErrorHandler implements ErrorHandler - { - // dump validation errors, but continue - public void error (SAXParseException e) - throws SAXParseException - { - errorCount++; - System.err.print (printParseException ("Error", e)); - } - - public void warning (SAXParseException e) - throws SAXParseException - { - // System.err.print (printParseException ("Warning", e)); - } - - // try to continue fatal errors, in case a parser reports more - public void fatalError (SAXParseException e) - throws SAXParseException - { - fatalCount++; - if (fatal == null) - fatal = e; - System.err.print (printParseException ("Nonrecoverable Error", e)); - } - } - - static private String printParseException ( - String label, - SAXParseException e - ) { - StringBuffer buf = new StringBuffer (); - int temp; - - buf.append ("** "); - buf.append (label); - buf.append (": "); - buf.append (e.getMessage ()); - buf.append ('\n'); - if (e.getSystemId () != null) { - buf.append (" URI: "); - buf.append (e.getSystemId ()); - buf.append ('\n'); - } - if ((temp = e.getLineNumber ()) != -1) { - buf.append (" line: "); - buf.append (temp); - buf.append ('\n'); - } - if ((temp = e.getColumnNumber ()) != -1) { - buf.append (" char: "); - buf.append (temp); - buf.append ('\n'); - } - - return buf.toString (); - } -} diff --git a/external/jaxp/source/gnu/xml/util/DomParser.java b/external/jaxp/source/gnu/xml/util/DomParser.java deleted file mode 100644 index e240336bf..000000000 --- a/external/jaxp/source/gnu/xml/util/DomParser.java +++ /dev/null @@ -1,793 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.util; - -import java.util.Enumeration; -import java.util.Locale; - -import org.xml.sax.*; -import org.xml.sax.helpers.AttributesImpl; -import org.xml.sax.helpers.NamespaceSupport; -import org.xml.sax.ext.DeclHandler; -import org.xml.sax.ext.DefaultHandler2; -import org.xml.sax.ext.LexicalHandler; - -import org.w3c.dom.*; - - -/** - * This parser emits SAX2 parsing events as it traverses a DOM tree, using - * any conformant implementation of DOM. It exposes all SAX1 features, - * and the following SAX2 features and properties (as - * identified by standard URIs which are not fully provided here). Note - * that if a Level 1 DOM implementation is given, then this behaves as if - * namespaces were disabled, and namespace prefixes were enabled. </p> - * - * <table border="1" width='100%' cellpadding='3' cellspacing='0'> - * <tr bgcolor='#ccccff'> - * <th><font size='+1'>Name</font></th> - * <th><font size='+1'>Notes</font></th></tr> - * - * <tr><td colspan=2><center><em>Features ... URL prefix is - * <b>http://xml.org/sax/features/</b></em></center></td></tr> - * - * <tr><td>(URL)/external-general-entities</td> - * <td>false (does no parsing)</td></tr> - * <tr><td>(URL)/external-parameter-entities</td> - * <td>false (does no parsing)</td></tr> - * <tr><td>(URL)/namespaces</td> - * <td>Value is fixed at <em>true</em></td></tr> - * <tr><td>(URL)/namespace-prefixes</td> - * <td>Value is settable, defaulting to <em>false</em> - * (<code>xmlns</code> attributes hidden, and names aren't prefixed) - * </td></tr> - * <tr><td>(URL)/string-interning</td> - * <td>Value is fixed at <em>false</em> (DOM provides no - * guarantees as to interning)</td></tr> - * <tr><td>(URL)/validation</td> - * <td>false (does no parsing)</td></tr> - * <tr><td>(URL)/lexical-handler/parameter-entities</td> - * <td>false (DOM doesn't do parameter entities)</td></tr> - * - * <tr><td colspan=2><center><em>Properties ... URL prefix is - * <b>http://xml.org/sax/properties/</b></em></center></td></tr> - * - * - * <tr><td>(URL)/dom-node</td> - * <td>This property may be set before parsing to hold a DOM - * <em>Document</em> node; any arguments given to <em>parse</em> - * methods are ignored. When retrieved - * during a parse, this value contains the "current" DOM node. - * </td></tr> - * <tr><td>(URL)/declaration-handler</td> - * <td>A declaration handler may be provided. Declaration of external - * general entities is exposed, but not parameter entities; none of the - * entity names reported here will begin with "%". </td></tr> - * <tr><td>(URL)/lexical-handler</td> - * <td>A lexical handler may be provided. While the start and end of - * any external subset are reported, expansion of other parameter - * entities (e.g. inside attribute list declarations) is not exposed. - * Expansion of general entities within attributes is also not exposed - * (see below).</td></tr> - * </table> - * - * <P> The consequences of modifying a DOM document tree as it is being walked - * by this "parser" are unspecified; don't do it! </P> - * - * @author David Brownell - */ -final public class DomParser implements XMLReader -{ - // Stuff used internally to route events correctly - private DefaultHandler2 defaultHandler = new DefaultHandler2 (); - - // per-parse SAX stuff - private ContentHandler contentHandler = defaultHandler; - private DTDHandler dtdHandler = defaultHandler; - private DeclHandler declHandler = defaultHandler; - private LexicalHandler lexicalHandler = defaultHandler; - - // shared context - private ErrorHandler errHandler = defaultHandler; - private EntityResolver resolver = defaultHandler; - private Locale locale = Locale.getDefault (); - - // parser state - private Node start; - private Node current; - private boolean isL2; - private boolean showNamespaces = true; - private boolean showXML1_0 = false; - private NamespaceSupport prefixStack = new NamespaceSupport (); - private boolean isDocument; - - - /** - * Constructs an unitialized <b>SAX2</b> parser. - */ - public DomParser () { - } - - /** - * Constructs an <b>SAX2</b> parser initialized to traverse the specified - * DOM tree. If the node is a document, the startDocument() and - * endDocument() calls bracket the calls exposing children. - */ - public DomParser (Node node) { - setStart (node); - } - - - // stuff that most components in an application should be sharing: - // resolver and error locale. - - /** - * <b>SAX2</b>: Returns the object used when resolving external - * entities during parsing (both general and parameter entities). - */ - public EntityResolver getEntityResolver () - { - return resolver; - } - - /** - * <b>SAX1</b>: Provides an object which may be used when resolving external - * entities during parsing (both general and parameter entities). - */ - public void setEntityResolver (EntityResolver resolver) - { - if (resolver == null) - resolver = defaultHandler; - this.resolver = resolver; - } - - /** - * <b>SAX1</b>: Identifies the locale which the parser should use for the - * diagnostics it provides. - * - * @exception SAXException as defined in the specification for - * <em>org.xml.sax.Parser.setLocale()</em> - */ - public void setLocale (Locale locale) - throws SAXException - { - if (locale == null) - locale = Locale.getDefault (); - this.locale = locale; - } - - - // different modules will tend to handle error handling the same, - // but it may not be the same through the whole app - - /** - * <b>SAX2</b>: Returns the object used to receive callbacks for XML - * errors of all levels (fatal, nonfatal, warning). - */ - public ErrorHandler getErrorHandler () - { - return errHandler; - } - - /** - * <b>SAX1</b>: Provides an object which receives callbacks for XML errors - * of all levels (fatal, nonfatal, warning). - */ - public void setErrorHandler (ErrorHandler handler) - { - if (handler == null) - handler = defaultHandler; - errHandler = handler; - } - - - // stuff different parts of a module will handle differently - - /** - * <b>SAX2</b>: Returns the object used to report the logical - * content of an XML document. - */ - public ContentHandler getContentHandler () - { - return contentHandler; - } - - /** - * <b>SAX2</b>: Assigns the object used to report the logical - * content of an XML document. - */ - public void setContentHandler (ContentHandler handler) - { - if (handler == null) - handler = defaultHandler; - contentHandler = handler; - } - - /** - * <b>SAX2</b>: Returns the object used to process declarations related - * to notations and unparsed entities. - */ - public DTDHandler getDTDHandler () - { - return dtdHandler; - } - - /** - * <b>SAX1</b>: Provides an object which may be used to intercept - * declarations related to notations and unparsed entities. - */ - public void setDTDHandler (DTDHandler handler) - { - if (handler == null) - handler = defaultHandler; - dtdHandler = handler; - } - - - /** - * <b>SAX1</b>: Parses the previously provided DOM document (the - * input parameter is ignored). When this returns, that same - * document may be parsed again without needing a "reset". - * - * @param uri ignored (pass an empty string) - * @exception SAXException as defined in the specification for - * <em>org.xml.sax.Parser.parse()</em> - */ - public void parse (String uri) throws SAXException - { - parse (); - } - - /** - * <b>SAX1</b>: Parses the previously provided DOM document (the - * input parameter is ignored). When this returns, that same - * document may be parsed again without needing a "reset". - * - * @param input ignored - * @exception SAXException as defined in the specification for - * <em>org.xml.sax.Parser.parse()</em> - */ - public void parse (InputSource input) throws SAXException - { - parse (); - } - - private void parse () throws SAXException - { - try { - walk (); - } finally { - if (isDocument) - contentHandler.endDocument (); - current = null; - prefixStack.reset (); - } - } - - private boolean getIsL2 (Node node) - { - DOMImplementation impl; - Document doc; - - if (node instanceof Document) - doc = (Document) node; - else - doc = node.getOwnerDocument (); - if (doc == null) - throw new RuntimeException ("? unowned node - L2 DTD ?"); - impl = doc.getImplementation (); - return impl.hasFeature ("XML", "2.0"); - } - - - private static final String FEATURES = "http://xml.org/sax/features/"; - private static final String HANDLERS = "http://xml.org/sax/properties/"; - - /** - * <b>SAX2</b>: Tells whether this parser supports the specified feature. - */ - public boolean getFeature (String name) - throws SAXNotRecognizedException, SAXNotSupportedException - { - // basically, none are relevant -- they relate more to - // parsing than to walking a "parse tree". - - // FIXME: DOM feature to expose interning? - - if ((FEATURES + "validation").equals (name) - || (FEATURES + "external-general-entities") - .equals (name) - || (FEATURES + "external-parameter-entities") - .equals (name) - || (FEATURES + "string-interning").equals (name) - ) - return false; - - if ((FEATURES + "namespaces").equals (name)) - return showNamespaces; - if ((FEATURES + "namespace-prefixes").equals (name)) - return showXML1_0; - - throw new SAXNotRecognizedException (name); - } - - /** - * <b>SAX2</b>: Returns the specified property. At this time only - * the declaration and lexical handlers, and current the "DOM" node, - * are supported. - */ - public Object getProperty (String name) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if ((HANDLERS + "declaration-handler").equals (name)) - return declHandler == defaultHandler ? null : declHandler; - if ((HANDLERS + "lexical-handler").equals (name)) - return lexicalHandler == defaultHandler ? null : lexicalHandler; - - if ((HANDLERS + "dom-node").equals (name)) - return current; - - // unknown properties - throw new SAXNotRecognizedException (name); - } - - /** - * <b>SAX2</b>: Sets the state of features supported in this parser. - * Only the namespace support features are mutable. - */ - public void setFeature (String name, boolean state) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if (current != null) - throw new IllegalStateException ("feature change midparse"); - - boolean value = getFeature (name); - - if (value == state) - return; - - if ((FEATURES + "namespaces").equals (name)) { - if (!showXML1_0 && state == false) - throw new SAXNotSupportedException ("Illegal namespace " - + "processing configuration"); - showNamespaces = state; - return; - } - if ((FEATURES + "namespace-prefixes").equals (name)) { - if (!showNamespaces && state == false) - throw new SAXNotSupportedException ("Illegal namespace " - + "processing configuration"); - showXML1_0 = state; - return; - } - - throw new SAXNotSupportedException (name); - } - - /** - * <b>SAX2</b>: Assigns the specified property. At this time only - * declaration and lexical handlers, and the initial DOM document, are - * supported. These must not be changed to values of the wrong type. - * Like SAX1 handlers, these handlers may be changed at any time. - * Like SAX1 input source or document URI, the initial DOM document - * may not be changed during a parse. - */ - public void setProperty (String name, Object state) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if ((HANDLERS + "declaration-handler").equals (name)) { - if (!(state instanceof DeclHandler || state == null)) - throw new SAXNotSupportedException (name); - declHandler = (DeclHandler) state; - return; - } - - if ((HANDLERS + "lexical-handler").equals (name)) { - if (!(state instanceof LexicalHandler || state == null)) - throw new SAXNotSupportedException (name); - lexicalHandler = (LexicalHandler) state; - return; - } - - if ((HANDLERS + "dom-node").equals (name)) { - if (state == null || state instanceof Node) { - if (current != null) - throw new SAXNotSupportedException ( - "property is readonly during parse: " + name); - setStart ((Node) state); - return; - } - throw new SAXNotSupportedException ("not a DOM Node"); - } - - // unknown properties - throw new SAXNotRecognizedException (name); - } - - private void setStart (Node property) - { - start = property; - if (start != null) { - isL2 = getIsL2 (start); - isDocument = (start instanceof Document); - } - } - - // - // Non-recursive walk, using DOM state when backtracking is needed - // - private void walk () - throws SAXException - { - int type; - NamedNodeMap nodes; - int length; - AttributesImpl attrs = new AttributesImpl (); - char chars []; - String ns, local; - - synchronized (this) { - if (current != null) - throw new IllegalStateException ("already walking tree"); - - // JVM guarantees assignments are atomic; so no other - // thread could get this far till this walk's done. - current = start; - } - - for (;;) { - type = current.getNodeType (); - - // - // First, visit the current node, including any "start" calls - // - switch (type) { - - case Node.DOCUMENT_NODE: - contentHandler.startDocument (); - break; - - case Node.ELEMENT_NODE: - nodes = current.getAttributes (); - length = nodes.getLength (); - prefixStack.pushContext (); - for (int i = 0; i < length; i++) { - Attr attr = (Attr) nodes.item (i); - String name = attr.getNodeName (); - - if (showNamespaces && name.startsWith ("xmlns")) { - String prefix; - String uri; - - // NOTE: DOM L2 (CR2+ and REC) violate the - // Namespaces REC, treat "xmlns" like a strange - // attribute instead of a magic token - if ("xmlns".equals (name)) - prefix = ""; - else - prefix = name.substring (6); - uri = attr.getNodeValue (); - - prefixStack.declarePrefix (prefix, uri); - contentHandler.startPrefixMapping (prefix, uri); - - if (!showXML1_0) - continue; - } - - // - // NOTE: DOM doesn't record the attribute type info - // which SAX exposes; so this always reports CDATA. - // - // NOTE: SAX doesn't expose the isSpecified info which - // DOM exposes; that's discarded here. Similarly with - // the information DOM hides inside itself about what - // the default values for an attribute are. - // - if (showNamespaces) { - if (isL2) { - if ((ns = attr.getNamespaceURI ()) == null) - ns = ""; - // Note: SAX2 and DOM handle "local" names - // differently - if ((local = attr.getLocalName ()) == null) - local = name; - } else { -// XXX - throw new RuntimeException ( - "NYI, ns lookup when parsing L1 DOM"); - } - } else - ns = local = ""; - attrs.addAttribute (ns, local, name, - "CDATA", attr.getNodeValue ()); - } - if (showNamespaces) { - if (isL2) { - if ((ns = current.getNamespaceURI ()) == null) - ns = ""; - // Note: SAX2 and DOM handle "local" names differently - if ((local = current.getLocalName ()) == null) - local = current.getNodeName (); - } else { -// XXX - throw new RuntimeException ( - "NYI, ns lookup when parsing L1 DOM"); - } - } else - ns = local = ""; - contentHandler.startElement (ns, local, - current.getNodeName (), attrs); - if (length != 0) - attrs.clear (); - break; - - case Node.CDATA_SECTION_NODE: - lexicalHandler.startCDATA (); - chars = current.getNodeValue ().toCharArray (); - contentHandler.characters (chars, 0, chars.length); - lexicalHandler.endCDATA (); - break; - - case Node.COMMENT_NODE: - chars = current.getNodeValue ().toCharArray (); - lexicalHandler.comment (chars, 0, chars.length); - break; - - case Node.DOCUMENT_TYPE_NODE: - { - DocumentType doctype = (DocumentType) current; - - // - // Only DOM L2 supports recreating even some DTDs in full. - // - if (isL2) { - lexicalHandler.startDTD (doctype.getName (), - doctype.getPublicId (), - doctype.getSystemId ()); - } else - lexicalHandler.startDTD (doctype.getName (), - null, null); - - // - // The only sure way to recreate is to provide both the - // internal and external subsets. Otherwise, only part - // of the job can be done ... because from the DTD, DOM - // discards both the critical data, like the attribute and - // element declarations, as well as the PIs and comments - // that are used to hold their documentation. - // - // Even the entity and notation declarations that it can - // expose can't be recorded without proprietary extensions. - // - // We construct a comment to tell what we know about how - // (in)complete this particular really DTD is. - // - { - String message; - char buf []; - - // - // Though DOM L2 lets the whole doctype be recreated, - // SAX2 can't represent it (input or output). - // So this will be the typical case. - // - if (isL2 && doctype.getInternalSubset () != null) - message = - " Full DTD known; can't be shown using SAX2. "; - - // - // Otherwise, we'll concoct a partial DTD. If there's - // any more data here at all, it was provided using a - // (proprietary) extension to DOM. - // - else - message = - " This DTD was was recreated using incomplete DOM L2 records. "; - - buf = message.toCharArray (); - lexicalHandler.comment (buf, 0, buf.length); - } - - // report notations first - nodes = doctype.getNotations (); - length = nodes.getLength (); - for (int i = 0; i < length; i++) { - Notation notation = (Notation) nodes.item (i); - dtdHandler.notationDecl ( - notation.getNodeName (), - notation.getPublicId (), - notation.getSystemId ()); - } - - // then parsed and unparsed external general entities - nodes = doctype.getEntities (); - length = nodes.getLength (); - for (int i = 0; i < length; i++) { - Entity entity = (Entity) nodes.item (i); - String notation = entity.getNotationName (); - - if (notation != null) - dtdHandler.unparsedEntityDecl ( - entity.getNodeName (), - entity.getPublicId (), - entity.getSystemId (), - notation); - else if (entity.getSystemId () != null) - declHandler.externalEntityDecl ( - entity.getNodeName (), - entity.getPublicId (), - entity.getSystemId ()); - - // - // NOTE: DOM doesn't clearly provide internal - // entity support; but in case someone tries to - // fudge such support, we defend ourselves above. - // - // NOTE: DOM doesn't expose parameter entities - // (thank you thank you thank you thank you) - // - } - - // - // NOTE: DOM (levels 1 and 2) doesn't expose real - // typing information (element or attribute decls), - // as exposed by SAX2 declaration handlers. - // - lexicalHandler.endDTD (); - } - break; - - case Node.ENTITY_REFERENCE_NODE: - // this isn't done except (a) in content, and - // (b) not within a start tag (att value) - lexicalHandler.startEntity (current.getNodeName ()); - break; - - case Node.PROCESSING_INSTRUCTION_NODE: - contentHandler.processingInstruction ( - current.getNodeName (), current.getNodeValue ()); - break; - - case Node.TEXT_NODE: - chars = current.getNodeValue ().toCharArray (); - contentHandler.characters (chars, 0, chars.length); - break; - - default: - // e.g. fragments, entities, notations, attributes - throw new SAXException ("Illegal DOM Node type in Document: " - + current.getNodeType ()); - } - - // - // Then, pick the next node to visit. If the next node isn't - // a child, an "end" call may be needed before moving on. - // If there's no next node, we're done. - // - Node next; - - switch (type) { - case Node.DOCUMENT_NODE: - case Node.ELEMENT_NODE: - case Node.ENTITY_REFERENCE_NODE: - // - // For elements that can have children, visit those - // children before any siblings (i.e. depth first) - // and after visiting this node (i.e. preorder) - // - next = current.getFirstChild (); - if (next != null) { - current = next; - break; - } - // - // Else treat this like other childless nodes, but - // handle this node's "end" immediately. - // - callEnd (current); - - // FALLTHROUGH - - case Node.CDATA_SECTION_NODE: - case Node.COMMENT_NODE: - case Node.DOCUMENT_TYPE_NODE: - case Node.ENTITY_NODE: - case Node.PROCESSING_INSTRUCTION_NODE: - case Node.TEXT_NODE: - // - // Use next sibling, if there is one. - // Else, climb up a level (calling "end") - // until we find an ancestral sibling - // or until we we climb off the top (FINISH) - // - for (;;) { - if ((next = current.getNextSibling ()) != null) - break; - current = current.getParentNode (); - if (current == null || current == start) - return; - callEnd (current); - } - current = next; - break; - - default: - throw new SAXException ( - "Illegal DOM Node type found: " + current.getNodeType ()); - } - } - } - - private void callEnd (Node node) throws SAXException - { - switch (node.getNodeType ()) { - // only these three container types may ever be found - // directly inside a Document. - case Node.DOCUMENT_NODE: - // for SAX conformance, endDocument must always - // be called ... it's done in a "finally" clause) - return; - - case Node.ELEMENT_NODE: - if (showNamespaces) { - if (isL2) - contentHandler.endElement ( - node.getNamespaceURI (), - node.getLocalName (), - node.getNodeName ()); - else -// XXX - throw new RuntimeException ( - "NYI, ns lookup when parsing L1 DOM"); - for (Enumeration e = prefixStack.getDeclaredPrefixes (); - e.hasMoreElements (); - ) { - contentHandler.endPrefixMapping ((String) e.nextElement ()); - } - } else - contentHandler.endElement ("", "", node.getNodeName ()); - prefixStack.popContext (); - return; - - case Node.ENTITY_REFERENCE_NODE: - // see above -- in content, outside start tags. - lexicalHandler.endEntity (node.getNodeName ()); - return; - - // these can be given at the top level - case Node.DOCUMENT_FRAGMENT_NODE: - case Node.ATTRIBUTE_NODE: - return; - - default: - throw new SAXException ( - "Illegal DOM container type found: " - + current.getNodeType ()); - } - } -} diff --git a/external/jaxp/source/gnu/xml/util/Resolver.java b/external/jaxp/source/gnu/xml/util/Resolver.java deleted file mode 100644 index 4433e600e..000000000 --- a/external/jaxp/source/gnu/xml/util/Resolver.java +++ /dev/null @@ -1,252 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.util; - -import java.io.*; - -import java.util.Dictionary; -import java.util.Hashtable; - -import org.xml.sax.*; - - -/** - * Utility implementation of a SAX resolver, which can be used to improve - * network utilization of SAX based XML components. It does this by - * supporting local caches of external entities. - * SAX parsers <em>should</em> use such local caches when possible. - * - * @see XCat - */ -public class Resolver implements EntityResolver, Cloneable -{ - /** - * Updates a dictionary used to map PUBLIC identifiers to file names, - * so that it uses the mappings in a specified directory. - * - * @param mappings Array of string pairs, where the first member - * of each pair is a PUBLIC identifier and the second is the - * name of a file, relative to the specified directory. - * @param directory File holding the specified files. - */ - public static void addDirectoryMapping ( - Dictionary table, - String mappings [][], - File directory - ) throws IOException - { - for (int i = 0; i < mappings.length; i++) { - File file = new File (directory, mappings [i][1]); - String temp; - - if (!file.exists ()) // ?? log a warning ?? - continue; - - temp = fileToURL (file); - table.put (mappings [i][0], temp); - } - } - - // FIXME: these *URL routines don't quite belong here, except - // that they're all in the same spirit of making it easy to - // use local filesystem URIs with XML parsers. - - /** - * Provides the URL for a named file, without relying on the JDK 1.2 - * {@link java.io.File#toURL File.toURL}() utility method. - * - * @param filename the file name to convert. Relative file names - * are resolved the way the JVM resolves them (current to the - * process-global current working directory). - * - * @exception IOException if the file does not exist - */ - public static String fileNameToURL (String filename) - throws IOException - { - return fileToURL (new File (filename)); - } - - /** - * Provides the URL for a file, without relying on the JDK 1.2 - * {@link java.io.File#toURL File.toURL}() utility method. - * - * @param f the file to convert. Relative file names - * are resolved the way the JVM resolves them (current to the - * process-global current working directory). - * - * @exception IOException if the file does not exist - */ - public static String fileToURL (File f) - throws IOException - { - String temp; - - // NOTE: the javax.xml.parsers.DocumentBuilder and - // javax.xml.transform.stream.StreamSource versions - // of this don't have this test. Some JVM versions - // don't report this error sanely through URL code. - if (!f.exists ()) - throw new IOException ("no such file: " + f.getName ()); - - // FIXME: getAbsolutePath() seems buggy; I'm seeing components - // like "/foo/../" which are clearly not "absolute" - // and should have been resolved with the filesystem. - - // Substituting "/" would be wrong, "foo" may have been - // symlinked ... the URL code will make that change - // later, so that things can get _really_ broken! - - temp = f.getAbsolutePath (); - - if (File.separatorChar != '/') - temp = temp.replace (File.separatorChar, '/'); - if (!temp.startsWith ("/")) - temp = "/" + temp; - if (!temp.endsWith ("/") && f.isDirectory ()) - temp = temp + "/"; - return "file:" + temp; - } - - - /** - * Returns a URL string. Note that if a malformed URL is provided, or - * the parameter names a nonexistent file, the resulting URL may be - * malformed. - * - * @param fileOrURL If this is the name of a file which exists, - * then its URL is returned. Otherwise the argument is returned. - */ - public static String getURL (String fileOrURL) - { - try { - return fileNameToURL (fileOrURL); - } catch (Exception e) { - return fileOrURL; - } - } - - - - // note: cloneable, this is just copied; unguarded against mods - private Dictionary pubidMapping; - - /** - * Constructs a resolver which understands how to map PUBLIC identifiers - * to other URIs, typically for local copies of standard DTD components. - * - * @param dictionary maps PUBLIC identifiers to URIs. This is not - * copied; subsequent modifications will be reported through the - * resolution operations. - */ - public Resolver (Dictionary dict) - { pubidMapping = dict; } - - - // FIXME: want notion of a "system default" resolver, presumably - // loaded with all sorts of useful stuff. At the same time need - // a notion of resolver chaining (failure --> next) so that subsystems - // can set up things that won't interfere with other ones. - - /** - * This parses most MIME content type strings that have <em>charset=...</em> - * encoding declarations to and returns the specified encoding. This - * conforms to RFC 3023, and is useful when constructing InputSource - * objects from URLConnection objects or other objects using MIME - * content typing. - * - * @param contentType the MIME content type that will be parsed; must - * not be null. - * @return the appropriate encoding, or null if the content type is - * not text and there's no <code>charset=...</code> attribute - */ - static public String getEncoding (String contentType) - { - // currently a dumb parsing algorithm that works "mostly" and handles - // ..anything...charset=ABC - // ..anything...charset=ABC;otherAttr=DEF - // ..anything...charset=ABC (comment);otherAttr=DEF - // ..anything...charset= "ABC" (comment);otherAttr=DEF - - int temp; - String encoding; - String defValue = null; - - if (contentType.startsWith ("text/")) - defValue = contentType.startsWith ("text/html") - ? "ISO-8859-1" : "US-ASCII"; - - // Assumes 'charset' is only an attribute name, not part - // of a value, comment, or other attribute name - // ALSO assumes no escaped values like "\;" or "\)" - if ((temp = contentType.indexOf ("charset")) != -1) { - // strip out everything up to '=' ... - temp = contentType.indexOf ('=', temp); - if (temp == -1) - return defValue; - encoding = contentType.substring (temp + 1); - // ... and any subsequent attributes - if ((temp = encoding.indexOf (';')) != -1) - encoding = encoding.substring (0, temp); - // ... and any comments after value - if ((temp = encoding.indexOf ('(')) != -1) - encoding = encoding.substring (0, temp); - // ... then whitespace, and any (double) quotes - encoding = encoding.trim (); - if (encoding.charAt (0) == '"') - encoding = encoding.substring (1, encoding.length () - 1); - } else - encoding = defValue; - return encoding; - } - - - /** - * Uses a local dictionary of public identifiers to resolve URIs, - * normally with the goal of minimizing network traffic or latencies. - */ - public InputSource resolveEntity (String publicId, String systemId) - throws IOException, SAXException - { - InputSource retval = null; - String uri; - - if (publicId != null - && ((uri = (String) pubidMapping.get (publicId)) != null)) { - retval = new InputSource (uri); - retval.setPublicId (publicId); - } - - // Could do URN resolution here - - // URL resolution always done by parser - - // FIXME: chain to "next" resolver - - return retval; - } -} diff --git a/external/jaxp/source/gnu/xml/util/SAXNullTransformerFactory.java b/external/jaxp/source/gnu/xml/util/SAXNullTransformerFactory.java deleted file mode 100644 index a862a0118..000000000 --- a/external/jaxp/source/gnu/xml/util/SAXNullTransformerFactory.java +++ /dev/null @@ -1,539 +0,0 @@ -/* - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.util; - -import java.io.FileOutputStream; -import java.io.IOException; -import java.io.OutputStream; -import java.net.URL; -import java.net.URLConnection; -import java.util.Hashtable; -import java.util.Properties; - -import gnu.xml.dom.Consumer; -import gnu.xml.dom.DomDocument; -import gnu.xml.pipeline.DomConsumer; -import gnu.xml.pipeline.EventFilter; - -import javax.xml.transform.*; -import javax.xml.transform.dom.*; -import javax.xml.transform.sax.*; -import javax.xml.transform.stream.*; - -import org.xml.sax.*; -import org.xml.sax.helpers.XMLReaderFactory; -import org.xml.sax.helpers.LocatorImpl; - - -/** - * Implements null transforms. XSLT stylesheets are not supported. - * This class provides a way to translate three representations of - * XML data (SAX event stream, DOM tree, and XML text) into each other. - * In essence it's a thinnish wrapper around basic SAX event - * <a href="../pipeline/package-summary.html">pipeline</a> facilities, which - * exposes only limited functionality. The <em>javax.xml.transform</em> - * functionality is implemented as follows: <ul> - * - * <li>The {@link javax.xml.transform.sax.SAXSource SAXSource} class - * just wraps an {@link XMLReader} and {@link InputSource}, while the - * {@link javax.xml.transform.sax.SAXResult SAXResult} class is less - * functional than a {@link gnu.xml.pipeline.EventConsumer EventConsumer}. - * (Notably, it drops all but one declaration from any DTD.)</li> - * - * <li>The {@link javax.xml.transform.dom.DOMSource DOMSource} class - * corresponds to special SAX parsers like {@link DomParser}, and the - * {@link javax.xml.transform.dom.DOMResult DOMResult} class corresponds - * to a {@link gnu.xml.pipeline.DomConsumer DomConsumer}.</li> - * - * <li>The {@link javax.xml.transform.stream.StreamSource StreamSource} - * class corresponds to a SAX {@link InputSource}, and the - * {@link javax.xml.transform.stream.StreamResult StreamResult} class - * corresponds to a {@link gnu.xml.pipeline.TextConsumer TextConsumer}.</li> - * - * </ul> - * - * <p><em>This implementation is preliminary.</em> - * - * @see gnu.xml.pipeline.XsltFilter - * - * @author David Brownell - */ -public class SAXNullTransformerFactory extends SAXTransformerFactory -{ - private ErrorListener errListener; - private URIResolver uriResolver; - - /** Default constructor */ - public SAXNullTransformerFactory () { } - - // - // only has stuff that makes sense with null transforms - // - - /** - * Returns true if the requested feature is supported. - * All three kinds of input and output are accepted: - * XML text, SAX events, and DOM nodes. - */ - public boolean getFeature (String feature) - { - return SAXTransformerFactory.FEATURE.equals (feature) - || SAXResult.FEATURE.equals (feature) - || SAXSource.FEATURE.equals (feature) - || DOMResult.FEATURE.equals (feature) - || DOMSource.FEATURE.equals (feature) - || StreamResult.FEATURE.equals (feature) - || StreamSource.FEATURE.equals (feature) - ; - } - - /** Throws an exception (no implementation attributes are supported) */ - public void setAttribute (String key, Object value) - { - throw new IllegalArgumentException (); - } - - /** Throws an exception (no implementation attributes are supported) */ - public Object getAttribute (String key) - { - throw new IllegalArgumentException (); - } - - /** (not yet implemented) */ - public Source getAssociatedStylesheet (Source source, - String media, String title, String charset) - throws TransformerConfigurationException - { -// parse, and find the appropriate xsl-stylesheet PI contents -throw new IllegalArgumentException (); - } - - public Transformer newTransformer () - throws TransformerConfigurationException - { - return new NullTransformer (); - } - - /** - * Returns a TransformerHandler that knows how to generate output - * in all three standard formats. Output text is generated using - * {@link XMLWriter}, and the GNU implementation of - * {@link DomDocument DOM} is used. - * - * @see SAXResult - * @see StreamResult - * @see DOMResult - */ - public TransformerHandler newTransformerHandler () - throws TransformerConfigurationException - { - NullTransformer transformer = new NullTransformer (); - return transformer.handler; - } - - // - // Stuff that depends on XSLT support, which we don't provide - // - private static final String noXSLT = "No XSLT support"; - - /** Throws an exception (XSLT is not supported). */ - public Transformer newTransformer (Source stylesheet) - throws TransformerConfigurationException - { throw new TransformerConfigurationException (noXSLT); } - - /** Throws an exception (XSLT is not supported). */ - public Templates newTemplates (Source stylesheet) - throws TransformerConfigurationException - { throw new TransformerConfigurationException (noXSLT); } - - /** Throws an exception (XSLT is not supported). */ - public TemplatesHandler newTemplatesHandler () - throws TransformerConfigurationException - { throw new TransformerConfigurationException (noXSLT); } - - /** Throws an exception (XSLT is not supported). */ - public TransformerHandler newTransformerHandler (Source stylesheet) - throws TransformerConfigurationException - { throw new TransformerConfigurationException (noXSLT); } - - /** Throws an exception (XSLT is not supported). */ - public TransformerHandler newTransformerHandler (Templates stylesheet) - throws TransformerConfigurationException - { throw new TransformerConfigurationException (noXSLT); } - - /** Throws an exception (XSLT is not supported). */ - public XMLFilter newXMLFilter (Source stylesheet) - throws TransformerConfigurationException - { throw new TransformerConfigurationException (noXSLT); } - - /** Throws an exception (XSLT is not supported). */ - public XMLFilter newXMLFilter (Templates stylesheet) - throws TransformerConfigurationException - { throw new TransformerConfigurationException (noXSLT); } - - /** Returns the value assigned by {@link #setErrorListener}. */ - public ErrorListener getErrorListener () - { return errListener; } - - /** Assigns a value that would be used when parsing stylesheets */ - public void setErrorListener (ErrorListener e) - { errListener = e; } - - /** Returns the value assigned by {@link #setURIResolver}. */ - public URIResolver getURIResolver () - { return uriResolver; } - - /** Assigns a value that would be used when parsing stylesheets */ - public void setURIResolver (URIResolver u) - { uriResolver = u; } - - - // - // Helper classes. These might in theory be subclassed - // by an XSLT implementation, if they were exported. - // - - static class DomTerminus extends DomConsumer - { - DomTerminus (DOMResult result) throws SAXException - { - // won't really throw SAXException - super (DomDocument.class); - setHandler (new DomHandler (this, result)); - } - } - - static class DomHandler extends Consumer.Backdoor - { - private DOMResult result; - - DomHandler (DomConsumer c, DOMResult r) throws SAXException - { - // won't really throw SAXException - super (c); - result = r; - } - - public void endDocument () throws SAXException - { - super.endDocument (); - result.setNode (getDocument ()); - } - } - - private static OutputStream getOutputStream (String uri) - throws IOException - { - // JDK stupidity: file "protocol does not support output" ... - if (uri.startsWith ("file:")) - return new FileOutputStream (uri.substring (5)); - - // Otherwise ... - URL url = new URL (uri); - URLConnection conn = url.openConnection (); - - conn.setDoOutput (true); - return conn.getOutputStream (); - } - - - static class NullHandler extends EventFilter implements TransformerHandler - { - private String systemId; - private Transformer transformer; - - NullHandler (Transformer t) - { transformer = t; } - - public Transformer getTransformer () - { return transformer; } - - public String getSystemId () - { return systemId; } - - public void setSystemId (String id) - { systemId = id; } - - public void setResult (Result result) - { - if (result.getSystemId () != null) - systemId = result.getSystemId (); - - try { - - // output to partial SAX event stream? - if (result instanceof SAXResult) { - SAXResult r = (SAXResult) result; - - setContentHandler (r.getHandler ()); - setProperty (LEXICAL_HANDLER, r.getLexicalHandler ()); - // DTD info is filtered out by javax.transform - - // output to DOM tree? - } else if (result instanceof DOMResult) { - DomTerminus out = new DomTerminus ((DOMResult) result); - - setContentHandler (out.getContentHandler ()); - setProperty (LEXICAL_HANDLER, - out.getProperty (LEXICAL_HANDLER)); - // save DTD-derived info, if any. - setDTDHandler (out.getDTDHandler ()); - setProperty (DECL_HANDLER, - out.getProperty (DECL_HANDLER)); - - // node is saved into result on endDocument() - - // output to (XML) text? - } else if (result instanceof StreamResult) { - StreamResult r = (StreamResult) result; - XMLWriter out; - -// FIXME: when do output properties take effect? -// encoding, standalone decl, xml/xhtml/... ... - -// FIXME: maybe put nsfix filter up front - - try { - if (r.getWriter () != null) - out = new XMLWriter (r.getWriter ()); - else if (r.getOutputStream () != null) - out = new XMLWriter (r.getOutputStream ()); - else if (r.getSystemId () != null) - out = new XMLWriter ( - getOutputStream (r.getSystemId ())); - else - throw new IllegalArgumentException ( - "bad StreamResult"); - } catch (IOException e) { -e.printStackTrace (); - // on jdk 1.4, pass the root cause ... - throw new IllegalArgumentException (e.getMessage ()); - } - -// out.setExpandingEntities (true); -// out.setPrettyPrinting (true); -// out.setXhtml (true); - - setContentHandler (out); - setProperty (LEXICAL_HANDLER, out); - // save DTD info, if any; why not? - setDTDHandler (out); - setProperty (DECL_HANDLER, out); - } - - } catch (SAXException e) { - // SAXNotSupportedException or SAXNotRecognizedException: - // "can't happen" ... but SAXException for DOM build probs - // could happen, so ... - // on jdk 1.4, pass the root cause ... - throw new IllegalArgumentException (e.getMessage ()); - } - } - } - - // an interface that adds no value - static class LocatorAdapter extends LocatorImpl implements SourceLocator - { - LocatorAdapter (SAXParseException e) - { - setSystemId (e.getSystemId ()); - setPublicId (e.getPublicId ()); - setLineNumber (e.getLineNumber ()); - setColumnNumber (e.getColumnNumber ()); - } - } - - // another interface that adds no value - static class ListenerAdapter implements ErrorHandler - { - NullTransformer transformer; - - ListenerAdapter (NullTransformer t) - { transformer = t; } - - private TransformerException map (SAXParseException e) - { - return new TransformerException ( - e.getMessage (), - new LocatorAdapter (e), - e); - } - - public void error (SAXParseException e) - throws SAXParseException - { - try { - if (transformer.errListener != null) - transformer.errListener.error (map (e)); - } catch (TransformerException ex) { - transformer.ex = ex; - throw e; - } - } - - public void fatalError (SAXParseException e) - throws SAXParseException - { - try { - if (transformer.errListener != null) - transformer.errListener.fatalError (map (e)); - else - throw map (e); - } catch (TransformerException ex) { - transformer.ex = ex; - throw e; - } - } - - public void warning (SAXParseException e) - throws SAXParseException - { - try { - if (transformer.errListener != null) - transformer.errListener.warning (map (e)); - } catch (TransformerException ex) { - transformer.ex = ex; - throw e; - } - } - } - - static class NullTransformer extends Transformer - { - private URIResolver uriResolver; - private Properties props = new Properties (); - private Hashtable params = new Hashtable (7); - - ErrorListener errListener = null; - TransformerException ex = null; - NullHandler handler; - - NullTransformer () - { - super (); - handler = new NullHandler (this); - } - - public ErrorListener getErrorListener () - { return errListener; } - public void setErrorListener (ErrorListener e) - { errListener = e; } - - public URIResolver getURIResolver () - { return uriResolver; } - public void setURIResolver (URIResolver u) - { uriResolver = u; } - - - public void setOutputProperties (Properties p) - { props = (Properties) p.clone (); } - public Properties getOutputProperties () - { return (Properties) props.clone (); } - - public void setOutputProperty (String name, String value) - { props.setProperty (name, value); } - public String getOutputProperty (String name) - { return props.getProperty (name); } - - public void clearParameters () - { params.clear (); } - public void setParameter (String name, Object value) - { props.put (name, value); } - public Object getParameter (String name) - { return props.get (name); } - - public void transform (Source in, Result out) - throws TransformerException - { - try { - XMLReader producer; - InputSource input; - - // Input from DOM? - if (in instanceof DOMSource) { - DOMSource source = (DOMSource) in; - - if (source.getNode () == null) - throw new IllegalArgumentException ("no DOM node"); - producer = new DomParser (source.getNode ()); - input = null; - - // Input from SAX? - } else if (in instanceof SAXSource) { - SAXSource source = (SAXSource) in; - - producer = source.getXMLReader (); - if (producer == null) - producer = XMLReaderFactory.createXMLReader (); - - input = source.getInputSource (); - if (input == null) { - if (source.getSystemId () != null) - input = new InputSource (source.getSystemId ()); - else - throw new IllegalArgumentException ( - "missing SAX input"); - } - - // Input from a stream or something? - } else { - producer = XMLReaderFactory.createXMLReader (); - input = SAXSource.sourceToInputSource (in); - if (input == null) - throw new IllegalArgumentException ("missing input"); - } - - // preserve original namespace prefixes - try { producer.setFeature ( - handler.FEATURE_URI + "namespace-prefixes", true); - } catch (Exception e) { - /* ignore */ -// FIXME if we couldn't, "NsFix" stage before the output .. - } - - // arrange the output - handler.setResult (out); - handler.bind (producer, handler); - - // then parse ... single element pipeline - producer.parse (input); - - } catch (IOException e) { - throw new TransformerException ("transform failed", e); - - } catch (SAXException e) { - if (ex == null && ex.getCause () == e) - throw ex; - else - throw new TransformerException ("transform failed", e); - - } finally { - ex = null; - } - } - } -} diff --git a/external/jaxp/source/gnu/xml/util/XCat.java b/external/jaxp/source/gnu/xml/util/XCat.java deleted file mode 100644 index ad77d6db7..000000000 --- a/external/jaxp/source/gnu/xml/util/XCat.java +++ /dev/null @@ -1,1598 +0,0 @@ -/* - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - - -package gnu.xml.util; - -import java.io.ByteArrayOutputStream; -import java.io.IOException; -import java.net.URL; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.StringTokenizer; -import java.util.Stack; -import java.util.Vector; - -import org.xml.sax.Attributes; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.Locator; -import org.xml.sax.SAXException; -import org.xml.sax.SAXNotRecognizedException; -import org.xml.sax.SAXParseException; -import org.xml.sax.XMLReader; - -import org.xml.sax.ext.DefaultHandler2; -import org.xml.sax.ext.EntityResolver2; - -import org.xml.sax.helpers.XMLReaderFactory; - -/** - * Packages <a href= - "http://www.oasis-open.org/committees/entity/spec-2001-08-06.html" - >OASIS XML Catalogs</a>, - * primarily for entity resolution by parsers. - * That specification defines an XML syntax for mappings between - * identifiers declared in DTDs (particularly PUBLIC identifiers) and - * locations. SAX has always supported such mappings, but conventions for - * an XML file syntax to maintain them have previously been lacking. - * - * <p> This has three main operational modes. The primary intended mode is - * to create a resolver, then preloading it with one or more site-standard - * catalogs before using it with one or more SAX parsers: <pre> - * XCat catalog = new XCat (); - * catalog.setErrorHandler (diagnosticErrorHandler); - * catalog.loadCatalog ("file:/local/catalogs/catalog.cat"); - * catalog.loadCatalog ("http://shared/catalog.cat"); - * ... - * catalog.disableLoading (); - * parser1.setEntityResolver (catalog); - * parser2.setEntityResolver (catalog); - * ...</pre> - * - * <p>A second mode is to arrange that your application uses instances of - * this class as its entity resolver, and automatically loads catalogs - * referenced by <em><?oasis-xml-catalog...?></em> processing - * instructions found before the DTD in documents it parses. - * It would then discard the resolver after each parse. - * - * <p> A third mode applies catalogs in contexts other than entity - * resolution for parsers. - * The {@link #resolveURI resolveURI()} method supports resolving URIs - * stored in XML application data, rather than inside DTDs. - * Catalogs would be loaded as shown above, and the catalog could - * be used concurrently for parser entity resolution and for - * application URI resolution. - * </p> - * - * <center><hr width='70%'></center> - * - * <p>Errors in catalogs implicitly loaded (during resolution) are ignored - * beyond being reported through any <em>ErrorHandler</em> assigned using - * {@link #setErrorHandler setErrorHandler()}. SAX exceptions - * thrown from such a handler won't abort resolution, although throwing a - * <em>RuntimeException</em> or <em>Error</em> will normally abort both - * resolution and parsing. Useful diagnostic information is available to - * any <em>ErrorHandler</em> used to report problems, or from any exception - * thrown from an explicit {@link #loadCatalog loadCatalog()} invocation. - * Applications can use that information as troubleshooting aids. - * - * <p>While this class requires <em>SAX2 Extensions 1.1</em> classes in - * its class path, basic functionality does not require using a SAX2 - * parser that supports the extended entity resolution functionality. - * See the original SAX1 - * {@link #resolveEntity(java.lang.String,java.lang.String) resolveEntity()} - * method for a list of restrictions which apply when it is used with - * older SAX parsers. - * - * @see EntityResolver2 - * - * @author David Brownell - */ -public class XCat implements EntityResolver2 -{ - private Catalog catalogs []; - private boolean usingPublic = true; - private boolean loadingPermitted = true; - private boolean unified = true; - private String parserClass; - private ErrorHandler errorHandler; - - // private EntityResolver next; // chain to next if we fail... - - // - // NOTE: This is a straightforward implementation, and if - // there are lots of "nextCatalog" or "delegate*" entries - // in use, two tweaks would be worth considering: - // - // - Centralize some sort of cache (key by URI) for individual - // resolvers. That'd avoid multiple copies of a given catalog. - // - // - Have resolution track what catalogs (+modes) have been - // searched. This would support loop detection. - // - - - /** - * Initializes without preloading a catalog. - * This API is convenient when you may want to arrange that catalogs - * are automatically loaded when explicitly referenced in documents, - * using the <em>oasis-xml-catalog</em> processing instruction. - * In such cases you won't usually be able to preload catalogs. - */ - public XCat () { } - - /** - * Initializes, and preloads a catalog using the default SAX parser. - * This API is convenient when you operate with one or more standard - * catalogs. - * - * <p> This just delegates to {@link #loadCatalog loadCatalog()}; - * see it for exception information. - * - * @param uri absolute URI for the catalog file. - */ - public XCat (String uri) - throws SAXException, IOException - { loadCatalog (uri); } - - - /** - * Loads an OASIS XML Catalog. - * It is appended to the list of currently active catalogs, or - * reloaded if a catalog with the same URI was already loaded. - * Callers have control over what parser is used, how catalog parsing - * errors are reported, and whether URIs will be resolved consistently. - * - * <p> The OASIS specification says that errors detected when loading - * catalogs "must recover by ignoring the catalog entry file that - * failed, and proceeding." In this API, that action can be the - * responsibility of applications, when they explicitly load any - * catalog using this method. - * - * <p>Note that catalogs referenced by this one will not be loaded - * at this time. Catalogs referenced through <em>nextCatalog</em> - * or <em>delegate*</em> elements are normally loaded only if needed. - * - * @see #setErrorHandler - * @see #setParserClass - * @see #setUnified - * - * @param uri absolute URI for the catalog file. - * - * @exception IOException As thrown by the parser, typically to - * indicate problems reading data from that URI. - * @exception SAXException As thrown by the parser, typically to - * indicate problems parsing data from that URI. It may also - * be thrown if the parser doesn't support necessary handlers. - * @exception IllegalStateException When attempting to load a - * catalog after loading has been {@link #disableLoading disabled}, - * such as after any entity or URI lookup has been performed. - */ - public synchronized void loadCatalog (String uri) - throws SAXException, IOException - { - Catalog catalog; - int index = -1; - - if (!loadingPermitted) - throw new IllegalStateException (); - - uri = normalizeURI (uri); - if (catalogs != null) { - // maybe just reload - for (index = 0; index < catalogs.length; index++) - if (uri.equals (catalogs [index].catalogURI)) - break; - } - catalog = loadCatalog (parserClass, errorHandler, uri, unified); - - // add to list of catalogs - if (catalogs == null) { - index = 0; - catalogs = new Catalog [1]; - } else if (index == catalogs.length) { - Catalog tmp []; - - tmp = new Catalog [index + 1]; - System.arraycopy (catalogs, 0, tmp, 0, index); - catalogs = tmp; - } - catalogs [index] = catalog; - } - - - /** - * "New Style" external entity resolution for parsers. - * Calls to this method prevent explicit loading of additional catalogs - * using {@link #loadCatalog loadCatalog()}. - * - * <p>This supports the full core catalog functionality for locating - * (and relocating) parsed entities that have been declared in a - * document's DTD. - * - * @param name Entity name, such as "dudley", "%nell", or "[dtd]". - * @param publicId Either a normalized public ID, or null. - * @param baseURI Absolute base URI associated with systemId. - * @param systemId URI found in entity declaration (may be - * relative to baseURI). - * - * @return Input source for accessing the external entity, or null - * if no mapping was found. The input source may have opened - * the stream, and will have a fully resolved URI. - * - * @see #getExternalSubset - */ - public InputSource resolveEntity ( - String name, // UNUSED ... systemId is always non-null - String publicId, - String baseURI, // UNUSED ... it just lets sysId be relative - String systemId - ) throws SAXException, IOException - { - if (loadingPermitted) - disableLoading (); - - try { - // steps as found in OASIS XML catalog spec 7.1.2 - // steps 1, 8 involve looping over the list of catalogs - for (int i = 0; i < catalogs.length; i++) { - InputSource retval; - retval = catalogs [i].resolve (usingPublic, publicId, systemId); - if (retval != null) - return retval;; - } - } catch (DoneDelegation x) { - // done! - } - // step 9 involves returning "no match" - return null; - } - - - /** - * "New Style" parser callback to add an external subset. - * For documents that don't include an external subset, this may - * return one according to <em>doctype</em> catalog entries. - * (This functionality is not a core part of the OASIS XML Catalog - * specification, though it's presented in an appendix.) - * If no such entry is defined, this returns null to indicate that - * this document will not be modified to include such a subset. - * Calls to this method prevent explicit loading of additional catalogs - * using {@link #loadCatalog loadCatalog()}. - * - * <p><em>Warning:</em> That catalog functionality can be dangerous. - * It can provide definitions of general entities, and thereby mask - * certain well formedess errors. - * - * @param name Name of the document element, either as declared in - * a DOCTYPE declaration or as observed in the text. - * @param baseURI Document's base URI (absolute). - * - * @return Input source for accessing the external subset, or null - * if no mapping was found. The input source may have opened - * the stream, and will have a fully resolved URI. - */ - public InputSource getExternalSubset (String name, String baseURI) - throws SAXException, IOException - { - if (loadingPermitted) - disableLoading (); - try { - for (int i = 0; i < catalogs.length; i++) { - InputSource retval = catalogs [i].getExternalSubset (name); - if (retval != null) - return retval; - } - } catch (DoneDelegation x) { - // done! - } - return null; - } - - - /** - * "Old Style" external entity resolution for parsers. - * This API provides only core functionality. - * Calls to this method prevent explicit loading of additional catalogs - * using {@link #loadCatalog loadCatalog()}. - * - * <p>The functional limitations of this interface include:</p><ul> - * - * <li>Since system IDs will be absolutized before the resolver - * sees them, matching against relative URIs won't work. - * This may affect <em>system</em>, <em>rewriteSystem</em>, - * and <em>delegateSystem</em> catalog entries. - * - * <li>Because of that absolutization, documents declaring entities - * with system IDs using URI schemes that the JVM does not recognize - * may be unparsable. URI schemes such as <em>file:/</em>, - * <em>http://</em>, <em>https://</em>, and <em>ftp://</em> - * will usually work reliably. - * - * <li>Because missing external subsets can't be provided, the - * <em>doctype</em> catalog entries will be ignored. - * (The {@link #getExternalSubset getExternalSubset()} method is - * a "New Style" resolution option.) - * - * </ul> - * - * <p>Applications can tell whether this limited functionality will be - * used: if the feature flag associated with the {@link EntityResolver2} - * interface is not <em>true</em>, the limitations apply. Applications - * can't usually know whether a given document and catalog will trigger - * those limitations. The issue can only be bypassed by operational - * procedures such as not using catalogs or documents which involve - * those features. - * - * @param publicId Either a normalized public ID, or null - * @param systemId Always an absolute URI. - * - * @return Input source for accessing the external entity, or null - * if no mapping was found. The input source may have opened - * the stream, and will have a fully resolved URI. - */ - final public InputSource resolveEntity (String publicId, String systemId) - throws SAXException, IOException - { - return resolveEntity (null, publicId, null, systemId); - } - - - /** - * Resolves a URI reference that's not defined to the DTD. - * This is intended for use with URIs found in document text, such as - * <em>xml-stylesheet</em> processing instructions and in attribute - * values, where they are not recognized as URIs by XML parsers. - * Calls to this method prevent explicit loading of additional catalogs - * using {@link #loadCatalog loadCatalog()}. - * - * <p>This functionality is supported by the OASIS XML Catalog - * specification, but will never be invoked by an XML parser. - * It corresponds closely to functionality for mapping system - * identifiers for entities declared in DTDs; closely enough that - * this implementation's default behavior is that they be - * identical, to minimize potential confusion. - * - * <p>This method could be useful when implementing the - * {@link javax.xml.transform.URIResolver} interface, wrapping the - * input source in a {@link javax.xml.transform.sax.SAXSource}. - * - * @see #isUnified - * @see #setUnified - * - * @param baseURI The relevant base URI as specified by the XML Base - * specification. This recognizes <em>xml:base</em> attributes - * as overriding the actual (physical) base URI. - * @param uri Either an absolute URI, or one relative to baseURI - * - * @return Input source for accessing the mapped URI, or null - * if no mapping was found. The input source may have opened - * the stream, and will have a fully resolved URI. - */ - public InputSource resolveURI (String baseURI, String uri) - throws SAXException, IOException - { - if (loadingPermitted) - disableLoading (); - - // NOTE: baseURI isn't used here, but caller MUST have it, - // and heuristics _might_ use it in the future ... plus, - // it's symmetric with resolveEntity (). - - // steps 1, 6 involve looping - try { - for (int i = 0; i < catalogs.length; i++) { - InputSource tmp = catalogs [i].resolveURI (uri); - if (tmp != null) - return tmp; - } - } catch (DoneDelegation x) { - // done - } - // step 7 reports no match - return null; - } - - - /** - * Records that catalog loading is no longer permitted. - * Loading is automatically disabled when lookups are performed, - * and should be manually disabled when <em>startDTD()</em> (or - * any other DTD declaration callback) is invoked, or at the latest - * when the document root element is seen. - */ - public synchronized void disableLoading () - { - // NOTE: this method and loadCatalog() are synchronized - // so that it's impossible to load (top level) catalogs - // after lookups start. Likewise, deferred loading is also - // synchronized (for "next" and delegated catalogs) to - // ensure that parsers can share resolvers. - loadingPermitted = false; - } - - - /** - * Returns the error handler used to report catalog errors. - * Null is returned if the parser's default error handling - * will be used. - * - * @see #setErrorHandler - */ - public ErrorHandler getErrorHandler () - { return errorHandler; } - - /** - * Assigns the error handler used to report catalog errors. - * These errors may come either from the SAX2 parser or - * from the catalog parsing code driven by the parser. - * - * <p> If you're sharing the resolver between parsers, don't - * change this once lookups have begun. - * - * @see #getErrorHandler - * - * @param parser The error handler, or null saying to use the default - * (no diagnostics, and only fatal errors terminate loading). - */ - public void setErrorHandler (ErrorHandler handler) - { errorHandler = handler; } - - - /** - * Returns the name of the SAX2 parser class used to parse catalogs. - * Null is returned if the system default is used. - * @see #setParserClass - */ - public String getParserClass () - { return parserClass; } - - /** - * Names the SAX2 parser class used to parse catalogs. - * - * <p> If you're sharing the resolver between parsers, don't change - * this once lookups have begun. - * - * <p> Note that in order to properly support the <em>xml:base</em> - * attribute and relative URI resolution, the SAX parser used to parse - * the catalog must provide a {@link Locator} and support the optional - * declaration and lexical handlers. - * - * @see #getParserClass - * - * @param parser The parser class name, or null saying to use the - * system default SAX2 parser. - */ - public void setParserClass (String parser) - { parserClass = parser; } - - - /** - * Returns true (the default) if all methods resolve - * a given URI in the same way. - * Returns false if calls resolving URIs as entities (such as - * {@link #resolveEntity resolveEntity()}) use different catalog entries - * than those resolving them as URIs ({@link #resolveURI resolveURI()}), - * which will generally produce different results. - * - * <p>The OASIS XML Catalog specification defines two related schemes - * to map URIs "as URIs" or "as system IDs". - * URIs use <em>uri</em>, <em>rewriteURI</em>, and <em>delegateURI</em> - * elements. System IDs do the same things with <em>systemId</em>, - * <em>rewriteSystemId</em>, and <em>delegateSystemId</em>. - * It's confusing and error prone to maintain two parallel copies of - * such data. Accordingly, this class makes that behavior optional. - * The <em>unified</em> interpretation of URI mappings is preferred, - * since it prevents surprises where one URI gets mapped to different - * contents depending on whether the reference happens to have come - * from a DTD (or not). - * - * @see #setUnified - */ - public boolean isUnified () - { return unified; } - - /** - * Assigns the value of the flag returned by {@link #isUnified}. - * Set it to false to be strictly conformant with the OASIS XML Catalog - * specification. Set it to true to make all mappings for a given URI - * give the same result, regardless of the reason for the mapping. - * - * <p>Don't change this once you've loaded the first catalog. - * - * @param value new flag setting - */ - public void setUnified (boolean value) - { unified = value; } - - - /** - * Returns true (the default) if a catalog's public identifier - * mappings will be used. - * When false is returned, such mappings are ignored except when - * system IDs are discarded, such as for - * entities using the <em>urn:publicid:</em> URI scheme in their - * system identifiers. (See RFC 3151 for information about that - * URI scheme. Using it in system identifiers may not work well - * with many SAX parsers unless the <em>resolve-dtd-uris</em> - * feature flag is set to false.) - * @see #setUsingPublic - */ - public boolean isUsingPublic () - { return usingPublic; } - - /** - * Specifies which catalog search mode is used. - * By default, public identifier mappings are able to override system - * identifiers when both are available. - * Applications may choose to ignore public - * identifier mappings in such cases, so that system identifiers - * declared in DTDs will only be overridden by an explicit catalog - * match for that system ID. - * - * <p> If you're sharing the resolver between parsers, don't - * change this once lookups have begun. - * @see #isUsingPublic - * - * @param value true to always use public identifier mappings, - * false to only use them for system ids using the <em>urn:publicid:</em> - * URI scheme. - */ - public void setUsingPublic (boolean value) - { usingPublic = value; } - - - - // hmm, what's this do? :) - private static Catalog loadCatalog ( - String parserClass, - ErrorHandler eh, - String uri, - boolean unified - ) throws SAXException, IOException - { - XMLReader parser; - Loader loader; - boolean doesIntern = false; - - if (parserClass == null) - parser = XMLReaderFactory.createXMLReader (); - else - parser = XMLReaderFactory.createXMLReader (parserClass); - if (eh != null) - parser.setErrorHandler (eh); - // resolve-dtd-entities is at default value (unrecognized == true) - - try { - doesIntern = parser.getFeature ( - "http://xml.org/sax/features/string-interning"); - } catch (SAXNotRecognizedException e) { } - - loader = new Loader (doesIntern, eh, unified); - loader.cat.parserClass = parserClass; - loader.cat.catalogURI = uri; - - parser.setContentHandler (loader); - parser.setProperty ( - "http://xml.org/sax/properties/declaration-handler", - loader); - parser.setProperty ( - "http://xml.org/sax/properties/lexical-handler", - loader); - parser.parse (uri); - - return loader.cat; - } - - // perform one or both the normalizations for public ids - private static String normalizePublicId (boolean full, String publicId) - { - if (publicId.startsWith ("urn:publicid:")) { - StringBuffer buf = new StringBuffer (); - char chars [] = publicId.toCharArray (); -boolean hasbug = false; - - for (int i = 13; i < chars.length; i++) { - switch (chars [i]) { - case '+': buf.append (' '); continue; - case ':': buf.append ("//"); continue; - case ';': buf.append ("::"); continue; - case '%': -// FIXME unhex that char! meanwhile, warn and fallthrough ... - hasbug = true; - default: buf.append (chars [i]); continue; - } - } - publicId = buf.toString (); -if (hasbug) -System.err.println ("nyet unhexing public id: " + publicId); - full = true; - } - - // SAX parsers do everything except that URN mapping, but - // we can't trust other sources to normalize correctly - if (full) { - StringTokenizer tokens; - String token; - - tokens = new StringTokenizer (publicId, " \r\n"); - publicId = null; - while (tokens.hasMoreTokens ()) { - if (publicId == null) - publicId = tokens.nextToken (); - else - publicId += " " + tokens.nextToken (); - } - } - return publicId; - } - - private static boolean isUriExcluded (int c) - { return c <= 0x20 || c >= 0x7f || "\"<>^`{|}".indexOf (c) != -1; } - - private static int hexNibble (int c) - { - if (c < 10) - return c + '0'; - return ('a' - 10) + c; - } - - // handles URIs with "excluded" characters - private static String normalizeURI (String systemId) - { - int length = systemId.length (); - - for (int i = 0; i < length; i++) { - char c = systemId.charAt (i); - - // escape non-ASCII plus "excluded" characters - if (isUriExcluded (c)) { - byte buf []; - ByteArrayOutputStream out; - int b; - - // a JVM that doesn't know UTF8 and 8859_1 is unusable! - try { - buf = systemId.getBytes ("UTF8"); - out = new ByteArrayOutputStream (buf.length + 10); - - for (i = 0; i < buf.length; i++) { - b = buf [i] & 0x0ff; - if (isUriExcluded (b)) { - out.write ((int) '%'); - out.write (hexNibble (b >> 4)); - out.write (hexNibble (b & 0x0f)); - } else - out.write (b); - } - return out.toString ("8859_1"); - } catch (IOException e) { - throw new RuntimeException ( - "can't normalize URI: " + e.getMessage ()); - } - } - } - return systemId; - } - - // thrown to mark authoritative end of a search - private static class DoneDelegation extends SAXException - { - DoneDelegation () { } - } - - - /** - * Represents a OASIS XML Catalog, and encapsulates much of - * the catalog functionality. - */ - private static class Catalog - { - // loading infrastructure - String catalogURI; - ErrorHandler eh; - boolean unified; - String parserClass; - - // catalog data - boolean hasPreference; - boolean usingPublic; - - Hashtable publicIds; - Hashtable publicDelegations; - - Hashtable systemIds; - Hashtable systemRewrites; - Hashtable systemDelegations; - - Hashtable uris; - Hashtable uriRewrites; - Hashtable uriDelegations; - - Hashtable doctypes; - - Vector next; - - // nonpublic! - Catalog () { } - - - // steps as found in OASIS XML catalog spec 7.1.2 - private InputSource locatePublicId (String publicId) - throws SAXException, IOException - { - // 5. return (first) 'public' entry - if (publicIds != null) { - String retval = (String) publicIds.get (publicId); - if (retval != null) { - // IF the URI is accessible ... - return new InputSource (retval); - } - } - - // 6. return delegatePublic catalog match [complex] - if (publicDelegations != null) - return checkDelegations (publicDelegations, publicId, - publicId, null); - - return null; - } - - // steps as found in OASIS XML catalog spec 7.1.2 or 7.2.2 - private InputSource mapURI ( - String uri, - Hashtable ids, - Hashtable rewrites, - Hashtable delegations - ) throws SAXException, IOException - { - // 7.1.2: 2. return (first) 'system' entry - // 7.2.2: 2. return (first) 'uri' entry - if (ids != null) { - String retval = (String) ids.get (uri); - if (retval != null) { - // IF the URI is accessible ... - return new InputSource (retval); - } - } - - // 7.1.2: 3. return 'rewriteSystem' entries - // 7.2.2: 3. return 'rewriteURI' entries - if (rewrites != null) { - String prefix = null; - String replace = null; - int prefixLen = -1; - - for (Enumeration e = rewrites.keys (); - e.hasMoreElements (); - /* NOP */) { - String temp = (String) e.nextElement (); - int len = -1; - - if (!uri.startsWith (temp)) - continue; - if (prefix != null - && (len = temp.length ()) < prefixLen) - continue; - prefix = temp; - prefixLen = len; - replace = (String) rewrites.get (temp); - } - if (prefix != null) { - StringBuffer buf = new StringBuffer (replace); - buf.append (uri.substring (prefixLen)); - // IF the URI is accessible ... - return new InputSource (buf.toString ()); - } - } - - // 7.1.2: 4. return 'delegateSystem' catalog match [complex] - // 7.2.2: 4. return 'delegateURI' catalog match [complex] - if (delegations != null) - return checkDelegations (delegations, uri, null, uri); - - return null; - } - - - /** - * Returns a URI for an external entity. - */ - public InputSource resolve ( - boolean usingPublic, - String publicId, - String systemId - ) throws SAXException, IOException - { - boolean preferSystem; - InputSource retval; - - if (hasPreference) - preferSystem = !this.usingPublic; - else - preferSystem = !usingPublic; - - if (publicId != null) - publicId = normalizePublicId (false, publicId); - - // behavior here matches section 7.1.1 of the oasis spec - if (systemId != null) { - if (systemId.startsWith ("urn:publicid:")) { - String temp = normalizePublicId (true, systemId); - if (publicId == null) { - publicId = temp; - systemId = null; - } else if (!publicId.equals (temp)) { - // error; ok to recover by: - systemId = null; - } - } else - systemId = normalizeURI (systemId); - } - - if (systemId == null && publicId == null) - return null; - - if (systemId != null) { - retval = mapURI (systemId, systemIds, systemRewrites, - systemDelegations); - if (retval != null) { - retval.setPublicId (publicId); - return retval; - } - } - - if (publicId != null - && !(systemId != null && preferSystem)) { - retval = locatePublicId (publicId); - if (retval != null) { - retval.setPublicId (publicId); - return retval; - } - } - - // 7. apply nextCatalog entries - if (next != null) { - int length = next.size (); - for (int i = 0; i < length; i++) { - Catalog n = getNext (i); - retval = n.resolve (usingPublic, publicId, systemId); - if (retval != null) - return retval; - } - } - - return null; - } - - /** - * Maps one URI into another, for resources that are not defined - * using XML external entity or notation syntax. - */ - public InputSource resolveURI (String uri) - throws SAXException, IOException - { - if (uri.startsWith ("urn:publicid:")) - return resolve (true, normalizePublicId (true, uri), null); - - InputSource retval; - - uri = normalizeURI (uri); - - // 7.2.2 steps 2-4 - retval = mapURI (uri, uris, uriRewrites, uriDelegations); - if (retval != null) - return retval; - - // 7.2.2 step 5. apply nextCatalog entries - if (next != null) { - int length = next.size (); - for (int i = 0; i < length; i++) { - Catalog n = getNext (i); - retval = n.resolveURI (uri); - if (retval != null) - return retval; - } - } - - return null; - } - - - /** - * Finds the external subset associated with a given root element. - */ - public InputSource getExternalSubset (String name) - throws SAXException, IOException - { - if (doctypes != null) { - String value = (String) doctypes.get (name); - if (value != null) { - // IF the URI is accessible ... - return new InputSource (value); - } - } - if (next != null) { - int length = next.size (); - for (int i = 0; i < length; i++) { - Catalog n = getNext (i); - if (n == null) - continue; - InputSource retval = n.getExternalSubset (name); - if (retval != null) - return retval; - } - } - return null; - } - - private synchronized Catalog getNext (int i) - throws SAXException, IOException - { - Object obj; - - if (next == null || i < 0 || i >= next.size ()) - return null; - obj = next.elementAt (i); - if (obj instanceof Catalog) - return (Catalog) obj; - - // ok, we deferred reading that catalog till now. - // load and cache it. - Catalog cat = null; - - try { - cat = loadCatalog (parserClass, eh, (String) obj, unified); - next.setElementAt (cat, i); - } catch (SAXException e) { - // must fail quietly, says the OASIS spec - } catch (IOException e) { - // same applies here - } - return cat; - } - - private InputSource checkDelegations ( - Hashtable delegations, - String id, - String publicId, // only one of public/system - String systemId // will be non-null... - ) throws SAXException, IOException - { - Vector matches = null; - int length = 0; - - // first, see if any prefixes match. - for (Enumeration e = delegations.keys (); - e.hasMoreElements (); - /* NOP */) { - String prefix = (String) e.nextElement (); - - if (!id.startsWith (prefix)) - continue; - if (matches == null) - matches = new Vector (); - - // maintain in longer->shorter sorted order - // NOTE: assumes not many matches will fire! - int index; - - for (index = 0; index < length; index++) { - String temp = (String) matches.elementAt (index); - if (prefix.length () > temp.length ()) { - matches.insertElementAt (prefix, index); - break; - } - } - if (index == length) - matches.addElement (prefix); - length++; - } - if (matches == null) - return null; - - // now we know the list of catalogs to replace our "top level" - // list ... we use it here, rather than somehow going back and - // restarting, since this helps avoid reading most catalogs. - // this assumes stackspace won't be a problem. - for (int i = 0; i < length; i++) { - Catalog catalog = null; - InputSource result; - - // get this catalog. we may not have read it yet. - synchronized (delegations) { - Object prefix = matches.elementAt (i); - Object cat = delegations.get (prefix); - - if (cat instanceof Catalog) - catalog = (Catalog) cat; - else { - try { - // load and cache that catalog - catalog = loadCatalog (parserClass, eh, - (String) cat, unified); - delegations.put (prefix, catalog); - } catch (SAXException e) { - // must ignore, says the OASIS spec - } catch (IOException e) { - // same applies here - } - } - } - - // ignore failed loads, and proceed - if (catalog == null) - continue; - - // we have a catalog ... resolve! - // usingPublic value can't matter, there's no choice - result = catalog.resolve (true, publicId, systemId); - if (result != null) - return result; - } - - // if there were no successes, the entire - // lookup failed (all the way to top level) - throw new DoneDelegation (); - } - } - - - /** This is the namespace URI used for OASIS XML Catalogs. */ - private static final String catalogNamespace = - "urn:oasis:names:tc:entity:xmlns:xml:catalog"; - - - /** - * Loads/unmarshals one catalog. - */ - private static class Loader extends DefaultHandler2 - { - private boolean preInterned; - private ErrorHandler handler; - private boolean unified; - private int ignoreDepth; - private Locator locator; - private boolean started; - private Hashtable externals; - private Stack bases; - - Catalog cat = new Catalog (); - - - /** - * Constructor. - * @param flag true iff the parser already interns strings. - * @param eh Errors and warnings are delegated to this. - * @param unified true keeps one table for URI mappings; - * false matches OASIS spec, storing mappings - * for URIs and SYSTEM ids in parallel tables. - */ - Loader (boolean flag, ErrorHandler eh, boolean unified) - { - preInterned = flag; - handler = eh; - this.unified = unified; - cat.unified = unified; - cat.eh = eh; - } - - - // strips out fragments - private String nofrag (String uri) - throws SAXException - { - if (uri.indexOf ('#') != -1) { - warn ("URI with fragment: " + uri); - uri = uri.substring (0, uri.indexOf ('#')); - } - return uri; - } - - // absolutizes relative URIs - private String absolutize (String uri) - throws SAXException - { - // avoid creating URLs if they're already absolutized, - // or if the URI is already using a known scheme - if (uri.startsWith ("file:/") - || uri.startsWith ("http:/") - || uri.startsWith ("https:/") - || uri.startsWith ("ftp:/") - || uri.startsWith ("urn:") - ) - return uri; - - // otherwise, let's hope the JDK handles this URI scheme. - try { - URL base = (URL) bases.peek (); - return new URL (base, uri).toString (); - } catch (Exception e) { - fatal ("can't absolutize URI: " + uri); - return null; - } - } - - // recoverable error - private void error (String message) - throws SAXException - { - if (handler == null) - return; - handler.error (new SAXParseException (message, locator)); - } - - // nonrecoverable error - private void fatal (String message) - throws SAXException - { - SAXParseException spe; - - spe = new SAXParseException (message, locator); - if (handler != null) - handler.fatalError (spe); - throw spe; - } - - // low severity problem - private void warn (String message) - throws SAXException - { - if (handler == null) - return; - handler.warning (new SAXParseException (message, locator)); - } - - // callbacks: - - public void setDocumentLocator (Locator l) - { locator = l; } - - public void startDocument () - throws SAXException - { - if (locator == null) - error ("no locator!"); - bases = new Stack (); - String uri = locator.getSystemId (); - try { - bases.push (new URL (uri)); - } catch (IOException e) { - fatal ("bad document base URI: " + uri); - } - } - - public void endDocument () - throws SAXException - { - try { - if (!started) - error ("not a catalog!"); - } finally { - locator = null; - handler = null; - externals = null; - bases = null; - } - } - - // XML Base support for external entities. - - // NOTE: expects parser is in default "resolve-dtd-uris" mode. - public void externalEntityDecl (String name, String pub, String sys) - throws SAXException - { - if (externals == null) - externals = new Hashtable (); - if (externals.get (name) == null) - externals.put (name, pub); - } - - public void startEntity (String name) - throws SAXException - { - if (externals == null) - return; - String uri = (String) externals.get (name); - - // NOTE: breaks if an EntityResolver substitutes these URIs. - // If toplevel loader supports one, must intercept calls... - if (uri != null) { - try { - bases.push (new URL (uri)); - } catch (IOException e) { - fatal ("entity '" + name + "', bad URI: " + uri); - } - } - } - - public void endEntity (String name) - { - if (externals == null) - return; - String value = (String) externals.get (name); - - if (value != null) - bases.pop (); - } - - /** - * Processes catalog elements, saving their data. - */ - public void startElement (String namespace, String local, - String qName, Attributes atts) - throws SAXException - { - // must ignore non-catalog elements, and their contents - if (ignoreDepth != 0 || !catalogNamespace.equals (namespace)) { - ignoreDepth++; - return; - } - - // basic sanity checks - if (!preInterned) - local = local.intern (); - if (!started) { - started = true; - if ("catalog" != local) - fatal ("root element not 'catalog': " + local); - } - - // Handle any xml:base attribute - String xmlbase = atts.getValue ("xml:base"); - - if (xmlbase != null) { - URL base = (URL) bases.peek (); - try { - base = new URL (base, xmlbase); - } catch (IOException e) { - fatal ("can't resolve xml:base attribute: " + xmlbase); - } - bases.push (base); - } else - bases.push (bases.peek ()); - - // fetch multi-element attributes, apply standard tweaks - // values (uri, catalog, rewritePrefix) get normalized too, - // as a precaution and since we may compare the values - String catalog = atts.getValue ("catalog"); - if (catalog != null) - catalog = normalizeURI (absolutize (catalog)); - - String rewritePrefix = atts.getValue ("rewritePrefix"); - if (rewritePrefix != null) - rewritePrefix = normalizeURI (absolutize (rewritePrefix)); - - String systemIdStartString; - systemIdStartString = atts.getValue ("systemIdStartString"); - if (systemIdStartString != null) { - systemIdStartString = normalizeURI (systemIdStartString); - // unmatchable <rewriteSystemId>, <delegateSystemId> elements - if (systemIdStartString.startsWith ("urn:publicid:")) { - error ("systemIdStartString is really a publicId!!"); - return; - } - } - - String uri = atts.getValue ("uri"); - if (uri != null) - uri = normalizeURI (absolutize (uri)); - - String uriStartString; - uriStartString = atts.getValue ("uriStartString"); - if (uriStartString != null) { - uriStartString = normalizeURI (uriStartString); - // unmatchable <rewriteURI>, <delegateURI> elements - if (uriStartString.startsWith ("urn:publicid:")) { - error ("uriStartString is really a publicId!!"); - return; - } - } - - // strictly speaking "group" and "catalog" shouldn't nest - // ... arbitrary restriction, no evident motivation - -// FIXME stack "prefer" settings (two elements only!) and use -// them to populate different public mapping/delegation tables - - if ("catalog" == local || "group" == local) { - String prefer = atts.getValue ("prefer"); - - if (prefer != null && !"public".equals (prefer)) { - if (!"system".equals (prefer)) { - error ("in <" + local + " ... prefer='...'>, " - + "assuming 'public'"); - prefer = "public"; - } - } - if (prefer != null) { - if ("catalog" == local) { - cat.hasPreference = true; - cat.usingPublic = "public".equals (prefer); - } else { - if (!cat.hasPreference || cat.usingPublic - != "public".equals (prefer)) { -fatal ("<group prefer=...> case not handled"); - } - } - } else if ("group" == local && cat.hasPreference) { -fatal ("<group prefer=...> case not handled"); - } - - // - // PUBLIC ids: cleanly set up for id substitution - // - } else if ("public" == local) { - String publicId = atts.getValue ("publicId"); - String value = null; - - if (publicId == null || uri == null) { - error ("expecting <public publicId=... uri=.../>"); - return; - } - publicId = normalizePublicId (true, publicId); - uri = nofrag (uri); - if (cat.publicIds == null) - cat.publicIds = new Hashtable (); - else - value = (String) cat.publicIds.get (publicId); - if (value != null) { - if (!value.equals (uri)) - warn ("ignoring <public...> entry for " + publicId); - } else - cat.publicIds.put (publicId, uri); - - } else if ("delegatePublic" == local) { - String publicIdStartString; - Object value = null; - - publicIdStartString = atts.getValue ("publicIdStartString"); - if (publicIdStartString == null || catalog == null) { - error ("expecting <delegatePublic " - + "publicIdStartString=... catalog=.../>"); - return; - } - publicIdStartString = normalizePublicId (true, - publicIdStartString); - if (cat.publicDelegations == null) - cat.publicDelegations = new Hashtable (); - else - value = cat.publicDelegations.get (publicIdStartString); - if (value != null) { - if (!value.equals (catalog)) - warn ("ignoring <delegatePublic...> entry for " - + uriStartString); - } else - cat.publicDelegations.put (publicIdStartString, catalog); - - - // - // SYSTEM ids: need substitution due to operational issues - // - } else if ("system" == local) { - String systemId = atts.getValue ("systemId"); - String value = null; - - if (systemId == null || uri == null) { - error ("expecting <system systemId=... uri=.../>"); - return; - } - systemId = normalizeURI (systemId); - uri = nofrag (uri); - if (systemId.startsWith ("urn:publicid:")) { - error ("systemId is really a publicId!!"); - return; - } - if (cat.systemIds == null) { - cat.systemIds = new Hashtable (); - if (unified) - cat.uris = cat.systemIds; - } else - value = (String) cat.systemIds.get (systemId); - if (value != null) { - if (!value.equals (uri)) - warn ("ignoring <system...> entry for " + systemId); - } else - cat.systemIds.put (systemId, uri); - - } else if ("rewriteSystem" == local) { - String value = null; - - if (systemIdStartString == null || rewritePrefix == null - || systemIdStartString.length () == 0 - || rewritePrefix.length () == 0 - ) { - error ("expecting <rewriteSystem " - + "systemIdStartString=... rewritePrefix=.../>"); - return; - } - if (cat.systemRewrites == null) { - cat.systemRewrites = new Hashtable (); - if (unified) - cat.uriRewrites = cat.systemRewrites; - } else - value = (String) cat.systemRewrites.get ( - systemIdStartString); - if (value != null) { - if (!value.equals (rewritePrefix)) - warn ("ignoring <rewriteSystem...> entry for " - + systemIdStartString); - } else - cat.systemRewrites.put (systemIdStartString, - rewritePrefix); - - } else if ("delegateSystem" == local) { - Object value = null; - - if (systemIdStartString == null || catalog == null) { - error ("expecting <delegateSystem " - + "systemIdStartString=... catalog=.../>"); - return; - } - if (cat.systemDelegations == null) { - cat.systemDelegations = new Hashtable (); - if (unified) - cat.uriDelegations = cat.systemDelegations; - } else - value = cat.systemDelegations.get (systemIdStartString); - if (value != null) { - if (!value.equals (catalog)) - warn ("ignoring <delegateSystem...> entry for " - + uriStartString); - } else - cat.systemDelegations.put (systemIdStartString, catalog); - - - // - // URI: just like "system" ID support, except that - // fragment IDs are disallowed in "system" elements. - // - } else if ("uri" == local) { - String name = atts.getValue ("name"); - String value = null; - - if (name == null || uri == null) { - error ("expecting <uri name=... uri=.../>"); - return; - } - if (name.startsWith ("urn:publicid:")) { - error ("name is really a publicId!!"); - return; - } - name = normalizeURI (name); - if (cat.uris == null) { - cat.uris = new Hashtable (); - if (unified) - cat.systemIds = cat.uris; - } else - value = (String) cat.uris.get (name); - if (value != null) { - if (!value.equals (uri)) - warn ("ignoring <uri...> entry for " + name); - } else - cat.uris.put (name, uri); - - } else if ("rewriteURI" == local) { - String value = null; - - if (uriStartString == null || rewritePrefix == null - || uriStartString.length () == 0 - || rewritePrefix.length () == 0 - ) { - error ("expecting <rewriteURI " - + "uriStartString=... rewritePrefix=.../>"); - return; - } - if (cat.uriRewrites == null) { - cat.uriRewrites = new Hashtable (); - if (unified) - cat.systemRewrites = cat.uriRewrites; - } else - value = (String) cat.uriRewrites.get (uriStartString); - if (value != null) { - if (!value.equals (rewritePrefix)) - warn ("ignoring <rewriteURI...> entry for " - + uriStartString); - } else - cat.uriRewrites.put (uriStartString, rewritePrefix); - - } else if ("delegateURI" == local) { - Object value = null; - - if (uriStartString == null || catalog == null) { - error ("expecting <delegateURI " - + "uriStartString=... catalog=.../>"); - return; - } - if (cat.uriDelegations == null) { - cat.uriDelegations = new Hashtable (); - if (unified) - cat.systemDelegations = cat.uriDelegations; - } else - value = cat.uriDelegations.get (uriStartString); - if (value != null) { - if (!value.equals (catalog)) - warn ("ignoring <delegateURI...> entry for " - + uriStartString); - } else - cat.uriDelegations.put (uriStartString, catalog); - - // - // NON-DELEGATING approach to modularity - // - } else if ("nextCatalog" == local) { - if (catalog == null) { - error ("expecting <nextCatalog catalog=.../>"); - return; - } - if (cat.next == null) - cat.next = new Vector (); - cat.next.addElement (catalog); - - // - // EXTENSIONS from appendix E - // - } else if ("doctype" == local) { - String name = atts.getValue ("name"); - String value = null; - - if (name == null || uri == null) { - error ("expecting <doctype name=... uri=.../>"); - return; - } - name = normalizeURI (name); - if (cat.doctypes == null) - cat.doctypes = new Hashtable (); - else - value = (String) cat.doctypes.get (name); - if (value != null) { - if (!value.equals (uri)) - warn ("ignoring <doctype...> entry for " - + uriStartString); - } else - cat.doctypes.put (name, uri); - - - // - // RESERVED ... ignore (like reserved attributes) but warn - // - } else { - warn ("ignoring unknown catalog element: " + local); - ignoreDepth++; - } - } - - public void endElement (String uri, String local, String qName) - throws SAXException - { - if (ignoreDepth != 0) - ignoreDepth--; - else - bases.pop (); - } - } -} diff --git a/external/jaxp/source/gnu/xml/util/XHTMLWriter.java b/external/jaxp/source/gnu/xml/util/XHTMLWriter.java deleted file mode 100644 index 826acc3d0..000000000 --- a/external/jaxp/source/gnu/xml/util/XHTMLWriter.java +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.util; - -import java.io.IOException; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.Writer; - - -/** - * This extends XMLWriter to create a class which defaults to writing - * XHTML text, preferring the US-ASCII encoding. It adds no unique - * functionality, only changing the defaults slightly to simplify writing - * XHTML processing components by providing a bean class whose properties - * have more convenient defaults. An artifact of using the US-ASCII - * encoding is that no XML declaration is written, so that HTML tools - * that can't accept them will not become confused. Components can treat - * the output as UTF-8, ISO-8859-1, or US-ASCII without incurring any - * data loss. - * - * @author David Brownell - */ -public class XHTMLWriter extends XMLWriter -{ - /** - * Constructs this handler with System.out used to write - * SAX events using the US-ASCII encoding, as XHTML. - */ - public XHTMLWriter () - throws IOException - { - this (System.out); - } - - /** - * Constructs this handler such that the specified output stream - * is used to write SAX events in the US-ASCII encoding, as XHTML. - * - * @param out Where US-ASCII encoding of the stream of SAX - * events will be sent. - */ - public XHTMLWriter (OutputStream out) - throws IOException - { - // not all JVMs understand "ASCII" as an encoding name, so - // we use 8859_1 (they all seem to handle that one) and - // make the echo handler filter out non-ASCII characters - this (new OutputStreamWriter (out, "8859_1"), "US-ASCII"); - } - - /** - * Constructs this handler such that the specified output stream - * is used to write SAX events as XHTML. - * - * @param out Where the stream of SAX events will be written. - */ - public XHTMLWriter (Writer out) - { - this (out, null); - } - - /** - * Constructs this handler such that the specified output stream - * is used to write SAX events as XHTML, labeled with the specified - * encoding. - * - * @param out Where the stream of SAX events will be written. - * @param encoding If non-null, this names the encoding to be - * placed in the encoding declaration. - */ - public XHTMLWriter (Writer out, String encoding) - { - super (out, encoding); - setXhtml (true); - } -} diff --git a/external/jaxp/source/gnu/xml/util/XMLWriter.java b/external/jaxp/source/gnu/xml/util/XMLWriter.java deleted file mode 100644 index 897c13991..000000000 --- a/external/jaxp/source/gnu/xml/util/XMLWriter.java +++ /dev/null @@ -1,1916 +0,0 @@ -/* - * Copyright (C) 1999-2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package gnu.xml.util; - -import java.io.BufferedWriter; -import java.io.CharConversionException; -import java.io.IOException; -import java.io.OutputStream; -import java.io.OutputStreamWriter; -import java.io.Writer; -import java.util.Stack; - -import org.xml.sax.*; -import org.xml.sax.ext.*; -import org.xml.sax.helpers.*; - - -/** - * This class is a SAX handler which writes all its input as a well formed - * XML or XHTML document. If driven using SAX2 events, this output may - * include a recreated document type declaration, subject to limitations - * of SAX (no internal subset exposed) or DOM (the important declarations, - * with their documentation, are discarded). - * - * <p> By default, text is generated "as-is", but some optional modes - * are supported. Pretty-printing is supported, to make life easier - * for people reading the output. XHTML (1.0) output has can be made - * particularly pretty; all the built-in character entities are known. - * Canonical XML can also be generated, assuming the input is properly - * formed. - * - * <hr> - * - * <p> Some of the methods on this class are intended for applications to - * use directly, rather than as pure SAX2 event callbacks. Some of those - * methods access the JavaBeans properties (used to tweak output formats, - * for example canonicalization and pretty printing). Subclasses - * are expected to add new behaviors, not to modify current behavior, so - * many such methods are final.</p> - * - * <p> The <em>write*()</em> methods may be slightly simpler for some - * applications to use than direct callbacks. For example, they support - * a simple policy for encoding data items as the content of a single element. - * - * <p> To reuse an XMLWriter you must provide it with a new Writer, since - * this handler closes the writer it was given as part of its endDocument() - * handling. (XML documents have an end of input, and the way to encode - * that on a stream is to close it.) </p> - * - * <hr> - * - * <p> Note that any relative URIs in the source document, as found in - * entity and notation declarations, ought to have been fully resolved by - * the parser providing events to this handler. This means that the - * output text should only have fully resolved URIs, which may not be - * the desired behavior in cases where later binding is desired. </p> - * - * <p> <em>Note that due to SAX2 defaults, you may need to manually - * ensure that the input events are XML-conformant with respect to namespace - * prefixes and declarations. {@link gnu.xml.pipeline.NSFilter} is - * one solution to this problem, in the context of processing pipelines.</em> - * Something as simple as connecting this handler to a parser might not - * generate the correct output. Another workaround is to ensure that the - * <em>namespace-prefixes</em> feature is always set to true, if you're - * hooking this directly up to some XMLReader implementation. - * - * @see gnu.xml.pipeline.TextConsumer - * - * @author David Brownell - */ -public class XMLWriter - implements ContentHandler, LexicalHandler, DTDHandler, DeclHandler -{ - // text prints/escapes differently depending on context - // CTX_ENTITY ... entity literal value - // CTX_ATTRIBUTE ... attribute literal value - // CTX_CONTENT ... content of an element - // CTX_UNPARSED ... CDATA, comment, PI, names, etc - // CTX_NAME ... name or nmtoken, no escapes possible - private static final int CTX_ENTITY = 1; - private static final int CTX_ATTRIBUTE = 2; - private static final int CTX_CONTENT = 3; - private static final int CTX_UNPARSED = 4; - private static final int CTX_NAME = 5; - -// FIXME: names (element, attribute, PI, notation, etc) are not -// currently written out with range checks (escapeChars). -// In non-XHTML, some names can't be directly written; panic! - - private static String sysEOL; - - static { - try { - sysEOL = System.getProperty ("line.separator", "\n"); - - // don't use the system's EOL if it's illegal XML. - if (!isLineEnd (sysEOL)) - sysEOL = "\n"; - - } catch (SecurityException e) { - sysEOL = "\n"; - } - } - - private static boolean isLineEnd (String eol) - { - return "\n".equals (eol) - || "\r".equals (eol) - || "\r\n".equals (eol); - } - - private Writer out; - private boolean inCDATA; - private int elementNestLevel; - private String eol = sysEOL; - - private short dangerMask; - private StringBuffer stringBuf; - private Locator locator; - private ErrorHandler errHandler; - - private boolean expandingEntities = false; - private int entityNestLevel; - private boolean xhtml; - private boolean startedDoctype; - private String encoding; - - private boolean canonical; - private boolean inDoctype; - private boolean inEpilogue; - - // pretty printing controls - private boolean prettyPrinting; - private int column; - private boolean noWrap; - private Stack space = new Stack (); - - // this is not a hard'n'fast rule -- longer lines are OK, - // but are to be avoided. Here, prettyprinting is more to - // show structure "cleanly" than to be precise about it. - // better to have ragged layout than one line 24Kb long. - private static final int lineLength = 75; - - - /** - * Constructs this handler with System.out used to write SAX events - * using the UTF-8 encoding. Avoid using this except when you know - * it's safe to close System.out at the end of the document. - */ - public XMLWriter () throws IOException - { this (System.out); } - - /** - * Constructs a handler which writes all input to the output stream - * in the UTF-8 encoding, and closes it when endDocument is called. - * (Yes it's annoying that this throws an exception -- but there's - * really no way around it, since it's barely possible a JDK may - * exist somewhere that doesn't know how to emit UTF-8.) - */ - public XMLWriter (OutputStream out) throws IOException - { - this (new OutputStreamWriter (out, "UTF8")); - } - - /** - * Constructs a handler which writes all input to the writer, and then - * closes the writer when the document ends. If an XML declaration is - * written onto the output, and this class can determine the name of - * the character encoding for this writer, that encoding name will be - * included in the XML declaration. - * - * <P> See the description of the constructor which takes an encoding - * name for imporant information about selection of encodings. - * - * @param writer XML text is written to this writer. - */ - public XMLWriter (Writer writer) - { - this (writer, null); - } - - /** - * Constructs a handler which writes all input to the writer, and then - * closes the writer when the document ends. If an XML declaration is - * written onto the output, this class will use the specified encoding - * name in that declaration. If no encoding name is specified, no - * encoding name will be declared unless this class can otherwise - * determine the name of the character encoding for this writer. - * - * <P> At this time, only the UTF-8 ("UTF8") and UTF-16 ("Unicode") - * output encodings are fully lossless with respect to XML data. If you - * use any other encoding you risk having your data be silently mangled - * on output, as the standard Java character encoding subsystem silently - * maps non-encodable characters to a question mark ("?") and will not - * report such errors to applications. - * - * <p> For a few other encodings the risk can be reduced. If the writer is - * a java.io.OutputStreamWriter, and uses either the ISO-8859-1 ("8859_1", - * "ISO8859_1", etc) or US-ASCII ("ASCII") encodings, content which - * can't be encoded in those encodings will be written safely. Where - * relevant, the XHTML entity names will be used; otherwise, numeric - * character references will be emitted. - * - * <P> However, there remain a number of cases where substituting such - * entity or character references is not an option. Such references are - * not usable within a DTD, comment, PI, or CDATA section. Neither may - * they be used when element, attribute, entity, or notation names have - * the problematic characters. - * - * @param writer XML text is written to this writer. - * @param encoding if non-null, and an XML declaration is written, - * this is the name that will be used for the character encoding. - */ - public XMLWriter (Writer writer, String encoding) - { - setWriter (writer, encoding); - } - - private void setEncoding (String encoding) - { - if (encoding == null && out instanceof OutputStreamWriter) - encoding = ((OutputStreamWriter)out).getEncoding (); - - if (encoding != null) { - encoding = encoding.toUpperCase (); - - // Use official encoding names where we know them, - // avoiding the Java-only names. When using common - // encodings where we can easily tell if characters - // are out of range, we'll escape out-of-range - // characters using character refs for safety. - - // I _think_ these are all the main synonyms for these! - if ("UTF8".equals (encoding)) { - encoding = "UTF-8"; - } else if ("US-ASCII".equals (encoding) - || "ASCII".equals (encoding)) { - dangerMask = (short) 0xff80; - encoding = "US-ASCII"; - } else if ("ISO-8859-1".equals (encoding) - || "8859_1".equals (encoding) - || "ISO8859_1".equals (encoding)) { - dangerMask = (short) 0xff00; - encoding = "ISO-8859-1"; - } else if ("UNICODE".equals (encoding) - || "UNICODE-BIG".equals (encoding) - || "UNICODE-LITTLE".equals (encoding)) { - encoding = "UTF-16"; - - // TODO: UTF-16BE, UTF-16LE ... no BOM; what - // release of JDK supports those Unicode names? - } - - if (dangerMask != 0) - stringBuf = new StringBuffer (); - } - - this.encoding = encoding; - } - - - /** - * Resets the handler to write a new text document. - * - * @param writer XML text is written to this writer. - * @param encoding if non-null, and an XML declaration is written, - * this is the name that will be used for the character encoding. - * - * @exception IllegalStateException if the current - * document hasn't yet ended (with {@link #endDocument}) - */ - final public void setWriter (Writer writer, String encoding) - { - if (out != null) - throw new IllegalStateException ( - "can't change stream in mid course"); - out = writer; - if (out != null) - setEncoding (encoding); - if (!(out instanceof BufferedWriter)) - out = new BufferedWriter (out); - space.push ("default"); - } - - /** - * Assigns the line ending style to be used on output. - * @param eolString null to use the system default; else - * "\n", "\r", or "\r\n". - */ - final public void setEOL (String eolString) - { - if (eolString == null) - eol = sysEOL; - else if (!isLineEnd (eolString)) - eol = eolString; - else - throw new IllegalArgumentException (eolString); - } - - /** - * Assigns the error handler to be used to present most fatal - * errors. - */ - public void setErrorHandler (ErrorHandler handler) - { - errHandler = handler; - } - - /** - * Used internally and by subclasses, this encapsulates the logic - * involved in reporting fatal errors. It uses locator information - * for good diagnostics, if available, and gives the application's - * ErrorHandler the opportunity to handle the error before throwing - * an exception. - */ - protected void fatal (String message, Exception e) - throws SAXException - { - SAXParseException x; - - if (locator == null) - x = new SAXParseException (message, null, null, -1, -1, e); - else - x = new SAXParseException (message, locator, e); - if (errHandler != null) - errHandler.fatalError (x); - throw x; - } - - - // JavaBeans properties - - /** - * Controls whether the output should attempt to follow the "transitional" - * XHTML rules so that it meets the "HTML Compatibility Guidelines" - * appendix in the XHTML specification. A "transitional" Document Type - * Declaration (DTD) is placed near the beginning of the output document, - * instead of whatever DTD would otherwise have been placed there, and - * XHTML empty elements are printed specially. When writing text in - * US-ASCII or ISO-8859-1 encodings, the predefined XHTML internal - * entity names are used (in preference to character references) when - * writing content characters which can't be expressed in those encodings. - * - * <p> When this option is enabled, it is the caller's responsibility - * to ensure that the input is otherwise valid as XHTML. Things to - * be careful of in all cases, as described in the appendix referenced - * above, include: <ul> - * - * <li> Element and attribute names must be in lower case, both - * in the document and in any CSS style sheet. - * <li> All XML constructs must be valid as defined by the XHTML - * "transitional" DTD (including all familiar constructs, - * even deprecated ones). - * <li> The root element must be "html". - * <li> Elements that must be empty (such as <em><br></em> - * must have no content. - * <li> Use both <em>lang</em> and <em>xml:lang</em> attributes - * when specifying language. - * <li> Similarly, use both <em>id</em> and <em>name</em> attributes - * when defining elements that may be referred to through - * URI fragment identifiers ... and make sure that the - * value is a legal NMTOKEN, since not all such HTML 4.0 - * identifiers are valid in XML. - * <li> Be careful with character encodings; make sure you provide - * a <em><meta http-equiv="Content-type" - * content="text/xml;charset=..." /></em> element in - * the HTML "head" element, naming the same encoding - * used to create this handler. Also, if that encoding - * is anything other than US-ASCII, make sure that if - * the document is given a MIME content type, it has - * a <em>charset=...</em> attribute with that encoding. - * </ul> - * - * <p> Additionally, some of the oldest browsers have additional - * quirks, to address with guidelines such as: <ul> - * - * <li> Processing instructions may be rendered, so avoid them. - * (Similarly for an XML declaration.) - * <li> Embedded style sheets and scripts should not contain XML - * markup delimiters: &, <, and ]]> are trouble. - * <li> Attribute values should not have line breaks or multiple - * consecutive white space characters. - * <li> Use no more than one of the deprecated (transitional) - * <em><isindex></em> elements. - * <li> Some boolean attributes (such as <em>compact, checked, - * disabled, readonly, selected,</em> and more) confuse - * some browsers, since they only understand minimized - * versions which are illegal in XML. - * </ul> - * - * <p> Also, some characteristics of the resulting output may be - * a function of whether the document is later given a MIME - * content type of <em>text/html</em> rather than one indicating - * XML (<em>application/xml</em> or <em>text/xml</em>). Worse, - * some browsers ignore MIME content types and prefer to rely URI - * name suffixes -- so an "index.xml" could always be XML, never - * XHTML, no matter its MIME type. - */ - final public void setXhtml (boolean value) - { - if (locator != null) - throw new IllegalStateException ("started parsing"); - xhtml = value; - if (xhtml) - canonical = false; - } - - /** - * Returns true if the output attempts to echo the input following - * "transitional" XHTML rules and matching the "HTML Compatibility - * Guidelines" so that an HTML version 3 browser can read the output - * as HTML; returns false (the default) othewise. - */ - final public boolean isXhtml () - { - return xhtml; - } - - /** - * Controls whether the output text contains references to - * entities (the default), or instead contains the expanded - * values of those entities. - */ - final public void setExpandingEntities (boolean value) - { - if (locator != null) - throw new IllegalStateException ("started parsing"); - expandingEntities = value; - if (!expandingEntities) - canonical = false; - } - - /** - * Returns true if the output will have no entity references; - * returns false (the default) otherwise. - */ - final public boolean isExpandingEntities () - { - return expandingEntities; - } - - /** - * Controls pretty-printing, which by default is not enabled - * (and currently is most useful for XHTML output). - * Pretty printing enables structural indentation, sorting of attributes - * by name, line wrapping, and potentially other mechanisms for making - * output more or less readable. - * - * <p> At this writing, structural indentation and line wrapping are - * enabled when pretty printing is enabled and the <em>xml:space</em> - * attribute has the value <em>default</em> (its other legal value is - * <em>preserve</em>, as defined in the XML specification). The three - * XHTML element types which use another value are recognized by their - * names (namespaces are ignored). - * - * <p> Also, for the record, the "pretty" aspect of printing here - * is more to provide basic structure on outputs that would otherwise - * risk being a single long line of text. For now, expect the - * structure to be ragged ... unless you'd like to submit a patch - * to make this be more strictly formatted! - * - * @exception IllegalStateException thrown if this method is invoked - * after output has begun. - */ - final public void setPrettyPrinting (boolean value) - { - if (locator != null) - throw new IllegalStateException ("started parsing"); - prettyPrinting = value; - if (prettyPrinting) - canonical = false; - } - - /** - * Returns value of flag controlling pretty printing. - */ - final public boolean isPrettyPrinting () - { - return prettyPrinting; - } - - - /** - * Sets the output style to be canonicalized. Input events must - * meet requirements that are slightly more stringent than the - * basic well-formedness ones, and include: <ul> - * - * <li> Namespace prefixes must not have been changed from those - * in the original document. (This may only be ensured by setting - * the SAX2 XMLReader <em>namespace-prefixes</em> feature flag; - * by default, it is cleared.) - * - * <li> Redundant namespace declaration attributes have been - * removed. (If an ancestor element defines a namespace prefix - * and that declaration hasn't been overriden, an element must - * not redeclare it.) - * - * <li> If comments are not to be included in the canonical output, - * they must first be removed from the input event stream; this - * <em>Canonical XML with comments</em> by default. - * - * <li> If the input character encoding was not UCS-based, the - * character data must have been normalized using Unicode - * Normalization Form C. (UTF-8 and UTF-16 are UCS-based.) - * - * <li> Attribute values must have been normalized, as is done - * by any conformant XML processor which processes all external - * parameter entities. - * - * <li> Similarly, attribute value defaulting has been performed. - * - * </ul> - * - * <p> Note that fragments of XML documents, as specified by an XPath - * node set, may be canonicalized. In such cases, elements may need - * some fixup (for <em>xml:*</em> attributes and application-specific - * context). - * - * @exception IllegalArgumentException if the output encoding - * is anything other than UTF-8. - */ - final public void setCanonical (boolean value) - { - if (value && !"UTF-8".equals (encoding)) - throw new IllegalArgumentException ("encoding != UTF-8"); - canonical = value; - if (canonical) { - prettyPrinting = xhtml = false; - expandingEntities = true; - eol = "\n"; - } - } - - - /** - * Returns value of flag controlling canonical output. - */ - final public boolean isCanonical () - { - return canonical; - } - - - /** - * Flushes the output stream. When this handler is used in long lived - * pipelines, it can be important to flush buffered state, for example - * so that it can reach the disk as part of a state checkpoint. - */ - final public void flush () - throws IOException - { - if (out != null) - out.flush (); - } - - - // convenience routines - -// FIXME: probably want a subclass that holds a lot of these... -// and maybe more! - - /** - * Writes the string as if characters() had been called on the contents - * of the string. This is particularly useful when applications act as - * producers and write data directly to event consumers. - */ - final public void write (String data) - throws SAXException - { - char buf [] = data.toCharArray (); - characters (buf, 0, buf.length); - } - - - /** - * Writes an element that has content consisting of a single string. - * @see #writeEmptyElement - * @see #startElement - */ - public void writeElement ( - String uri, - String localName, - String qName, - Attributes atts, - String content - ) throws SAXException - { - if (content == null || content.length () == 0) { - writeEmptyElement (uri, localName, qName, atts); - return; - } - startElement (uri, localName, qName, atts); - char chars [] = content.toCharArray (); - characters (chars, 0, chars.length); - endElement (uri, localName, qName); - } - - - /** - * Writes an element that has content consisting of a single integer, - * encoded as a decimal string. - * @see #writeEmptyElement - * @see #startElement - */ - public void writeElement ( - String uri, - String localName, - String qName, - Attributes atts, - int content - ) throws SAXException - { - writeElement (uri, localName, qName, atts, Integer.toString (content)); - } - - - // SAX1 ContentHandler - /** <b>SAX1</b>: provides parser status information */ - final public void setDocumentLocator (Locator l) - { - locator = l; - } - - - // URL for dtd that validates against all normal HTML constructs - private static final String xhtmlFullDTD = - "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"; - - - /** - * <b>SAX1</b>: indicates the beginning of a document parse. - * If you're writing (well formed) fragments of XML, neither - * this nor endDocument should be called. - */ - // NOT final - public void startDocument () - throws SAXException - { - try { - if (out == null) - throw new IllegalStateException ( - "null Writer given to XMLWriter"); - - // Not all parsers provide the locator we want; this also - // flags whether events are being sent to this object yet. - // We could only have this one call if we only printed whole - // documents ... but we also print fragments, so most of the - // callbacks here replicate this test. - - if (locator == null) - locator = new LocatorImpl (); - - // Unless the data is in US-ASCII or we're canonicalizing, write - // the XML declaration if we know the encoding. US-ASCII won't - // normally get mangled by web server confusion about the - // character encodings used. Plus, it's an easy way to - // ensure we can write ASCII that's unlikely to confuse - // elderly HTML parsers. - - if (!canonical - && dangerMask != (short) 0xff80 - && encoding != null) { - rawWrite ("<?xml version='1.0'"); - rawWrite (" encoding='" + encoding + "'"); - rawWrite ("?>"); - newline (); - } - - if (xhtml) { - - rawWrite ("<!DOCTYPE html PUBLIC"); - newline (); - rawWrite (" '-//W3C//DTD XHTML 1.0 Transitional//EN'"); - newline (); - rawWrite (" '"); - // NOTE: URL (above) matches the REC - rawWrite (xhtmlFullDTD); - rawWrite ("'>"); - newline (); - newline (); - - // fake the rest of the handler into ignoring - // everything until the root element, so any - // XHTML DTD comments, PIs, etc are ignored - startedDoctype = true; - } - - entityNestLevel = 0; - - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** - * <b>SAX1</b>: indicates the completion of a parse. - * Note that all complete SAX event streams make this call, even - * if an error is reported during a parse. - */ - // NOT final - public void endDocument () - throws SAXException - { - try { - if (!canonical) { - newline (); - newline (); - } - out.close (); - out = null; - locator = null; - } catch (IOException e) { - fatal ("can't write", e); - } - } - - // XHTML elements declared as EMPTY print differently - final private static boolean isEmptyElementTag (String tag) - { - switch (tag.charAt (0)) { - case 'a': return "area".equals (tag); - case 'b': return "base".equals (tag) - || "basefont".equals (tag) - || "br".equals (tag); - case 'c': return "col".equals (tag); - case 'f': return "frame".equals (tag); - case 'h': return "hr".equals (tag); - case 'i': return "img".equals (tag) - || "input".equals (tag) - || "isindex".equals (tag); - case 'l': return "link".equals (tag); - case 'm': return "meta".equals (tag); - case 'p': return "param".equals (tag); - } - return false; - } - - private static boolean indentBefore (String tag) - { - // basically indent before block content - // and within structure like tables, lists - switch (tag.charAt (0)) { - case 'a': return "applet".equals (tag); - case 'b': return "body".equals (tag) - || "blockquote".equals (tag); - case 'c': return "center".equals (tag); - case 'f': return "frame".equals (tag) - || "frameset".equals (tag); - case 'h': return "head".equals (tag); - case 'm': return "meta".equals (tag); - case 'o': return "object".equals (tag); - case 'p': return "param".equals (tag) - || "pre".equals (tag); - case 's': return "style".equals (tag); - case 't': return "title".equals (tag) - || "td".equals (tag) - || "th".equals (tag); - } - // ... but not inline elements like "em", "b", "font" - return false; - } - - private static boolean spaceBefore (String tag) - { - // blank line AND INDENT before certain structural content - switch (tag.charAt (0)) { - case 'h': return "h1".equals (tag) - || "h2".equals (tag) - || "h3".equals (tag) - || "h4".equals (tag) - || "h5".equals (tag) - || "h6".equals (tag) - || "hr".equals (tag); - case 'l': return "li".equals (tag); - case 'o': return "ol".equals (tag); - case 'p': return "p".equals (tag); - case 't': return "table".equals (tag) - || "tr".equals (tag); - case 'u': return "ul".equals (tag); - } - return false; - } - - // XHTML DTDs say these three have xml:space="preserve" - private static boolean spacePreserve (String tag) - { - return "pre".equals (tag) - || "style".equals (tag) - || "script".equals (tag); - } - - /** - * <b>SAX2</b>: ignored. - */ - final public void startPrefixMapping (String prefix, String uri) - {} - - /** - * <b>SAX2</b>: ignored. - */ - final public void endPrefixMapping (String prefix) - {} - - private void writeStartTag ( - String name, - Attributes atts, - boolean isEmpty - ) throws SAXException, IOException - { - rawWrite ('<'); - rawWrite (name); - - // write out attributes ... sorting is particularly useful - // with output that's been heavily defaulted. - if (atts != null && atts.getLength () != 0) { - - // Set up to write, with optional sorting - int indices [] = new int [atts.getLength ()]; - - for (int i= 0; i < indices.length; i++) - indices [i] = i; - - // optionally sort - -// FIXME: canon xml demands xmlns nodes go first, -// and sorting by URI first (empty first) then localname -// it should maybe use a different sort - - if (canonical || prettyPrinting) { - - // insertion sort by attribute name - for (int i = 1; i < indices.length; i++) { - int n = indices [i], j; - String s = atts.getQName (n); - - for (j = i - 1; j >= 0; j--) { - if (s.compareTo (atts.getQName (indices [j])) - >= 0) - break; - indices [j + 1] = indices [j]; - } - indices [j + 1] = n; - } - } - - // write, sorted or no - for (int i= 0; i < indices.length; i++) { - String s = atts.getQName (indices [i]); - - if (s == null || "".equals (s)) - throw new IllegalArgumentException ("no XML name"); - rawWrite (" "); - rawWrite (s); - rawWrite ("="); - writeQuotedValue (atts.getValue (indices [i]), - CTX_ATTRIBUTE); - } - } - if (isEmpty) - rawWrite (" /"); - rawWrite ('>'); - } - - /** - * <b>SAX2</b>: indicates the start of an element. - * When XHTML is in use, avoid attribute values with - * line breaks or multiple whitespace characters, since - * not all user agents handle them correctly. - */ - final public void startElement ( - String uri, - String localName, - String qName, - Attributes atts - ) throws SAXException - { - startedDoctype = false; - - if (locator == null) - locator = new LocatorImpl (); - - if (qName == null || "".equals (qName)) - throw new IllegalArgumentException ("no XML name"); - - try { - if (entityNestLevel != 0) - return; - if (prettyPrinting) { - String whitespace = null; - - if (xhtml && spacePreserve (qName)) - whitespace = "preserve"; - else if (atts != null) - whitespace = atts.getValue ("xml:space"); - if (whitespace == null) - whitespace = (String) space.peek (); - space.push (whitespace); - - if ("default".equals (whitespace)) { - if (xhtml) { - if (spaceBefore (qName)) { - newline (); - doIndent (); - } else if (indentBefore (qName)) - doIndent (); - // else it's inlined, modulo line length - // FIXME: incrementing element nest level - // for inlined elements causes ugliness - } else - doIndent (); - } - } - elementNestLevel++; - writeStartTag (qName, atts, xhtml && isEmptyElementTag (qName)); - - if (xhtml) { -// FIXME: if this is an XHTML "pre" element, turn -// off automatic wrapping. - } - - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** - * Writes an empty element. - * @see #startElement - */ - public void writeEmptyElement ( - String uri, - String localName, - String qName, - Attributes atts - ) throws SAXException - { - if (canonical) { - startElement (uri, localName, qName, atts); - endElement (uri, localName, qName); - } else { - try { - writeStartTag (qName, atts, true); - } catch (IOException e) { - fatal ("can't write", e); - } - } - } - - - /** <b>SAX2</b>: indicates the end of an element */ - final public void endElement (String uri, String localName, String qName) - throws SAXException - { - if (qName == null || "".equals (qName)) - throw new IllegalArgumentException ("no XML name"); - - try { - elementNestLevel--; - if (entityNestLevel != 0) - return; - if (xhtml && isEmptyElementTag (qName)) - return; - rawWrite ("</"); - rawWrite (qName); - rawWrite ('>'); - - if (prettyPrinting) { - if (!space.empty ()) - space.pop (); - else - fatal ("stack discipline", null); - } - if (elementNestLevel == 0) - inEpilogue = true; - - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX1</b>: reports content characters */ - final public void characters (char ch [], int start, int length) - throws SAXException - { - if (locator == null) - locator = new LocatorImpl (); - - try { - if (entityNestLevel != 0) - return; - if (inCDATA) { - escapeChars (ch, start, length, CTX_UNPARSED); - } else { - escapeChars (ch, start, length, CTX_CONTENT); - } - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX1</b>: reports ignorable whitespace */ - final public void ignorableWhitespace (char ch [], int start, int length) - throws SAXException - { - if (locator == null) - locator = new LocatorImpl (); - - try { - if (entityNestLevel != 0) - return; - // don't forget to map NL to CRLF, CR, etc - escapeChars (ch, start, length, CTX_CONTENT); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** - * <b>SAX1</b>: reports a PI. - * This doesn't check for illegal target names, such as "xml" or "XML", - * or namespace-incompatible ones like "big:dog"; the caller is - * responsible for ensuring those names are legal. - */ - final public void processingInstruction (String target, String data) - throws SAXException - { - if (locator == null) - locator = new LocatorImpl (); - - // don't print internal subset for XHTML - if (xhtml && startedDoctype) - return; - - // ancient HTML browsers might render these ... their loss. - // to prevent: "if (xhtml) return;". - - try { - if (entityNestLevel != 0) - return; - if (canonical && inEpilogue) - newline (); - rawWrite ("<?"); - rawWrite (target); - rawWrite (' '); - escapeChars (data.toCharArray (), -1, -1, CTX_UNPARSED); - rawWrite ("?>"); - if (elementNestLevel == 0 && !(canonical && inEpilogue)) - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX1</b>: indicates a non-expanded entity reference */ - public void skippedEntity (String name) - throws SAXException - { - try { - rawWrite ("&"); - rawWrite (name); - rawWrite (";"); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - // SAX2 LexicalHandler - - /** <b>SAX2</b>: called before parsing CDATA characters */ - final public void startCDATA () - throws SAXException - { - if (locator == null) - locator = new LocatorImpl (); - - if (canonical) - return; - - try { - inCDATA = true; - if (entityNestLevel == 0) - rawWrite ("<![CDATA["); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX2</b>: called after parsing CDATA characters */ - final public void endCDATA () - throws SAXException - { - if (canonical) - return; - - try { - inCDATA = false; - if (entityNestLevel == 0) - rawWrite ("]]>"); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** - * <b>SAX2</b>: called when the doctype is partially parsed - * Note that this, like other doctype related calls, is ignored - * when XHTML is in use. - */ - final public void startDTD (String name, String publicId, String systemId) - throws SAXException - { - if (locator == null) - locator = new LocatorImpl (); - if (xhtml) - return; - try { - inDoctype = startedDoctype = true; - if (canonical) - return; - rawWrite ("<!DOCTYPE "); - rawWrite (name); - rawWrite (' '); - - if (!expandingEntities) { - if (publicId != null) - rawWrite ("PUBLIC '" + publicId + "' '" + systemId + "' "); - else if (systemId != null) - rawWrite ("SYSTEM '" + systemId + "' "); - } - - rawWrite ('['); - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX2</b>: called after the doctype is parsed */ - final public void endDTD () - throws SAXException - { - inDoctype = false; - if (canonical || xhtml) - return; - try { - rawWrite ("]>"); - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** - * <b>SAX2</b>: called before parsing a general entity in content - */ - final public void startEntity (String name) - throws SAXException - { - try { - boolean writeEOL = true; - - // Predefined XHTML entities (for characters) will get - // mapped back later. - if (xhtml || expandingEntities) - return; - - entityNestLevel++; - if (name.equals ("[dtd]")) - return; - if (entityNestLevel != 1) - return; - if (!name.startsWith ("%")) { - writeEOL = false; - rawWrite ('&'); - } - rawWrite (name); - rawWrite (';'); - if (writeEOL) - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** - * <b>SAX2</b>: called after parsing a general entity in content - */ - final public void endEntity (String name) - throws SAXException - { - if (xhtml || expandingEntities) - return; - entityNestLevel--; - } - - /** - * <b>SAX2</b>: called when comments are parsed. - * When XHTML is used, the old HTML tradition of using comments - * to for inline CSS, or for JavaScript code is discouraged. - * This is because XML processors are encouraged to discard, on - * the grounds that comments are for users (and perhaps text - * editors) not programs. Instead, use external scripts - */ - final public void comment (char ch [], int start, int length) - throws SAXException - { - if (locator == null) - locator = new LocatorImpl (); - - // don't print internal subset for XHTML - if (xhtml && startedDoctype) - return; - // don't print comment in doctype for canon xml - if (canonical && inDoctype) - return; - - try { - boolean indent; - - if (prettyPrinting && space.empty ()) - fatal ("stack discipline", null); - indent = prettyPrinting && "default".equals (space.peek ()); - if (entityNestLevel != 0) - return; - if (indent) - doIndent (); - if (canonical && inEpilogue) - newline (); - rawWrite ("<!--"); - escapeChars (ch, start, length, CTX_UNPARSED); - rawWrite ("-->"); - if (indent) - doIndent (); - if (elementNestLevel == 0 && !(canonical && inEpilogue)) - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - // SAX1 DTDHandler - - /** <b>SAX1</b>: called on notation declarations */ - final public void notationDecl (String name, - String publicId, String systemId) - throws SAXException - { - if (xhtml) - return; - try { - // At this time, only SAX2 callbacks start these. - if (!startedDoctype) - return; - - if (entityNestLevel != 0) - return; - rawWrite ("<!NOTATION " + name + " "); - if (publicId != null) - rawWrite ("PUBLIC \"" + publicId + '"'); - else - rawWrite ("SYSTEM "); - if (systemId != null) - rawWrite ('"' + systemId + '"'); - rawWrite (">"); - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX1</b>: called on unparsed entity declarations */ - final public void unparsedEntityDecl (String name, - String publicId, String systemId, - String notationName) - throws SAXException - { - if (xhtml) - return; - try { - // At this time, only SAX2 callbacks start these. - if (!startedDoctype) { - // FIXME: write to temporary buffer, and make the start - // of the root element write these declarations. - return; - } - - if (entityNestLevel != 0) - return; - rawWrite ("<!ENTITY " + name + " "); - if (publicId != null) - rawWrite ("PUBLIC \"" + publicId + '"'); - else - rawWrite ("SYSTEM "); - rawWrite ('"' + systemId + '"'); - rawWrite (" NDATA " + notationName + ">"); - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - // SAX2 DeclHandler - - /** <b>SAX2</b>: called on attribute declarations */ - final public void attributeDecl (String eName, String aName, - String type, String mode, String value) - throws SAXException - { - if (xhtml) - return; - try { - // At this time, only SAX2 callbacks start these. - if (!startedDoctype) - return; - if (entityNestLevel != 0) - return; - rawWrite ("<!ATTLIST " + eName + ' ' + aName + ' '); - rawWrite (type); - rawWrite (' '); - if (mode != null) - rawWrite (mode + ' '); - if (value != null) - writeQuotedValue (value, CTX_ATTRIBUTE); - rawWrite ('>'); - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX2</b>: called on element declarations */ - final public void elementDecl (String name, String model) - throws SAXException - { - if (xhtml) - return; - try { - // At this time, only SAX2 callbacks start these. - if (!startedDoctype) - return; - if (entityNestLevel != 0) - return; - rawWrite ("<!ELEMENT " + name + ' ' + model + '>'); - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX2</b>: called on external entity declarations */ - final public void externalEntityDecl ( - String name, - String publicId, - String systemId) - throws SAXException - { - if (xhtml) - return; - try { - // At this time, only SAX2 callbacks start these. - if (!startedDoctype) - return; - if (entityNestLevel != 0) - return; - rawWrite ("<!ENTITY "); - if (name.startsWith ("%")) { - rawWrite ("% "); - rawWrite (name.substring (1)); - } else - rawWrite (name); - if (publicId != null) - rawWrite (" PUBLIC \"" + publicId + '"'); - else - rawWrite (" SYSTEM "); - rawWrite ('"' + systemId + "\">"); - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - /** <b>SAX2</b>: called on internal entity declarations */ - final public void internalEntityDecl (String name, String value) - throws SAXException - { - if (xhtml) - return; - try { - // At this time, only SAX2 callbacks start these. - if (!startedDoctype) - return; - if (entityNestLevel != 0) - return; - rawWrite ("<!ENTITY "); - if (name.startsWith ("%")) { - rawWrite ("% "); - rawWrite (name.substring (1)); - } else - rawWrite (name); - rawWrite (' '); - writeQuotedValue (value, CTX_ENTITY); - rawWrite ('>'); - newline (); - } catch (IOException e) { - fatal ("can't write", e); - } - } - - private void writeQuotedValue (String value, int code) - throws SAXException, IOException - { - char buf [] = value.toCharArray (); - int off = 0, len = buf.length; - - // we can't add line breaks to attribute/entity/... values - noWrap = true; - rawWrite ('"'); - escapeChars (buf, off, len, code); - rawWrite ('"'); - noWrap = false; - } - - // From "HTMLlat1x.ent" ... names of entities for ISO-8859-1 - // (Latin/1) characters, all codes: 160-255 (0xA0-0xFF). - // Codes 128-159 have no assigned values. - private static final String HTMLlat1x [] = { - // 160 - "nbsp", "iexcl", "cent", "pound", "curren", - "yen", "brvbar", "sect", "uml", "copy", - - // 170 - "ordf", "laquo", "not", "shy", "reg", - "macr", "deg", "plusmn", "sup2", "sup3", - - // 180 - "acute", "micro", "para", "middot", "cedil", - "sup1", "ordm", "raquo", "frac14", "frac12", - - // 190 - "frac34", "iquest", "Agrave", "Aacute", "Acirc", - "Atilde", "Auml", "Aring", "AElig", "Ccedil", - - // 200 - "Egrave", "Eacute", "Ecirc", "Euml", "Igrave", - "Iacute", "Icirc", "Iuml", "ETH", "Ntilde", - - // 210 - "Ograve", "Oacute", "Ocirc", "Otilde", "Ouml", - "times", "Oslash", "Ugrave", "Uacute", "Ucirc", - - // 220 - "Uuml", "Yacute", "THORN", "szlig", "agrave", - "aacute", "acirc", "atilde", "auml", "aring", - - // 230 - "aelig", "ccedil", "egrave", "eacute", "ecirc", - "euml", "igrave", "iacute", "icirc", "iuml", - - // 240 - "eth", "ntilde", "ograve", "oacute", "ocirc", - "otilde", "ouml", "divide", "oslash", "ugrave", - - // 250 - "uacute", "ucirc", "uuml", "yacute", "thorn", - "yuml" - }; - - // From "HTMLsymbolx.ent" ... some of the symbols that - // we can conveniently handle. Entities for the Greek. - // alphabet (upper and lower cases) are compact. - private static final String HTMLsymbolx_GR [] = { - // 913 - "Alpha", "Beta", "Gamma", "Delta", "Epsilon", - "Zeta", "Eta", "Theta", "Iota", "Kappa", - - // 923 - "Lambda", "Mu", "Nu", "Xi", "Omicron", - "Pi", "Rho", null, "Sigma", "Tau", - - // 933 - "Upsilon", "Phi", "Chi", "Psi", "Omega" - }; - - private static final String HTMLsymbolx_gr [] = { - // 945 - "alpha", "beta", "gamma", "delta", "epsilon", - "zeta", "eta", "theta", "iota", "kappa", - - // 955 - "lambda", "mu", "nu", "xi", "omicron", - "pi", "rho", "sigmaf", "sigma", "tau", - - // 965 - "upsilon", "phi", "chi", "psi", "omega" - }; - - - // General routine to write text and substitute predefined - // entities (XML, and a special case for XHTML) as needed. - private void escapeChars (char buf [], int off, int len, int code) - throws SAXException, IOException - { - int first = 0; - - if (off < 0) { - off = 0; - len = buf.length; - } - for (int i = 0; i < len; i++) { - String esc; - char c = buf [off + i]; - - switch (c) { - // Note that CTX_ATTRIBUTE isn't explicitly tested here; - // all syntax delimiters are escaped in CTX_ATTRIBUTE, - // otherwise it's similar to CTX_CONTENT - - // ampersand flags entity references; entity replacement - // text has unexpanded references, other text doesn't. - case '&': - if (code == CTX_ENTITY || code == CTX_UNPARSED) - continue; - esc = "amp"; - break; - - // attributes and text may NOT have literal '<', but - // entities may have markup constructs - case '<': - if (code == CTX_ENTITY || code == CTX_UNPARSED) - continue; - esc = "lt"; - break; - - // as above re markup constructs; but otherwise - // except when canonicalizing, this is for consistency - case '>': - if (code == CTX_ENTITY || code == CTX_UNPARSED) - continue; - esc = "gt"; - break; - case '\'': - if (code == CTX_CONTENT || code == CTX_UNPARSED) - continue; - if (canonical) - continue; - esc = "apos"; - break; - - // needed when printing quoted attribute/entity values - case '"': - if (code == CTX_CONTENT || code == CTX_UNPARSED) - continue; - esc = "quot"; - break; - - // make line ends work per host OS convention - case '\n': - esc = eol; - break; - - // - // No other characters NEED special treatment ... except - // for encoding-specific issues, like whether the character - // can really be represented in that encoding. - // - default: - // - // There are characters we can never write safely; getting - // them is an error. - // - // (a) They're never legal in XML ... detected by range - // checks, and (eventually) by remerging surrogate - // pairs on output. (Easy error for apps to prevent.) - // - // (b) This encoding can't represent them, and we - // can't make reference substitution (e.g. inside - // CDATA sections, names, PI data, etc). (Hard for - // apps to prevent, except by using UTF-8 or UTF-16 - // as their output encoding.) - // - // We know a very little bit about what characters - // the US-ASCII and ISO-8859-1 encodings support. For - // other encodings we can't detect the second type of - // error at all. (Never an issue for UTF-8 or UTF-16.) - // - -// FIXME: CR in CDATA is an error; in text, turn to a char ref - -// FIXME: CR/LF/TAB in attributes should become char refs - - if ((c > 0xfffd) - || ((c < 0x0020) && !((c == 0x0009) - || (c == 0x000A) || (c == 0x000D))) - || (((c & dangerMask) != 0) - && (code == CTX_UNPARSED))) { - - // if case (b) in CDATA, we might end the section, - // write a reference, then restart ... possible - // in one DOM L3 draft. - - throw new CharConversionException ( - "Illegal or non-writable character: U+" - + Integer.toHexString (c)); - } - - // - // If the output encoding represents the character - // directly, let it do so! Else we'll escape it. - // - if ((c & dangerMask) == 0) - continue; - esc = null; - - // Avoid numeric refs where symbolic ones exist, as - // symbolic ones make more sense to humans reading! - if (xhtml) { - // all the HTMLlat1x.ent entities - // (all the "ISO-8859-1" characters) - if (c >= 160 && c <= 255) - esc = HTMLlat1x [c - 160]; - - // not quite half the HTMLsymbolx.ent entities - else if (c >= 913 && c <= 937) - esc = HTMLsymbolx_GR [c - 913]; - else if (c >= 945 && c <= 969) - esc = HTMLsymbolx_gr [c - 945]; - - else switch (c) { - // all of the HTMLspecialx.ent entities - case 338: esc = "OElig"; break; - case 339: esc = "oelig"; break; - case 352: esc = "Scaron"; break; - case 353: esc = "scaron"; break; - case 376: esc = "Yuml"; break; - case 710: esc = "circ"; break; - case 732: esc = "tilde"; break; - case 8194: esc = "ensp"; break; - case 8195: esc = "emsp"; break; - case 8201: esc = "thinsp"; break; - case 8204: esc = "zwnj"; break; - case 8205: esc = "zwj"; break; - case 8206: esc = "lrm"; break; - case 8207: esc = "rlm"; break; - case 8211: esc = "ndash"; break; - case 8212: esc = "mdash"; break; - case 8216: esc = "lsquo"; break; - case 8217: esc = "rsquo"; break; - case 8218: esc = "sbquo"; break; - case 8220: esc = "ldquo"; break; - case 8221: esc = "rdquo"; break; - case 8222: esc = "bdquo"; break; - case 8224: esc = "dagger"; break; - case 8225: esc = "Dagger"; break; - case 8240: esc = "permil"; break; - case 8249: esc = "lsaquo"; break; - case 8250: esc = "rsaquo"; break; - case 8364: esc = "euro"; break; - - // the other HTMLsymbox.ent entities - case 402: esc = "fnof"; break; - case 977: esc = "thetasym"; break; - case 978: esc = "upsih"; break; - case 982: esc = "piv"; break; - case 8226: esc = "bull"; break; - case 8230: esc = "hellip"; break; - case 8242: esc = "prime"; break; - case 8243: esc = "Prime"; break; - case 8254: esc = "oline"; break; - case 8260: esc = "frasl"; break; - case 8472: esc = "weierp"; break; - case 8465: esc = "image"; break; - case 8476: esc = "real"; break; - case 8482: esc = "trade"; break; - case 8501: esc = "alefsym"; break; - case 8592: esc = "larr"; break; - case 8593: esc = "uarr"; break; - case 8594: esc = "rarr"; break; - case 8595: esc = "darr"; break; - case 8596: esc = "harr"; break; - case 8629: esc = "crarr"; break; - case 8656: esc = "lArr"; break; - case 8657: esc = "uArr"; break; - case 8658: esc = "rArr"; break; - case 8659: esc = "dArr"; break; - case 8660: esc = "hArr"; break; - case 8704: esc = "forall"; break; - case 8706: esc = "part"; break; - case 8707: esc = "exist"; break; - case 8709: esc = "empty"; break; - case 8711: esc = "nabla"; break; - case 8712: esc = "isin"; break; - case 8713: esc = "notin"; break; - case 8715: esc = "ni"; break; - case 8719: esc = "prod"; break; - case 8721: esc = "sum"; break; - case 8722: esc = "minus"; break; - case 8727: esc = "lowast"; break; - case 8730: esc = "radic"; break; - case 8733: esc = "prop"; break; - case 8734: esc = "infin"; break; - case 8736: esc = "ang"; break; - case 8743: esc = "and"; break; - case 8744: esc = "or"; break; - case 8745: esc = "cap"; break; - case 8746: esc = "cup"; break; - case 8747: esc = "int"; break; - case 8756: esc = "there4"; break; - case 8764: esc = "sim"; break; - case 8773: esc = "cong"; break; - case 8776: esc = "asymp"; break; - case 8800: esc = "ne"; break; - case 8801: esc = "equiv"; break; - case 8804: esc = "le"; break; - case 8805: esc = "ge"; break; - case 8834: esc = "sub"; break; - case 8835: esc = "sup"; break; - case 8836: esc = "nsub"; break; - case 8838: esc = "sube"; break; - case 8839: esc = "supe"; break; - case 8853: esc = "oplus"; break; - case 8855: esc = "otimes"; break; - case 8869: esc = "perp"; break; - case 8901: esc = "sdot"; break; - case 8968: esc = "lceil"; break; - case 8969: esc = "rceil"; break; - case 8970: esc = "lfloor"; break; - case 8971: esc = "rfloor"; break; - case 9001: esc = "lang"; break; - case 9002: esc = "rang"; break; - case 9674: esc = "loz"; break; - case 9824: esc = "spades"; break; - case 9827: esc = "clubs"; break; - case 9829: esc = "hearts"; break; - case 9830: esc = "diams"; break; - } - } - - // else escape with numeric char refs - if (esc == null) { - stringBuf.setLength (0); - stringBuf.append ("#x"); - stringBuf.append (Integer.toHexString (c).toUpperCase ()); - esc = stringBuf.toString (); - - // FIXME: We don't write surrogate pairs correctly. - // They should work as one ref per character, since - // each pair is one character. For reading back into - // Unicode, it matters beginning in Unicode 3.1 ... - } - break; - } - if (i != first) - rawWrite (buf, off + first, i - first); - first = i + 1; - if (esc == eol) - newline (); - else { - rawWrite ('&'); - rawWrite (esc); - rawWrite (';'); - } - } - if (first < len) - rawWrite (buf, off + first, len - first); - } - - - - private void newline () - throws SAXException, IOException - { - out.write (eol); - column = 0; - } - - private void doIndent () - throws SAXException, IOException - { - int space = elementNestLevel * 2; - - newline (); - column = space; - // track tabs only at line starts - while (space > 8) { - out.write ("\t"); - space -= 8; - } - while (space > 0) { - out.write (" "); - space -= 2; - } - } - - private void rawWrite (char c) - throws IOException - { - out.write (c); - column++; - } - - private void rawWrite (String s) - throws SAXException, IOException - { - if (prettyPrinting && "default".equals (space.peek ())) { - char data [] = s.toCharArray (); - rawWrite (data, 0, data.length); - } else { - out.write (s); - column += s.length (); - } - } - - // NOTE: if xhtml, the REC gives some rules about whitespace - // which we could follow ... notably, many places where conformant - // agents "must" consolidate/normalize whitespace. Line ends can - // be removed there, etc. This may not be the right place to do - // such mappings though. - - // Line buffering may help clarify algorithms and improve results. - - // It's likely xml:space needs more attention. - - private void rawWrite (char buf [], int offset, int length) - throws SAXException, IOException - { - boolean wrap; - - if (prettyPrinting && space.empty ()) - fatal ("stack discipline", null); - - wrap = prettyPrinting && "default".equals (space.peek ()); - if (!wrap) { - out.write (buf, offset, length); - column += length; - return; - } - - // we're pretty printing and want to fill lines out only - // to the desired line length. - while (length > 0) { - int target = lineLength - column; - boolean wrote = false; - - // Do we even have a problem? - if (target > length || noWrap) { - out.write (buf, offset, length); - column += length; - return; - } - - // break the line at a space character, trying to fill - // as much of the line as possible. - char c; - - for (int i = target - 1; i >= 0; i--) { - if ((c = buf [offset + i]) == ' ' || c == '\t') { - i++; - out.write (buf, offset, i); - doIndent (); - offset += i; - length -= i; - wrote = true; - break; - } - } - if (wrote) - continue; - - // no space character permitting break before target - // line length is filled. So, take the next one. - if (target < 0) - target = 0; - for (int i = target; i < length; i++) - if ((c = buf [offset + i]) == ' ' || c == '\t') { - i++; - out.write (buf, offset, i); - doIndent (); - offset += i; - length -= i; - wrote = true; - break; - } - if (wrote) - continue; - - // no such luck. - out.write (buf, offset, length); - column += length; - break; - } - } -} diff --git a/external/jaxp/source/gnu/xml/util/package.html b/external/jaxp/source/gnu/xml/util/package.html deleted file mode 100644 index 5c5736bff..000000000 --- a/external/jaxp/source/gnu/xml/util/package.html +++ /dev/null @@ -1,22 +0,0 @@ -<!DOCTYPE html PUBLIC - "-//W3C//DTD XHTML 1.0 Transitional//EN" - "http://www.w3.org/TR/1999/PR-xhtml1-19991210/DTD/xhtml1-transitional.dtd"> - -<html><head><title> org.brownell.xml package </title> </head> -<!-- -/* - * Copyright (c) 1999-2000 by David Brownell. - * - * $Id: package.html,v 1.2 2004-05-01 16:18:51 mark Exp $ - */ ---> -<body> - <p> This package contains XML utilities, including SAX2 XML writers - and a parser of DOM trees, plus a command line driver. - That <a href="DoParse.html">driver</a> - connects parsers simple processing pipelines. - It can be handy for command line validation or - transformation tasks, possibly in batch mode, - or within Makefiles. </p> - -</body></html> diff --git a/external/jaxp/source/javax/xml/parsers/ClassStuff.java b/external/jaxp/source/javax/xml/parsers/ClassStuff.java deleted file mode 100644 index 6c8d9dca2..000000000 --- a/external/jaxp/source/javax/xml/parsers/ClassStuff.java +++ /dev/null @@ -1,158 +0,0 @@ -/* - * $Id: ClassStuff.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package javax.xml.parsers; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.lang.reflect.Method; -import java.util.Properties; - - -// $Id: ClassStuff.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - -/** - * Package-private utility methods for sharing - * magic related to class loading. - * NOTE: This is cloned in javax.xml.transform, - * where a different exception is thrown (bleech). - * Keep changes to the two copies in sync. - * - * @author David Brownell - * @version $Id: ClassStuff.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - */ -final class ClassStuff -{ - private ClassStuff () { } - - /** - * Get the default factory using the four-stage defaulting - * mechanism defined by JAXP. - */ - static Object - createFactory (String label, String defaultClass) - throws FactoryConfigurationError - { - String name = null; - ClassLoader loader = null; - - // figure out which class loader to use. - // source compiles on jdk 1.1, but works with jdk 1.2+ security - try { - Method m = null; - - // Can we use JDK 1.2 APIs? Preferred: security policies apply. - m = Thread.class.getMethod ("getContextClassLoader", null); - loader = (ClassLoader) m.invoke (Thread.currentThread(), null); - } catch (NoSuchMethodException e) { - // Assume that we are running JDK 1.1; use current ClassLoader - loader = ClassStuff.class.getClassLoader(); - } catch (NoSuchMethodError e) { - // evidently IE does this (one of its bugs) - loader = ClassStuff.class.getClassLoader(); - } catch (Throwable e) { - // "should not happen" - throw new UnknownError (e.getMessage()); - } - - // 1. Check System Property - // ... normally fails in applet environments - try { name = System.getProperty (label); - } catch (SecurityException e) { /* IGNORE */ } - - // 2. Check in $JAVA_HOME/lib/jaxp.properties - try { - if (name == null) { - String javaHome; - File file; - - javaHome = System.getProperty ("java.home"); - file = new File (new File (javaHome, "lib"), "jaxp.properties"); - if (file.exists() == true) { - FileInputStream in = new FileInputStream (file); - Properties props = new Properties(); - - props.load (in); - name = props.getProperty (label); - in.close (); - } - } - } catch (Exception e) { /* IGNORE */ } - - // 3. Check Services API - if (name == null) { - try { - String service = "META-INF/services/" + label; - InputStream in; - BufferedReader reader; - - if (loader == null) - in = ClassLoader.getSystemResourceAsStream (service); - else - in = loader.getResourceAsStream (service); - if (in != null) { - reader = new BufferedReader ( - new InputStreamReader (in, "UTF8")); - name = reader.readLine(); - in.close (); - } - } catch (Exception e2) { /* IGNORE */ } - } - - // 4. Distro-specific fallback - if (name == null) - name = defaultClass; - - // Instantiate! - try { - Class klass; - - if (loader == null) - klass = Class.forName (name); - else - klass = loader.loadClass (name); - return klass.newInstance (); - - } catch (ClassNotFoundException e) { - throw new FactoryConfigurationError (e, - "Factory class " + name - + " not found"); - } catch (IllegalAccessException e) { - throw new FactoryConfigurationError (e, - "Factory class " + name - + " found but cannot be loaded"); - } catch (InstantiationException e) { - throw new FactoryConfigurationError (e, - "Factory class " + name - + " loaded but cannot be instantiated" - + " ((no default constructor?)"); - } - } -} diff --git a/external/jaxp/source/javax/xml/parsers/DocumentBuilder.java b/external/jaxp/source/javax/xml/parsers/DocumentBuilder.java deleted file mode 100644 index 0b4665943..000000000 --- a/external/jaxp/source/javax/xml/parsers/DocumentBuilder.java +++ /dev/null @@ -1,180 +0,0 @@ -/* - * $Id: DocumentBuilder.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package javax.xml.parsers; - -// Imports -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.IOException; -// import java.net.*; -import org.w3c.dom.DOMImplementation; -import org.w3c.dom.Document; -import org.xml.sax.InputSource; -import org.xml.sax.EntityResolver; -import org.xml.sax.ErrorHandler; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; - - -/** - * Uses an XML parser to construct a DOM document. - * @author Andrew Selkirk, David Brownell - * @version $Id: DocumentBuilder.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - */ -public abstract class DocumentBuilder -{ - /** Only subclasses may use the constructor. */ - protected DocumentBuilder() { } - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public abstract DOMImplementation getDOMImplementation (); - - public abstract boolean isNamespaceAware(); - - public abstract boolean isValidating(); - - public abstract Document newDocument(); - - // we don't demand jdk 1.2 File.toURL() in the runtime - // keep in sync with gnu.xml.util.Resolver - // and javax.xml.transform.stream.StreamSource - static String fileToURL (File f) - throws IOException - { - String temp; - - // FIXME: getAbsolutePath() seems buggy; I'm seeing components - // like "/foo/../" which are clearly not "absolute" - // and should have been resolved with the filesystem. - - // Substituting "/" would be wrong, "foo" may have been - // symlinked ... the URL code will make that change - // later, so that things can get _really_ broken! - - temp = f.getAbsolutePath (); - - if (File.separatorChar != '/') - temp = temp.replace (File.separatorChar, '/'); - if (!temp.startsWith ("/")) - temp = "/" + temp; - if (!temp.endsWith ("/") && f.isDirectory ()) - temp = temp + "/"; - return "file:" + temp; - } - - /** - * Constructs an InputSource from the file, and invokes parse (). - * The InputSource includes the URI for the file. - * @param file the file to parse - * @return the DOM representation of the xml document - * @exception IOException - * @exception SAXException if parse errors occur - * @exception IllegalArgumentException if the file is null - */ - public Document parse (File file) - throws SAXException, IOException - { - if (file==null) - { - throw new IllegalArgumentException("File si 'null'"); - } - InputSource source; - - source = new InputSource (fileToURL (file)); - source.setByteStream (new FileInputStream(file)); - return parse (source); - } - - /** - * - * @exception IllegalArgumentException if InputSource is null - */ - public abstract Document parse(InputSource source) - throws SAXException, IOException; - - /** - * Avoid using this call; provide the system ID wherever possible. - * System IDs are essential when parsers resolve relative URIs, - * or provide diagnostics. - * @exception IllegalArgumentException if InputStream is null - */ - public Document parse(InputStream stream) - throws SAXException, IOException { - if (stream==null) - { - throw new IllegalArgumentException("InputStream si 'null'"); - } - return parse(new InputSource(stream)); - } // parse() - - /** - * - * @exception IllegalArgumentException if InputStream is null - */ - public Document parse(InputStream stream, String systemID) - throws SAXException, IOException { - - if (stream==null) - { - throw new IllegalArgumentException("InputStream si 'null'"); - } - // Variables - InputSource source; - - // Create Source - source = new InputSource(stream); - source.setSystemId(systemID); - - // Parse Input Source - return parse(source); - - } // parse() - - /** - * - * @exception IllegalArgumentException if the URI is null - */ - public Document parse(String uri) - throws SAXException, IOException { - if (uri==null) - { - throw new IllegalArgumentException("URI si 'null'"); - } - return parse(new InputSource(uri)); - } // parse() - - public abstract void setEntityResolver(EntityResolver resolver); - - public abstract void setErrorHandler(ErrorHandler handler); -} diff --git a/external/jaxp/source/javax/xml/parsers/DocumentBuilderFactory.java b/external/jaxp/source/javax/xml/parsers/DocumentBuilderFactory.java deleted file mode 100644 index f13b02bf0..000000000 --- a/external/jaxp/source/javax/xml/parsers/DocumentBuilderFactory.java +++ /dev/null @@ -1,154 +0,0 @@ -/* - * $Id: DocumentBuilderFactory.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package javax.xml.parsers; - -// Imports -import java.io.IOException; -import java.io.InputStream; -import java.io.File; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.Properties; -import org.w3c.dom.*; -import org.xml.sax.*; - -/** - * DocumentBuilderFactory is used to resolve the problem that the - * W3C DOM APIs don't include portable bootstrapping. - * - * @author Andrew Selkirk, David Brownell - * @version $Id: DocumentBuilderFactory.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - */ -public abstract class DocumentBuilderFactory { - - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - - private static final String defaultPropName = - "javax.xml.parsers.DocumentBuilderFactory"; - - private boolean validating = false; - private boolean namespaceAware = false; - private boolean whitespace = false; - private boolean expandEntityRef = false; - private boolean ignoreComments = false; - private boolean coalescing = false; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - protected DocumentBuilderFactory() { - } // DocumentBuilderFactory() - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - /** - * @exception IllegalArgumentException if implementation doesn't recognize the attribute - */ - public abstract Object getAttribute(String name) - throws IllegalArgumentException; - - public boolean isCoalescing() { - return coalescing; - } // isCoalescing() - - public boolean isExpandEntityReferences() { - return expandEntityRef; - } // isExpandEntityReferences() - - public boolean isIgnoringComments() { - return ignoreComments; - } // isIgnoringComments() - - public boolean isIgnoringElementContentWhitespace() { - return whitespace; - } // isIgnoringElementContentWhitespace() - - public boolean isNamespaceAware() { - return namespaceAware; - } // isNamespaceAware() - - public boolean isValidating() { - return validating; - } // isValidating() - - public abstract DocumentBuilder newDocumentBuilder() - throws ParserConfigurationException; - - /** - * @exception FactoryConfigurationError if the implementation is not available - */ - public static DocumentBuilderFactory newInstance() { - try { - return (DocumentBuilderFactory) - ClassStuff.createFactory ( - defaultPropName, - "gnu.xml.dom.JAXPFactory"); - } catch (ClassCastException e) { - throw new FactoryConfigurationError (e, - "Factory class is the wrong type"); - } - } - - /** - * @exception IllegalArgumentException if implementation doesn't recognize the attribute - */ - public abstract void setAttribute(String name, Object value) - throws IllegalArgumentException; - - public void setCoalescing(boolean value) { - coalescing = value; - } // setCoalescing() - - public void setExpandEntityReferences(boolean value) { - expandEntityRef = value; - } // setExpandEntityReferences() - - public void setIgnoringComments(boolean value) { - ignoreComments = value; - } // setIgnoringComments() - - public void setIgnoringElementContentWhitespace(boolean value) { - whitespace = value; - } // setIgnoringElementContentWhitespace() - - public void setNamespaceAware(boolean value) { - namespaceAware = value; - } // setNamespaceAware() - - public void setValidating(boolean value) { - validating = value; - } // setValidating() -} diff --git a/external/jaxp/source/javax/xml/parsers/FactoryConfigurationError.java b/external/jaxp/source/javax/xml/parsers/FactoryConfigurationError.java deleted file mode 100644 index 4438e19c0..000000000 --- a/external/jaxp/source/javax/xml/parsers/FactoryConfigurationError.java +++ /dev/null @@ -1,81 +0,0 @@ -/* - * $Id: FactoryConfigurationError.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package javax.xml.parsers; - -/** - * FactoryConfigurationError - * @author Andrew Selkirk - * @version 1.0 - */ -public class FactoryConfigurationError extends Error { - - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - - private Exception exception = null; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - public FactoryConfigurationError() { - super(); - } // FactoryConfigurationError() - - public FactoryConfigurationError(String msg) { - super(msg); - } // FactoryConfigurationError() - - public FactoryConfigurationError(Exception ex) { - super(); - exception = ex; - } // FactoryConfigurationError() - - public FactoryConfigurationError(Exception ex, String msg) { - super(msg); - exception = ex; - } // FactoryConfigurationError() - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public String getMessage() { - return super.getMessage(); - } // getMessage() - - public Exception getException() { - return exception; - } // getException() - - -} // FactoryConfigurationError - - diff --git a/external/jaxp/source/javax/xml/parsers/ParserConfigurationException.java b/external/jaxp/source/javax/xml/parsers/ParserConfigurationException.java deleted file mode 100644 index e34c03ca7..000000000 --- a/external/jaxp/source/javax/xml/parsers/ParserConfigurationException.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * $Id: ParserConfigurationException.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package javax.xml.parsers; - -/** - * ParserConfigurationException - * @author Andrew Selkirk - * @version 1.0 - */ -public class ParserConfigurationException extends Exception { - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public ParserConfigurationException() { - super(); - } // ParserConfigurationException() - - public ParserConfigurationException(String message) { - super(message); - } // ParserConfigurationException() - - -} // ParserConfigurationException - diff --git a/external/jaxp/source/javax/xml/parsers/SAXParser.java b/external/jaxp/source/javax/xml/parsers/SAXParser.java deleted file mode 100644 index b5b53989b..000000000 --- a/external/jaxp/source/javax/xml/parsers/SAXParser.java +++ /dev/null @@ -1,279 +0,0 @@ -/* - * $Id: SAXParser.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package javax.xml.parsers; - -// Imports -import java.io.*; -import java.net.*; -import org.w3c.dom.*; -import org.xml.sax.*; -import org.xml.sax.helpers.*; - -/** - * Wraps a SAX2 (or SAX1) parser. - * - * <p>Note that parsing with methods on this interface requires use of one - * of the optional SAX base classes. It's usually preferable to use the - * SAX parser APIs directly. SAX gives much more flexibility about how - * application classes are organized, and about how the document entity is - * packaged for delivery to the parser. And JAXP doesn't otherwise provide - * access to the SAX2 extension handlers for lexical or declaration events. - * - * @author Andrew Selkirk - * @author David Brownell - * @version 1.0 - */ -public abstract class SAXParser -{ - /** Only subclasses may use the constructor. */ - protected SAXParser() { } - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public abstract void setProperty (String id, Object value) - throws SAXNotRecognizedException, SAXNotSupportedException; - - public abstract Object getProperty (String id) - throws SAXNotRecognizedException, SAXNotSupportedException; - - /** - * Parse using (deprecated) SAX1 style handlers, - * and a byte stream (with no URI). - * Avoid using this API, since relative URIs in the document need - * to be resolved against the document entity's URI, and good - * diagnostics also need that URI. - * @exception IllegalArgumentException if InputStream is null - */ - public void parse(InputStream stream, HandlerBase handler) - throws SAXException, IOException - { parse (new InputSource (stream), handler); } - - /** - * Parse using (deprecated) SAX1 style handlers, - * and a byte stream with a specified URI. - * @exception IllegalArgumentException if InputStream is null - */ - public void parse ( - InputStream stream, - HandlerBase handler, - String systemID - ) throws SAXException, IOException - { - if(stream==null) - { - throw new IllegalArgumentException("InputStream is 'null'"); - } - InputSource source; - - // Prepare Source - source = new InputSource(stream); - source.setSystemId(systemID); - - parse(source, handler); - - } - - /** - * Parse using SAX2 style handlers, - * and a byte stream (with no URI). - * Avoid using this API, since relative URIs in the document need - * to be resolved against the document entity's URI, and good - * diagnostics also need that URI. - * @exception IllegalArgumentException if InputStream is null - */ - public void parse(InputStream stream, DefaultHandler def) - throws SAXException, IOException - { - if(stream==null) - { - throw new IllegalArgumentException("InputStream is 'null'"); - } - parse (new InputSource (stream), def); - } - - /** - * Parse using SAX2 style handlers, - * and a byte stream with a specified URI. - * @exception IllegalArgumentException if InputStream is null - */ - public void parse ( - InputStream stream, - DefaultHandler def, - String systemID - ) throws SAXException, IOException - { - if(stream==null) - { - throw new IllegalArgumentException("InputStream is 'null'"); - } - InputSource source; - - // Prepare Source - source = new InputSource(stream); - source.setSystemId(systemID); - - parse(source, def); - - } - - /** - * Parse using (deprecated) SAX1 style handlers, - * and a URI for the document entity. - * @exception IllegalArgumentException if URI is null - */ - public void parse(String uri, HandlerBase handler) - throws SAXException, IOException - { - if(uri==null) - { - throw new IllegalArgumentException("URI is 'null'"); - } - parse (new InputSource (uri), handler); - } - - /** - * Parse using SAX2 style handlers, - * and a URI for the document entity. - * @exception IllegalArgumentException if URI is null - */ - public void parse(String uri, DefaultHandler def) - throws SAXException, IOException - { - if(uri==null) - { - throw new IllegalArgumentException("URI is 'null'"); - } - parse (new InputSource (uri), def); - } - - /** - * Parse using (deprecated) SAX1 style handlers, - * turning a file name into the document URI. - * @exception IllegalArgumentException if file is null - */ - public void parse(File file, HandlerBase handler) - throws SAXException, IOException - { - if(file==null) - { - throw new IllegalArgumentException("The file is 'null'"); - } - InputSource in; - - in = new InputSource (DocumentBuilder.fileToURL (file)); - parse (in, handler); - } - - /** - * Parse using SAX2 style handlers, - * turning a file name into the document URI. - * @exception IllegalArgumentException if file is null - */ - public void parse(File file, DefaultHandler def) - throws SAXException, IOException - { - if(file==null) - { - throw new IllegalArgumentException("The file is 'null'"); - } - InputSource in; - - in = new InputSource (DocumentBuilder.fileToURL (file)); - parse (in, def); - } - - /** - * Parse using (deprecated) SAX1 style handlers. - * @exception IllegalArgumentException if InputSource is null - */ - public void parse(InputSource source, HandlerBase handler) - throws SAXException, IOException - { - if(source==null) - { - throw new IllegalArgumentException("The InputSource is 'null'"); - } - Parser parser; - - // Prepare Parser - parser = getParser(); - parser.setDocumentHandler(handler); - parser.setDTDHandler(handler); - parser.setEntityResolver(handler); - parser.setErrorHandler(handler); - - // Parse - parser.parse(source); - - } - - /** - * Parse using SAX2 style handlers. - * @exception IllegalArgumentException if InputSource is null - */ - public void parse(InputSource source, DefaultHandler def) - throws SAXException, IOException - { - if(source==null) - { - throw new IllegalArgumentException("The InputSource is 'null'"); - } - XMLReader reader; - - // Prepare XML Reader - reader = getXMLReader(); - reader.setContentHandler(def); - reader.setDTDHandler(def); - reader.setEntityResolver(def); - reader.setErrorHandler(def); - - // NOTE: this should NOT understand the - // extension handlers (lexical, decl). - - reader.parse(source); - } - - /** - * Get a (deprecated) SAX1 driver for the underlying parser. - */ - public abstract Parser getParser() throws SAXException; - - /** - * Get a SAX2 driver for the underlying parser. - * @since 1.1 - */ - public abstract XMLReader getXMLReader() throws SAXException; - - public abstract boolean isNamespaceAware(); - - public abstract boolean isValidating(); -} diff --git a/external/jaxp/source/javax/xml/parsers/SAXParserFactory.java b/external/jaxp/source/javax/xml/parsers/SAXParserFactory.java deleted file mode 100644 index c6a47bbb8..000000000 --- a/external/jaxp/source/javax/xml/parsers/SAXParserFactory.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * $Id: SAXParserFactory.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package javax.xml.parsers; - -// Imports -import java.io.IOException; -import java.io.InputStream; -import java.io.File; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.Properties; -import org.w3c.dom.*; -import org.xml.sax.*; - -/** - * SAXParserFactory is used to bootstrap JAXP wrappers for - * SAX parsers. - * - * <para> Note that the JAXP 1.1 spec does not specify how - * the <em>isValidating()</em> or <em>isNamespaceAware()</em> - * flags relate to the SAX2 feature flags controlling those - * same features. - * - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ - -public abstract class SAXParserFactory { - - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - - private static final String defaultPropName = - "javax.xml.parsers.SAXParserFactory"; - - private boolean validating = false; - private boolean namespaceAware = false; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - protected SAXParserFactory() { - } // SAXParserFactory() - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public static SAXParserFactory newInstance() { - try { - return (SAXParserFactory) - ClassStuff.createFactory ( - defaultPropName, - "gnu.xml.aelfred2.JAXPFactory"); - } catch (ClassCastException e) { - throw new FactoryConfigurationError (e, - "Factory class is the wrong type"); - } - } - - /** - * Returns a new instance of a SAXParser using the platform - * default implementation and the currently specified factory - * feature flag settings. - * - * @exception ParserConfigurationException - * when the parameter combination is not supported - * @exception SAXNotRecognizedException - * if one of the specified SAX2 feature flags is not recognized - * @exception SAXNotSupportedException - * if one of the specified SAX2 feature flags values can - * not be set, perhaps because of sequencing requirements - * (which could be met by using SAX2 directly) - */ - public abstract SAXParser newSAXParser() - throws ParserConfigurationException, SAXException; - - public void setNamespaceAware(boolean value) { - namespaceAware = value; - } // setNamespaceAware() - - public void setValidating(boolean value) { - validating = value; - } // setValidating() - - public boolean isNamespaceAware() { - return namespaceAware; - } // isNamespaceAware() - - public boolean isValidating() { - return validating; - } // isValidating() - - /** - * Establishes a factory parameter corresponding to the - * specified feature flag. - * - * @param name identifies the feature flag - * @param value specifies the desired flag value - * - * @exception SAXNotRecognizedException - * if the specified SAX2 feature flag is not recognized - * @exception SAXNotSupportedException - * if the specified SAX2 feature flag values can not be set, - * perhaps because of sequencing requirements (which could - * be met by using SAX2 directly) - */ - public abstract void setFeature (String name, boolean value) - throws ParserConfigurationException, - SAXNotRecognizedException, - SAXNotSupportedException; - - /** - * Retrieves a current factory feature flag setting. - * - * @param name identifies the feature flag - * - * @exception SAXNotRecognizedException - * if the specified SAX2 feature flag is not recognized - * @exception SAXNotSupportedException - * if the specified SAX2 feature flag values can not be - * accessed before parsing begins. - */ - public abstract boolean getFeature (String name) - throws ParserConfigurationException, - SAXNotRecognizedException, - SAXNotSupportedException; - -} // SAXParserFactory - diff --git a/external/jaxp/source/javax/xml/parsers/package.html b/external/jaxp/source/javax/xml/parsers/package.html deleted file mode 100644 index 71739b92c..000000000 --- a/external/jaxp/source/javax/xml/parsers/package.html +++ /dev/null @@ -1,16 +0,0 @@ -<html><head>javax.xml.parsers</head><body> - -<p>Bootstrapping APIs for JAXP parsers. -This is the first portable API defined for bootstrapping DOM. - -<p>JAXP parsers bootstrap in two stages. -First is getting a factory, and configuring it. -Second is asking that factory for a parser. - -<p>The SAX bootstrapping support corresponds to functionality -found in the <em>org.xml.sax.helpers</em> package, except -that it uses the JAXP two stage bootstrap paradigm and -that the parser that's bootstrapped is normally wrapping -a SAX parser rather than exposing it for direct use. - -</body></html> diff --git a/external/jaxp/source/javax/xml/transform/ClassStuff.java b/external/jaxp/source/javax/xml/transform/ClassStuff.java deleted file mode 100644 index 6be50d772..000000000 --- a/external/jaxp/source/javax/xml/transform/ClassStuff.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * $Id: ClassStuff.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ - -package javax.xml.transform; - -import java.io.BufferedReader; -import java.io.File; -import java.io.FileInputStream; -import java.io.InputStream; -import java.io.InputStreamReader; -import java.lang.reflect.Method; -import java.util.Properties; - - -// $Id: ClassStuff.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - -/** - * Package-private utility methods for sharing - * magic related to class loading. - * NOTE: This is cloned in javax.xml.parsers, - * where a different exception is thrown (bleech). - * Keep changes to the two copies in sync. - * - * @author David Brownell - * @version $Id: ClassStuff.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - */ -final class ClassStuff -{ - private ClassStuff () { } - - /** - * Get the default factory using the four-stage defaulting - * mechanism defined by JAXP. - */ - static Object - createFactory (String label, String defaultClass) - throws TransformerFactoryConfigurationError - { - String name = null; - ClassLoader loader = null; - - // figure out which class loader to use. - // source compiles on jdk 1.1, but works with jdk 1.2+ security - try { - Method m = null; - - // Can we use JDK 1.2 APIs? Preferred: security policies apply. - m = Thread.class.getMethod ("getContextClassLoader", null); - loader = (ClassLoader) m.invoke (Thread.currentThread(), null); - } catch (NoSuchMethodException e) { - // Assume that we are running JDK 1.1; use current ClassLoader - loader = ClassStuff.class.getClassLoader(); - } catch (Exception e) { - // "should not happen" - throw new UnknownError (e.getMessage()); - } - - // 1. Check System Property - // ... normally fails in applet environments - try { name = System.getProperty (label); - } catch (SecurityException e) { /* IGNORE */ } - - // 2. Check in $JAVA_HOME/lib/jaxp.properties - try { - if (name == null) { - String javaHome; - File file; - - javaHome = System.getProperty ("java.home"); - file = new File (new File (javaHome, "lib"), "jaxp.properties"); - if (file.exists() == true) { - FileInputStream in = new FileInputStream (file); - Properties props = new Properties(); - - props.load (in); - name = props.getProperty (label); - in.close (); - } - } - } catch (Exception e) { /* IGNORE */ } - - // 3. Check Services API - if (name == null) { - try { - String service = "META-INF/services/" + label; - InputStream in; - BufferedReader reader; - - if (loader == null) - in = ClassLoader.getSystemResourceAsStream (service); - else - in = loader.getResourceAsStream (service); - if (in != null) { - reader = new BufferedReader ( - new InputStreamReader (in, "UTF8")); - name = reader.readLine(); - in.close (); - } - } catch (Exception e2) { /* IGNORE */ } - } - - // 4. Distro-specific fallback - if (name == null) - name = defaultClass; - - // Instantiate! - try { - Class klass; - - if (loader == null) - klass = Class.forName (name); - else - klass = loader.loadClass (name); - return klass.newInstance (); - - } catch (ClassNotFoundException e) { - throw new TransformerFactoryConfigurationError (e, - "Factory class " + name - + " not found"); - } catch (IllegalAccessException e) { - throw new TransformerFactoryConfigurationError (e, - "Factory class " + name - + " found but cannot be loaded"); - } catch (InstantiationException e) { - throw new TransformerFactoryConfigurationError (e, - "Factory class " + name - + " loaded but cannot be instantiated" - + " ((no default constructor?)"); - } - } -} diff --git a/external/jaxp/source/javax/xml/transform/ErrorListener.java b/external/jaxp/source/javax/xml/transform/ErrorListener.java deleted file mode 100644 index aaf4071dd..000000000 --- a/external/jaxp/source/javax/xml/transform/ErrorListener.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: ErrorListener.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -/** - * JAXP/Transform analogue of SAX ErrorHandler, using - * {@link TransformerException} classes. - * @author Andrew Selkirk - * @version 1.0 - */ -public interface ErrorListener { - - //------------------------------------------------------------- - // Interface: ErrorListener ----------------------------------- - //------------------------------------------------------------- - - public void error(TransformerException exception) - throws TransformerException; - - public void fatalError(TransformerException exception) - throws TransformerException; - - public void warning(TransformerException exception) - throws TransformerException; - - -} // ErrorListener - diff --git a/external/jaxp/source/javax/xml/transform/OutputKeys.java b/external/jaxp/source/javax/xml/transform/OutputKeys.java deleted file mode 100644 index bfb9619da..000000000 --- a/external/jaxp/source/javax/xml/transform/OutputKeys.java +++ /dev/null @@ -1,61 +0,0 @@ -/* - * $Id: OutputKeys.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -/** - * Provides names for XSLT output attributes. - * @author Andrew Selkirk - * @version 1.0 - */ -public class OutputKeys { - - //------------------------------------------------------------- - // Constants -------------------------------------------------- - //------------------------------------------------------------- - - public static final String CDATA_SECTION_ELEMENTS = "cdata-section-elements"; - public static final String DOCTYPE_PUBLIC = "doctype-public"; - public static final String DOCTYPE_SYSTEM = "doctype-system"; - public static final String ENCODING = "encoding"; - public static final String INDENT = "indent"; - public static final String MEDIA_TYPE = "media-type"; - public static final String METHOD = "method"; - public static final String OMIT_XML_DECLARATION = "omit-xml-declaration"; - public static final String STANDALONE = "standalone"; - public static final String VERSION = "version"; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - private OutputKeys() { - } // OutputKeys() - - -} // OutputKeys - diff --git a/external/jaxp/source/javax/xml/transform/Result.java b/external/jaxp/source/javax/xml/transform/Result.java deleted file mode 100644 index e023f607a..000000000 --- a/external/jaxp/source/javax/xml/transform/Result.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * $Id: Result.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -/** - * Result - * @author Andrew Selkirk - * @version 1.0 - */ -public interface Result { - - //------------------------------------------------------------- - // Constants -------------------------------------------------- - //------------------------------------------------------------- - - public static final String PI_DISABLE_OUTPUT_ESCAPING = - "javax.xml.transform.disable-output-escaping"; - - public static final String PI_ENABLE_OUTPUT_ESCAPING = - "javax.xml.transform.disable-output-escaping"; - - - //------------------------------------------------------------- - // Interface: Result ------------------------------------------ - //------------------------------------------------------------- - - public String getSystemId(); - - public void setSystemId(String systemID); - - -} // Result - diff --git a/external/jaxp/source/javax/xml/transform/Source.java b/external/jaxp/source/javax/xml/transform/Source.java deleted file mode 100644 index 50fe85e01..000000000 --- a/external/jaxp/source/javax/xml/transform/Source.java +++ /dev/null @@ -1,60 +0,0 @@ -/* - * $Id: Source.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -/** - * Identifies the URI for either a transformation (XSLT stylesheet) - * or an input to a transformation (XML document to be transformed). - * - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public interface Source { - - //------------------------------------------------------------- - // Interface: Source ------------------------------------------ - //------------------------------------------------------------- - - /** - * Returns the URI for this source. Some sources may not need URIs, - * for example ones provided as an input stream, but such URIs - * are important for resolving relative URIs and for providing - * usable diagnostics. - */ - public String getSystemId(); - - /** - * Associates a URI with this source. - * - * @param systemID the URI - */ - public void setSystemId(String systemID); - - -} // Source - diff --git a/external/jaxp/source/javax/xml/transform/SourceLocator.java b/external/jaxp/source/javax/xml/transform/SourceLocator.java deleted file mode 100644 index 978de72c5..000000000 --- a/external/jaxp/source/javax/xml/transform/SourceLocator.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: SourceLocator.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -/** - * JAXP/transform analogue of SAX Locator. - * @see org.xml.sax.Locator - * @author Andrew Selkirk - * @version 1.0 - */ -public interface SourceLocator { - - //------------------------------------------------------------- - // Interface: SourceLocator ----------------------------------- - //------------------------------------------------------------- - - public String getPublicId(); - - public String getSystemId(); - - public int getLineNumber(); - - public int getColumnNumber(); - - -} // SourceLocator - - diff --git a/external/jaxp/source/javax/xml/transform/Templates.java b/external/jaxp/source/javax/xml/transform/Templates.java deleted file mode 100644 index eb3fd085f..000000000 --- a/external/jaxp/source/javax/xml/transform/Templates.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * $Id: Templates.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -// Imports -import java.util.Properties; - -/** - * Encapsulates a pre-parsed (reusable) XSLT transform. - * @author Andrew Selkirk - * @version 1.0 - */ -public interface Templates { - - //------------------------------------------------------------- - // Interface: Templates --------------------------------------- - //------------------------------------------------------------- - - public Transformer newTransformer() - throws TransformerConfigurationException; - - public Properties getOutputProperties(); - - -} // Templates - diff --git a/external/jaxp/source/javax/xml/transform/Transformer.java b/external/jaxp/source/javax/xml/transform/Transformer.java deleted file mode 100644 index cc57ec421..000000000 --- a/external/jaxp/source/javax/xml/transform/Transformer.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * $Id: Transformer.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -// Imports -import java.util.Properties; - -/** - * Apply a transformation from a source, populating a result. - * Transformers may be reused, but not concurrently. - * - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public abstract class Transformer { - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - /** Default constructor, for use only by subclasses. */ - protected Transformer() { - } // Transformer() - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - /** - * Clears all parameter settings. - * @see #setParameter - */ - public abstract void clearParameters(); - - /** Returns the error handler used as documents are transformed. */ - public abstract ErrorListener getErrorListener(); - - /** - * Returns a copy of the transformer's non-default output properties. - * That is, properties set in the stylesheet or through - * methods on this class are not set. - * @see OutputKeys - * @see #setOutputProperties - */ - public abstract Properties getOutputProperties(); - - /** - * Returns the value of a property applying to this transform. - * Values returned by this method are only those that have - * been set explicitly. - * @see OutputKeys - * @see #setOutputProperty - */ - public abstract String getOutputProperty(String name) - throws IllegalArgumentException; - - /** - * Returns the value of a parameter passed to this transform. - * These are primarily for use access within transformations - * and extensions. - * @see #setParameter - */ - public abstract Object getParameter(String name); - - /** Returns the resolver applied to documents being transformed. */ - public abstract URIResolver getURIResolver(); - - /** Assigns the error handler used as documents are transformed. */ - public abstract void setErrorListener(ErrorListener listener) - throws IllegalArgumentException; - /** - * Assigns a set of output properties, as if made by multiple - * calls to {@link #setOutputProperty}. - * @see OutputKeys - * @param outputformat set of properties, or null to reset all - * properties to their default values - */ - public abstract void setOutputProperties(Properties outputformat) - throws IllegalArgumentException; - - /** - * Assigns the value of a transformation property, affecting - * generation of output (mostly text syntax). Parameters include - * those defined by the xslt:output element. Default settings may - * be explicitly overridden. - * @see OutputKeys - * @see #getOutputProperty - * @see #setOutputProperties - * @param name an XML name, or a namespace-scoped XML name - * encoded as <em>{uri}localName</em>. - * @param value associated with the name - */ - public abstract void setOutputProperty(String name, String value) - throws IllegalArgumentException; - - /** - * Assigns the value of a parameter passed to this transform. - * These are primarily for use access within transformations - * and extensions. - * @see #getParameter - * @see #clearParameters - * @param name an XML name, or a namespace-scoped XML name - * encoded as <em>{uri}localName</em>. - * @param value associated with the name - */ - public abstract void setParameter(String name, Object value); - - /** Assigns the resolver applied to documents being transformed. */ - public abstract void setURIResolver(URIResolver resolver); - - /** Apply the appropriate transformation */ - public abstract void transform(Source source, Result result) - throws TransformerException; - -} // Transformer - diff --git a/external/jaxp/source/javax/xml/transform/TransformerConfigurationException.java b/external/jaxp/source/javax/xml/transform/TransformerConfigurationException.java deleted file mode 100644 index 7af8ab5f3..000000000 --- a/external/jaxp/source/javax/xml/transform/TransformerConfigurationException.java +++ /dev/null @@ -1,70 +0,0 @@ -/* - * $Id: TransformerConfigurationException.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -/** - * TransformerConfigurationException - * @author Andrew Selkirk - * @version 1.0 - */ -public class TransformerConfigurationException extends TransformerException { - - protected SourceLocator locator = null; - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public TransformerConfigurationException() { - super((String)null); - } // TransformerConfigurationException() - - public TransformerConfigurationException(String msg) { - super(msg); - } // TransformerConfigurationException() - - public TransformerConfigurationException(Throwable ex) { - super(ex); - } // TransformerConfigurationException() - - public TransformerConfigurationException(String msg, Throwable ex) { - super(msg, ex); - } // TransformerConfigurationException() - - public TransformerConfigurationException(String msg, SourceLocator locator) { - super(msg); - this.locator = locator; - } - - public TransformerConfigurationException(String msg, SourceLocator locator, Throwable ex) { - super(msg, ex); - this.locator = locator; - } - -} // TranformerConfigurationException - - diff --git a/external/jaxp/source/javax/xml/transform/TransformerException.java b/external/jaxp/source/javax/xml/transform/TransformerException.java deleted file mode 100644 index f2647209f..000000000 --- a/external/jaxp/source/javax/xml/transform/TransformerException.java +++ /dev/null @@ -1,183 +0,0 @@ -/* - * $Id: TransformerException.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -// Imports -import java.io.*; - -/** - * Encapsulates a problem exposed during a transformation. - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public class TransformerException extends Exception { - - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - - private SourceLocator locator = null; - private Throwable containedException = null; - private boolean causeKnown; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public TransformerException(String msg) { - super(msg); - } - - public TransformerException(Throwable cause) { - super(); - initCause (cause); - } - - public TransformerException(String msg, Throwable cause) { - super(msg); - initCause (cause); - } - - public TransformerException(String msg, SourceLocator locator) { - super(msg); - setLocator (locator); - } - - public TransformerException(String msg, SourceLocator locator, - Throwable cause) { - super(msg); - setLocator (locator); - initCause (cause); - } - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - /** - * Returns the root cause of this exception, - * or null if none is known. - */ - public Throwable getCause() { - return containedException; - } - - /** - * Synonym for {@link #getCause}. - */ - public Throwable getException() { - return containedException; - } - - /** - * Returns a readable version of the locator info, or null - * if there is no locator. - */ - public String getLocationAsString() { - if (locator == null) - return null; - - StringBuffer retval = new StringBuffer (); - - if (locator.getPublicId () != null) { - retval.append ("public='"); - retval.append (locator.getPublicId ()); - retval.append ("' "); - } - if (locator.getSystemId () != null) { - retval.append ("uri='"); - retval.append (locator.getSystemId ()); - retval.append ("' "); - } - if (locator.getLineNumber () != -1) { - retval.append ("line="); - retval.append (locator.getLineNumber ()); - retval.append (" "); - } - if (locator.getColumnNumber () != -1) { - retval.append ("column="); - retval.append (locator.getColumnNumber ()); - //retval.append (" "); - } - return retval.toString (); - } - - public SourceLocator getLocator() { - return locator; - } - - /** - * Returns this exception's message, with readable location - * information appended if it is available. - */ - public String getMessageAndLocation() { - if (locator == null) - return getMessage (); - return getMessage () + ": " + getLocationAsString (); - } - - /** - * Records the root cause of this exception; may be - * called only once, normally during initialization. - */ - public synchronized Throwable initCause(Throwable cause) { - if (cause == this) - throw new IllegalArgumentException (); - if (containedException != null) - throw new IllegalStateException (); - containedException = cause; - causeKnown = true; -// FIXME: spec implies "this" may be the right value; another bug? - return cause; - } - - - public void printStackTrace() { - printStackTrace(System.out);// shouldn't it be System.err? - } - - public void printStackTrace(PrintStream stream) { - PrintWriter out = new PrintWriter( - new OutputStreamWriter(stream)); - printStackTrace(out); - out.flush (); - } - - public void printStackTrace(PrintWriter writer) { - if (containedException != null) { - containedException.printStackTrace(writer); - } - super.printStackTrace(writer); - } - - public void setLocator (SourceLocator location) { - locator = location; - } -} diff --git a/external/jaxp/source/javax/xml/transform/TransformerFactory.java b/external/jaxp/source/javax/xml/transform/TransformerFactory.java deleted file mode 100644 index 66ce93613..000000000 --- a/external/jaxp/source/javax/xml/transform/TransformerFactory.java +++ /dev/null @@ -1,140 +0,0 @@ -/* - * $Id: TransformerFactory.java,v 1.3 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -// Imports -import java.io.IOException; -import java.io.InputStream; -import java.io.FileInputStream; -import java.io.File; -import java.io.BufferedReader; -import java.io.InputStreamReader; -import java.util.Properties; - -/** - * Abstract class extended by implementations. - * - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public abstract class TransformerFactory { - - /** Constructor, for use by subclasses. */ - protected TransformerFactory() { - } - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - /** - * Returns an object encapsulating the <?xml-stylesheet ?> - * processing instruction from the document that matches the - * specified criteria. - */ - public abstract Source getAssociatedStylesheet(Source source, - String media, String title, String charset) - throws TransformerConfigurationException; - - /** Returns an implementation-specific attribute */ - public abstract Object getAttribute(String name) - throws IllegalArgumentException; - - /** Returns the ErrorListener used when parsing stylesheets. */ - public abstract ErrorListener getErrorListener(); - - /** - * Exposes capabilities of the underlying implementation. - * Examples include SAXSource.FEATURE and DOMResult.FEATURE. - */ - public abstract boolean getFeature(String name); - - /** Returns the URIResolver used when parsing stylesheets. */ - public abstract URIResolver getURIResolver(); - - - /** - * Returns a new TransformerFactory. The name of this class - * is found by checking, in order: - * the <em>javax.xml.transform.TransformerFactory</em> - * system property, - * <em>$JAVA_HOME/lib/jaxp.properties</em> for the key with - * that same name, - * JAR files in the class path with a <em>META-INF/services</em> - * file with that same name, - * else the compiled-in platform default. - */ - public static TransformerFactory newInstance() - throws TransformerFactoryConfigurationError - { - try { - return (TransformerFactory) ClassStuff.createFactory ( - "javax.xml.transform.TransformerFactory", - "com.icl.saxon.TransformerFactoryImpl" - // "gnu.xml.util.SAXNullTransformerFactory" - // "org.apache.xalan.processor.TransformerFactoryImpl" - ); - } catch (ClassCastException e) { - throw new TransformerFactoryConfigurationError(e); - } - } - - - /** - * Returns a pre-compiled stylesheet. - * @param stylesheet XSLT stylesheet specifying transform - */ - public abstract Templates newTemplates (Source stylesheet) - throws TransformerConfigurationException; - - /** - * Returns a transformer that performs the null transform. - */ - public abstract Transformer newTransformer() - throws TransformerConfigurationException; - - /** - * Returns a transformer making a specified transform. - * @param stylesheet XSLT stylesheet specifying transform - */ - public abstract Transformer newTransformer (Source stylesheet) - throws TransformerConfigurationException; - - - /** Assigns an implementation-specific attribute */ - public abstract void setAttribute(String name, Object value) - throws IllegalArgumentException; - - /** Assigns the ErrorListener used when parsing stylesheets. */ - public abstract void setErrorListener(ErrorListener listener) - throws IllegalArgumentException; - - /** Assigns the URIResolver used when parsing stylesheets. */ - public abstract void setURIResolver(URIResolver resolver); -} diff --git a/external/jaxp/source/javax/xml/transform/TransformerFactoryConfigurationError.java b/external/jaxp/source/javax/xml/transform/TransformerFactoryConfigurationError.java deleted file mode 100644 index d5a8381ad..000000000 --- a/external/jaxp/source/javax/xml/transform/TransformerFactoryConfigurationError.java +++ /dev/null @@ -1,73 +0,0 @@ -/* - * $Id: TransformerFactoryConfigurationError.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -/** - * Reports a {@link TransformerFactory} configuration error. - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public class TransformerFactoryConfigurationError extends Error -{ - private Exception exception = null; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public TransformerFactoryConfigurationError () - { } - - public TransformerFactoryConfigurationError (Exception e) - { exception = e; } - - public TransformerFactoryConfigurationError (Exception e, String msg) - { - super (msg); - exception = e; - } - - public TransformerFactoryConfigurationError (String msg) - { super (msg); } - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public String getMessage () - { - if (super.getMessage () == null && exception != null) - return exception.getMessage (); - return super.getMessage (); - } - - public Exception getException () - { return exception; } -} diff --git a/external/jaxp/source/javax/xml/transform/URIResolver.java b/external/jaxp/source/javax/xml/transform/URIResolver.java deleted file mode 100644 index a827ed040..000000000 --- a/external/jaxp/source/javax/xml/transform/URIResolver.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform; - -/** - * URIResolver - * @author Andrew Selkirk - * @version 1.0 - */ -public interface URIResolver { - - //------------------------------------------------------------- - // Interface: URIResolver ------------------------------------- - //------------------------------------------------------------- - - public Source resolve(String href, String base) - throws TransformerException; - - -} // URIResolver - diff --git a/external/jaxp/source/javax/xml/transform/dom/DOMLocator.java b/external/jaxp/source/javax/xml/transform/dom/DOMLocator.java deleted file mode 100644 index 1c580fca6..000000000 --- a/external/jaxp/source/javax/xml/transform/dom/DOMLocator.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * $Id: DOMLocator.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.dom; - -// Imports -import org.w3c.dom.Node; -import javax.xml.transform.SourceLocator; - -/** - * DOM Locator - * @author Andrew Selkirk - * @version 1.0 - */ -public interface DOMLocator extends SourceLocator { - - //------------------------------------------------------------- - // Interface: DOMLocator -------------------------------------- - //------------------------------------------------------------- - - public Node getOriginatingNode(); - - -} // DOMLocator - - diff --git a/external/jaxp/source/javax/xml/transform/dom/DOMResult.java b/external/jaxp/source/javax/xml/transform/dom/DOMResult.java deleted file mode 100644 index ebfc3c9fb..000000000 --- a/external/jaxp/source/javax/xml/transform/dom/DOMResult.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * $Id: DOMResult.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.dom; - -// Imports -import org.w3c.dom.Node; -import javax.xml.transform.Result; - -/** - * DOM Result - * @author Andrew Selkirk - * @version 1.0 - */ -public class DOMResult implements Result { - - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - - public static final String FEATURE = - "http://javax.xml.transform.dom.DOMResult/feature"; - - private Node node = null; - private String systemId = null; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public DOMResult() { - } // DOMResult() - - public DOMResult(Node node) { - this.node = node; - } // DOMResult() - - public DOMResult(Node node, String systemID) { - this.node = node; - this.systemId = systemID; - } // DOMResult() - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public void setNode(Node node) { - this.node = node; - } // setNode() - - public Node getNode() { - return node; - } // getNode() - - public void setSystemId(String systemID) { - this.systemId = systemID; - } // systemID() - - public String getSystemId() { - return systemId; - } // getSystemId() - - -} // DOMResult - diff --git a/external/jaxp/source/javax/xml/transform/dom/DOMSource.java b/external/jaxp/source/javax/xml/transform/dom/DOMSource.java deleted file mode 100644 index 66e61fd38..000000000 --- a/external/jaxp/source/javax/xml/transform/dom/DOMSource.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * $Id: DOMSource.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.dom; - -// Imports -import org.w3c.dom.Node; -import javax.xml.transform.Source; - -/** - * DOM Source - * @author Andrew Selkirk - * @version 1.0 - */ -public class DOMSource implements Source { - - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - - public static final String FEATURE = - "http://javax.xml.transform.dom.DOMSource/feature"; - - private Node node = null; - String baseID = null; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public DOMSource() { - } // DOMSource() - - public DOMSource(Node node) { - this.node = node; - } // DOMSource() - - public DOMSource(Node node, String systemID) { - this.node = node; - this.baseID = systemID; - } // DOMSource() - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public void setNode(Node node) { - this.node = node; - } // setNode() - - public Node getNode() { - return node; - } // getNode() - - public void setSystemId(String systemID) { - baseID = systemID; - } // setSystemId() - - public String getSystemId() { - return baseID; - } // getSystemId() - - -} // DOMSource - diff --git a/external/jaxp/source/javax/xml/transform/dom/package.html b/external/jaxp/source/javax/xml/transform/dom/package.html deleted file mode 100644 index 0600fc724..000000000 --- a/external/jaxp/source/javax/xml/transform/dom/package.html +++ /dev/null @@ -1,5 +0,0 @@ -<html><head>trax for dom</head><body> - -<p>Support for DOM inputs and outputs to transformers. - -</body></html> diff --git a/external/jaxp/source/javax/xml/transform/package.html b/external/jaxp/source/javax/xml/transform/package.html deleted file mode 100644 index bc67c2b80..000000000 --- a/external/jaxp/source/javax/xml/transform/package.html +++ /dev/null @@ -1,38 +0,0 @@ -<html><head>trax </head><body> - -<p>Base "TRAX" API for XSLT transformers. -This API borrows many structural notions from SAX, -such as the way error handling and external entity -resolution are handled, although it does not reuse -the corresponding SAX classes. -To use XSLT transformers: <ul> - -<li>Start with <em>TransformerFactory.newInstance()</em>; - -<li>Then you may wish to configure that factory through -its features and properties. This includes modifying -the way errors are handled and URIs are resolved. - -<li>Then you have several options for how to perform -the XSLT transformations. One generic option is to ask the -factory for a <a href="Transformer.html">Transformer</a> -and then use <em>Transformer.transform()</em> to pull -input text onto output text. - -<li>Alternatively, most factories support flexible integration -with SAX event streams. You can cast such factories to a -<a href="sax/SAXTransformerFactory.html">SAXTransformerFactory</a> -and perform either push or pull mode transformations. - -</ul> - -<p>The <a href="OutputKeys.html">OutputKeys</a> class -holds constants that can be used to configure output -properties used with <em>Result</em> objects, as if -they were specified in <em>xslt:output</em> attributes -in the stylesheet specifying the transform. - -<p>The <a href="Templates.html">Templates</a> class -accomodates the notion of "compiled" transforms. - -</body></html> diff --git a/external/jaxp/source/javax/xml/transform/sax/SAXResult.java b/external/jaxp/source/javax/xml/transform/sax/SAXResult.java deleted file mode 100644 index 66260bca1..000000000 --- a/external/jaxp/source/javax/xml/transform/sax/SAXResult.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * $Id: SAXResult.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.sax; - -// Imports -import org.xml.sax.ContentHandler; -import org.xml.sax.ext.LexicalHandler; -import javax.xml.transform.Result; - -/** - * Collects the result of a SAX transform. - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public class SAXResult implements Result -{ - /** - * Used with <em>TransformerFactory.getFeature()</em> to determine - * whether the transformers it produces support SAXResult objects - * as outputs. - */ - public static final String FEATURE = - "http://javax.xml.transform.sax.SAXResult/feature"; - - private ContentHandler handler = null; - private LexicalHandler lexhandler = null; - private String systemId = null; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public SAXResult() { - } // SAXResult() - - public SAXResult(ContentHandler handler) { - this.handler = handler; - } // SAXResult() - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public ContentHandler getHandler() { - return handler; - } - - public String getSystemId() { - return systemId; - } - - public LexicalHandler getLexicalHandler() { - return lexhandler; - } - - - public void setHandler(ContentHandler handler) { - this.handler = handler; - } - - public void setSystemId(String systemID) { - this.systemId = systemID; - } - - public void setLexicalHandler(LexicalHandler lexHandler) { - this.lexhandler = lexHandler; - } -} diff --git a/external/jaxp/source/javax/xml/transform/sax/SAXSource.java b/external/jaxp/source/javax/xml/transform/sax/SAXSource.java deleted file mode 100644 index cf227eda6..000000000 --- a/external/jaxp/source/javax/xml/transform/sax/SAXSource.java +++ /dev/null @@ -1,152 +0,0 @@ -/* - * $Id: SAXSource.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.sax; - -import org.xml.sax.XMLReader; -import org.xml.sax.InputSource; -import javax.xml.transform.Source; -import javax.xml.transform.stream.StreamSource; - - -/** - * Acts as a holder for "pull style" inputs to an XSLT transform. - * SAX based transforms can support a second style of inputs, - * driving by a {@link TransformerHandler} as output of some - * other SAX processing pipeline. stage. - * - * @see SAXTransformerFactory#newTransformerHandler - * - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public class SAXSource implements Source -{ - /** - * Used with <em>TransformerFactory.getFeature()</em> to determine - * whether the transformers it produces support SAXSource objects - * (possibly without URIs) as inputs. - */ - public static final String FEATURE = - "http://javax.xml.transform.sax.SAXSource/feature"; - - private XMLReader reader = null; - private InputSource inputSource = null; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public SAXSource() { - } // SAXSource() - - public SAXSource(XMLReader reader, InputSource source) { - this.reader = reader; - this.inputSource = source; - } // SAXSource() - - public SAXSource(InputSource source) { - this.inputSource = source; - } // SAXSource() - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public void setXMLReader(XMLReader reader) { - this.reader = reader; - } // setXMLReader() - - public XMLReader getXMLReader() { - return reader; - } // getXMLReader() - - public void setInputSource(InputSource source) { - this.inputSource = source; - } // setInputSource() - - public InputSource getInputSource() { - return inputSource; - } // inputSource() - - public void setSystemId(String systemID) { - if (inputSource != null) { - inputSource.setSystemId(systemID); - } - } // setSystemId() - - public String getSystemId() { - if (inputSource != null) { - return inputSource.getSystemId(); - } // if - return null; - } // getSystemId() - - /** - * Creates a SAX input source from its argument. - * Understands StreamSource and System ID based input sources, - * and insists on finding either a system ID (URI) or some kind - * of input stream (character or byte). - * - * @param in TRAX style input source - * @return SAX input source, or null if one could not be - * created. - */ - public static InputSource sourceToInputSource (Source in) - { - InputSource retval; - boolean ok = false; - - if (in instanceof SAXSource) { - return ((SAXSource) in).inputSource; - } - - if (in.getSystemId () != null) { - retval = new InputSource (in.getSystemId ()); - ok = true; - } else - retval = new InputSource (); - - if (in instanceof StreamSource) { - StreamSource ss = (StreamSource) in; - - if (ss.getReader () != null) { - retval.setCharacterStream (ss.getReader ()); - ok = true; - } else if (ss.getInputStream () != null) { - retval.setByteStream (ss.getInputStream ()); - ok = true; - } - if (ss.getPublicId () != null) - retval.setPublicId (ss.getPublicId ()); - } - - return ok ? retval : null; - } -} diff --git a/external/jaxp/source/javax/xml/transform/sax/SAXTransformerFactory.java b/external/jaxp/source/javax/xml/transform/sax/SAXTransformerFactory.java deleted file mode 100644 index 8dca4b0f0..000000000 --- a/external/jaxp/source/javax/xml/transform/sax/SAXTransformerFactory.java +++ /dev/null @@ -1,142 +0,0 @@ -/* - * $Id: SAXTransformerFactory.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.sax; - -// Imports -import org.xml.sax.InputSource; -import org.xml.sax.XMLFilter; -import javax.xml.transform.Transformer; -import javax.xml.transform.TransformerFactory; -import javax.xml.transform.Result; -import javax.xml.transform.Source; -import javax.xml.transform.Templates; -import javax.xml.transform.TransformerConfigurationException; - -/** - * A TransformerFactory that supports several separate modes for - * working with SAX inputs and outputs. Those modes include: <ul> - * - * <li> Pipeline Stage, pushing events through {@link TransformerHandler} - * objects used as SAX handlers, and passing the transformed data - * through a {@link SAXResult} encapsulating SAX ContentHandler and - * LexicalHandler objects; - * <li> Pipeline Termination, like a normal pipeline stage but using some - * other kind of {@link Result} to store transformed data rather than - * passing it to another stage; - * <li> Event producer, an {@link XMLFilter} object taking data from a URI - * or from a SAX {@link InputSource} input object and delivering it - * to a SAX ContentHandler; - * <li> Transformer objects produced by this factory will usually be able - * to accept {@link SAXSource} objects as inputs, and the XMLReader - * object in such a source could be an XMLFilter. - * </ul> - * - * <p>Transformer objects produced by this factory will of course be - * able to perform {@link Transformer#transform Transformer.transform()} - * operations to map XML text into other text. - * - * <p>The factory also supports creating Templates objects. - * - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public abstract class SAXTransformerFactory extends TransformerFactory -{ - /** - * Used with <em>TransformerFactory.getFeature()</em> to determine - * whether the transformers it produces extend this class. - */ - public static final String FEATURE = - "http://javax.xml.transform.sax.SAXTransformerFactory/feature"; - - /** - * Used with <em>TransformerFactory.getFeature()</em> to determine - * whether <em>newXMLFilter()</em> methods are supported. - */ - public static final String FEATURE_XMLFILTER = - "http://javax.xml.transform.sax.SAXTransformerFactory/feature/xmlfilter"; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - /** Constructor, for use with subclasses */ - protected SAXTransformerFactory() { - } - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - /** - * Returns a SAX event consumer sending its inputs to some Result - * after transforming them according to a stylesheet. - */ - public abstract TransformerHandler - newTransformerHandler (Source stylesheet) - throws TransformerConfigurationException; - - /** - * Returns a SAX event consumer sending its inputs to some Result - * after transforming them according to a pre-parsed stylesheet. - */ - public abstract TransformerHandler - newTransformerHandler (Templates stylesheet) - throws TransformerConfigurationException; - - /** - * Returns a SAX event consumer sending its inputs to some Result - * without transforming them (null transformation). - */ - public abstract TransformerHandler newTransformerHandler() - throws TransformerConfigurationException; - - /** - * Returns a SAX parser that transforms XML data according - * to a stylesheet before reporting SAX events. - */ - public abstract XMLFilter newXMLFilter (Source stylesheet) - throws TransformerConfigurationException; - - /** - * Returns a SAX parser that transforms XML data according - * to a pre-parsed stylesheet before reporting SAX events. - */ - public abstract XMLFilter newXMLFilter (Templates stylesheet) - throws TransformerConfigurationException; - - /** - * Returns a SAX event consumer collecting its inputs into - * a pre-parsed stylesheet. - */ - public abstract TemplatesHandler newTemplatesHandler() - throws TransformerConfigurationException; - -} diff --git a/external/jaxp/source/javax/xml/transform/sax/TemplatesHandler.java b/external/jaxp/source/javax/xml/transform/sax/TemplatesHandler.java deleted file mode 100644 index 4a813de76..000000000 --- a/external/jaxp/source/javax/xml/transform/sax/TemplatesHandler.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * $Id: TemplatesHandler.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.sax; - -// Imports -import org.xml.sax.ContentHandler; -import javax.xml.transform.Templates; - -/** - * Handler used to create pre-parsed XSLT transforms. - * @author Andrew Selkirk - * @version 1.0 - */ -public interface TemplatesHandler extends ContentHandler { - - //------------------------------------------------------------- - // Interface: TemplatesHandler -------------------------------- - //------------------------------------------------------------- - - public Templates getTemplates(); - - public void setSystemId(String systemID); - - public String getSystemId(); - - -} // TemplatesHandler - diff --git a/external/jaxp/source/javax/xml/transform/sax/TransformerHandler.java b/external/jaxp/source/javax/xml/transform/sax/TransformerHandler.java deleted file mode 100644 index 5f093fcd6..000000000 --- a/external/jaxp/source/javax/xml/transform/sax/TransformerHandler.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * $Id: TransformerHandler.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.sax; - -import org.xml.sax.ContentHandler; -import org.xml.sax.DTDHandler; -import org.xml.sax.ext.LexicalHandler; -import javax.xml.transform.Result; -import javax.xml.transform.Transformer; - - -/** - * Transforms SAX input events to a Result, according to some - * stylesheet. Note the expectation that XSLT transforms will - * discard most DTD declarations (DeclHandler is not supported). - * - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public interface TransformerHandler - extends ContentHandler, LexicalHandler, DTDHandler -{ - /** - * Assigns the result of the transform. - */ - public void setResult(Result result) - throws IllegalArgumentException; - - public void setSystemId(String systemID); - - public String getSystemId(); - - /** - * Returns the associated transformer, for use in setting - * parameters and output properties. - */ - public Transformer getTransformer(); -} diff --git a/external/jaxp/source/javax/xml/transform/sax/package.html b/external/jaxp/source/javax/xml/transform/sax/package.html deleted file mode 100644 index b2d2978a3..000000000 --- a/external/jaxp/source/javax/xml/transform/sax/package.html +++ /dev/null @@ -1,9 +0,0 @@ -<html><head>trax for sax</head><body> - -<p>Support for SAX2-based XSLT transformers. -Normally you would cast a TransformerFactory to a -<a href="SAXTransformerFactory.html">SAXTransformerFactory</a> -and use that to in any of the various modes supported -(such as push or pull). - -</body></html> diff --git a/external/jaxp/source/javax/xml/transform/stream/StreamResult.java b/external/jaxp/source/javax/xml/transform/stream/StreamResult.java deleted file mode 100644 index ac7750bee..000000000 --- a/external/jaxp/source/javax/xml/transform/stream/StreamResult.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * $Id: StreamResult.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.stream; - -import java.io.OutputStream; -import java.io.Writer; -import java.io.File; -import java.io.IOException; -import javax.xml.transform.Result; - - -/** - * Stream Result - * @author Andrew Selkirk, David Brownell - * @version 1.0 - */ -public class StreamResult implements Result { - - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - - public static final String FEATURE = - "http://javax.xml.transform.stream.StreamResult/feature"; - - private String systemId = null; - private OutputStream outputStream = null; - private Writer writer = null; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public StreamResult() { - } - - public StreamResult(OutputStream stream) { - this.outputStream = stream; - } - - public StreamResult(Writer writer) { - this.writer = writer; - } - - public StreamResult(String systemID) { - this.systemId = systemID; - } - - public StreamResult(File file) { - setSystemId (file); - } - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public OutputStream getOutputStream() { - return outputStream; - } - - public String getSystemId() { - return systemId; - } - - public Writer getWriter() { - return writer; - } - - public void setOutputStream(OutputStream stream) { - this.outputStream = stream; - } - - public void setWriter(Writer writer) { - this.writer = writer; - } - - public void setSystemId(File file) { - try { - this.systemId = StreamSource.fileToURL (file).toString (); - } catch (IOException e) { - // can't happen - throw new RuntimeException (e.getMessage ()); - } - } - - public void setSystemId(String systemID) { - this.systemId = systemID; - } -} diff --git a/external/jaxp/source/javax/xml/transform/stream/StreamSource.java b/external/jaxp/source/javax/xml/transform/stream/StreamSource.java deleted file mode 100644 index 22d6a306a..000000000 --- a/external/jaxp/source/javax/xml/transform/stream/StreamSource.java +++ /dev/null @@ -1,163 +0,0 @@ -/* - * $Id: StreamSource.java,v 1.2 2004-05-01 16:18:51 mark Exp $ - * Copyright (C) 2001 Andrew Selkirk - * Copyright (C) 2001 David Brownell - * - * This file is part of GNU JAXP, a library. - * - * GNU JAXP is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * GNU JAXP 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 the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA - * - * As a special exception, if you link this library with other files to - * produce an executable, this library does not by itself cause the - * resulting executable to be covered by the GNU General Public License. - * This exception does not however invalidate any other reasons why the - * executable file might be covered by the GNU General Public License. - */ -package javax.xml.transform.stream; - -import java.io.InputStream; -import java.io.Reader; -import java.io.File; -import java.io.IOException; -import javax.xml.transform.Source; - - -/** - * Stream Source - * @author Andrew Selkirk - * @version 1.0 - */ -public class StreamSource implements Source { - - //------------------------------------------------------------- - // Variables -------------------------------------------------- - //------------------------------------------------------------- - - public static final String FEATURE = - "http://javax.xml.transform.stream.StreamSource/feature"; - - private String publicId = null; - private String systemId = null; - private InputStream inputStream = null; - private Reader reader = null; - - - //------------------------------------------------------------- - // Initialization --------------------------------------------- - //------------------------------------------------------------- - - public StreamSource() { - } - - public StreamSource(File file) { - setSystemId (file); - } - - public StreamSource(InputStream stream) { - this.inputStream = stream; - } - - public StreamSource(InputStream stream, String systemID) { - this.inputStream = stream; - this.systemId = systemID; - } - - public StreamSource(Reader reader) { - this.reader = reader; - } - - public StreamSource(Reader reader, String systemID) { - this.reader = reader; - this.systemId = systemID; - } - - public StreamSource(String systemID) { - this.systemId = systemID; - } - - - //------------------------------------------------------------- - // Methods ---------------------------------------------------- - //------------------------------------------------------------- - - public InputStream getInputStream() { - return inputStream; - } - - public String getPublicId() { - return publicId; - } - - public Reader getReader() { - return reader; - } - - public String getSystemId() { - return systemId; - } - - - public void setInputStream(InputStream stream) { - this.inputStream = stream; - } - - public void setPublicId(String publicID) { - this.publicId = publicID; - } - - public void setReader(Reader reader) { - this.reader = reader; - } - - public void setSystemId(File file) { - try { - this.systemId = fileToURL (file).toString (); - } catch (IOException e) { - // can't happen - throw new RuntimeException (e.getMessage ()); - } - } - - public void setSystemId(String systemID) { - this.systemId = systemID; - } - - // we don't demand jdk 1.2 File.toURL() in the runtime - // keep in sync with gnu.xml.util.Resolver - // and javax.xml.parsers.DocumentBuilder - static String fileToURL (File f) - throws IOException - { - String temp; - - // FIXME: getAbsolutePath() seems buggy; I'm seeing components - // like "/foo/../" which are clearly not "absolute" - // and should have been resolved with the filesystem. - - // Substituting "/" would be wrong, "foo" may have been - // symlinked ... the URL code will make that change - // later, so that things can get _really_ broken! - - temp = f.getAbsolutePath (); - - if (File.separatorChar != '/') - temp = temp.replace (File.separatorChar, '/'); - if (!temp.startsWith ("/")) - temp = "/" + temp; - if (!temp.endsWith ("/") && f.isDirectory ()) - temp = temp + "/"; - return "file:" + temp; - } -} diff --git a/external/jaxp/source/javax/xml/transform/stream/package.html b/external/jaxp/source/javax/xml/transform/stream/package.html deleted file mode 100644 index f9d052b19..000000000 --- a/external/jaxp/source/javax/xml/transform/stream/package.html +++ /dev/null @@ -1,6 +0,0 @@ -<html><head>trax for streams</head><body> - -<p>Support for text stream inputs and outputs to transformers. - -</body></html> - diff --git a/external/jaxp/source/org/w3c/dom/Attr.java b/external/jaxp/source/org/w3c/dom/Attr.java deleted file mode 100755 index 4ba62e239..000000000 --- a/external/jaxp/source/org/w3c/dom/Attr.java +++ /dev/null @@ -1,124 +0,0 @@ -/* - * 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; - -/** - * 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 document type definition. - * <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>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>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). Because the DOM Core is not aware of attribute types, it - * treats all attribute values as simple strings, even if the DTD or schema - * declares them as having tokenized types. - * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface Attr extends Node { - /** - * Returns the name of this attribute. - */ - public String getName(); - - /** - * If this attribute was explicitly given a value in the original - * document, this is <code>true</code>; otherwise, it is - * <code>false</code>. Note that the implementation is in charge of this - * attribute, not the user. If the user changes the value of the - * attribute (even if it ends up having the same value as the default - * value) then the <code>specified</code> flag is automatically flipped - * to <code>true</code>. To re-specify the attribute as the default - * value from the DTD, the user must delete the attribute. The - * implementation will then make a new attribute available with - * <code>specified</code> set to <code>false</code> and the default - * value (if one exists). - * <br>In summary: If the attribute has an assigned value in the document - * then <code>specified</code> is <code>true</code>, and the value is - * the assigned value.If the attribute has no assigned value in the - * document and has a default value in the DTD, then - * <code>specified</code> is <code>false</code>, and the value is the - * default value in the DTD.If the attribute has no assigned value in - * the document and has a value of #IMPLIED in the DTD, then the - * attribute does not appear in the structure model of the document.If - * the <code>ownerElement</code> attribute is <code>null</code> (i.e. - * because it was just created or was set to <code>null</code> by the - * various removal and cloning operations) <code>specified</code> is - * <code>true</code>. - */ - 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>setAttribute</code> on the <code>Element</code> - * interface. - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. - */ - 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>setAttribute</code> on the <code>Element</code> - * interface. - * @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(); - -} diff --git a/external/jaxp/source/org/w3c/dom/CDATASection.java b/external/jaxp/source/org/w3c/dom/CDATASection.java deleted file mode 100755 index f3aea8ae8..000000000 --- a/external/jaxp/source/org/w3c/dom/CDATASection.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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; - -/** - * 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 "]]>" 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>DOMString</code> attribute of the <code>Text</code> node holds - * the text that is contained by the CDATA section. Note that this may - * 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. - * 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.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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface CDATASection extends Text { -} diff --git a/external/jaxp/source/org/w3c/dom/CharacterData.java b/external/jaxp/source/org/w3c/dom/CharacterData.java deleted file mode 100755 index c067120f6..000000000 --- a/external/jaxp/source/org/w3c/dom/CharacterData.java +++ /dev/null @@ -1,159 +0,0 @@ -/* - * 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; - -/** - * 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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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 - * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. - * @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. - * @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 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/external/jaxp/source/org/w3c/dom/Comment.java b/external/jaxp/source/org/w3c/dom/Comment.java deleted file mode 100755 index 109792190..000000000 --- a/external/jaxp/source/org/w3c/dom/Comment.java +++ /dev/null @@ -1,24 +0,0 @@ -/* - * 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; - -/** - * This interface inherits from <code>CharacterData</code> and represents the - * content of a comment, i.e., all the characters between the starting ' - * <code><!--</code>' and ending '<code>--></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>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface Comment extends CharacterData { -} diff --git a/external/jaxp/source/org/w3c/dom/DOMException.java b/external/jaxp/source/org/w3c/dom/DOMException.java deleted file mode 100755 index 16866cebc..000000000 --- a/external/jaxp/source/org/w3c/dom/DOMException.java +++ /dev/null @@ -1,116 +0,0 @@ -/* - * 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; - -/** - * 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. - * <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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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 DOMString - */ - public static final short DOMSTRING_SIZE_ERR = 2; - /** - * If any node is inserted somewhere it doesn't belong - */ - public static final short HIERARCHY_REQUEST_ERR = 3; - /** - * If a node 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 a name. See - * production 2 in the XML specification for the definition of a legal - * character, and production 5 for the definition of a legal name - * character. - */ - public static final short INVALID_CHARACTER_ERR = 5; - /** - * If data is specified for a node 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 node 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; - -} diff --git a/external/jaxp/source/org/w3c/dom/DOMImplementation.java b/external/jaxp/source/org/w3c/dom/DOMImplementation.java deleted file mode 100755 index 6e9a55404..000000000 --- a/external/jaxp/source/org/w3c/dom/DOMImplementation.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * 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; - -/** - * 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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface DOMImplementation { - /** - * Test if the DOM implementation implements a specific feature. - * @param feature The name of the feature to test (case-insensitive). The - * values used by DOM features are defined throughout the DOM Level 2 - * specifications and listed in the section. The name must be an XML - * name. To avoid possible conflicts, as a convention, names referring - * to features defined outside the DOM specification should be made - * unique. - * @param version This is the version number of the feature to test. In - * Level 2, the string can be either "2.0" or "1.0". If the version is - * not specified, supporting any version of the feature causes the - * method to return <code>true</code>. - * @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. It is expected that a - * future version of the DOM will provide a way for populating a - * <code>DocumentType</code>. - * @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 - * contains an illegal character. - * <br>NAMESPACE_ERR: Raised if the <code>qualifiedName</code> is - * malformed. - * <br>NOT_SUPPORTED_ERR: May be raised by DOM implementations which do - * not support the <code>"XML"</code> feature, if they choose not to - * support this method. Other features introduced in the future, by - * the DOM WG or in extensions defined by other groups, may also - * demand support for this method; please consult the definition of - * the feature to see if it requires this method. - * @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. - * @param namespaceURI The namespace URI of the document element to - * create. - * @param qualifiedName The qualified name of the document element to be - * created. - * @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. - * @exception DOMException - * INVALID_CHARACTER_ERR: Raised if the specified qualified name - * contains an illegal character. - * <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> has a prefix that is "xml" and the - * <code>namespaceURI</code> is different from " - * http://www.w3.org/XML/1998/namespace" , 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 by DOM implementations which do - * not support the "XML" feature, if they choose not to support this - * method. Other features introduced in the future, by the DOM WG or - * in extensions defined by other groups, may also demand support for - * this method; please consult the definition of the feature to see if - * it requires this method. - * @since DOM Level 2 - */ - public Document createDocument(String namespaceURI, - String qualifiedName, - DocumentType doctype) - throws DOMException; - -} diff --git a/external/jaxp/source/org/w3c/dom/Document.java b/external/jaxp/source/org/w3c/dom/Document.java deleted file mode 100755 index 79214e017..000000000 --- a/external/jaxp/source/org/w3c/dom/Document.java +++ /dev/null @@ -1,428 +0,0 @@ -/* - * 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; - -/** - * 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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface Document extends Node { - /** - * The Document Type Declaration (see <code>DocumentType</code>) - * associated with this document. For HTML documents as well as XML - * documents without a document type declaration this returns - * <code>null</code>. The DOM Level 2 does not support editing the - * Document Type Declaration. <code>docType</code> cannot be altered in - * any way, including through the use of methods inherited from the - * <code>Node</code> interface, such as <code>insertNode</code> or - * <code>removeNode</code>. - */ - 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 root element of the document. For HTML documents, - * this is the element with the tagName "HTML". - */ - 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. For HTML, the <code>tagName</code> - * parameter may be provided in any case, but it must be mapped to the - * canonical uppercase form 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 contains an - * illegal character. - */ - 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. - * @param data The data for the node. - * @return The new <code>ProcessingInstruction</code> object. - * @exception DOMException - * INVALID_CHARACTER_ERR: Raised if the specified target contains an - * illegal character. - * <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 contains an - * illegal character. - */ - 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.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 does not support any mechanism to - * resolve namespace prefixes. - * @param name The name of the entity to reference. - * @return The new <code>EntityReference</code> object. - * @exception DOMException - * INVALID_CHARACTER_ERR: Raised if the specified name contains an - * illegal character. - * <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> with a - * given tag name in the order in which they are encountered in a - * preorder traversal of the <code>Document</code> tree. - * @param tagname The name of the tag to match on. The special value "*" - * matches all tags. - * @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. The returned - * node has no parent; (<code>parentNode</code> is <code>null</code>). - * The source node is not altered or removed from the original document; - * this method creates a new copy of the source node. - * <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 on a <code>Node</code>, the source - * node is not altered. - * <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 element - * are recursively imported and the resulting nodes reassembled 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>Specified 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 not 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 - * <code>Notation</code> nodes since they never 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.</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.</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 <code>Attr</code> - * , <code>EntityReference</code>, and <code>Notation</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. - * @since DOM Level 2 - */ - public Node importNode(Node importedNode, - boolean deep) - throws DOMException; - - /** - * Creates an element of the given qualified name and namespace URI. - * @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'> - * <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 qualified name - * contains an illegal character, per the XML 1.0 specification . - * <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>, or if the - * <code>qualifiedName</code> has a prefix that is "xml" and the - * <code>namespaceURI</code> is different from " - * http://www.w3.org/XML/1998/namespace" . - * <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. - * @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'> - * <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 qualified name - * contains an illegal character, per the XML 1.0 specification . - * <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 " - * http://www.w3.org/XML/1998/namespace", or if the - * <code>qualifiedName</code>, or its prefix, is "xmlns" and the - * <code>namespaceURI</code> is different from " - * http://www.w3.org/2000/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 the order in which they are - * encountered in a preorder traversal of the <code>Document</code> tree. - * @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>. - * @since DOM Level 2 - */ - public NodeList getElementsByTagNameNS(String namespaceURI, - String localName); - - /** - * Returns the <code>Element</code> whose <code>ID</code> is given by - * <code>elementId</code>. If no such element exists, returns - * <code>null</code>. Behavior is not defined if more than one element - * has this <code>ID</code>. The DOM implementation must have - * information that says which attributes are of type ID. Attributes - * with the name "ID" are not of type ID unless so defined. - * Implementations that do not know whether attributes are of type ID or - * not are expected to return <code>null</code>. - * @param elementId The unique <code>id</code> value for an element. - * @return The matching element. - * @since DOM Level 2 - */ - public Element getElementById(String elementId); - -} diff --git a/external/jaxp/source/org/w3c/dom/DocumentFragment.java b/external/jaxp/source/org/w3c/dom/DocumentFragment.java deleted file mode 100755 index 6ade30cc9..000000000 --- a/external/jaxp/source/org/w3c/dom/DocumentFragment.java +++ /dev/null @@ -1,52 +0,0 @@ -/* - * 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; - -/** - * <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>insertBefore</code> and <code>appendChild</code>. - * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface DocumentFragment extends Node { -} diff --git a/external/jaxp/source/org/w3c/dom/DocumentType.java b/external/jaxp/source/org/w3c/dom/DocumentType.java deleted file mode 100755 index 86c312b72..000000000 --- a/external/jaxp/source/org/w3c/dom/DocumentType.java +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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; - -/** - * 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>The DOM Level 2 doesn't support editing <code>DocumentType</code> nodes. - * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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><!DOCTYPE - * ex SYSTEM "ex.dtd" [ <!ENTITY foo "foo"> <!ENTITY bar - * "bar"> <!ENTITY bar "bar2"> <!ENTITY % baz "baz"> - * ]> <ex/></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. - * @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.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/external/jaxp/source/org/w3c/dom/Element.java b/external/jaxp/source/org/w3c/dom/Element.java deleted file mode 100755 index 614ca8784..000000000 --- a/external/jaxp/source/org/w3c/dom/Element.java +++ /dev/null @@ -1,322 +0,0 @@ -/* - * 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; - -/** - * 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.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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface Element extends Node { - /** - * The name of the element. For example, in: - * <pre> <elementExample - * id="demo"> ... </elementExample> , </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 contains an - * illegal character. - * <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 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. - * <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. - * <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 the removed <code>Attr</code> - * has a default value it is immediately replaced. The replacing - * attribute has the same namespace URI and local name, as well as the - * original prefix, when applicable. - * @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 the order in which they are encountered in - * a preorder traversal of this <code>Element</code> tree. - * @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>Documents which do not support the "XML" feature will permit only - * the DOM Level 1 calls for creating/setting elements and attributes. - * Hence, if you specify a non-null namespace URI, these DOMs will never - * find a matching node. - * @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. - * @since DOM Level 2 - */ - public String getAttributeNS(String namespaceURI, - String localName); - - /** - * 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. - * @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 - * contains an illegal character, per the XML 1.0 specification . - * <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 " - * http://www.w3.org/XML/1998/namespace", or if the - * <code>qualifiedName</code>, or its prefix, is "xmlns" and the - * <code>namespaceURI</code> is different from " - * http://www.w3.org/2000/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 void setAttributeNS(String namespaceURI, - String qualifiedName, - String value) - throws DOMException; - - /** - * Removes an attribute by local name and namespace URI. If the removed - * attribute has a default value it is immediately replaced. The - * replacing attribute has the same namespace URI and local name, as - * well as the original prefix. - * <br>Documents which do not support the "XML" feature will permit only - * the DOM Level 1 calls for creating/setting elements and attributes. - * Hence, if you specify a non-null namespace URI, these DOMs will never - * find a matching node. - * @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. - * @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>Documents which do not support the "XML" feature will permit only - * the DOM Level 1 calls for creating/setting elements and attributes. - * Hence, if you specify a non-null namespace URI, these DOMs will never - * find a matching node. - * @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. - * @since DOM Level 2 - */ - public Attr getAttributeNodeNS(String namespaceURI, - String localName); - - /** - * 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. - * @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: 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 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 - * the order in which they are encountered in a preorder traversal of - * this <code>Element</code> tree. - * <br>Documents which do not support the "XML" feature will permit only - * the DOM Level 1 calls for creating/setting elements and attributes. - * Hence, if you specify a non-null namespace URI, these DOMs will never - * find a matching node. - * @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>. - * @since DOM Level 2 - */ - public NodeList getElementsByTagNameNS(String namespaceURI, - String localName); - - /** - * 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>Documents which do not support the "XML" feature will permit only - * the DOM Level 1 calls for creating/setting elements and attributes. - * Hence, if you specify a non-null namespace URI, these DOMs will never - * find a matching node. - * @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. - * @since DOM Level 2 - */ - public boolean hasAttributeNS(String namespaceURI, - String localName); - -} diff --git a/external/jaxp/source/org/w3c/dom/Entity.java b/external/jaxp/source/org/w3c/dom/Entity.java deleted file mode 100755 index 11bd0dfd6..000000000 --- a/external/jaxp/source/org/w3c/dom/Entity.java +++ /dev/null @@ -1,68 +0,0 @@ -/* - * 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; - -/** - * This interface represents an entity, either parsed or unparsed, in an XML - * document. Note that this models the entity itself not the entity - * declaration. <code>Entity</code> declaration modeling has been left for a - * later Level of the DOM specification. - * <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 - * external 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 value of the entity may not be available. When - * the replacement value is available, the corresponding <code>Entity</code> - * node's child list represents the structure of that replacement text. - * Otherwise, the child list is empty. - * <p>The DOM Level 2 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.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. The DOM Level 2 does not support any mechanism to resolve - * namespace prefixes. - * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface Entity extends Node { - /** - * The public identifier associated with the entity, if specified. If the - * public identifier was not specified, this is <code>null</code>. - */ - public String getPublicId(); - - /** - * The system identifier associated with the entity, if specified. If the - * system identifier was not specified, this is <code>null</code>. - */ - 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(); - -} diff --git a/external/jaxp/source/org/w3c/dom/EntityReference.java b/external/jaxp/source/org/w3c/dom/EntityReference.java deleted file mode 100755 index ff3cf9d9f..000000000 --- a/external/jaxp/source/org/w3c/dom/EntityReference.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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; - -/** - * <code>EntityReference</code> objects may be inserted into the structure - * model when an entity reference is in the source document, or when the - * user wishes to insert an entity reference. 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 - * structure model, instead of providing <code>EntityReference</code> - * objects. If it does provide such objects, then for a given - * <code>EntityReference</code> node, it may be that there is no - * <code>Entity</code> node representing the referenced entity. If such an - * <code>Entity</code> exists, then the subtree of the - * <code>EntityReference</code> node is in general a copy of the - * <code>Entity</code> node subtree. However, this 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. - * <p>As for <code>Entity</code> nodes, <code>EntityReference</code> nodes and - * all their descendants are readonly. - * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 Core Specification</a>. - */ -public interface EntityReference extends Node { -} diff --git a/external/jaxp/source/org/w3c/dom/NamedNodeMap.java b/external/jaxp/source/org/w3c/dom/NamedNodeMap.java deleted file mode 100755 index 843736679..000000000 --- a/external/jaxp/source/org/w3c/dom/NamedNodeMap.java +++ /dev/null @@ -1,174 +0,0 @@ -/* - * 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; - -/** - * 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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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. - * <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>Documents which do not support the "XML" feature will permit only - * the DOM Level 1 calls for creating/setting elements and attributes. - * Hence, if you specify a non-null namespace URI, these DOMs will never - * find a matching node. - * @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. - * @since DOM Level 2 - */ - public Node getNamedItemNS(String namespaceURI, - String localName); - - /** - * 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. - * @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: 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 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>Documents which do not support the "XML" feature will permit only - * the DOM Level 1 calls for creating/setting elements and attributes. - * Hence, if you specify a non-null namespace URI, these DOMs will never - * find a matching node. - * @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. - * @since DOM Level 2 - */ - public Node removeNamedItemNS(String namespaceURI, - String localName) - throws DOMException; - -} diff --git a/external/jaxp/source/org/w3c/dom/Node.java b/external/jaxp/source/org/w3c/dom/Node.java deleted file mode 100755 index 56ed30a57..000000000 --- a/external/jaxp/source/org/w3c/dom/Node.java +++ /dev/null @@ -1,526 +0,0 @@ -/* - * 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; - -/** - * 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'> - * <tr> - * <th>Interface</th> - * <th>nodeName</th> - * <th>nodeValue</th> - * <th>attributes</th> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>Attr</td> - * <td valign='top' rowspan='1' colspan='1'>name of - * attribute</td> - * <td valign='top' rowspan='1' colspan='1'>value of attribute</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>CDATASection</td> - * <td valign='top' rowspan='1' colspan='1'><code>"#cdata-section"</code></td> - * <td valign='top' rowspan='1' colspan='1'> - * content of the CDATA Section</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>Comment</td> - * <td valign='top' rowspan='1' colspan='1'><code>"#comment"</code></td> - * <td valign='top' rowspan='1' colspan='1'>content of - * the comment</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>Document</td> - * <td valign='top' rowspan='1' colspan='1'><code>"#document"</code></td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>DocumentFragment</td> - * <td valign='top' rowspan='1' colspan='1'> - * <code>"#document-fragment"</code></td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>DocumentType</td> - * <td valign='top' rowspan='1' colspan='1'>document type name</td> - * <td valign='top' rowspan='1' colspan='1'> - * null</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>Element</td> - * <td valign='top' rowspan='1' colspan='1'>tag name</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * <td valign='top' rowspan='1' colspan='1'>NamedNodeMap</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>Entity</td> - * <td valign='top' rowspan='1' colspan='1'>entity name</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'> - * EntityReference</td> - * <td valign='top' rowspan='1' colspan='1'>name of entity referenced</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>Notation</td> - * <td valign='top' rowspan='1' colspan='1'>notation name</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * <td valign='top' rowspan='1' colspan='1'> - * null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>ProcessingInstruction</td> - * <td valign='top' rowspan='1' colspan='1'>target</td> - * <td valign='top' rowspan='1' colspan='1'>entire content excluding the target</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * <tr> - * <td valign='top' rowspan='1' colspan='1'>Text</td> - * <td valign='top' rowspan='1' colspan='1'> - * <code>"#text"</code></td> - * <td valign='top' rowspan='1' colspan='1'>content of the text node</td> - * <td valign='top' rowspan='1' colspan='1'>null</td> - * </tr> - * </table> - * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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. - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. - * @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. - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. - * @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 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. - * @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. - * <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. - */ - 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. - * @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. - * <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. - */ - 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. - */ - 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. - * <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. - */ - public Node appendChild(Node newChild) - throws DOMException; - - /** - * Returns whether this node has any children. - * @return <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>.). - * <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 text it - * contains unless it is a deep clone, since the text is contained in a - * child <code>Text</code> node. Cloning an <code>Attribute</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 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 lookups) that depend on a particular document tree - * structure are to be used.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 2 - */ - public void normalize(); - - /** - * Tests whether the DOM implementation implements a specific feature and - * that feature is supported by this node. - * @param feature The name of the feature to test. This is the same name - * which can be passed to the method <code>hasFeature</code> on - * <code>DOMImplementation</code>. - * @param version This is the version number of the feature to test. In - * Level 2, version 1, this is the string "2.0". If the version is not - * specified, supporting any version of the feature will cause the - * method to return <code>true</code>. - * @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. - * <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>createElement</code> from the - * <code>Document</code> interface, this is always <code>null</code>.Per - * the Namespaces in XML Specification 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. - * <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>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, per the XML 1.0 specification . - * <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 "http://www.w3.org/XML/1998/namespace", if - * this node is an attribute and the specified prefix is "xmlns" and - * the <code>namespaceURI</code> of this node is different from " - * http://www.w3.org/2000/xmlns/", or if this node is an attribute and - * the <code>qualifiedName</code> of this node is "xmlns" . - * @since DOM Level 2 - */ - public String getPrefix(); - /** - * The namespace prefix of this node, or <code>null</code> if it is - * unspecified. - * <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>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, per the XML 1.0 specification . - * <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 "http://www.w3.org/XML/1998/namespace", if - * this node is an attribute and the specified prefix is "xmlns" and - * the <code>namespaceURI</code> of this node is different from " - * http://www.w3.org/2000/xmlns/", or if this node is an attribute and - * the <code>qualifiedName</code> of this node is "xmlns" . - * @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>createElement</code> from the - * <code>Document</code> interface, 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 <code>true</code> if this node has any attributes, - * <code>false</code> otherwise. - * @since DOM Level 2 - */ - public boolean hasAttributes(); - -} diff --git a/external/jaxp/source/org/w3c/dom/NodeList.java b/external/jaxp/source/org/w3c/dom/NodeList.java deleted file mode 100755 index a90b4fd4f..000000000 --- a/external/jaxp/source/org/w3c/dom/NodeList.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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; - -/** - * 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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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/external/jaxp/source/org/w3c/dom/Notation.java b/external/jaxp/source/org/w3c/dom/Notation.java deleted file mode 100755 index 186836d73..000000000 --- a/external/jaxp/source/org/w3c/dom/Notation.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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; - -/** - * This interface represents a notation declared in the DTD. A notation either - * declares, by name, the format of an unparsed entity (see section 4.7 of - * the XML 1.0 specification ), or is used for formal declaration of - * processing instruction targets (see section 2.6 of the XML 1.0 - * specification ). The <code>nodeName</code> attribute inherited from - * <code>Node</code> is set to the declared name of the notation. - * <p>The DOM Level 1 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/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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>. - */ - public String getSystemId(); - -} diff --git a/external/jaxp/source/org/w3c/dom/ProcessingInstruction.java b/external/jaxp/source/org/w3c/dom/ProcessingInstruction.java deleted file mode 100755 index fe447b51c..000000000 --- a/external/jaxp/source/org/w3c/dom/ProcessingInstruction.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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; - -/** - * 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>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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>?></code>. - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. - */ - 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>?></code>. - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised when the node is readonly. - */ - public void setData(String data) - throws DOMException; - -} diff --git a/external/jaxp/source/org/w3c/dom/Text.java b/external/jaxp/source/org/w3c/dom/Text.java deleted file mode 100755 index 842a9737b..000000000 --- a/external/jaxp/source/org/w3c/dom/Text.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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; - -/** - * The <code>Text</code> interface inherits from <code>CharacterData</code> - * and represents the textual content (termed character data 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>normalize()</code> method on <code>Node</code> merges any such - * adjacent <code>Text</code> objects into a single node for each block of - * text. - * <p>See also the <a href='http://www.w3.org/TR/2000/REC-DOM-Level-2-Core-20001113'>Document Object Model (DOM) Level 2 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; - -} diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2Azimuth.java b/external/jaxp/source/org/w3c/dom/css/CSS2Azimuth.java deleted file mode 100755 index de9016ec0..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2Azimuth.java +++ /dev/null @@ -1,94 +0,0 @@ -/* - * 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>CSS2Azimuth</code> interface represents the azimuth CSS Level 2 - * property. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2Azimuth extends CSSValue { - /** - * A code defining the type of the value as defined in - * <code>CSSValue</code> . It would be one of <code>CSS_DEG</code> , - * <code>CSS_RAD</code> , <code>CSS_GRAD</code> or <code>CSS_IDENT</code> - * . - */ - public short getAzimuthType(); - - /** - * If <code>azimuthType</code> is <code>CSS_IDENT</code> , - * <code>identifier</code> contains one of left-side, far-left, left, - * center-left, center, center-right, right, far-right, right-side, - * leftwards, rightwards. The empty string if none is set. - */ - public String getIdentifier(); - - /** - * <code>behind</code> indicates whether the behind identifier has been - * set. - */ - public boolean getBehind(); - - /** - * A method to set the angle value with a specified unit. This method - * will unset any previously set identifier value. - * @param uType The unitType could only be one of <code>CSS_DEG</code> , - * <code>CSS_RAD</code> or <code>CSS_GRAD</code> ). - * @param fValue The new float value of the angle. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the unit type is invalid. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setAngleValue(short uType, - float fValue) - throws DOMException; - - /** - * Used to retrieved the float value of the azimuth property. - * @param uType The unit type can be only an angle unit type ( - * <code>CSS_DEG</code> , <code>CSS_RAD</code> or <code>CSS_GRAD</code> - * ). - * @return The float value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the unit type is invalid. - */ - public float getAngleValue(short uType) - throws DOMException; - - /** - * Setting the identifier for the azimuth property will unset any - * previously set angle value. The value of <code>azimuthType</code> is - * set to <code>CSS_IDENT</code> - * @param ident The new identifier. If the identifier is "leftwards" or - * "rightward", the behind attribute is ignored. - * @param b The new value for behind. - * @exception DOMException - * SYNTAX_ERR: Raised if the specified <code>identifier</code> has a - * syntax error and is unparsable. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setIdentifier(String ident, - boolean b) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2BackgroundPosition.java b/external/jaxp/source/org/w3c/dom/css/CSS2BackgroundPosition.java deleted file mode 100755 index 159504353..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2BackgroundPosition.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * 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>CSS2BackgroundPosition</code> interface represents the - * background-position CSS Level 2 property. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2BackgroundPosition extends CSSValue { - /** - * A code defining the type of the horizontal value. It would be one of - * <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> or <code>CSS_IDENT</code> . If one of horizontal or - * vertical is <code>CSS_IDENT</code> , it's guaranteed that the other is - * the same. - */ - public short getHorizontalType(); - - /** - * A code defining the type of the horizontal value. The code can be one - * of the following units : <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_IDENT</code> , - * <code>CSS_INHERIT</code> . If one of horizontal or vertical is - * <code>CSS_IDENT</code> or <code>CSS_INHERIT</code> , it's guaranteed - * that the other is the same. - */ - public short getVerticalType(); - - /** - * If <code>horizontalType</code> is <code>CSS_IDENT</code> or - * <code>CSS_INHERIT</code> , this attribute contains the string - * representation of the ident, otherwise it contains an empty string. - */ - public String getHorizontalIdentifier(); - - /** - * If <code>verticalType</code> is <code>CSS_IDENT</code> or - * <code>CSS_INHERIT</code> , this attribute contains the string - * representation of the ident, otherwise it contains an empty string. The - * value is <code>"center"</code> if only the horizontalIdentifier has - * been set. - */ - public String getVerticalIdentifier(); - - /** - * This method is used to get the float value in a specified unit if the - * <code>horizontalPosition</code> represents a length or a percentage. If - * the float doesn't contain a float value or can't be converted into the - * specified unit, a <code>DOMException</code> is raised. - * @param hType The horizontal unit. - * @return The float value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the property doesn't contain a float - * or the value can't be converted. - */ - public float getHorizontalPosition(float hType) - throws DOMException; - - /** - * This method is used to get the float value in a specified unit if the - * <code>verticalPosition</code> represents a length or a percentage. If - * the float doesn't contain a float value or can't be converted into the - * specified unit, a <code>DOMException</code> is raised. The value is - * <code>50%</code> if only the horizontal value has been specified. - * @param vType The vertical unit. - * @return The float value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the property doesn't contain a float - * or the value can't be converted. - */ - public float getVerticalPosition(float vType) - throws DOMException; - - /** - * This method is used to set the horizontal position with a specified - * unit. If the vertical value is not a percentage or a length, it sets - * the vertical position to <code>50%</code> . - * @param hType The specified unit (a length or a percentage). - * @param value The new value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the specified unit is not a length or - * a percentage. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setHorizontalPosition(short hType, - float value) - throws DOMException; - - /** - * This method is used to set the vertical position with a specified - * unit. If the horizontal value is not a percentage or a length, it sets - * the vertical position to <code>50%</code> . - * @param vType The specified unit (a length or a percentage). - * @param value The new value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the specified unit is not a length or - * a percentage. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setVerticalPosition(short vType, - float value) - throws DOMException; - - /** - * Sets the identifiers. If the second identifier is the empty string, - * the vertical identifier is set to its default value ( - * <code>"center"</code> ). - * @param hIdentifier The new horizontal identifier. - * @param vIdentifier The new vertical identifier. - * @exception DOMException - * SYNTAX_ERR: Raised if the identifiers have a syntax error and are - * unparsable. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setPositionIdentifier(String hIdentifier, - String vIdentifier) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2BorderSpacing.java b/external/jaxp/source/org/w3c/dom/css/CSS2BorderSpacing.java deleted file mode 100755 index 920ebb2b3..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2BorderSpacing.java +++ /dev/null @@ -1,106 +0,0 @@ -/* - * 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>CSS2BorderSpacing</code> interface represents the border-spacing - * CSS Level 2 property. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2BorderSpacing extends CSSValue { - /** - * The A code defining the type of the value as defined in - * <code>CSSValue</code> . It would be one of <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> or - * <code>CSS_PC</code> . - */ - public short getHorizontalType(); - - /** - * The A code defining the type of the value as defined in - * <code>CSSValue</code> . It would be one of <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> or <code>CSS_INHERIT</code> . - */ - public short getVerticalType(); - - /** - * This method is used to get the float value in a specified unit if the - * <code>horizontalSpacing</code> represents a length. If the float - * doesn't contain a float value or can't be converted into the specified - * unit, a <code>DOMException</code> is raised. - * @param hType The horizontal unit. - * @return The float value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the property doesn't contain a float - * or the value can't be converted. - */ - public float getHorizontalSpacing(float hType) - throws DOMException; - - /** - * This method is used to get the float value in a specified unit if the - * <code>verticalSpacing</code> represents a length. If the float doesn't - * contain a float value or can't be converted into the specified unit, a - * <code>DOMException</code> is raised. The value is <code>0</code> if - * only the horizontal value has been specified. - * @param vType The vertical unit. - * @return The float value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the property doesn't contain a float - * or the value can't be converted. - */ - public float getVerticalSpacing(float vType) - throws DOMException; - - /** - * This method is used to set the horizontal spacing with a specified - * unit. If the vertical value is a length, it sets the vertical spacing - * to <code>0</code> . - * @param hType The horizontal unit. - * @param value The new value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the specified unit is not a length. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setHorizontalSpacing(short hType, - float value) - throws DOMException; - - /** - * This method is used to set the vertical spacing with a specified unit. - * If the horizontal value is not a length, it sets the vertical spacing - * to <code>0</code> . - * @param vType The vertical unit. - * @param value The new value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the specified unit is not a length or - * a percentage. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setVerticalSpacing(short vType, - float value) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2CounterIncrement.java b/external/jaxp/source/org/w3c/dom/css/CSS2CounterIncrement.java deleted file mode 100755 index f1bd26ba1..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2CounterIncrement.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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>CSS2CounterIncrement</code> interface represents a simple value - * for the counter-increment CSS Level 2 property. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2CounterIncrement extends CSSValue { - /** - * The element name. - * @exception DOMException - * SYNTAX_ERR: Raised if the specified identifier has a syntax error - * and is unparsable. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this identifier is - * readonly. - */ - public String getIdentifier(); - public void setIdentifier(String identifier) - throws DOMException; - - /** - * The increment. (Default value is 1.) - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this identifier is readonly. - */ - public short getIncrement(); - public void setIncrement(short increment) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2CounterReset.java b/external/jaxp/source/org/w3c/dom/css/CSS2CounterReset.java deleted file mode 100755 index 5c665f5da..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2CounterReset.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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>CSS2CounterReset</code> interface represents a simple value for - * the counter-reset CSS Level 2 property. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2CounterReset extends CSSValue { - /** - * The element name. - * @exception DOMException - * SYNTAX_ERR: Raised if the specified identifier has a syntax error - * and is unparsable. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this identifier is - * readonly. - */ - public String getIdentifier(); - public void setIdentifier(String identifier) - throws DOMException; - - /** - * The reset (default value is 0). - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this identifier is readonly. - */ - public short getReset(); - public void setReset(short reset) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2Cursor.java b/external/jaxp/source/org/w3c/dom/css/CSS2Cursor.java deleted file mode 100755 index 298565d88..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2Cursor.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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>CSS2Cursor</code> interface represents the cursor CSS Level 2 - * property. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2Cursor extends CSSValue { - /** - * <code>uris</code> represents the list of URIs (<code>CSS_URI</code> ) - * on the cursor property. The list can be empty. - */ - public CSSValueList getUris(); - - /** - * This identifier represents a generic cursor name or an empty string. - * @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. - */ - public String getPredefinedCursor(); - public void setPredefinedCursor(String predefinedCursor) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2FontFaceSrc.java b/external/jaxp/source/org/w3c/dom/css/CSS2FontFaceSrc.java deleted file mode 100755 index 1385e9357..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2FontFaceSrc.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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>CSS2FontFaceSrc</code> interface represents the src CSS Level 2 - * descriptor. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2FontFaceSrc extends CSSValue { - /** - * Specifies the source of the font, empty string otherwise. - * @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. - */ - public String getUri(); - public void setUri(String uri) - throws DOMException; - - /** - * This attribute contains a list of strings for the format CSS function. - */ - public CSSValueList getFormat(); - - /** - * Specifies the full font name of a locally installed font. - * @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. - */ - public String getFontFaceName(); - public void setFontFaceName(String fontFaceName) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2FontFaceWidths.java b/external/jaxp/source/org/w3c/dom/css/CSS2FontFaceWidths.java deleted file mode 100755 index e4ad5e82c..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2FontFaceWidths.java +++ /dev/null @@ -1,45 +0,0 @@ -/* - * 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>CSS2FontFaceWidths</code> interface represents a simple value - * for the widths CSS Level 2 descriptor. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2FontFaceWidths extends CSSValue { - /** - * The range for the characters. - * @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. - */ - public String getUrange(); - public void setUrange(String urange) - throws DOMException; - - /** - * A list of numbers representing the glyph widths. - */ - public CSSValueList getNumbers(); - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2PageSize.java b/external/jaxp/source/org/w3c/dom/css/CSS2PageSize.java deleted file mode 100755 index d27ec909e..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2PageSize.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * 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>CSS2PageSize</code> interface represents the size CSS Level 2 - * descriptor. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2PageSize extends CSSValue { - /** - * A code defining the type of the width of the page. It would be one of - * <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> or <code>CSS_IDENT</code> . - */ - public short getWidthType(); - - /** - * A code defining the type of the height of the page. It would be one of - * <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> or <code>CSS_IDENT</code> . - * If one of width or height is <code>CSS_IDENT</code> , it's guaranteed - * that the other is the same. - */ - public short getHeightType(); - - /** - * If <code>width</code> is <code>CSS_IDENT</code> , this attribute - * contains the string representation of the ident, otherwise it contains - * an empty string. - */ - public String getIdentifier(); - - /** - * This method is used to get the float value in a specified unit if the - * <code>widthType</code> represents a length. If the float doesn't - * contain a float value or can't be converted into the specified unit, a - * <code>DOMException</code> is raised. - * @param wType The width unit. - * @return The float value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the property doesn't contain a float - * or the value can't be converted. - */ - public float getWidth(float wType) - throws DOMException; - - /** - * This method is used to get the float value in a specified unit if the - * <code>heightType</code> represents a length. If the float doesn't - * contain a float value or can't be converted into the specified unit, a - * <code>DOMException</code> is raised. If only the width value has been - * specified, the height value is the same. - * @param hType The height unit. - * @return The float value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the property doesn't contain a float - * or the value can't be converted. - */ - public float getHeightSize(float hType) - throws DOMException; - - /** - * This method is used to set the width position with a specified unit. - * If the <code>heightType</code> is not a length, it sets the height - * position to the same value. - * @param wType The width unit. - * @param value The new value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the specified unit is not a length or - * a percentage. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setWidthSize(short wType, - float value) - throws DOMException; - - /** - * This method is used to set the height position with a specified unit. - * If the <code>widthType</code> is not a length, it sets the width - * position to the same value. - * @param hType The height unit. - * @param value The new value. - * @exception DOMException - * INVALID_ACCESS_ERR: Raised if the specified unit is not a length or - * a percentage. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setHeightSize(short hType, - float value) - throws DOMException; - - /** - * Sets the identifier. - * @param ident The new identifier. - * @exception DOMException - * SYNTAX_ERR: Raised if the identifier has a syntax error and is - * unparsable. - * <br> NO_MODIFICATION_ALLOWED_ERR: Raised if this property is - * readonly. - */ - public void setIdentifier(String ident) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2PlayDuring.java b/external/jaxp/source/org/w3c/dom/css/CSS2PlayDuring.java deleted file mode 100755 index 4034cc4e5..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2PlayDuring.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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>CSS2PlayDuring</code> interface represents the play-during CSS - * Level 2 property. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2PlayDuring extends CSSValue { - /** - * A code defining the type of the value as defined in - * <code>CSSvalue</code> . It would be one of <code>CSS_UNKNOWN</code> or - * <code>CSS_IDENT</code> . - */ - public short getPlayDuringType(); - - /** - * One of <code>"inherit"</code> , <code>"auto"</code> , - * <code>"none"</code> or the empty string if the - * <code>playDuringType</code> is <code>CSS_UNKNOWN</code> . On setting, - * it will set the <code>uri</code> to the empty string and - * <code>mix</code> and <code>repeat</code> to <code>false</code> . - * @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. - */ - public String getPlayDuringIdentifier(); - public void setPlayDuringIdentifier(String playDuringIdentifier) - throws DOMException; - - /** - * The sound specified by the <code>uri</code> . It will set the - * <code>playDuringType</code> attribute to <code>CSS_UNKNOWN</code> . - * @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. - */ - public String getUri(); - public void setUri(String uri) - throws DOMException; - - /** - * <code>true</code> if the sound should be mixed. It will be ignored if - * the attribute doesn't contain a <code>uri</code> . - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly. - */ - public boolean getMix(); - public void setMix(boolean mix) - throws DOMException; - - /** - * <code>true</code> if the sound should be repeated. It will be ignored - * if the attribute doesn't contain a <code>uri</code> . - * @exception DOMException - * NO_MODIFICATION_ALLOWED_ERR: Raised if this declaration is readonly. - */ - public boolean getRepeat(); - public void setRepeat(boolean repeat) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSS2Properties.java b/external/jaxp/source/org/w3c/dom/css/CSS2Properties.java deleted file mode 100755 index 18f589fd2..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2Properties.java +++ /dev/null @@ -1,2265 +0,0 @@ -/* - * 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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. - * @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 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/external/jaxp/source/org/w3c/dom/css/CSS2TextShadow.java b/external/jaxp/source/org/w3c/dom/css/CSS2TextShadow.java deleted file mode 100755 index fd17ef9cd..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSS2TextShadow.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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>CSS2TextShadow</code> interface represents a simple value for - * the text-shadow CSS Level 2 property. - * <p> For this extension of the <code>CSSValue</code> interface, the - * <code>valueType</code> attribute of the underlying <code>CSSValue</code> - * interface shall be <code>CSS_CUSTOM</code> . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface CSS2TextShadow extends CSSValue { - /** - * Specifies the color of the text shadow. The CSS Value can contain an - * empty string if no color has been specified. - */ - public CSSValue getColor(); - - /** - * The horizontal position of the text shadow. <code>0</code> if no - * length has been specified. - */ - public CSSValue getHorizontal(); - - /** - * The vertical position of the text shadow. <code>0</code> if no length - * has been specified. - */ - public CSSValue getVertical(); - - /** - * The blur radius of the text shadow. <code>0</code> if no length has - * been specified. - */ - public CSSValue getBlur(); - -} - diff --git a/external/jaxp/source/org/w3c/dom/css/CSSCharsetRule.java b/external/jaxp/source/org/w3c/dom/css/CSSCharsetRule.java deleted file mode 100755 index fc85a057d..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSCharsetRule.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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. - * @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 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/external/jaxp/source/org/w3c/dom/css/CSSFontFaceRule.java b/external/jaxp/source/org/w3c/dom/css/CSSFontFaceRule.java deleted file mode 100755 index a17957061..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSFontFaceRule.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/CSSImportRule.java b/external/jaxp/source/org/w3c/dom/css/CSSImportRule.java deleted file mode 100755 index e18ad569b..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSImportRule.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/CSSMediaRule.java b/external/jaxp/source/org/w3c/dom/css/CSSMediaRule.java deleted file mode 100755 index 68a73045e..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSMediaRule.java +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/CSSPageRule.java b/external/jaxp/source/org/w3c/dom/css/CSSPageRule.java deleted file mode 100755 index cb95a3e59..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSPageRule.java +++ /dev/null @@ -1,48 +0,0 @@ -/* - * 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. - * @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 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/external/jaxp/source/org/w3c/dom/css/CSSPrimitiveValue.java b/external/jaxp/source/org/w3c/dom/css/CSSPrimitiveValue.java deleted file mode 100755 index 4131d26cd..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSPrimitiveValue.java +++ /dev/null @@ -1,296 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/CSSRule.java b/external/jaxp/source/org/w3c/dom/css/CSSRule.java deleted file mode 100755 index 2d375e91a..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSRule.java +++ /dev/null @@ -1,105 +0,0 @@ -/* - * 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. - * @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 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/external/jaxp/source/org/w3c/dom/css/CSSRuleList.java b/external/jaxp/source/org/w3c/dom/css/CSSRuleList.java deleted file mode 100755 index 41c2c6837..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSRuleList.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/CSSStyleDeclaration.java b/external/jaxp/source/org/w3c/dom/css/CSSStyleDeclaration.java deleted file mode 100755 index bcd5229ff..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSStyleDeclaration.java +++ /dev/null @@ -1,164 +0,0 @@ -/* - * 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. - * @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 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 property 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 one exists. The empty string if none - * exists. - */ - public String getPropertyPriority(String propertyName); - - /** - * Used to set a property value and priority within this declaration - * block. - * @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>). - * @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/external/jaxp/source/org/w3c/dom/css/CSSStyleRule.java b/external/jaxp/source/org/w3c/dom/css/CSSStyleRule.java deleted file mode 100755 index e3e0cd81a..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSStyleRule.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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. - * @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 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/external/jaxp/source/org/w3c/dom/css/CSSStyleSheet.java b/external/jaxp/source/org/w3c/dom/css/CSSStyleSheet.java deleted file mode 100755 index b529e5db0..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSStyleSheet.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/CSSUnknownRule.java b/external/jaxp/source/org/w3c/dom/css/CSSUnknownRule.java deleted file mode 100755 index 763d5f1b6..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSUnknownRule.java +++ /dev/null @@ -1,22 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/CSSValue.java b/external/jaxp/source/org/w3c/dom/css/CSSValue.java deleted file mode 100755 index 48b2fbd6f..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSValue.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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. - * @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 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/external/jaxp/source/org/w3c/dom/css/CSSValueList.java b/external/jaxp/source/org/w3c/dom/css/CSSValueList.java deleted file mode 100755 index bf15bb3eb..000000000 --- a/external/jaxp/source/org/w3c/dom/css/CSSValueList.java +++ /dev/null @@ -1,46 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/Counter.java b/external/jaxp/source/org/w3c/dom/css/Counter.java deleted file mode 100755 index 8cd4967b3..000000000 --- a/external/jaxp/source/org/w3c/dom/css/Counter.java +++ /dev/null @@ -1,38 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/DOMImplementationCSS.java b/external/jaxp/source/org/w3c/dom/css/DOMImplementationCSS.java deleted file mode 100755 index 65c97291e..000000000 --- a/external/jaxp/source/org/w3c/dom/css/DOMImplementationCSS.java +++ /dev/null @@ -1,40 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/DocumentCSS.java b/external/jaxp/source/org/w3c/dom/css/DocumentCSS.java deleted file mode 100755 index 8fe93c79a..000000000 --- a/external/jaxp/source/org/w3c/dom/css/DocumentCSS.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/ElementCSSInlineStyle.java b/external/jaxp/source/org/w3c/dom/css/ElementCSSInlineStyle.java deleted file mode 100755 index 98b60bf9d..000000000 --- a/external/jaxp/source/org/w3c/dom/css/ElementCSSInlineStyle.java +++ /dev/null @@ -1,32 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/RGBColor.java b/external/jaxp/source/org/w3c/dom/css/RGBColor.java deleted file mode 100755 index cd5daa567..000000000 --- a/external/jaxp/source/org/w3c/dom/css/RGBColor.java +++ /dev/null @@ -1,47 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/Rect.java b/external/jaxp/source/org/w3c/dom/css/Rect.java deleted file mode 100755 index f5efb1084..000000000 --- a/external/jaxp/source/org/w3c/dom/css/Rect.java +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/css/ViewCSS.java b/external/jaxp/source/org/w3c/dom/css/ViewCSS.java deleted file mode 100755 index 0f7e88ff9..000000000 --- a/external/jaxp/source/org/w3c/dom/css/ViewCSS.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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 . - * @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/external/jaxp/source/org/w3c/dom/css/package.html b/external/jaxp/source/org/w3c/dom/css/package.html deleted file mode 100755 index 7f4d5a7ea..000000000 --- a/external/jaxp/source/org/w3c/dom/css/package.html +++ /dev/null @@ -1,11 +0,0 @@ -<html><head> -<title>yadda yadda</title> -</head><body> - -<p>Supports the optional "CSS" and "CSS2" -<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/" ->stylesheet</a> -features of the -DOM Level 2 Recommendation. </p> - -</body></html> diff --git a/external/jaxp/source/org/w3c/dom/events/DocumentEvent.java b/external/jaxp/source/org/w3c/dom/events/DocumentEvent.java deleted file mode 100755 index 76644bc5a..000000000 --- a/external/jaxp/source/org/w3c/dom/events/DocumentEvent.java +++ /dev/null @@ -1,56 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/events/Event.java b/external/jaxp/source/org/w3c/dom/events/Event.java deleted file mode 100755 index 14a9239ed..000000000 --- a/external/jaxp/source/org/w3c/dom/events/Event.java +++ /dev/null @@ -1,141 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/events/EventException.java b/external/jaxp/source/org/w3c/dom/events/EventException.java deleted file mode 100755 index 7a6ff2620..000000000 --- a/external/jaxp/source/org/w3c/dom/events/EventException.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/events/EventListener.java b/external/jaxp/source/org/w3c/dom/events/EventListener.java deleted file mode 100755 index 1df80202c..000000000 --- a/external/jaxp/source/org/w3c/dom/events/EventListener.java +++ /dev/null @@ -1,41 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/events/EventTarget.java b/external/jaxp/source/org/w3c/dom/events/EventTarget.java deleted file mode 100755 index f07663660..000000000 --- a/external/jaxp/source/org/w3c/dom/events/EventTarget.java +++ /dev/null @@ -1,102 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/events/MouseEvent.java b/external/jaxp/source/org/w3c/dom/events/MouseEvent.java deleted file mode 100755 index be780357a..000000000 --- a/external/jaxp/source/org/w3c/dom/events/MouseEvent.java +++ /dev/null @@ -1,156 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/events/MutationEvent.java b/external/jaxp/source/org/w3c/dom/events/MutationEvent.java deleted file mode 100755 index 351f77b3b..000000000 --- a/external/jaxp/source/org/w3c/dom/events/MutationEvent.java +++ /dev/null @@ -1,108 +0,0 @@ -/* - * 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 DOMCharDataModified 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 DOMCharDataModified 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/external/jaxp/source/org/w3c/dom/events/UIEvent.java b/external/jaxp/source/org/w3c/dom/events/UIEvent.java deleted file mode 100755 index 15affe879..000000000 --- a/external/jaxp/source/org/w3c/dom/events/UIEvent.java +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/events/package.html b/external/jaxp/source/org/w3c/dom/events/package.html deleted file mode 100755 index 7131ce96e..000000000 --- a/external/jaxp/source/org/w3c/dom/events/package.html +++ /dev/null @@ -1,18 +0,0 @@ -<html><head> -<title>yadda yadda</title> -</head><body> - -<p>Supports the optional -<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Events-20001113/" ->"Events"</a>, "UIEvents", "MouseEvents", -"MutationEvents", and "HTMLEvents" features of the -DOM Level 2 Recommendation. </p> - -<p> Note that apart from the basic "Events" infrastructure and -the "MutationEvents", all other events currently defined in the -DOM specification imply having some user interface that issues -various events to the DOM. Also, to fully -support the "UIEvents" and its child event set "MouseEvents", -the DOM implementation must also support the "Views" feature. </p> - -</body></html> diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLAnchorElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLAnchorElement.java deleted file mode 100755 index b086cb7f1..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLAnchorElement.java +++ /dev/null @@ -1,112 +0,0 @@ -/* - * 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.html; - -/** - * The anchor element. See the A element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - */ - public String getAccessKey(); - public void setAccessKey(String accessKey); - - /** - * The character encoding of the linked resource. See the charset - * attribute definition in HTML 4.0. - */ - public String getCharset(); - 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.0. - */ - public String getCoords(); - public void setCoords(String coords); - - /** - * The URI of the linked resource. See the href attribute definition in - * HTML 4.0. - */ - public String getHref(); - public void setHref(String href); - - /** - * Language code of the linked resource. See the hreflang attribute - * definition in HTML 4.0. - */ - public String getHreflang(); - public void setHreflang(String hreflang); - - /** - * Anchor name. See the name attribute definition in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * Forward link type. See the rel attribute definition in HTML 4.0. - */ - public String getRel(); - public void setRel(String rel); - - /** - * Reverse link type. See the rev attribute definition in HTML 4.0. - */ - public String getRev(); - 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.0. - */ - public String getShape(); - public void setShape(String shape); - - /** - * Index that represents the element's position in the tabbing order. See - * the tabindex attribute definition in HTML 4.0. - */ - public int getTabIndex(); - public void setTabIndex(int tabIndex); - - /** - * Frame to render the resource in. See the target attribute definition - * in HTML 4.0. - */ - public String getTarget(); - public void setTarget(String target); - - /** - * Advisory content type. See the type attribute definition in HTML 4.0. - */ - public String getType(); - 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/external/jaxp/source/org/w3c/dom/html/HTMLAppletElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLAppletElement.java deleted file mode 100755 index 2e32bd6b9..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLAppletElement.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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.html; - -/** - * An embedded Java applet. See the APPLET element definition in HTML 4.0. - * This element is deprecated in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - 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.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getAlt(); - public void setAlt(String alt); - - /** - * Comma-separated archive list. See the archive attribute definition in - * HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getArchive(); - public void setArchive(String archive); - - /** - * Applet class file. See the code attribute definition in HTML 4.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getCode(); - public void setCode(String code); - - /** - * Optional base URI for applet. See the codebase attribute definition - * in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getCodeBase(); - public void setCodeBase(String codeBase); - - /** - * Override height. See the height attribute definition in HTML 4.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getHeight(); - public void setHeight(String height); - - /** - * Horizontal space to the left and right of this image, applet, or - * object. See the hspace attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getHspace(); - public void setHspace(String hspace); - - /** - * The name of the applet. See the name attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * Serialized applet file. See the object attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getObject(); - public void setObject(String object); - - /** - * Vertical space above and below this image, applet, or object. See the - * vspace attribute definition in HTML 4.0. This attribute is deprecated - * in HTML 4.0. - */ - public String getVspace(); - public void setVspace(String vspace); - - /** - * Override width. See the width attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getWidth(); - public void setWidth(String width); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLAreaElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLAreaElement.java deleted file mode 100755 index bbb244825..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLAreaElement.java +++ /dev/null @@ -1,79 +0,0 @@ -/* - * 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.html; - -/** - * Client-side image map area definition. See the AREA element definition in - * HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - */ - public String getAccessKey(); - 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.0. - */ - public String getAlt(); - 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.0. - */ - public String getCoords(); - public void setCoords(String coords); - - /** - * The URI of the linked resource. See the href attribute definition in - * HTML 4.0. - */ - public String getHref(); - 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.0. - */ - public boolean getNoHref(); - 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.0. - */ - public String getShape(); - public void setShape(String shape); - - /** - * Index that represents the element's position in the tabbing order. See - * the tabindex attribute definition in HTML 4.0. - */ - public int getTabIndex(); - public void setTabIndex(int tabIndex); - - /** - * Frame to render the resource in. See the target attribute definition - * in HTML 4.0. - */ - public String getTarget(); - public void setTarget(String target); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLBRElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLBRElement.java deleted file mode 100755 index 12eba4e69..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLBRElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.html; - -/** - * Force a line break. See the BR element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLBRElement extends HTMLElement { - /** - * Control flow of text around floats. See the clear attribute definition - * in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getClear(); - public void setClear(String clear); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLBaseElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLBaseElement.java deleted file mode 100755 index c976632e1..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLBaseElement.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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.html; - -/** - * Document base URI. See the BASE element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLBaseElement extends HTMLElement { - /** - * The base URI. See the href attribute definition in HTML 4.0. - */ - public String getHref(); - public void setHref(String href); - - /** - * The default target frame. See the target attribute definition in HTML - * 4.0. - */ - public String getTarget(); - public void setTarget(String target); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLBaseFontElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLBaseFontElement.java deleted file mode 100755 index ba6a9f989..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLBaseFontElement.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.html; - -/** - * Base font. See the BASEFONT element definition in HTML 4.0. This element - * is deprecated in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLBaseFontElement extends HTMLElement { - /** - * Font color. See the color attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getColor(); - public void setColor(String color); - - /** - * Font face identifier. See the face attribute definition in HTML 4.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getFace(); - public void setFace(String face); - - /** - * Font size. See the size attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getSize(); - public void setSize(String size); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLBodyElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLBodyElement.java deleted file mode 100755 index fd780b5b2..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLBodyElement.java +++ /dev/null @@ -1,69 +0,0 @@ -/* - * 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.html; - -/** - * 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.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getALink(); - public void setALink(String aLink); - - /** - * URI of the background texture tile image. See the background - * attribute definition in HTML 4.0. This attribute is deprecated in HTML - * 4.0. - */ - public String getBackground(); - public void setBackground(String background); - - /** - * Document background color. See the bgcolor attribute definition in - * HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getBgColor(); - public void setBgColor(String bgColor); - - /** - * Color of links that are not active and unvisited. See the link - * attribute definition in HTML 4.0. This attribute is deprecated in HTML - * 4.0. - */ - public String getLink(); - public void setLink(String link); - - /** - * Document text color. See the text attribute definition in HTML 4.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getText(); - public void setText(String text); - - /** - * Color of links that have been visited by the user. See the vlink - * attribute definition in HTML 4.0. This attribute is deprecated in HTML - * 4.0. - */ - public String getVLink(); - public void setVLink(String vLink); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLButtonElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLButtonElement.java deleted file mode 100755 index 4696cfaa9..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLButtonElement.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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.html; - -/** - * Push button. See the BUTTON element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - */ - public String getAccessKey(); - public void setAccessKey(String accessKey); - - /** - * The control is unavailable in this context. See the disabled - * attribute definition in HTML 4.0. - */ - public boolean getDisabled(); - public void setDisabled(boolean disabled); - - /** - * Form control or object name when submitted with a form. See the name - * attribute definition in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * Index that represents the element's position in the tabbing order. See - * the tabindex attribute definition in HTML 4.0. - */ - public int getTabIndex(); - public void setTabIndex(int tabIndex); - - /** - * The type of button. See the type attribute definition in HTML 4.0. - */ - public String getType(); - - /** - * The current form control value. See the value attribute definition in - * HTML 4.0. - */ - public String getValue(); - public void setValue(String value); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLCollection.java b/external/jaxp/source/org/w3c/dom/html/HTMLCollection.java deleted file mode 100755 index 8fd54f68c..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLCollection.java +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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.html; - -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. Note: 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/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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 - * 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. - * @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/external/jaxp/source/org/w3c/dom/html/HTMLDListElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLDListElement.java deleted file mode 100755 index 0d4bbeb29..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLDListElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.html; - -/** - * Definition list. See the DL element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLDListElement extends HTMLElement { - /** - * Reduce spacing between list items. See the compact attribute - * definition in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public boolean getCompact(); - public void setCompact(boolean compact); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLDOMImplementation.java b/external/jaxp/source/org/w3c/dom/html/HTMLDOMImplementation.java deleted file mode 100755 index 98284078e..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLDOMImplementation.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.html; - -import org.w3c.dom.DOMImplementation; - -/** - * The <code>HTMLDOMImplementation</code> interface extends the - * <code>DOMImplementation</code> interface with a method for creating an - * HTML document instance. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - * @since DOM Level 2 - */ -public interface HTMLDOMImplementation extends DOMImplementation { - /** - * Creates an <code>HTMLDocument</code> object with the minimal tree made - * of the following elements: <code>HTML</code> , <code>HEAD</code> , - * <code>TITLE</code> , and <code>BODY</code> . - * @param title The title of the document to be set as the content of the - * <code>TITLE</code> element, through a child <code>Text</code> node. - * @return A new <code>HTMLDocument</code> object. - */ - public HTMLDocument createHTMLDocument(String title); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLDirectoryElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLDirectoryElement.java deleted file mode 100755 index 7c9de1019..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLDirectoryElement.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.html; - -/** - * Directory list. See the DIR element definition in HTML 4.0. This element - * is deprecated in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLDirectoryElement extends HTMLElement { - /** - * Reduce spacing between list items. See the compact attribute - * definition in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public boolean getCompact(); - public void setCompact(boolean compact); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLDivElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLDivElement.java deleted file mode 100755 index 239a3ad85..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLDivElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.html; - -/** - * Generic block container. See the DIV element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLDivElement extends HTMLElement { - /** - * Horizontal text alignment. See the align attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLDocument.java b/external/jaxp/source/org/w3c/dom/html/HTMLDocument.java deleted file mode 100755 index 23c3099d6..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLDocument.java +++ /dev/null @@ -1,155 +0,0 @@ -/* - * 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.html; - -import org.w3c.dom.Document; -import org.w3c.dom.NodeList; - -/** - * 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: alinkColor background - * bgColor fgColor linkColor vlinkColor In DOM Level 2, the method - * <code>getElementById</code> is inherited from the <code>Document</code> - * interface where it was moved. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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(); - public void setTitle(String title); - - /** - * Returns the URI 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 complete URI 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(); - 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. - */ - 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. Note. For reasons - * of backwards 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. - */ - public HTMLCollection getAnchors(); - - /** - * The cookies associated with this document. If there are none, the - * value is an empty string. Otherwise, the value is a string: a - * semicolon-delimited list of "name, value" pairs for all the cookies - * associated with the page. For example, - * <code>name=value;expires=date</code> . - */ - public String getCookie(); - public void setCookie(String cookie); - - /** - * Note. 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. - * The following methods may be deprecated at some point in the future in - * favor of a more general-purpose mechanism. - * <br> Open a document stream for writing. If a document exists in the - * target, this method clears it. - */ - 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> . The text is parsed into the document's structure - * model. - * @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> . The text is parsed into the - * document's structure model. - * @param text The string to be parsed into some structure in the - * document structure model. - */ - public void writeln(String text); - - /** - * Returns the (possibly empty) collection of elements whose - * <code>name</code> value is given by <code>elementName</code> . - * @param elementName The <code>name</code> attribute value for an - * element. - * @return The matching elements. - */ - public NodeList getElementsByName(String elementName); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLElement.java deleted file mode 100755 index 73ac6d4cb..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLElement.java +++ /dev/null @@ -1,66 +0,0 @@ -/* - * 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.html; - -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: HEAD - * special: SUB, SUP, SPAN, BDO font: TT, I, B, U, S, STRIKE, BIG, SMALL - * phrase: EM, STRONG, DFN, CODE, SAMP, KBD, VAR, CITE, ACRONYM, ABBR list: - * DD, DT NOFRAMES, NOSCRIPT ADDRESS, CENTER The <code>style</code> attribute - * of an HTML element is accessible through the - * <code>ElementCSSInlineStyle</code> interface which is defined in the . - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLElement extends Element { - /** - * The element's identifier. See the id attribute definition in HTML 4.0. - */ - public String getId(); - public void setId(String id); - - /** - * The element's advisory title. See the title attribute definition in - * HTML 4.0. - */ - public String getTitle(); - public void setTitle(String title); - - /** - * Language code defined in RFC 1766. See the lang attribute definition - * in HTML 4.0. - */ - public String getLang(); - 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.0. - */ - public String getDir(); - 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.0. - */ - public String getClassName(); - public void setClassName(String className); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLFieldSetElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLFieldSetElement.java deleted file mode 100755 index 0abea21db..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLFieldSetElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.html; - -/** - * Organizes form controls into logical groups. See the FIELDSET element - * definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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/external/jaxp/source/org/w3c/dom/html/HTMLFontElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLFontElement.java deleted file mode 100755 index 052020baf..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLFontElement.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.html; - -/** - * Local change to font. See the FONT element definition in HTML 4.0. This - * element is deprecated in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLFontElement extends HTMLElement { - /** - * Font color. See the color attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getColor(); - public void setColor(String color); - - /** - * Font face identifier. See the face attribute definition in HTML 4.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getFace(); - public void setFace(String face); - - /** - * Font size. See the size attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getSize(); - public void setSize(String size); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLFormElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLFormElement.java deleted file mode 100755 index 2a74fb328..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLFormElement.java +++ /dev/null @@ -1,87 +0,0 @@ -/* - * 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.html; - -/** - * The <code>FORM</code> element encompasses behavior similar to a collection - * and an element. It provides direct access to the contained input elements - * as well as the attributes of the form element. See the FORM element - * definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLFormElement extends HTMLElement { - /** - * Returns a collection of all 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(); - public void setName(String name); - - /** - * List of character sets supported by the server. See the - * accept-charset attribute definition in HTML 4.0. - */ - public String getAcceptCharset(); - public void setAcceptCharset(String acceptCharset); - - /** - * Server-side form handler. See the action attribute definition in HTML - * 4.0. - */ - public String getAction(); - 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.0. - */ - public String getEnctype(); - public void setEnctype(String enctype); - - /** - * HTTP method used to submit form. See the method attribute definition - * in HTML 4.0. - */ - public String getMethod(); - public void setMethod(String method); - - /** - * Frame to render the resource in. See the target attribute definition - * in HTML 4.0. - */ - public String getTarget(); - 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/external/jaxp/source/org/w3c/dom/html/HTMLFrameElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLFrameElement.java deleted file mode 100755 index 6efd70257..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLFrameElement.java +++ /dev/null @@ -1,86 +0,0 @@ -/* - * 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.html; - -import org.w3c.dom.Document; - -/** - * Create a frame. See the FRAME element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLFrameElement extends HTMLElement { - /** - * Request frame borders. See the frameborder attribute definition in - * HTML 4.0. - */ - public String getFrameBorder(); - public void setFrameBorder(String frameBorder); - - /** - * URI designating a long description of this image or frame. See the - * longdesc attribute definition in HTML 4.0. - */ - public String getLongDesc(); - public void setLongDesc(String longDesc); - - /** - * Frame margin height, in pixels. See the marginheight attribute - * definition in HTML 4.0. - */ - public String getMarginHeight(); - public void setMarginHeight(String marginHeight); - - /** - * Frame margin width, in pixels. See the marginwidth attribute - * definition in HTML 4.0. - */ - public String getMarginWidth(); - public void setMarginWidth(String marginWidth); - - /** - * The frame name (object of the <code>target</code> attribute). See the - * name attribute definition in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * When true, forbid user from resizing frame. See the noresize - * attribute definition in HTML 4.0. - */ - public boolean getNoResize(); - public void setNoResize(boolean noResize); - - /** - * Specify whether or not the frame should have scrollbars. See the - * scrolling attribute definition in HTML 4.0. - */ - public String getScrolling(); - public void setScrolling(String scrolling); - - /** - * A URI designating the initial frame contents. See the src attribute - * definition in HTML 4.0. - */ - public String getSrc(); - 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/external/jaxp/source/org/w3c/dom/html/HTMLFrameSetElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLFrameSetElement.java deleted file mode 100755 index c13453b64..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLFrameSetElement.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.html; - -/** - * Create a grid of frames. See the FRAMESET element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLFrameSetElement extends HTMLElement { - /** - * The number of columns of frames in the frameset. See the cols - * attribute definition in HTML 4.0. - */ - public String getCols(); - public void setCols(String cols); - - /** - * The number of rows of frames in the frameset. See the rows attribute - * definition in HTML 4.0. - */ - public String getRows(); - public void setRows(String rows); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLHRElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLHRElement.java deleted file mode 100755 index 8a10aa660..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLHRElement.java +++ /dev/null @@ -1,50 +0,0 @@ -/* - * 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.html; - -/** - * Create a horizontal rule. See the HR element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLHRElement extends HTMLElement { - /** - * Align the rule on the page. See the align attribute definition in - * HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - 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.0. This attribute is deprecated in HTML 4.0. - */ - public boolean getNoShade(); - public void setNoShade(boolean noShade); - - /** - * The height of the rule. See the size attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getSize(); - public void setSize(String size); - - /** - * The width of the rule. See the width attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getWidth(); - public void setWidth(String width); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLHeadElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLHeadElement.java deleted file mode 100755 index 93abb7502..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLHeadElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.html; - -/** - * Document head information. See the HEAD element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLHeadElement extends HTMLElement { - /** - * URI designating a metadata profile. See the profile attribute - * definition in HTML 4.0. - */ - public String getProfile(); - public void setProfile(String profile); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLHeadingElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLHeadingElement.java deleted file mode 100755 index 8121d2c45..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLHeadingElement.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.html; - -/** - * For the <code>H1</code> to <code>H6</code> elements. See the H1 element - * definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLHeadingElement extends HTMLElement { - /** - * Horizontal text alignment. See the align attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLHtmlElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLHtmlElement.java deleted file mode 100755 index ee8f16eab..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLHtmlElement.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.html; - -/** - * Root of an HTML document. See the HTML element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLHtmlElement extends HTMLElement { - /** - * Version information about the document's DTD. See the version - * attribute definition in HTML 4.0. This attribute is deprecated in HTML - * 4.0. - */ - public String getVersion(); - public void setVersion(String version); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLIFrameElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLIFrameElement.java deleted file mode 100755 index d78f4a99c..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLIFrameElement.java +++ /dev/null @@ -1,99 +0,0 @@ -/* - * 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.html; - -import org.w3c.dom.Document; - -/** - * Inline subwindows. See the IFRAME element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - - /** - * Request frame borders. See the frameborder attribute definition in - * HTML 4.0. - */ - public String getFrameBorder(); - public void setFrameBorder(String frameBorder); - - /** - * Frame height. See the height attribute definition in HTML 4.0. - */ - public String getHeight(); - public void setHeight(String height); - - /** - * URI designating a long description of this image or frame. See the - * longdesc attribute definition in HTML 4.0. - */ - public String getLongDesc(); - public void setLongDesc(String longDesc); - - /** - * Frame margin height, in pixels. See the marginheight attribute - * definition in HTML 4.0. - */ - public String getMarginHeight(); - public void setMarginHeight(String marginHeight); - - /** - * Frame margin width, in pixels. See the marginwidth attribute - * definition in HTML 4.0. - */ - public String getMarginWidth(); - public void setMarginWidth(String marginWidth); - - /** - * The frame name (object of the <code>target</code> attribute). See the - * name attribute definition in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * Specify whether or not the frame should have scrollbars. See the - * scrolling attribute definition in HTML 4.0. - */ - public String getScrolling(); - public void setScrolling(String scrolling); - - /** - * A URI designating the initial frame contents. See the src attribute - * definition in HTML 4.0. - */ - public String getSrc(); - public void setSrc(String src); - - /** - * Frame width. See the width attribute definition in HTML 4.0. - */ - public String getWidth(); - 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/external/jaxp/source/org/w3c/dom/html/HTMLImageElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLImageElement.java deleted file mode 100755 index 6b59c032d..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLImageElement.java +++ /dev/null @@ -1,110 +0,0 @@ -/* - * 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.html; - -/** - * Embedded image. See the IMG element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLImageElement extends HTMLElement { - /** - * URI designating the source of this image, for low-resolution output. - */ - public String getLowSrc(); - public void setLowSrc(String lowSrc); - - /** - * The name of the element (for backwards compatibility). - */ - public String getName(); - 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.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - 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.0. - */ - public String getAlt(); - public void setAlt(String alt); - - /** - * Width of border around image. See the border attribute definition in - * HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getBorder(); - public void setBorder(String border); - - /** - * Override height. See the height attribute definition in HTML 4.0. - */ - public String getHeight(); - public void setHeight(String height); - - /** - * Horizontal space to the left and right of this image. See the hspace - * attribute definition in HTML 4.0. This attribute is deprecated in HTML - * 4.0. - */ - public String getHspace(); - public void setHspace(String hspace); - - /** - * Use server-side image map. See the ismap attribute definition in HTML - * 4.0. - */ - public boolean getIsMap(); - public void setIsMap(boolean isMap); - - /** - * URI designating a long description of this image or frame. See the - * longdesc attribute definition in HTML 4.0. - */ - public String getLongDesc(); - public void setLongDesc(String longDesc); - - /** - * URI designating the source of this image. See the src attribute - * definition in HTML 4.0. - */ - public String getSrc(); - public void setSrc(String src); - - /** - * Use client-side image map. See the usemap attribute definition in - * HTML 4.0. - */ - public String getUseMap(); - public void setUseMap(String useMap); - - /** - * Vertical space above and below this image. See the vspace attribute - * definition in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getVspace(); - public void setVspace(String vspace); - - /** - * Override width. See the width attribute definition in HTML 4.0. - */ - public String getWidth(); - public void setWidth(String width); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLInputElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLInputElement.java deleted file mode 100755 index 372eb8a91..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLInputElement.java +++ /dev/null @@ -1,197 +0,0 @@ -/* - * 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.html; - -/** - * Form control. Note. 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 HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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. Changing this attribute, however, resets the contents - * of the form control. See the value attribute definition in HTML 4.0. - */ - public String getDefaultValue(); - 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. Changes to this - * attribute, however, resets the state of the form control. See the - * checked attribute definition in HTML 4.0. - */ - public boolean getDefaultChecked(); - 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.0. - */ - public String getAccept(); - 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.0. - */ - public String getAccessKey(); - 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.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - 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.0. - */ - public String getAlt(); - 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 value attribute of the element. - */ - public boolean getChecked(); - public void setChecked(boolean checked); - - /** - * The control is unavailable in this context. See the disabled - * attribute definition in HTML 4.0. - */ - public boolean getDisabled(); - 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.0. - */ - public int getMaxLength(); - public void setMaxLength(int maxLength); - - /** - * Form control or object name when submitted with a form. See the name - * attribute definition in HTML 4.0. - */ - public String getName(); - 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.0. - */ - public boolean getReadOnly(); - 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.0. - */ - public String getSize(); - public void setSize(String 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.0. - */ - public String getSrc(); - public void setSrc(String src); - - /** - * Index that represents the element's position in the tabbing order. See - * the tabindex attribute definition in HTML 4.0. - */ - public int getTabIndex(); - public void setTabIndex(int tabIndex); - - /** - * The type of control created. See the type attribute definition in - * HTML 4.0. - */ - public String getType(); - - /** - * Use client-side image map. See the usemap attribute definition in - * HTML 4.0. - */ - public String getUseMap(); - 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.0. - */ - public String getValue(); - 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/external/jaxp/source/org/w3c/dom/html/HTMLIsIndexElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLIsIndexElement.java deleted file mode 100755 index 6eb459627..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLIsIndexElement.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.html; - -/** - * This element is used for single-line text input. See the ISINDEX element - * definition in HTML 4.0. This element is deprecated in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getPrompt(); - public void setPrompt(String prompt); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLLIElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLLIElement.java deleted file mode 100755 index c7dba9ca5..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLLIElement.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.html; - -/** - * List item. See the LI element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLLIElement extends HTMLElement { - /** - * List item bullet style. See the type attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getType(); - public void setType(String type); - - /** - * Reset sequence number when used in <code>OL</code> . See the value - * attribute definition in HTML 4.0. This attribute is deprecated in HTML - * 4.0. - */ - public int getValue(); - public void setValue(int value); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLLabelElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLLabelElement.java deleted file mode 100755 index 17334155e..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLLabelElement.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.html; - -/** - * Form field label text. See the LABEL element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - */ - public String getAccessKey(); - 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.0. - */ - public String getHtmlFor(); - public void setHtmlFor(String htmlFor); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLLegendElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLLegendElement.java deleted file mode 100755 index 9bf48d43c..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLLegendElement.java +++ /dev/null @@ -1,43 +0,0 @@ -/* - * 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.html; - -/** - * Provides a caption for a <code>FIELDSET</code> grouping. See the LEGEND - * element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - */ - public String getAccessKey(); - public void setAccessKey(String accessKey); - - /** - * Text alignment relative to <code>FIELDSET</code> . See the align - * attribute definition in HTML 4.0. This attribute is deprecated in HTML - * 4.0. - */ - public String getAlign(); - public void setAlign(String align); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLLinkElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLLinkElement.java deleted file mode 100755 index 089b90cc5..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLLinkElement.java +++ /dev/null @@ -1,84 +0,0 @@ -/* - * 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.html; - -/** - * 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.0 (see also the - * <code>LinkStyle</code> interface in the module). - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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(); - public void setDisabled(boolean disabled); - - /** - * The character encoding of the resource being linked to. See the - * charset attribute definition in HTML 4.0. - */ - public String getCharset(); - public void setCharset(String charset); - - /** - * The URI of the linked resource. See the href attribute definition in - * HTML 4.0. - */ - public String getHref(); - public void setHref(String href); - - /** - * Language code of the linked resource. See the hreflang attribute - * definition in HTML 4.0. - */ - public String getHreflang(); - public void setHreflang(String hreflang); - - /** - * Designed for use with one or more target media. See the media - * attribute definition in HTML 4.0. - */ - public String getMedia(); - public void setMedia(String media); - - /** - * Forward link type. See the rel attribute definition in HTML 4.0. - */ - public String getRel(); - public void setRel(String rel); - - /** - * Reverse link type. See the rev attribute definition in HTML 4.0. - */ - public String getRev(); - public void setRev(String rev); - - /** - * Frame to render the resource in. See the target attribute definition - * in HTML 4.0. - */ - public String getTarget(); - public void setTarget(String target); - - /** - * Advisory content type. See the type attribute definition in HTML 4.0. - */ - public String getType(); - public void setType(String type); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLMapElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLMapElement.java deleted file mode 100755 index bd464b1a7..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLMapElement.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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.html; - -/** - * Client-side image map. See the MAP element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - */ - public String getName(); - public void setName(String name); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLMenuElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLMenuElement.java deleted file mode 100755 index cf1fd1247..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLMenuElement.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.html; - -/** - * Menu list. See the MENU element definition in HTML 4.0. This element is - * deprecated in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLMenuElement extends HTMLElement { - /** - * Reduce spacing between list items. See the compact attribute - * definition in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public boolean getCompact(); - public void setCompact(boolean compact); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLMetaElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLMetaElement.java deleted file mode 100755 index 8cb608a27..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLMetaElement.java +++ /dev/null @@ -1,49 +0,0 @@ -/* - * 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.html; - -/** - * This contains generic meta-information about the document. See the META - * element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLMetaElement extends HTMLElement { - /** - * Associated information. See the content attribute definition in HTML - * 4.0. - */ - public String getContent(); - public void setContent(String content); - - /** - * HTTP response header name. See the http-equiv attribute definition in - * HTML 4.0. - */ - public String getHttpEquiv(); - public void setHttpEquiv(String httpEquiv); - - /** - * Meta information name. See the name attribute definition in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * Select form of content. See the scheme attribute definition in HTML - * 4.0. - */ - public String getScheme(); - public void setScheme(String scheme); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLModElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLModElement.java deleted file mode 100755 index 419825d8b..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLModElement.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.html; - -/** - * Notice of modification to part of a document. See the INS and DEL - * element definitions in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLModElement extends HTMLElement { - /** - * A URI designating a document that describes the reason for the change. - * See the cite attribute definition in HTML 4.0. - */ - public String getCite(); - public void setCite(String cite); - - /** - * The date and time of the change. See the datetime attribute definition - * in HTML 4.0. - */ - public String getDateTime(); - public void setDateTime(String dateTime); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLOListElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLOListElement.java deleted file mode 100755 index 1357ff138..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLOListElement.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.html; - -/** - * Ordered list. See the OL element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLOListElement extends HTMLElement { - /** - * Reduce spacing between list items. See the compact attribute - * definition in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public boolean getCompact(); - public void setCompact(boolean compact); - - /** - * Starting sequence number. See the start attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public int getStart(); - public void setStart(int start); - - /** - * Numbering style. See the type attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getType(); - public void setType(String type); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLObjectElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLObjectElement.java deleted file mode 100755 index c682e67fc..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLObjectElement.java +++ /dev/null @@ -1,160 +0,0 @@ -/* - * 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.html; - -import org.w3c.dom.Document; - -/** - * Generic embedded object. Note. 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 HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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(); - 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.0. - * This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - - /** - * Space-separated list of archives. See the archive attribute definition - * in HTML 4.0. - */ - public String getArchive(); - public void setArchive(String archive); - - /** - * Width of border around the object. See the border attribute definition - * in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getBorder(); - public void setBorder(String border); - - /** - * Base URI for <code>classid</code> , <code>data</code> , and - * <code>archive</code> attributes. See the codebase attribute definition - * in HTML 4.0. - */ - public String getCodeBase(); - public void setCodeBase(String codeBase); - - /** - * Content type for data downloaded via <code>classid</code> attribute. - * See the codetype attribute definition in HTML 4.0. - */ - public String getCodeType(); - public void setCodeType(String codeType); - - /** - * A URI specifying the location of the object's data. See the data - * attribute definition in HTML 4.0. - */ - public String getData(); - public void setData(String data); - - /** - * Declare (for future reference), but do not instantiate, this object. - * See the declare attribute definition in HTML 4.0. - */ - public boolean getDeclare(); - public void setDeclare(boolean declare); - - /** - * Override height. See the height attribute definition in HTML 4.0. - */ - public String getHeight(); - public void setHeight(String height); - - /** - * Horizontal space to the left and right of this image, applet, or - * object. See the hspace attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getHspace(); - public void setHspace(String hspace); - - /** - * Form control or object name when submitted with a form. See the name - * attribute definition in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * Message to render while loading the object. See the standby attribute - * definition in HTML 4.0. - */ - public String getStandby(); - public void setStandby(String standby); - - /** - * Index that represents the element's position in the tabbing order. See - * the tabindex attribute definition in HTML 4.0. - */ - public int getTabIndex(); - public void setTabIndex(int tabIndex); - - /** - * Content type for data downloaded via <code>data</code> attribute. See - * the type attribute definition in HTML 4.0. - */ - public String getType(); - public void setType(String type); - - /** - * Use client-side image map. See the usemap attribute definition in - * HTML 4.0. - */ - public String getUseMap(); - public void setUseMap(String useMap); - - /** - * Vertical space above and below this image, applet, or object. See the - * vspace attribute definition in HTML 4.0. This attribute is deprecated - * in HTML 4.0. - */ - public String getVspace(); - public void setVspace(String vspace); - - /** - * Override width. See the width attribute definition in HTML 4.0. - */ - public String getWidth(); - 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/external/jaxp/source/org/w3c/dom/html/HTMLOptGroupElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLOptGroupElement.java deleted file mode 100755 index ca38157b6..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLOptGroupElement.java +++ /dev/null @@ -1,36 +0,0 @@ -/* - * 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.html; - -/** - * Group options together in logical subdivisions. See the OPTGROUP element - * definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLOptGroupElement extends HTMLElement { - /** - * The control is unavailable in this context. See the disabled - * attribute definition in HTML 4.0. - */ - public boolean getDisabled(); - public void setDisabled(boolean disabled); - - /** - * Assigns a label to this option group. See the label attribute - * definition in HTML 4.0. - */ - public String getLabel(); - public void setLabel(String label); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLOptionElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLOptionElement.java deleted file mode 100755 index 8af033c37..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLOptionElement.java +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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.html; - -/** - * A selectable choice. See the OPTION element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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. Changing - * <code>defaultSelected</code> , however, resets the state of the form - * control. See the selected attribute definition in HTML 4.0. - */ - public boolean getDefaultSelected(); - 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. - */ - public int getIndex(); - - /** - * The control is unavailable in this context. See the disabled - * attribute definition in HTML 4.0. - */ - public boolean getDisabled(); - public void setDisabled(boolean disabled); - - /** - * Option label for use in hierarchical menus. See the label attribute - * definition in HTML 4.0. - */ - public String getLabel(); - 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(); - public void setSelected(boolean selected); - - /** - * The current form control value. See the value attribute definition in - * HTML 4.0. - */ - public String getValue(); - public void setValue(String value); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLParagraphElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLParagraphElement.java deleted file mode 100755 index 179241a9f..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLParagraphElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.html; - -/** - * Paragraphs. See the P element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLParagraphElement extends HTMLElement { - /** - * Horizontal text alignment. See the align attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLParamElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLParamElement.java deleted file mode 100755 index e30fd5329..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLParamElement.java +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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.html; - -/** - * Parameters fed to the <code>OBJECT</code> element. See the PARAM element - * definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLParamElement extends HTMLElement { - /** - * The name of a run-time parameter. See the name attribute definition - * in HTML 4.0. - */ - public String getName(); - 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.0. - */ - public String getType(); - public void setType(String type); - - /** - * The value of a run-time parameter. See the value attribute definition - * in HTML 4.0. - */ - public String getValue(); - public void setValue(String value); - - /** - * Information about the meaning of the <code>value</code> attribute - * value. See the valuetype attribute definition in HTML 4.0. - */ - public String getValueType(); - public void setValueType(String valueType); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLPreElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLPreElement.java deleted file mode 100755 index 23fc398eb..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLPreElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.html; - -/** - * Preformatted text. See the PRE element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLPreElement extends HTMLElement { - /** - * Fixed width for content. See the width attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public int getWidth(); - public void setWidth(int width); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLQuoteElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLQuoteElement.java deleted file mode 100755 index 26873f48f..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLQuoteElement.java +++ /dev/null @@ -1,29 +0,0 @@ -/* - * 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.html; - -/** - * For the <code>Q</code> and <code>BLOCKQUOTE</code> elements. See the Q - * element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLQuoteElement extends HTMLElement { - /** - * A URI designating a source document or message. See the cite - * attribute definition in HTML 4.0. - */ - public String getCite(); - public void setCite(String cite); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLScriptElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLScriptElement.java deleted file mode 100755 index 3294a504f..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLScriptElement.java +++ /dev/null @@ -1,67 +0,0 @@ -/* - * 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.html; - -/** - * Script statements. See the SCRIPT element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLScriptElement extends HTMLElement { - /** - * The script content of the element. - */ - public String getText(); - public void setText(String text); - - /** - * Reserved for future use. - */ - public String getHtmlFor(); - public void setHtmlFor(String htmlFor); - - /** - * Reserved for future use. - */ - public String getEvent(); - public void setEvent(String event); - - /** - * The character encoding of the linked resource. See the charset - * attribute definition in HTML 4.0. - */ - public String getCharset(); - public void setCharset(String charset); - - /** - * Indicates that the user agent can defer processing of the script. See - * the defer attribute definition in HTML 4.0. - */ - public boolean getDefer(); - public void setDefer(boolean defer); - - /** - * URI designating an external script. See the src attribute definition - * in HTML 4.0. - */ - public String getSrc(); - public void setSrc(String src); - - /** - * The content type of the script language. See the type attribute - * definition in HTML 4.0. - */ - public String getType(); - public void setType(String type); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLSelectElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLSelectElement.java deleted file mode 100755 index c66995f3c..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLSelectElement.java +++ /dev/null @@ -1,134 +0,0 @@ -/* - * 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.html; - -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.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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(); - public void setSelectedIndex(int selectedIndex); - - /** - * The current form control value. - */ - public String getValue(); - public void setValue(String value); - - /** - * The number of options in this <code>SELECT</code> . - */ - public int getLength(); - - /** - * 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. - */ - public HTMLCollection getOptions(); - - /** - * The control is unavailable in this context. See the disabled - * attribute definition in HTML 4.0. - */ - public boolean getDisabled(); - 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.0. - */ - public boolean getMultiple(); - public void setMultiple(boolean multiple); - - /** - * Form control or object name when submitted with a form. See the name - * attribute definition in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * Number of visible rows. See the size attribute definition in HTML 4.0. - */ - public int getSize(); - public void setSize(int size); - - /** - * Index that represents the element's position in the tabbing order. See - * the tabindex attribute definition in HTML 4.0. - */ - public int getTabIndex(); - 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. - * @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/external/jaxp/source/org/w3c/dom/html/HTMLStyleElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLStyleElement.java deleted file mode 100755 index e3d04bd44..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLStyleElement.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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.html; - -/** - * Style information. See the STYLE element definition in HTML 4.0, the - * module and the <code>LinkStyle</code> interface in the module. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLStyleElement extends HTMLElement { - /** - * Enables/disables the style sheet. - */ - public boolean getDisabled(); - public void setDisabled(boolean disabled); - - /** - * Designed for use with one or more target media. See the media - * attribute definition in HTML 4.0. - */ - public String getMedia(); - public void setMedia(String media); - - /** - * The content type pf the style sheet language. See the type attribute - * definition in HTML 4.0. - */ - public String getType(); - public void setType(String type); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLTableCaptionElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLTableCaptionElement.java deleted file mode 100755 index 58a8bed5e..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLTableCaptionElement.java +++ /dev/null @@ -1,28 +0,0 @@ -/* - * 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.html; - -/** - * Table caption See the CAPTION element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLTableCaptionElement extends HTMLElement { - /** - * Caption alignment with respect to the table. See the align attribute - * definition in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLTableCellElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLTableCellElement.java deleted file mode 100755 index b818ce137..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLTableCellElement.java +++ /dev/null @@ -1,126 +0,0 @@ -/* - * 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.html; - -/** - * The object used to represent the <code>TH</code> and <code>TD</code> - * elements. See the TD element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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.0. - */ - public String getAbbr(); - public void setAbbr(String abbr); - - /** - * Horizontal alignment of data in cell. See the align attribute - * definition in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - - /** - * Names group of related headers. See the axis attribute definition in - * HTML 4.0. - */ - public String getAxis(); - public void setAxis(String axis); - - /** - * Cell background color. See the bgcolor attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getBgColor(); - public void setBgColor(String bgColor); - - /** - * Alignment character for cells in a column. See the char attribute - * definition in HTML 4.0. - */ - public String getCh(); - public void setCh(String ch); - - /** - * Offset of alignment character. See the charoff attribute definition - * in HTML 4.0. - */ - public String getChOff(); - public void setChOff(String chOff); - - /** - * Number of columns spanned by cell. See the colspan attribute - * definition in HTML 4.0. - */ - public int getColSpan(); - public void setColSpan(int colSpan); - - /** - * List of <code>id</code> attribute values for header cells. See the - * headers attribute definition in HTML 4.0. - */ - public String getHeaders(); - public void setHeaders(String headers); - - /** - * Cell height. See the height attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getHeight(); - public void setHeight(String height); - - /** - * Suppress word wrapping. See the nowrap attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public boolean getNoWrap(); - public void setNoWrap(boolean noWrap); - - /** - * Number of rows spanned by cell. See the rowspan attribute definition - * in HTML 4.0. - */ - public int getRowSpan(); - public void setRowSpan(int rowSpan); - - /** - * Scope covered by header cells. See the scope attribute definition in - * HTML 4.0. - */ - public String getScope(); - public void setScope(String scope); - - /** - * Vertical alignment of data in cell. See the valign attribute - * definition in HTML 4.0. - */ - public String getVAlign(); - public void setVAlign(String vAlign); - - /** - * Cell width. See the width attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getWidth(); - public void setWidth(String width); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLTableColElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLTableColElement.java deleted file mode 100755 index 895ee041e..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLTableColElement.java +++ /dev/null @@ -1,63 +0,0 @@ -/* - * 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.html; - -/** - * Regroups the <code>COL</code> and <code>COLGROUP</code> elements. See the - * COL element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLTableColElement extends HTMLElement { - /** - * Horizontal alignment of cell data in column. See the align attribute - * definition in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - - /** - * Alignment character for cells in a column. See the char attribute - * definition in HTML 4.0. - */ - public String getCh(); - public void setCh(String ch); - - /** - * Offset of alignment character. See the charoff attribute definition - * in HTML 4.0. - */ - public String getChOff(); - 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.0. - */ - public int getSpan(); - public void setSpan(int span); - - /** - * Vertical alignment of cell data in column. See the valign attribute - * definition in HTML 4.0. - */ - public String getVAlign(); - public void setVAlign(String vAlign); - - /** - * Default column width. See the width attribute definition in HTML 4.0. - */ - public String getWidth(); - public void setWidth(String width); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLTableElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLTableElement.java deleted file mode 100755 index 42aa2482e..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLTableElement.java +++ /dev/null @@ -1,189 +0,0 @@ -/* - * 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.html; - -import org.w3c.dom.DOMException; - -/** - * The create* and delete* methods on the table allow authors to construct - * and modify tables. HTML 4.0 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.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLTableElement extends HTMLElement { - /** - * Returns the table's <code>CAPTION</code> , or void if none exists. - */ - public HTMLTableCaptionElement getCaption(); - public void setCaption(HTMLTableCaptionElement caption); - - /** - * Returns the table's <code>THEAD</code> , or <code>null</code> if none - * exists. - */ - public HTMLTableSectionElement getTHead(); - public void setTHead(HTMLTableSectionElement tHead); - - /** - * Returns the table's <code>TFOOT</code> , or <code>null</code> if none - * exists. - */ - public HTMLTableSectionElement getTFoot(); - public void setTFoot(HTMLTableSectionElement tFoot); - - /** - * 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 defined table bodies. - */ - public HTMLCollection getTBodies(); - - /** - * Specifies the table's position with respect to the rest of the - * document. See the align attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - - /** - * Cell background color. See the bgcolor attribute definition in HTML - * 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getBgColor(); - public void setBgColor(String bgColor); - - /** - * The width of the border around the table. See the border attribute - * definition in HTML 4.0. - */ - public String getBorder(); - 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.0. - */ - public String getCellPadding(); - public void setCellPadding(String cellPadding); - - /** - * Specifies the horizontal and vertical separation between cells. See - * the cellspacing attribute definition in HTML 4.0. - */ - public String getCellSpacing(); - public void setCellSpacing(String cellSpacing); - - /** - * Specifies which external table borders to render. See the frame - * attribute definition in HTML 4.0. - */ - public String getFrame(); - public void setFrame(String frame); - - /** - * Specifies which internal table borders to render. See the rules - * attribute definition in HTML 4.0. - */ - public String getRules(); - public void setRules(String rules); - - /** - * Description about the purpose or structure of a table. See the - * summary attribute definition in HTML 4.0. - */ - public String getSummary(); - public void setSummary(String summary); - - /** - * Specifies the desired table width. See the width attribute definition - * in HTML 4.0. - */ - public String getWidth(); - 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 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. Note. A table row cannot be empty - * according to HTML 4.0 Recommendation. - * @param index The row number where to insert a new row. This index - * starts from 0 and is relative to all the rows contained inside the - * table, regardless of section parentage. - * @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 negative. - */ - 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 all the rows contained inside the table, - * regardless of section parentage. - * @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 negative. - */ - public void deleteRow(int index) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLTableRowElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLTableRowElement.java deleted file mode 100755 index a15f06f0a..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLTableRowElement.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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.html; - -import org.w3c.dom.DOMException; - -/** - * A row in a table. See the TR element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLTableRowElement extends HTMLElement { - /** - * The index of this row, relative to the entire table, starting from 0. - * This is in document tree order and not display order. The - * <code>rowIndex</code> does not take into account sections ( - * <code>THEAD</code> , <code>TFOOT</code> , or <code>TBODY</code> ) - * within the table. - */ - 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. - */ - public int getSectionRowIndex(); - - /** - * The collection of cells in this row. - */ - public HTMLCollection getCells(); - - /** - * Horizontal alignment of data within cells of this row. See the align - * attribute definition in HTML 4.0. - */ - public String getAlign(); - public void setAlign(String align); - - /** - * Background color for rows. See the bgcolor attribute definition in - * HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public String getBgColor(); - public void setBgColor(String bgColor); - - /** - * Alignment character for cells in a column. See the char attribute - * definition in HTML 4.0. - */ - public String getCh(); - public void setCh(String ch); - - /** - * Offset of alignment character. See the charoff attribute definition - * in HTML 4.0. - */ - public String getChOff(); - public void setChOff(String chOff); - - /** - * Vertical alignment of data within cells of this row. See the valign - * attribute definition in HTML 4.0. - */ - public String getVAlign(); - public void setVAlign(String vAlign); - - /** - * Insert an empty <code>TD</code> cell into this row. If - * <code>index</code> is 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 negative. - */ - 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. - * @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 - * negative. - */ - public void deleteCell(int index) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLTableSectionElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLTableSectionElement.java deleted file mode 100755 index 99bff3591..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLTableSectionElement.java +++ /dev/null @@ -1,85 +0,0 @@ -/* - * 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.html; - -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/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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(); - public void setAlign(String align); - - /** - * Alignment character for cells in a column. See the char attribute - * definition in HTML 4.0. - */ - public String getCh(); - public void setCh(String ch); - - /** - * Offset of alignment character. See the charoff attribute definition - * in HTML 4.0. - */ - public String getChOff(); - public void setChOff(String chOff); - - /** - * Vertical alignment of data in cells. See the <code>valign</code> - * attribute for HTMLTheadElement for details. - */ - public String getVAlign(); - 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 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 neagative. - */ - public HTMLElement insertRow(int index) - throws DOMException; - - /** - * Delete a row from this section. - * @param index The index of the row to be deleted. 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 negative. - */ - public void deleteRow(int index) - throws DOMException; - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLTextAreaElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLTextAreaElement.java deleted file mode 100755 index b189a968d..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLTextAreaElement.java +++ /dev/null @@ -1,114 +0,0 @@ -/* - * 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.html; - -/** - * Multi-line text field. See the TEXTAREA element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 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. Changing this attribute, however, - * resets the contents of the form control. - */ - public String getDefaultValue(); - 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.0. - */ - public String getAccessKey(); - public void setAccessKey(String accessKey); - - /** - * Width of control (in characters). See the cols attribute definition - * in HTML 4.0. - */ - public int getCols(); - public void setCols(int cols); - - /** - * The control is unavailable in this context. See the disabled - * attribute definition in HTML 4.0. - */ - public boolean getDisabled(); - public void setDisabled(boolean disabled); - - /** - * Form control or object name when submitted with a form. See the name - * attribute definition in HTML 4.0. - */ - public String getName(); - public void setName(String name); - - /** - * This control is read-only. See the readonly attribute definition in - * HTML 4.0. - */ - public boolean getReadOnly(); - public void setReadOnly(boolean readOnly); - - /** - * Number of text rows. See the rows attribute definition in HTML 4.0. - */ - public int getRows(); - public void setRows(int rows); - - /** - * Index that represents the element's position in the tabbing order. See - * the tabindex attribute definition in HTML 4.0. - */ - public int getTabIndex(); - 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(); - 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/external/jaxp/source/org/w3c/dom/html/HTMLTitleElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLTitleElement.java deleted file mode 100755 index 9a2b1ff1d..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLTitleElement.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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.html; - -/** - * The document title. See the TITLE element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLTitleElement extends HTMLElement { - /** - * The specified title as a string. - */ - public String getText(); - public void setText(String text); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/HTMLUListElement.java b/external/jaxp/source/org/w3c/dom/html/HTMLUListElement.java deleted file mode 100755 index dac1789d9..000000000 --- a/external/jaxp/source/org/w3c/dom/html/HTMLUListElement.java +++ /dev/null @@ -1,35 +0,0 @@ -/* - * 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.html; - -/** - * Unordered list. See the UL element definition in HTML 4.0. - * <p>See also the <a href='http://www.w3.org/TR/2000/CR-DOM-Level-2-20000510'>Document Object Model (DOM) Level 2 Specification</a>. - */ -public interface HTMLUListElement extends HTMLElement { - /** - * Reduce spacing between list items. See the compact attribute - * definition in HTML 4.0. This attribute is deprecated in HTML 4.0. - */ - public boolean getCompact(); - public void setCompact(boolean compact); - - /** - * Bullet style. See the type attribute definition in HTML 4.0. This - * attribute is deprecated in HTML 4.0. - */ - public String getType(); - public void setType(String type); - -} - diff --git a/external/jaxp/source/org/w3c/dom/html/package.html b/external/jaxp/source/org/w3c/dom/html/package.html deleted file mode 100755 index f1dca68d2..000000000 --- a/external/jaxp/source/org/w3c/dom/html/package.html +++ /dev/null @@ -1,8 +0,0 @@ -<html><head> -<title>yadda yadda</title> -</head><body> - -<p>Supports the optional "HTML" feature of the -second DOM Level 2 Candidate Recommendation. </p> - -</body></html> diff --git a/external/jaxp/source/org/w3c/dom/package.html b/external/jaxp/source/org/w3c/dom/package.html deleted file mode 100755 index b333acec6..000000000 --- a/external/jaxp/source/org/w3c/dom/package.html +++ /dev/null @@ -1,9 +0,0 @@ -<html><head> -<title>DOM Level 2</title> -</head><body> - -<p>Contains the core and "XML" feature set of the -<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-core-20001113/"> -DOM Level 2</a> Recommendation. </p> - -</body></html> diff --git a/external/jaxp/source/org/w3c/dom/ranges/DocumentRange.java b/external/jaxp/source/org/w3c/dom/ranges/DocumentRange.java deleted file mode 100644 index 6b522670e..000000000 --- a/external/jaxp/source/org/w3c/dom/ranges/DocumentRange.java +++ /dev/null @@ -1,33 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/ranges/Range.java b/external/jaxp/source/org/w3c/dom/ranges/Range.java deleted file mode 100644 index a576b4dd6..000000000 --- a/external/jaxp/source/org/w3c/dom/ranges/Range.java +++ /dev/null @@ -1,416 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/ranges/RangeException.java b/external/jaxp/source/org/w3c/dom/ranges/RangeException.java deleted file mode 100644 index 551008e5d..000000000 --- a/external/jaxp/source/org/w3c/dom/ranges/RangeException.java +++ /dev/null @@ -1,39 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/ranges/package.html b/external/jaxp/source/org/w3c/dom/ranges/package.html deleted file mode 100755 index cdb9bb792..000000000 --- a/external/jaxp/source/org/w3c/dom/ranges/package.html +++ /dev/null @@ -1,10 +0,0 @@ -<html><head> -<title>yadda yadda</title> -</head><body> - -<p>Supports the optional -<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/" ->"Range"</a> feature of the -DOM Level 2 Recommendation. </p> - -</body></html> diff --git a/external/jaxp/source/org/w3c/dom/stylesheets/DocumentStyle.java b/external/jaxp/source/org/w3c/dom/stylesheets/DocumentStyle.java deleted file mode 100755 index 2270505e7..000000000 --- a/external/jaxp/source/org/w3c/dom/stylesheets/DocumentStyle.java +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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 ). - */ - public StyleSheetList getStyleSheets(); - -} diff --git a/external/jaxp/source/org/w3c/dom/stylesheets/LinkStyle.java b/external/jaxp/source/org/w3c/dom/stylesheets/LinkStyle.java deleted file mode 100755 index 481bd19db..000000000 --- a/external/jaxp/source/org/w3c/dom/stylesheets/LinkStyle.java +++ /dev/null @@ -1,31 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/stylesheets/MediaList.java b/external/jaxp/source/org/w3c/dom/stylesheets/MediaList.java deleted file mode 100755 index 3b10ed213..000000000 --- a/external/jaxp/source/org/w3c/dom/stylesheets/MediaList.java +++ /dev/null @@ -1,90 +0,0 @@ -/* - * 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. - * @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 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/external/jaxp/source/org/w3c/dom/stylesheets/StyleSheet.java b/external/jaxp/source/org/w3c/dom/stylesheets/StyleSheet.java deleted file mode 100755 index 3da430769..000000000 --- a/external/jaxp/source/org/w3c/dom/stylesheets/StyleSheet.java +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/stylesheets/StyleSheetList.java b/external/jaxp/source/org/w3c/dom/stylesheets/StyleSheetList.java deleted file mode 100755 index b8f9a4423..000000000 --- a/external/jaxp/source/org/w3c/dom/stylesheets/StyleSheetList.java +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/stylesheets/package.html b/external/jaxp/source/org/w3c/dom/stylesheets/package.html deleted file mode 100755 index 8a50000de..000000000 --- a/external/jaxp/source/org/w3c/dom/stylesheets/package.html +++ /dev/null @@ -1,10 +0,0 @@ -<html><head> -<title>yadda yadda</title> -</head><body> - -<p>Supports optional -<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Style-20001113/"> -"StyleSheets"</a> features (see the sibling -CSS package) of the DOM Level 2 Recommendation. </p> - -</body></html> diff --git a/external/jaxp/source/org/w3c/dom/traversal/DocumentTraversal.java b/external/jaxp/source/org/w3c/dom/traversal/DocumentTraversal.java deleted file mode 100755 index 103cde0de..000000000 --- a/external/jaxp/source/org/w3c/dom/traversal/DocumentTraversal.java +++ /dev/null @@ -1,92 +0,0 @@ -/* - * 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>TreeWalker</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/external/jaxp/source/org/w3c/dom/traversal/NodeFilter.java b/external/jaxp/source/org/w3c/dom/traversal/NodeFilter.java deleted file mode 100755 index b9beac476..000000000 --- a/external/jaxp/source/org/w3c/dom/traversal/NodeFilter.java +++ /dev/null @@ -1,144 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/traversal/NodeIterator.java b/external/jaxp/source/org/w3c/dom/traversal/NodeIterator.java deleted file mode 100755 index d1f0d0839..000000000 --- a/external/jaxp/source/org/w3c/dom/traversal/NodeIterator.java +++ /dev/null @@ -1,109 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/traversal/TreeWalker.java b/external/jaxp/source/org/w3c/dom/traversal/TreeWalker.java deleted file mode 100755 index e90da0663..000000000 --- a/external/jaxp/source/org/w3c/dom/traversal/TreeWalker.java +++ /dev/null @@ -1,182 +0,0 @@ -/* - * 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. - * @exception DOMException - * NOT_SUPPORTED_ERR: Raised if an attempt is made to set - * <code>currentNode</code> to <code>null</code>. - */ - 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/external/jaxp/source/org/w3c/dom/traversal/package.html b/external/jaxp/source/org/w3c/dom/traversal/package.html deleted file mode 100755 index f3caf0697..000000000 --- a/external/jaxp/source/org/w3c/dom/traversal/package.html +++ /dev/null @@ -1,10 +0,0 @@ -<html><head> -<title>yadda yadda</title> -</head><body> - -<p>Supports the optional -<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Traversal-Range-20001113/" ->"Traversal"</a> feature of the -DOM Level 2 Recommendation. </p> - -</body></html> diff --git a/external/jaxp/source/org/w3c/dom/views/AbstractView.java b/external/jaxp/source/org/w3c/dom/views/AbstractView.java deleted file mode 100755 index 97e8f0e2b..000000000 --- a/external/jaxp/source/org/w3c/dom/views/AbstractView.java +++ /dev/null @@ -1,27 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/views/DocumentView.java b/external/jaxp/source/org/w3c/dom/views/DocumentView.java deleted file mode 100755 index 2cb9eebb8..000000000 --- a/external/jaxp/source/org/w3c/dom/views/DocumentView.java +++ /dev/null @@ -1,30 +0,0 @@ -/* - * 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/external/jaxp/source/org/w3c/dom/views/package.html b/external/jaxp/source/org/w3c/dom/views/package.html deleted file mode 100755 index 2582247ee..000000000 --- a/external/jaxp/source/org/w3c/dom/views/package.html +++ /dev/null @@ -1,10 +0,0 @@ -<html><head> -<title>yadda yadda</title> -</head><body> - -<p>Supports the optional -<a href="http://www.w3.org/TR/2000/REC-DOM-Level-2-Views-20001113/" ->"Views"</a> feature of the -DOM Level 2 Recommendation. </p> - -</body></html> diff --git a/external/jaxp/source/org/xml/sax/AttributeList.java b/external/jaxp/source/org/xml/sax/AttributeList.java deleted file mode 100755 index 0d6405759..000000000 --- a/external/jaxp/source/org/xml/sax/AttributeList.java +++ /dev/null @@ -1,192 +0,0 @@ -// SAX Attribute List Interface. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -/** - * Interface for an element's attribute specifications. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This is the original SAX1 interface for reporting an element's - * attributes. Unlike the new {@link org.xml.sax.Attributes Attributes} - * interface, it does not support Namespace-related information.</p> - * - * <p>When an attribute list is supplied as part of a - * {@link org.xml.sax.DocumentHandler#startElement startElement} - * event, the list will return valid results only during the - * scope of the event; once the event handler returns control - * to the parser, the attribute list is invalid. To save a - * persistent copy of the attribute list, use the SAX1 - * {@link org.xml.sax.helpers.AttributeListImpl AttributeListImpl} - * helper class.</p> - * - * <p>An attribute list includes only attributes that have been - * specified or defaulted: #IMPLIED attributes will not be included.</p> - * - * <p>There are two ways for the SAX application to obtain information - * from the AttributeList. First, it can iterate through the entire - * list:</p> - * - * <pre> - * public void startElement (String name, AttributeList atts) { - * for (int i = 0; i < atts.getLength(); i++) { - * String name = atts.getName(i); - * String type = atts.getType(i); - * String value = atts.getValue(i); - * [...] - * } - * } - * </pre> - * - * <p>(Note that the result of getLength() will be zero if there - * are no attributes.) - * - * <p>As an alternative, the application can request the value or - * type of specific attributes:</p> - * - * <pre> - * public void startElement (String name, AttributeList atts) { - * String identifier = atts.getValue("id"); - * String label = atts.getValue("label"); - * [...] - * } - * </pre> - * - * @deprecated This interface has been replaced by the SAX2 - * {@link org.xml.sax.Attributes Attributes} - * interface, which includes Namespace support. - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.DocumentHandler#startElement startElement - * @see org.xml.sax.helpers.AttributeListImpl AttributeListImpl - */ -public interface AttributeList { - - - //////////////////////////////////////////////////////////////////// - // Iteration methods. - //////////////////////////////////////////////////////////////////// - - - /** - * Return the number of attributes in this list. - * - * <p>The SAX parser may provide attributes in any - * arbitrary order, regardless of the order in which they were - * declared or specified. The number of attributes may be - * zero.</p> - * - * @return The number of attributes in the list. - */ - public abstract int getLength (); - - - /** - * Return the name of an attribute in this list (by position). - * - * <p>The names must be unique: the SAX parser shall not include the - * same attribute twice. Attributes without values (those declared - * #IMPLIED without a value specified in the start tag) will be - * omitted from the list.</p> - * - * <p>If the attribute name has a namespace prefix, the prefix - * will still be attached.</p> - * - * @param i The index of the attribute in the list (starting at 0). - * @return The name of the indexed attribute, or null - * if the index is out of range. - * @see #getLength - */ - public abstract String getName (int i); - - - /** - * Return the type of an attribute in the list (by position). - * - * <p>The attribute type is one of the strings "CDATA", "ID", - * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES", - * or "NOTATION" (always in upper case).</p> - * - * <p>If the parser has not read a declaration for the attribute, - * or if the parser does not report attribute types, then it must - * return the value "CDATA" as stated in the XML 1.0 Recommentation - * (clause 3.3.3, "Attribute-Value Normalization").</p> - * - * <p>For an enumerated attribute that is not a notation, the - * parser will report the type as "NMTOKEN".</p> - * - * @param i The index of the attribute in the list (starting at 0). - * @return The attribute type as a string, or - * null if the index is out of range. - * @see #getLength - * @see #getType(java.lang.String) - */ - public abstract String getType (int i); - - - /** - * Return the value of an attribute in the list (by position). - * - * <p>If the attribute value is a list of tokens (IDREFS, - * ENTITIES, or NMTOKENS), the tokens will be concatenated - * into a single string separated by whitespace.</p> - * - * @param i The index of the attribute in the list (starting at 0). - * @return The attribute value as a string, or - * null if the index is out of range. - * @see #getLength - * @see #getValue(java.lang.String) - */ - public abstract String getValue (int i); - - - - //////////////////////////////////////////////////////////////////// - // Lookup methods. - //////////////////////////////////////////////////////////////////// - - - /** - * Return the type of an attribute in the list (by name). - * - * <p>The return value is the same as the return value for - * getType(int).</p> - * - * <p>If the attribute name has a namespace prefix in the document, - * the application must include the prefix here.</p> - * - * @param name The name of the attribute. - * @return The attribute type as a string, or null if no - * such attribute exists. - * @see #getType(int) - */ - public abstract String getType (String name); - - - /** - * Return the value of an attribute in the list (by name). - * - * <p>The return value is the same as the return value for - * getValue(int).</p> - * - * <p>If the attribute name has a namespace prefix in the document, - * the application must include the prefix here.</p> - * - * @param i The index of the attribute in the list. - * @return The attribute value as a string, or null if - * no such attribute exists. - * @see #getValue(int) - */ - public abstract String getValue (String name); - -} - -// end of AttributeList.java diff --git a/external/jaxp/source/org/xml/sax/Attributes.java b/external/jaxp/source/org/xml/sax/Attributes.java deleted file mode 100755 index 7affd992a..000000000 --- a/external/jaxp/source/org/xml/sax/Attributes.java +++ /dev/null @@ -1,249 +0,0 @@ -// Attributes.java - attribute list with Namespace support -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the public domain. - -package org.xml.sax; - - -/** - * Interface for a list of XML attributes. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This interface allows access to a list of attributes in - * three different ways:</p> - * - * <ol> - * <li>by attribute index;</li> - * <li>by Namespace-qualified name; or</li> - * <li>by qualified (prefixed) name.</li> - * </ol> - * - * <p>The list will not contain attributes that were declared - * #IMPLIED but not specified in the start tag. It will also not - * contain attributes used as Namespace declarations (xmlns*) unless - * the <code>http://xml.org/sax/features/namespace-prefixes</code> - * feature is set to <var>true</var> (it is <var>false</var> by - * default). - * Because SAX2 conforms to the "Namespaces in XML" specification, - * it does not give namespace declaration attributes a namespace URI. - * Some other W3C specifications are in conflict with that, expecting - * these declarations to be in a namespace. - * Handler code may need to resolve that conflict. - * </p> - * - * <p>If the namespace-prefixes feature (see above) is <var>false</var>, - * access by qualified name may not be available; if the - * <code>http://xml.org/sax/features/namespaces</code> - * feature is <var>false</var>, access by Namespace-qualified names - * may not be available.</p> - * - * <p>This interface replaces the now-deprecated SAX1 {@link - * org.xml.sax.AttributeList AttributeList} interface, which does not - * contain Namespace support. In addition to Namespace support, it - * adds the <var>getIndex</var> methods (below).</p> - * - * <p>The order of attributes in the list is unspecified, and will - * vary from implementation to implementation.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.helpers.AttributesImpl - * @see org.xml.sax.ext.DeclHandler#attributeDecl - */ -public interface Attributes -{ - - - //////////////////////////////////////////////////////////////////// - // Indexed access. - //////////////////////////////////////////////////////////////////// - - - /** - * Return the number of attributes in the list. - * - * <p>Once you know the number of attributes, you can iterate - * through the list.</p> - * - * @return The number of attributes in the list. - * @see #getURI(int) - * @see #getLocalName(int) - * @see #getQName(int) - * @see #getType(int) - * @see #getValue(int) - */ - public abstract int getLength (); - - - /** - * Look up an attribute's Namespace URI by index. - * - * @param index The attribute index (zero-based). - * @return The Namespace URI, or the empty string if none - * is available, or null if the index is out of - * range. - * @see #getLength - */ - public abstract String getURI (int index); - - - /** - * Look up an attribute's local name by index. - * - * @param index The attribute index (zero-based). - * @return The local name, or the empty string if Namespace - * processing is not being performed, or null - * if the index is out of range. - * @see #getLength - */ - public abstract String getLocalName (int index); - - - /** - * Look up an attribute's XML 1.0 qualified name by index. - * - * @param index The attribute index (zero-based). - * @return The XML 1.0 qualified name, or the empty string - * if none is available, or null if the index - * is out of range. - * @see #getLength - */ - public abstract String getQName (int index); - - - /** - * Look up an attribute's type by index. - * - * <p>The attribute type is one of the strings "CDATA", "ID", - * "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", "ENTITIES", - * or "NOTATION" (always in upper case).</p> - * - * <p>If the parser has not read a declaration for the attribute, - * or if the parser does not report attribute types, then it must - * return the value "CDATA" as stated in the XML 1.0 Recommentation - * (clause 3.3.3, "Attribute-Value Normalization").</p> - * - * <p>For an enumerated attribute that is not a notation, the - * parser will report the type as "NMTOKEN".</p> - * - * @param index The attribute index (zero-based). - * @return The attribute's type as a string, or null if the - * index is out of range. - * @see #getLength - */ - public abstract String getType (int index); - - - /** - * Look up an attribute's value by index. - * - * <p>If the attribute value is a list of tokens (IDREFS, - * ENTITIES, or NMTOKENS), the tokens will be concatenated - * into a single string with each token separated by a - * single space.</p> - * - * @param index The attribute index (zero-based). - * @return The attribute's value as a string, or null if the - * index is out of range. - * @see #getLength - */ - public abstract String getValue (int index); - - - - //////////////////////////////////////////////////////////////////// - // Name-based query. - //////////////////////////////////////////////////////////////////// - - - /** - * Look up the index of an attribute by Namespace name. - * - * @param uri The Namespace URI, or the empty string if - * the name has no Namespace URI. - * @param localName The attribute's local name. - * @return The index of the attribute, or -1 if it does not - * appear in the list. - */ - public int getIndex (String uri, String localName); - - - /** - * Look up the index of an attribute by XML 1.0 qualified name. - * - * @param qName The qualified (prefixed) name. - * @return The index of the attribute, or -1 if it does not - * appear in the list. - */ - public int getIndex (String qName); - - - /** - * Look up an attribute's type by Namespace name. - * - * <p>See {@link #getType(int) getType(int)} for a description - * of the possible types.</p> - * - * @param uri The Namespace URI, or the empty String if the - * name has no Namespace URI. - * @param localName The local name of the attribute. - * @return The attribute type as a string, or null if the - * attribute is not in the list or if Namespace - * processing is not being performed. - */ - public abstract String getType (String uri, String localName); - - - /** - * Look up an attribute's type by XML 1.0 qualified name. - * - * <p>See {@link #getType(int) getType(int)} for a description - * of the possible types.</p> - * - * @param qName The XML 1.0 qualified name. - * @return The attribute type as a string, or null if the - * attribute is not in the list or if qualified names - * are not available. - */ - public abstract String getType (String qName); - - - /** - * Look up an attribute's value by Namespace name. - * - * <p>See {@link #getValue(int) getValue(int)} for a description - * of the possible values.</p> - * - * @param uri The Namespace URI, or the empty String if the - * name has no Namespace URI. - * @param localName The local name of the attribute. - * @return The attribute value as a string, or null if the - * attribute is not in the list. - */ - public abstract String getValue (String uri, String localName); - - - /** - * Look up an attribute's value by XML 1.0 qualified name. - * - * <p>See {@link #getValue(int) getValue(int)} for a description - * of the possible values.</p> - * - * @param qName The XML 1.0 qualified name. - * @return The attribute value as a string, or null if the - * attribute is not in the list or if qualified names - * are not available. - */ - public abstract String getValue (String qName); - -} - -// end of Attributes.java diff --git a/external/jaxp/source/org/xml/sax/ContentHandler.java b/external/jaxp/source/org/xml/sax/ContentHandler.java deleted file mode 100755 index e1b68ae02..000000000 --- a/external/jaxp/source/org/xml/sax/ContentHandler.java +++ /dev/null @@ -1,406 +0,0 @@ -// ContentHandler.java - handle main document content. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the public domain. - -package org.xml.sax; - - -/** - * Receive notification of the logical content of a document. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This is the main interface that most SAX applications - * implement: if the application needs to be informed of basic parsing - * events, it implements this interface and registers an instance with - * the SAX parser using the {@link org.xml.sax.XMLReader#setContentHandler - * setContentHandler} method. The parser uses the instance to report - * basic document-related events like the start and end of elements - * and character data.</p> - * - * <p>The order of events in this interface is very important, and - * mirrors the order of information in the document itself. For - * example, all of an element's content (character data, processing - * instructions, and/or subelements) will appear, in order, between - * the startElement event and the corresponding endElement event.</p> - * - * <p>This interface is similar to the now-deprecated SAX 1.0 - * DocumentHandler interface, but it adds support for Namespaces - * and for reporting skipped entities (in non-validating XML - * processors).</p> - * - * <p>Implementors should note that there is also a Java class - * {@link java.net.ContentHandler ContentHandler} in the java.net - * package; that means that it's probably a bad idea to do</p> - * - * <blockquote> - * import java.net.*; - * import org.xml.sax.*; - * </blockquote> - * - * <p>In fact, "import ...*" is usually a sign of sloppy programming - * anyway, so the user should consider this a feature rather than a - * bug.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.XMLReader - * @see org.xml.sax.DTDHandler - * @see org.xml.sax.ErrorHandler - */ -public interface ContentHandler -{ - - /** - * Receive an object for locating the origin of SAX document events. - * - * <p>SAX parsers are strongly encouraged (though not absolutely - * required) to supply a locator: if it does so, it must supply - * the locator to the application by invoking this method before - * invoking any of the other methods in the ContentHandler - * interface.</p> - * - * <p>The locator allows the application to determine the end - * position of any document-related event, even if the parser is - * not reporting an error. Typically, the application will - * use this information for reporting its own errors (such as - * character content that does not match an application's - * business rules). The information returned by the locator - * is probably not sufficient for use with a search engine.</p> - * - * <p>Note that the locator will return correct information only - * during the invocation of the events in this interface. The - * application should not attempt to use it at any other time.</p> - * - * @param locator An object that can return the location of - * any SAX document event. - * @see org.xml.sax.Locator - */ - public void setDocumentLocator (Locator locator); - - - /** - * Receive notification of the beginning of a document. - * - * <p>The SAX parser will invoke this method only once, before any - * other event callbacks (except for {@link #setDocumentLocator - * setDocumentLocator}).</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #endDocument - */ - public void startDocument () - throws SAXException; - - - /** - * Receive notification of the end of a document. - * - * <p>The SAX parser will invoke this method only once, and it will - * be the last method invoked during the parse. The parser shall - * not invoke this method until it has either abandoned parsing - * (because of an unrecoverable error) or reached the end of - * input.</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #startDocument - */ - public void endDocument() - throws SAXException; - - - /** - * Begin the scope of a prefix-URI Namespace mapping. - * - * <p>The information from this event is not necessary for - * normal Namespace processing: the SAX XML reader will - * automatically replace prefixes for element and attribute - * names when the <code>http://xml.org/sax/features/namespaces</code> - * feature is <var>true</var> (the default).</p> - * - * <p>There are cases, however, when applications need to - * use prefixes in character data or in attribute values, - * where they cannot safely be expanded automatically; the - * start/endPrefixMapping event supplies the information - * to the application to expand prefixes in those contexts - * itself, if necessary.</p> - * - * <p>Note that start/endPrefixMapping events are not - * guaranteed to be properly nested relative to each other: - * all startPrefixMapping events will occur immediately before the - * corresponding {@link #startElement startElement} event, - * and all {@link #endPrefixMapping endPrefixMapping} - * events will occur immediately after the corresponding - * {@link #endElement endElement} event, - * but their order is not otherwise - * guaranteed.</p> - * - * <p>There should never be start/endPrefixMapping events for the - * "xml" prefix, since it is predeclared and immutable.</p> - * - * @param prefix The Namespace prefix being declared. - * An empty string is used for the default element namespace, - * which has no prefix. - * @param uri The Namespace URI the prefix is mapped to. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - * @see #endPrefixMapping - * @see #startElement - */ - public void startPrefixMapping (String prefix, String uri) - throws SAXException; - - - /** - * End the scope of a prefix-URI mapping. - * - * <p>See {@link #startPrefixMapping startPrefixMapping} for - * details. These events will always occur immediately after the - * corresponding {@link #endElement endElement} event, but the order of - * {@link #endPrefixMapping endPrefixMapping} events is not otherwise - * guaranteed.</p> - * - * @param prefix The prefix that was being mapped. - * This is the empty string when a default mapping scope ends. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - * @see #startPrefixMapping - * @see #endElement - */ - public void endPrefixMapping (String prefix) - throws SAXException; - - - /** - * Receive notification of the beginning of an element. - * - * <p>The Parser will invoke this method at the beginning of every - * element in the XML document; there will be a corresponding - * {@link #endElement endElement} event for every startElement event - * (even when the element is empty). All of the element's content will be - * reported, in order, before the corresponding endElement - * event.</p> - * - * <p>This event allows up to three name components for each - * element:</p> - * - * <ol> - * <li>the Namespace URI;</li> - * <li>the local name; and</li> - * <li>the qualified (prefixed) name.</li> - * </ol> - * - * <p>Any or all of these may be provided, depending on the - * values of the <var>http://xml.org/sax/features/namespaces</var> - * and the <var>http://xml.org/sax/features/namespace-prefixes</var> - * properties:</p> - * - * <ul> - * <li>the Namespace URI and local name are required when - * the namespaces property is <var>true</var> (the default), and are - * optional when the namespaces property is <var>false</var> (if one is - * specified, both must be);</li> - * <li>the qualified name is required when the namespace-prefixes property - * is <var>true</var>, and is optional when the namespace-prefixes property - * is <var>false</var> (the default).</li> - * </ul> - * - * <p>Note that the attribute list provided will contain only - * attributes with explicit values (specified or defaulted): - * #IMPLIED attributes will be omitted. The attribute list - * will contain attributes used for Namespace declarations - * (xmlns* attributes) only if the - * <code>http://xml.org/sax/features/namespace-prefixes</code> - * property is true (it is false by default, and support for a - * true value is optional).</p> - * - * <p>Like {@link #characters characters()}, attribute values may have - * characters that need more than one <code>char</code> value. </p> - * - * @param uri The Namespace URI, or the empty string if the - * element has no Namespace URI or if Namespace - * processing is not being performed. - * @param localName The local name (without prefix), or the - * empty string if Namespace processing is not being - * performed. - * @param qName The qualified name (with prefix), or the - * empty string if qualified names are not available. - * @param atts The attributes attached to the element. If - * there are no attributes, it shall be an empty - * Attributes object. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #endElement - * @see org.xml.sax.Attributes - */ - public void startElement (String uri, String localName, - String qName, Attributes atts) - throws SAXException; - - - /** - * Receive notification of the end of an element. - * - * <p>The SAX parser will invoke this method at the end of every - * element in the XML document; there will be a corresponding - * {@link #startElement startElement} event for every endElement - * event (even when the element is empty).</p> - * - * <p>For information on the names, see startElement.</p> - * - * @param uri The Namespace URI, or the empty string if the - * element has no Namespace URI or if Namespace - * processing is not being performed. - * @param localName The local name (without prefix), or the - * empty string if Namespace processing is not being - * performed. - * @param qName The qualified XML 1.0 name (with prefix), or the - * empty string if qualified names are not available. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - */ - public void endElement (String uri, String localName, - String qName) - throws SAXException; - - - /** - * Receive notification of character data. - * - * <p>The Parser will call this method to report each chunk of - * character data. SAX parsers may return all contiguous character - * data in a single chunk, or they may split it into several - * chunks; however, all of the characters in any single event - * must come from the same external entity so that the Locator - * provides useful information.</p> - * - * <p>The application must not attempt to read from the array - * outside of the specified range.</p> - * - * <p>Individual characters may consist of more than one Java - * <code>char</code> value. There are two important cases where this - * happens, because characters can't be represented in just sixteen bits. - * In one case, characters are represented in a <em>Surrogate Pair</em>, - * using two special Unicode values. Such characters are in the so-called - * "Astral Planes", with a code point above U+FFFF. A second case involves - * composite characters, such as a base character combining with one or - * more accent characters. </p> - * - * <p> Your code should not assume that algorithms using - * <code>char</code>-at-a-time idioms will be working in character - * units; in some cases they will split characters. This is relevant - * wherever XML permits arbitrary characters, such as attribute values, - * processing instruction data, and comments as well as in data reported - * from this method. It's also generally relevant whenever Java code - * manipulates internationalized text; the issue isn't unique to XML.</p> - * - * <p>Note that some parsers will report whitespace in element - * content using the {@link #ignorableWhitespace ignorableWhitespace} - * method rather than this one (validating parsers <em>must</em> - * do so).</p> - * - * @param ch The characters from the XML document. - * @param start The start position in the array. - * @param length The number of characters to read from the array. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #ignorableWhitespace - * @see org.xml.sax.Locator - */ - public void characters (char ch[], int start, int length) - throws SAXException; - - - /** - * Receive notification of ignorable whitespace in element content. - * - * <p>Validating Parsers must use this method to report each chunk - * of whitespace in element content (see the W3C XML 1.0 recommendation, - * section 2.10): non-validating parsers may also use this method - * if they are capable of parsing and using content models.</p> - * - * <p>SAX parsers may return all contiguous whitespace in a single - * chunk, or they may split it into several chunks; however, all of - * the characters in any single event must come from the same - * external entity, so that the Locator provides useful - * information.</p> - * - * <p>The application must not attempt to read from the array - * outside of the specified range.</p> - * - * @param ch The characters from the XML document. - * @param start The start position in the array. - * @param length The number of characters to read from the array. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #characters - */ - public void ignorableWhitespace (char ch[], int start, int length) - throws SAXException; - - - /** - * Receive notification of a processing instruction. - * - * <p>The Parser will invoke this method once for each processing - * instruction found: note that processing instructions may occur - * before or after the main document element.</p> - * - * <p>A SAX parser must never report an XML declaration (XML 1.0, - * section 2.8) or a text declaration (XML 1.0, section 4.3.1) - * using this method.</p> - * - * <p>Like {@link #characters characters()}, processing instruction - * data may have characters that need more than one <code>char</code> - * value. </p> - * - * @param target The processing instruction target. - * @param data The processing instruction data, or null if - * none was supplied. The data does not include any - * whitespace separating it from the target. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - */ - public void processingInstruction (String target, String data) - throws SAXException; - - - /** - * Receive notification of a skipped entity. - * This is not called for entity references within markup constructs - * such as element start tags or markup declarations. (The XML - * recommendation requires reporting skipped external entities. - * SAX also reports internal entity expansion/non-expansion, except - * within markup constructs.) - * - * <p>The Parser will invoke this method each time the entity is - * skipped. Non-validating processors may skip entities if they - * have not seen the declarations (because, for example, the - * entity was declared in an external DTD subset). All processors - * may skip external entities, depending on the values of the - * <code>http://xml.org/sax/features/external-general-entities</code> - * and the - * <code>http://xml.org/sax/features/external-parameter-entities</code> - * properties.</p> - * - * @param name The name of the skipped entity. If it is a - * parameter entity, the name will begin with '%', and if - * it is the external DTD subset, it will be the string - * "[dtd]". - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - */ - public void skippedEntity (String name) - throws SAXException; -} - -// end of ContentHandler.java diff --git a/external/jaxp/source/org/xml/sax/DTDHandler.java b/external/jaxp/source/org/xml/sax/DTDHandler.java deleted file mode 100755 index 9c95e9bcf..000000000 --- a/external/jaxp/source/org/xml/sax/DTDHandler.java +++ /dev/null @@ -1,116 +0,0 @@ -// SAX DTD handler. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -/** - * Receive notification of basic DTD-related events. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>If a SAX application needs information about notations and - * unparsed entities, then the application implements this - * interface and registers an instance with the SAX parser using - * the parser's setDTDHandler method. The parser uses the - * instance to report notation and unparsed entity declarations to - * the application.</p> - * - * <p>Note that this interface includes only those DTD events that - * the XML recommendation <em>requires</em> processors to report: - * notation and unparsed entity declarations.</p> - * - * <p>The SAX parser may report these events in any order, regardless - * of the order in which the notations and unparsed entities were - * declared; however, all DTD events must be reported after the - * document handler's startDocument event, and before the first - * startElement event. - * (If the {@link org.xml.sax.ext.LexicalHandler LexicalHandler} is - * used, these events must also be reported before the endDTD event.) - * </p> - * - * <p>It is up to the application to store the information for - * future use (perhaps in a hash table or object tree). - * If the application encounters attributes of type "NOTATION", - * "ENTITY", or "ENTITIES", it can use the information that it - * obtained through this interface to find the entity and/or - * notation corresponding with the attribute value.</p> - * - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.XMLReader#setDTDHandler - */ -public interface DTDHandler { - - - /** - * Receive notification of a notation declaration event. - * - * <p>It is up to the application to record the notation for later - * reference, if necessary; - * notations may appear as attribute values and in unparsed entity - * declarations, and are sometime used with processing instruction - * target names.</p> - * - * <p>At least one of publicId and systemId must be non-null. - * If a system identifier is present, and it is a URL, the SAX - * parser must resolve it fully before passing it to the - * application through this event.</p> - * - * <p>There is no guarantee that the notation declaration will be - * reported before any unparsed entities that use it.</p> - * - * @param name The notation name. - * @param publicId The notation's public identifier, or null if - * none was given. - * @param systemId The notation's system identifier, or null if - * none was given. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #unparsedEntityDecl - * @see org.xml.sax.Attributes - */ - public abstract void notationDecl (String name, - String publicId, - String systemId) - throws SAXException; - - - /** - * Receive notification of an unparsed entity declaration event. - * - * <p>Note that the notation name corresponds to a notation - * reported by the {@link #notationDecl notationDecl} event. - * It is up to the application to record the entity for later - * reference, if necessary; - * unparsed entities may appear as attribute values. - * </p> - * - * <p>If the system identifier is a URL, the parser must resolve it - * fully before passing it to the application.</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @param name The unparsed entity's name. - * @param publicId The entity's public identifier, or null if none - * was given. - * @param systemId The entity's system identifier. - * @param notationName The name of the associated notation. - * @see #notationDecl - * @see org.xml.sax.Attributes - */ - public abstract void unparsedEntityDecl (String name, - String publicId, - String systemId, - String notationName) - throws SAXException; - -} - -// end of DTDHandler.java diff --git a/external/jaxp/source/org/xml/sax/DocumentHandler.java b/external/jaxp/source/org/xml/sax/DocumentHandler.java deleted file mode 100755 index 7d925a260..000000000 --- a/external/jaxp/source/org/xml/sax/DocumentHandler.java +++ /dev/null @@ -1,231 +0,0 @@ -// SAX document handler. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -/** - * Receive notification of general document events. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This was the main event-handling interface for SAX1; in - * SAX2, it has been replaced by {@link org.xml.sax.ContentHandler - * ContentHandler}, which provides Namespace support and reporting - * of skipped entities. This interface is included in SAX2 only - * to support legacy SAX1 applications.</p> - * - * <p>The order of events in this interface is very important, and - * mirrors the order of information in the document itself. For - * example, all of an element's content (character data, processing - * instructions, and/or subelements) will appear, in order, between - * the startElement event and the corresponding endElement event.</p> - * - * <p>Application writers who do not want to implement the entire - * interface can derive a class from HandlerBase, which implements - * the default functionality; parser writers can instantiate - * HandlerBase to obtain a default handler. The application can find - * the location of any document event using the Locator interface - * supplied by the Parser through the setDocumentLocator method.</p> - * - * @deprecated This interface has been replaced by the SAX2 - * {@link org.xml.sax.ContentHandler ContentHandler} - * interface, which includes Namespace support. - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.Parser#setDocumentHandler - * @see org.xml.sax.Locator - * @see org.xml.sax.HandlerBase - */ -public interface DocumentHandler { - - - /** - * Receive an object for locating the origin of SAX document events. - * - * <p>SAX parsers are strongly encouraged (though not absolutely - * required) to supply a locator: if it does so, it must supply - * the locator to the application by invoking this method before - * invoking any of the other methods in the DocumentHandler - * interface.</p> - * - * <p>The locator allows the application to determine the end - * position of any document-related event, even if the parser is - * not reporting an error. Typically, the application will - * use this information for reporting its own errors (such as - * character content that does not match an application's - * business rules). The information returned by the locator - * is probably not sufficient for use with a search engine.</p> - * - * <p>Note that the locator will return correct information only - * during the invocation of the events in this interface. The - * application should not attempt to use it at any other time.</p> - * - * @param locator An object that can return the location of - * any SAX document event. - * @see org.xml.sax.Locator - */ - public abstract void setDocumentLocator (Locator locator); - - - /** - * Receive notification of the beginning of a document. - * - * <p>The SAX parser will invoke this method only once, before any - * other methods in this interface or in DTDHandler (except for - * setDocumentLocator).</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - */ - public abstract void startDocument () - throws SAXException; - - - /** - * Receive notification of the end of a document. - * - * <p>The SAX parser will invoke this method only once, and it will - * be the last method invoked during the parse. The parser shall - * not invoke this method until it has either abandoned parsing - * (because of an unrecoverable error) or reached the end of - * input.</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - */ - public abstract void endDocument () - throws SAXException; - - - /** - * Receive notification of the beginning of an element. - * - * <p>The Parser will invoke this method at the beginning of every - * element in the XML document; there will be a corresponding - * endElement() event for every startElement() event (even when the - * element is empty). All of the element's content will be - * reported, in order, before the corresponding endElement() - * event.</p> - * - * <p>If the element name has a namespace prefix, the prefix will - * still be attached. Note that the attribute list provided will - * contain only attributes with explicit values (specified or - * defaulted): #IMPLIED attributes will be omitted.</p> - * - * @param name The element type name. - * @param atts The attributes attached to the element, if any. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #endElement - * @see org.xml.sax.AttributeList - */ - public abstract void startElement (String name, AttributeList atts) - throws SAXException; - - - /** - * Receive notification of the end of an element. - * - * <p>The SAX parser will invoke this method at the end of every - * element in the XML document; there will be a corresponding - * startElement() event for every endElement() event (even when the - * element is empty).</p> - * - * <p>If the element name has a namespace prefix, the prefix will - * still be attached to the name.</p> - * - * @param name The element type name - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - */ - public abstract void endElement (String name) - throws SAXException; - - - /** - * Receive notification of character data. - * - * <p>The Parser will call this method to report each chunk of - * character data. SAX parsers may return all contiguous character - * data in a single chunk, or they may split it into several - * chunks; however, all of the characters in any single event - * must come from the same external entity, so that the Locator - * provides useful information.</p> - * - * <p>The application must not attempt to read from the array - * outside of the specified range.</p> - * - * <p>Note that some parsers will report whitespace using the - * ignorableWhitespace() method rather than this one (validating - * parsers must do so).</p> - * - * @param ch The characters from the XML document. - * @param start The start position in the array. - * @param length The number of characters to read from the array. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #ignorableWhitespace - * @see org.xml.sax.Locator - */ - public abstract void characters (char ch[], int start, int length) - throws SAXException; - - - /** - * Receive notification of ignorable whitespace in element content. - * - * <p>Validating Parsers must use this method to report each chunk - * of ignorable whitespace (see the W3C XML 1.0 recommendation, - * section 2.10): non-validating parsers may also use this method - * if they are capable of parsing and using content models.</p> - * - * <p>SAX parsers may return all contiguous whitespace in a single - * chunk, or they may split it into several chunks; however, all of - * the characters in any single event must come from the same - * external entity, so that the Locator provides useful - * information.</p> - * - * <p>The application must not attempt to read from the array - * outside of the specified range.</p> - * - * @param ch The characters from the XML document. - * @param start The start position in the array. - * @param length The number of characters to read from the array. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see #characters - */ - public abstract void ignorableWhitespace (char ch[], int start, int length) - throws SAXException; - - - /** - * Receive notification of a processing instruction. - * - * <p>The Parser will invoke this method once for each processing - * instruction found: note that processing instructions may occur - * before or after the main document element.</p> - * - * <p>A SAX parser should never report an XML declaration (XML 1.0, - * section 2.8) or a text declaration (XML 1.0, section 4.3.1) - * using this method.</p> - * - * @param target The processing instruction target. - * @param data The processing instruction data, or null if - * none was supplied. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - */ - public abstract void processingInstruction (String target, String data) - throws SAXException; - -} - -// end of DocumentHandler.java diff --git a/external/jaxp/source/org/xml/sax/EntityResolver.java b/external/jaxp/source/org/xml/sax/EntityResolver.java deleted file mode 100755 index 4a0ecd964..000000000 --- a/external/jaxp/source/org/xml/sax/EntityResolver.java +++ /dev/null @@ -1,118 +0,0 @@ -// SAX entity resolver. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -import java.io.IOException; - - -/** - * Basic interface for resolving entities. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>If a SAX application needs to implement customized handling - * for external entities, it must implement this interface and - * register an instance with the SAX driver using the - * {@link org.xml.sax.XMLReader#setEntityResolver setEntityResolver} - * method.</p> - * - * <p>The XML reader will then allow the application to intercept any - * external entities (including the external DTD subset and external - * parameter entities, if any) before including them.</p> - * - * <p>Many SAX applications will not need to implement this interface, - * but it will be especially useful for applications that build - * XML documents from databases or other specialised input sources, - * or for applications that use URI types other than URLs.</p> - * - * <p>The following resolver would provide the application - * with a special character stream for the entity with the system - * identifier "http://www.myhost.com/today":</p> - * - * <pre> - * import org.xml.sax.EntityResolver; - * import org.xml.sax.InputSource; - * - * public class MyResolver implements EntityResolver { - * public InputSource resolveEntity (String publicId, String systemId) - * { - * if (systemId.equals("http://www.myhost.com/today")) { - * // return a special input source - * MyReader reader = new MyReader(); - * return new InputSource(reader); - * } else { - * // use the default behaviour - * return null; - * } - * } - * } - * </pre> - * - * <p>The application can also use this interface to redirect system - * identifiers to local URIs or to look up replacements in a catalog - * (possibly by using the public identifier).</p> - * - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.XMLReader#setEntityResolver - * @see org.xml.sax.InputSource - */ -public interface EntityResolver { - - - /** - * Allow the application to resolve external entities. - * - * <p>The parser will call this method before opening any external - * entity except the top-level document entity. Such entities include - * the external DTD subset and external parameter entities referenced - * within the DTD (in either case, only if the parser reads external - * parameter entities), and external general entities referenced - * within the document element (if the parser reads external general - * entities). The application may request that the parser locate - * the entity itself, that it use an alternative URI, or that it - * use data provided by the application (as a character or byte - * input stream).</p> - * - * <p>Application writers can use this method to redirect external - * system identifiers to secure and/or local URIs, 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). Neither XML nor SAX specifies a preferred policy for using - * public or system IDs to resolve resources. However, SAX specifies - * how to interpret any InputSource returned by this method, and that - * if none is returned, then the system ID will be dereferenced as - * a URL. </p> - * - * <p>If the system identifier is a URL, the SAX parser must - * resolve it fully before reporting it to the application.</p> - * - * @param publicId The public identifier of the external entity - * being referenced, or null if none was supplied. - * @param systemId The system identifier of the external entity - * being referenced. - * @return An InputSource object describing the new input source, - * or null to request that the parser open a regular - * URI connection to the system identifier. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @exception java.io.IOException A Java-specific IO exception, - * possibly the result of creating a new InputStream - * or Reader for the InputSource. - * @see org.xml.sax.InputSource - */ - public abstract InputSource resolveEntity (String publicId, - String systemId) - throws SAXException, IOException; - -} - -// end of EntityResolver.java diff --git a/external/jaxp/source/org/xml/sax/ErrorHandler.java b/external/jaxp/source/org/xml/sax/ErrorHandler.java deleted file mode 100755 index e3d304709..000000000 --- a/external/jaxp/source/org/xml/sax/ErrorHandler.java +++ /dev/null @@ -1,124 +0,0 @@ -// SAX error handler. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - - -/** - * Basic interface for SAX error handlers. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>If a SAX application needs to implement customized error - * handling, it must implement this interface and then register an - * instance with the XML reader using the - * {@link org.xml.sax.XMLReader#setErrorHandler setErrorHandler} - * method. The parser will then report all errors and warnings - * through this interface.</p> - * - * <p><strong>WARNING:</strong> If an application does <em>not</em> - * register an ErrorHandler, XML parsing errors will go unreported - * and bizarre behaviour may result.</p> - * - * <p>For XML processing errors, a SAX driver must use this interface - * instead of throwing an exception: it is up to the application - * to decide whether to throw an exception for different types of - * errors and warnings. Note, however, that there is no requirement that - * the parser continue to provide useful information after a call to - * {@link #fatalError fatalError} (in other words, a SAX driver class - * could catch an exception and report a fatalError).</p> - * - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.XMLReader#setErrorHandler - * @see org.xml.sax.SAXParseException - */ -public interface ErrorHandler { - - - /** - * Receive notification of a warning. - * - * <p>SAX parsers will use this method to report conditions that - * are not errors or fatal errors as defined by the XML 1.0 - * recommendation. The default behaviour is to take no action.</p> - * - * <p>The SAX parser must continue to provide normal parsing events - * after invoking this method: it should still be possible for the - * application to process the document through to the end.</p> - * - * <p>Filters may use this method to report other, non-XML warnings - * as well.</p> - * - * @param exception The warning information encapsulated in a - * SAX parse exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.SAXParseException - */ - public abstract void warning (SAXParseException exception) - throws SAXException; - - - /** - * Receive notification of a recoverable error. - * - * <p>This corresponds to the definition of "error" in section 1.2 - * of the W3C XML 1.0 Recommendation. For example, a validating - * parser would use this callback to report the violation of a - * validity constraint. The default behaviour is to take no - * action.</p> - * - * <p>The SAX parser must continue to provide normal parsing events - * after invoking this method: it should still be possible for the - * application to process the document through to the end. If the - * application cannot do so, then the parser should report a fatal - * error even if the XML 1.0 recommendation does not require it to - * do so.</p> - * - * <p>Filters may use this method to report other, non-XML errors - * as well.</p> - * - * @param exception The error information encapsulated in a - * SAX parse exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.SAXParseException - */ - public abstract void error (SAXParseException exception) - throws SAXException; - - - /** - * Receive notification of a non-recoverable error. - * - * <p>This corresponds to the definition of "fatal error" in - * section 1.2 of the W3C XML 1.0 Recommendation. For example, a - * parser would use this callback to report the violation of a - * well-formedness constraint.</p> - * - * <p>The application must assume that the document is unusable - * after the parser has invoked this method, and should continue - * (if at all) only for the sake of collecting addition error - * messages: in fact, SAX parsers are free to stop reporting any - * other events once this method has been invoked.</p> - * - * @param exception The error information encapsulated in a - * SAX parse exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.SAXParseException - */ - public abstract void fatalError (SAXParseException exception) - throws SAXException; - -} - -// end of ErrorHandler.java diff --git a/external/jaxp/source/org/xml/sax/HandlerBase.java b/external/jaxp/source/org/xml/sax/HandlerBase.java deleted file mode 100755 index cad622867..000000000 --- a/external/jaxp/source/org/xml/sax/HandlerBase.java +++ /dev/null @@ -1,369 +0,0 @@ -// SAX default handler base class. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -/** - * Default base class for handlers. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class implements the default behaviour for four SAX1 - * interfaces: EntityResolver, DTDHandler, DocumentHandler, - * and ErrorHandler. It is now obsolete, but is included in SAX2 to - * support legacy SAX1 applications. SAX2 applications should use - * the {@link org.xml.sax.helpers.DefaultHandler DefaultHandler} - * class instead.</p> - * - * <p>Application writers can extend this class when they need to - * implement only part of an interface; parser writers can - * instantiate this class to provide default handlers when the - * application has not supplied its own.</p> - * - * <p>Note that the use of this class is optional.</p> - * - * @deprecated This class works with the deprecated - * {@link org.xml.sax.DocumentHandler DocumentHandler} - * interface. It has been replaced by the SAX2 - * {@link org.xml.sax.helpers.DefaultHandler DefaultHandler} - * class. - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.EntityResolver - * @see org.xml.sax.DTDHandler - * @see org.xml.sax.DocumentHandler - * @see org.xml.sax.ErrorHandler - */ -public class HandlerBase - implements EntityResolver, DTDHandler, DocumentHandler, ErrorHandler -{ - - - //////////////////////////////////////////////////////////////////// - // Default implementation of the EntityResolver interface. - //////////////////////////////////////////////////////////////////// - - /** - * Resolve an external entity. - * - * <p>Always return null, so that the parser will use the system - * identifier provided in the XML document. This method implements - * the SAX default behaviour: application writers can override it - * in a subclass to do special translations such as catalog lookups - * or URI redirection.</p> - * - * @param publicId The public identifer, or null if none is - * available. - * @param systemId The system identifier provided in the XML - * document. - * @return The new input source, or null to require the - * default behaviour. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.EntityResolver#resolveEntity - */ - public InputSource resolveEntity (String publicId, String systemId) - throws SAXException - { - return null; - } - - - - //////////////////////////////////////////////////////////////////// - // Default implementation of DTDHandler interface. - //////////////////////////////////////////////////////////////////// - - - /** - * Receive notification of a notation declaration. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass if they wish to keep track of the notations - * declared in a document.</p> - * - * @param name The notation name. - * @param publicId The notation public identifier, or null if not - * available. - * @param systemId The notation system identifier. - * @see org.xml.sax.DTDHandler#notationDecl - */ - public void notationDecl (String name, String publicId, String systemId) - { - // no op - } - - - /** - * Receive notification of an unparsed entity declaration. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to keep track of the unparsed entities - * declared in a document.</p> - * - * @param name The entity name. - * @param publicId The entity public identifier, or null if not - * available. - * @param systemId The entity system identifier. - * @param notationName The name of the associated notation. - * @see org.xml.sax.DTDHandler#unparsedEntityDecl - */ - public void unparsedEntityDecl (String name, String publicId, - String systemId, String notationName) - { - // no op - } - - - - //////////////////////////////////////////////////////////////////// - // Default implementation of DocumentHandler interface. - //////////////////////////////////////////////////////////////////// - - - /** - * Receive a Locator object for document events. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass if they wish to store the locator for use - * with other document events.</p> - * - * @param locator A locator for all SAX document events. - * @see org.xml.sax.DocumentHandler#setDocumentLocator - * @see org.xml.sax.Locator - */ - public void setDocumentLocator (Locator locator) - { - // no op - } - - - /** - * Receive notification of the beginning of the document. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the beginning - * of a document (such as allocating the root node of a tree or - * creating an output file).</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DocumentHandler#startDocument - */ - public void startDocument () - throws SAXException - { - // no op - } - - - /** - * Receive notification of the end of the document. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the beginning - * of a document (such as finalising a tree or closing an output - * file).</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DocumentHandler#endDocument - */ - public void endDocument () - throws SAXException - { - // no op - } - - - /** - * Receive notification of the start of an element. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the start of - * each element (such as allocating a new tree node or writing - * output to a file).</p> - * - * @param name The element type name. - * @param attributes The specified or defaulted attributes. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DocumentHandler#startElement - */ - public void startElement (String name, AttributeList attributes) - throws SAXException - { - // no op - } - - - /** - * Receive notification of the end of an element. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the end of - * each element (such as finalising a tree node or writing - * output to a file).</p> - * - * @param name The element type name. - * @param attributes The specified or defaulted attributes. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DocumentHandler#endElement - */ - public void endElement (String name) - throws SAXException - { - // no op - } - - - /** - * Receive notification of character data inside an element. - * - * <p>By default, do nothing. Application writers may override this - * method to take specific actions for each chunk of character data - * (such as adding the data to a node or buffer, or printing it to - * a file).</p> - * - * @param ch The characters. - * @param start The start position in the character array. - * @param length The number of characters to use from the - * character array. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DocumentHandler#characters - */ - public void characters (char ch[], int start, int length) - throws SAXException - { - // no op - } - - - /** - * Receive notification of ignorable whitespace in element content. - * - * <p>By default, do nothing. Application writers may override this - * method to take specific actions for each chunk of ignorable - * whitespace (such as adding data to a node or buffer, or printing - * it to a file).</p> - * - * @param ch The whitespace characters. - * @param start The start position in the character array. - * @param length The number of characters to use from the - * character array. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DocumentHandler#ignorableWhitespace - */ - public void ignorableWhitespace (char ch[], int start, int length) - throws SAXException - { - // no op - } - - - /** - * Receive notification of a processing instruction. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions for each - * processing instruction, such as setting status variables or - * invoking other methods.</p> - * - * @param target The processing instruction target. - * @param data The processing instruction data, or null if - * none is supplied. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DocumentHandler#processingInstruction - */ - public void processingInstruction (String target, String data) - throws SAXException - { - // no op - } - - - - //////////////////////////////////////////////////////////////////// - // Default implementation of the ErrorHandler interface. - //////////////////////////////////////////////////////////////////// - - - /** - * Receive notification of a parser warning. - * - * <p>The default implementation does nothing. Application writers - * may override this method in a subclass to take specific actions - * for each warning, such as inserting the message in a log file or - * printing it to the console.</p> - * - * @param e The warning information encoded as an exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ErrorHandler#warning - * @see org.xml.sax.SAXParseException - */ - public void warning (SAXParseException e) - throws SAXException - { - // no op - } - - - /** - * Receive notification of a recoverable parser error. - * - * <p>The default implementation does nothing. Application writers - * may override this method in a subclass to take specific actions - * for each error, such as inserting the message in a log file or - * printing it to the console.</p> - * - * @param e The warning information encoded as an exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ErrorHandler#warning - * @see org.xml.sax.SAXParseException - */ - public void error (SAXParseException e) - throws SAXException - { - // no op - } - - - /** - * Report a fatal XML parsing error. - * - * <p>The default implementation throws a SAXParseException. - * Application writers may override this method in a subclass if - * they need to take specific actions for each fatal error (such as - * collecting all of the errors into a single report): in any case, - * the application must stop all regular processing when this - * method is invoked, since the document is no longer reliable, and - * the parser may no longer report parsing events.</p> - * - * @param e The error information encoded as an exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ErrorHandler#fatalError - * @see org.xml.sax.SAXParseException - */ - public void fatalError (SAXParseException e) - throws SAXException - { - throw e; - } - -} - -// end of HandlerBase.java diff --git a/external/jaxp/source/org/xml/sax/InputSource.java b/external/jaxp/source/org/xml/sax/InputSource.java deleted file mode 100755 index 9b4791258..000000000 --- a/external/jaxp/source/org/xml/sax/InputSource.java +++ /dev/null @@ -1,335 +0,0 @@ -// SAX input source. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -import java.io.Reader; -import java.io.InputStream; - -/** - * A single input source for an XML entity. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class allows a SAX 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), and/or a character stream.</p> - * - * <p>There are two places that the application can deliver an - * input source to the parser: as the argument to the Parser.parse - * method, or as the return value of the EntityResolver.resolveEntity - * method.</p> - * - * <p>The SAX parser will use the InputSource object to determine how - * to read XML input. If there is a character stream available, the - * parser will read that stream directly, disregarding any text - * encoding declaration found in that stream. - * If there is no character stream, but there is - * a byte stream, the parser will use that byte stream, using the - * encoding specified in the InputSource or else (if no encoding is - * specified) autodetecting the character encoding using an algorithm - * such as the one in the XML specification. If neither a character - * stream nor a - * byte stream is available, the parser will attempt to open a URI - * connection to the resource identified by the system - * identifier.</p> - * - * <p>An InputSource object belongs to the application: the SAX parser - * shall never modify it in any way (it may modify a copy if - * necessary). However, standard processing of both byte and - * character streams is to close them on as part of end-of-parse cleanup, - * so applications should not attempt to re-use such streams after they - * have been handed to a parser. </p> - * - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.XMLReader#parse(org.xml.sax.InputSource) - * @see org.xml.sax.EntityResolver#resolveEntity - * @see java.io.InputStream - * @see java.io.Reader - */ -public class InputSource { - - /** - * Zero-argument default constructor. - * - * @see #setPublicId - * @see #setSystemId - * @see #setByteStream - * @see #setCharacterStream - * @see #setEncoding - */ - public InputSource () - { - } - - - /** - * Create a new input source with a system identifier. - * - * <p>Applications may use setPublicId to include a - * public identifier as well, or setEncoding to specify - * the character encoding, if known.</p> - * - * <p>If the system identifier is a URL, it must be fully - * resolved (it may not be a relative URL).</p> - * - * @param systemId The system identifier (URI). - * @see #setPublicId - * @see #setSystemId - * @see #setByteStream - * @see #setEncoding - * @see #setCharacterStream - */ - public InputSource (String systemId) - { - setSystemId(systemId); - } - - - /** - * Create a new input source with a byte stream. - * - * <p>Application writers should use setSystemId() to provide a base - * for resolving relative URIs, may use setPublicId to include a - * public identifier, and may use setEncoding to specify the object's - * character encoding.</p> - * - * @param byteStream The raw byte stream containing the document. - * @see #setPublicId - * @see #setSystemId - * @see #setEncoding - * @see #setByteStream - * @see #setCharacterStream - */ - public InputSource (InputStream byteStream) - { - setByteStream(byteStream); - } - - - /** - * Create a new input source with a character stream. - * - * <p>Application writers should use setSystemId() to provide a base - * for resolving relative URIs, and may use setPublicId to include a - * public identifier.</p> - * - * <p>The character stream shall not include a byte order mark.</p> - * - * @see #setPublicId - * @see #setSystemId - * @see #setByteStream - * @see #setCharacterStream - */ - public InputSource (Reader characterStream) - { - setCharacterStream(characterStream); - } - - - /** - * Set the public identifier for this input source. - * - * <p>The public identifier is always optional: if the application - * writer includes one, it will be provided as part of the - * location information.</p> - * - * @param publicId The public identifier as a string. - * @see #getPublicId - * @see org.xml.sax.Locator#getPublicId - * @see org.xml.sax.SAXParseException#getPublicId - */ - public void setPublicId (String publicId) - { - this.publicId = publicId; - } - - - /** - * Get the public identifier for this input source. - * - * @return The public identifier, or null if none was supplied. - * @see #setPublicId - */ - public String getPublicId () - { - return publicId; - } - - - /** - * Set the system identifier for this input source. - * - * <p>The system identifier is optional if there is a byte stream - * or a character stream, but it is still useful to provide one, - * since the application can use it to resolve relative URIs - * and can include it in error messages and warnings (the parser - * will attempt to open a connection to the URI only if - * there is no byte stream or character stream specified).</p> - * - * <p>If the application knows the character encoding of the - * object pointed to by the system identifier, it can register - * the encoding using the setEncoding method.</p> - * - * <p>If the system identifier is a URL, it must be fully - * resolved (it may not be a relative URL).</p> - * - * @param systemId The system identifier as a string. - * @see #setEncoding - * @see #getSystemId - * @see org.xml.sax.Locator#getSystemId - * @see org.xml.sax.SAXParseException#getSystemId - */ - public void setSystemId (String systemId) - { - this.systemId = systemId; - } - - - /** - * Get the system identifier for this input source. - * - * <p>The getEncoding method will return the character encoding - * of the object pointed to, or null if unknown.</p> - * - * <p>If the system ID is a URL, it will be fully resolved.</p> - * - * @return The system identifier, or null if none was supplied. - * @see #setSystemId - * @see #getEncoding - */ - public String getSystemId () - { - return systemId; - } - - - /** - * Set the byte stream for this input source. - * - * <p>The SAX parser will ignore this if there is also a character - * stream specified, but it will use a byte stream in preference - * to opening a URI connection itself.</p> - * - * <p>If the application knows the character encoding of the - * byte stream, it should set it with the setEncoding method.</p> - * - * @param byteStream A byte stream containing an XML document or - * other entity. - * @see #setEncoding - * @see #getByteStream - * @see #getEncoding - * @see java.io.InputStream - */ - public void setByteStream (InputStream byteStream) - { - this.byteStream = byteStream; - } - - - /** - * Get the byte stream for this input source. - * - * <p>The getEncoding method will return the character - * encoding for this byte stream, or null if unknown.</p> - * - * @return The byte stream, or null if none was supplied. - * @see #getEncoding - * @see #setByteStream - */ - public InputStream getByteStream () - { - return byteStream; - } - - - /** - * Set the character encoding, if known. - * - * <p>The encoding must be a string acceptable for an - * XML encoding declaration (see section 4.3.3 of the XML 1.0 - * recommendation).</p> - * - * <p>This method has no effect when the application provides a - * character stream.</p> - * - * @param encoding A string describing the character encoding. - * @see #setSystemId - * @see #setByteStream - * @see #getEncoding - */ - public void setEncoding (String encoding) - { - this.encoding = encoding; - } - - - /** - * Get the character encoding for a byte stream or URI. - * This value will be ignored when the application provides a - * character stream. - * - * @return The encoding, or null if none was supplied. - * @see #setByteStream - * @see #getSystemId - * @see #getByteStream - */ - public String getEncoding () - { - return encoding; - } - - - /** - * Set the character stream for this input source. - * - * <p>If there is a character stream specified, the SAX parser - * will ignore any byte stream and will not attempt to open - * a URI connection to the system identifier.</p> - * - * @param characterStream The character stream containing the - * XML document or other entity. - * @see #getCharacterStream - * @see java.io.Reader - */ - public void setCharacterStream (Reader characterStream) - { - this.characterStream = characterStream; - } - - - /** - * Get the character stream for this input source. - * - * @return The character stream, or null if none was supplied. - * @see #setCharacterStream - */ - public Reader getCharacterStream () - { - return characterStream; - } - - - - //////////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////////// - - private String publicId; - private String systemId; - private InputStream byteStream; - private String encoding; - private Reader characterStream; - -} - -// end of InputSource.java diff --git a/external/jaxp/source/org/xml/sax/Locator.java b/external/jaxp/source/org/xml/sax/Locator.java deleted file mode 100755 index 4428de22f..000000000 --- a/external/jaxp/source/org/xml/sax/Locator.java +++ /dev/null @@ -1,135 +0,0 @@ -// SAX locator interface for document events. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - - -/** - * Interface for associating a SAX event with a document location. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>If a SAX parser provides location information to the SAX - * application, it does so by implementing this interface and then - * passing an instance to the application using the content - * handler's {@link org.xml.sax.ContentHandler#setDocumentLocator - * setDocumentLocator} method. The application can use the - * object to obtain the location of any other SAX event - * in the XML source document.</p> - * - * <p>Note that the results returned by the object will be valid only - * during the scope of each callback method: the application - * will receive unpredictable results if it attempts to use the - * locator at any other time, or after parsing completes.</p> - * - * <p>SAX parsers are not required to supply a locator, but they are - * very strongly encouraged to do so. If the parser supplies a - * locator, it must do so before reporting any other document events. - * If no locator has been set by the time the application receives - * the {@link org.xml.sax.ContentHandler#startDocument startDocument} - * event, the application should assume that a locator is not - * available.</p> - * - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.ContentHandler#setDocumentLocator - */ -public interface Locator { - - - /** - * Return the public identifier for the current document event. - * - * <p>The return value is the public identifier of the document - * entity or of the external parsed entity in which the markup - * triggering the event appears.</p> - * - * @return A string containing the public identifier, or - * null if none is available. - * @see #getSystemId - */ - public abstract String getPublicId (); - - - /** - * Return the system identifier for the current document event. - * - * <p>The return value is the system identifier of the document - * entity or of the external parsed entity in which the markup - * triggering the event appears.</p> - * - * <p>If the system identifier is a URL, the parser must resolve it - * fully before passing it to the application. For example, a file - * name must always be provided as a <em>file:...</em> URL, and other - * kinds of relative URI are also resolved against their bases.</p> - * - * @return A string containing the system identifier, or null - * if none is available. - * @see #getPublicId - */ - public abstract String getSystemId (); - - - /** - * Return the line number where the current document event ends. - * Lines are delimited by line ends, which are defined in - * the XML specification. - * - * <p><strong>Warning:</strong> The return value from the method - * is intended only as an approximation for the sake of diagnostics; - * it is not intended to provide sufficient information - * to edit the character content of the original XML document. - * In some cases, these "line" numbers match what would be displayed - * as columns, and in others they may not match the source text - * due to internal entity expansion. </p> - * - * <p>The return value is an approximation of the line number - * in the document entity or external parsed entity where the - * markup triggering the event appears.</p> - * - * <p>If possible, the SAX driver should provide the line position - * of the first character after the text associated with the document - * event. The first line is line 1.</p> - * - * @return The line number, or -1 if none is available. - * @see #getColumnNumber - */ - public abstract int getLineNumber (); - - - /** - * Return the column number where the current document event ends. - * This is one-based number of Java <code>char</code> values since - * the last line end. - * - * <p><strong>Warning:</strong> The return value from the method - * is intended only as an approximation for the sake of diagnostics; - * it is not intended to provide sufficient information - * to edit the character content of the original XML document. - * For example, when lines contain combining character sequences, wide - * characters, surrogate pairs, or bi-directional text, the value may - * not correspond to the column in a text editor's display. </p> - * - * <p>The return value is an approximation of the column number - * in the document entity or external parsed entity where the - * markup triggering the event appears.</p> - * - * <p>If possible, the SAX driver should provide the line position - * of the first character after the text associated with the document - * event. The first column in each line is column 1.</p> - * - * @return The column number, or -1 if none is available. - * @see #getLineNumber - */ - public abstract int getColumnNumber (); - -} - -// end of Locator.java diff --git a/external/jaxp/source/org/xml/sax/Parser.java b/external/jaxp/source/org/xml/sax/Parser.java deleted file mode 100755 index 2080b6105..000000000 --- a/external/jaxp/source/org/xml/sax/Parser.java +++ /dev/null @@ -1,208 +0,0 @@ -// SAX parser interface. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -import java.io.IOException; -import java.util.Locale; - - -/** - * Basic interface for SAX (Simple API for XML) parsers. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This was the main event supplier interface for SAX1; it has - * been replaced in SAX2 by {@link org.xml.sax.XMLReader XMLReader}, - * which includes Namespace support and sophisticated configurability - * and extensibility.</p> - * - * <p>All SAX1 parsers must implement this basic interface: it allows - * applications to register handlers for different types of events - * and to initiate a parse from a URI, or a character stream.</p> - * - * <p>All SAX1 parsers must also implement a zero-argument constructor - * (though other constructors are also allowed).</p> - * - * <p>SAX1 parsers are reusable but not re-entrant: the application - * may reuse a parser object (possibly with a different input source) - * once the first parse has completed successfully, but it may not - * invoke the parse() methods recursively within a parse.</p> - * - * @deprecated This interface has been replaced by the SAX2 - * {@link org.xml.sax.XMLReader XMLReader} - * interface, which includes Namespace support. - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.EntityResolver - * @see org.xml.sax.DTDHandler - * @see org.xml.sax.DocumentHandler - * @see org.xml.sax.ErrorHandler - * @see org.xml.sax.HandlerBase - * @see org.xml.sax.InputSource - */ -public interface Parser -{ - - /** - * Allow an application to request a locale for errors and warnings. - * - * <p>SAX parsers are not required to provide localisation for errors - * and warnings; if they cannot support the requested locale, - * however, they must throw a SAX exception. Applications may - * not request a locale change in the middle of a parse.</p> - * - * @param locale A Java Locale object. - * @exception org.xml.sax.SAXException Throws an exception - * (using the previous or default locale) if the - * requested locale is not supported. - * @see org.xml.sax.SAXException - * @see org.xml.sax.SAXParseException - */ - public abstract void setLocale (Locale locale) - throws SAXException; - - - /** - * Allow an application to register a custom entity resolver. - * - * <p>If the application does not register an entity resolver, the - * SAX parser will resolve system identifiers and open connections - * to entities itself (this is the default behaviour implemented in - * HandlerBase).</p> - * - * <p>Applications may register a new or different entity resolver - * in the middle of a parse, and the SAX parser must begin using - * the new resolver immediately.</p> - * - * @param resolver The object for resolving entities. - * @see EntityResolver - * @see HandlerBase - */ - public abstract void setEntityResolver (EntityResolver resolver); - - - /** - * Allow an application to register a DTD event handler. - * - * <p>If the application does not register a DTD handler, all DTD - * events reported by the SAX parser will be silently - * ignored (this is the default behaviour implemented by - * HandlerBase).</p> - * - * <p>Applications may register a new or different - * handler in the middle of a parse, and the SAX parser must - * begin using the new handler immediately.</p> - * - * @param handler The DTD handler. - * @see DTDHandler - * @see HandlerBase - */ - public abstract void setDTDHandler (DTDHandler handler); - - - /** - * Allow an application to register a document event handler. - * - * <p>If the application does not register a document handler, all - * document events reported by the SAX parser will be silently - * ignored (this is the default behaviour implemented by - * HandlerBase).</p> - * - * <p>Applications may register a new or different handler in the - * middle of a parse, and the SAX parser must begin using the new - * handler immediately.</p> - * - * @param handler The document handler. - * @see DocumentHandler - * @see HandlerBase - */ - public abstract void setDocumentHandler (DocumentHandler handler); - - - /** - * Allow an application to register an error event handler. - * - * <p>If the application does not register an error event handler, - * all error events reported by the SAX parser will be silently - * ignored, except for fatalError, which will throw a SAXException - * (this is the default behaviour implemented by HandlerBase).</p> - * - * <p>Applications may register a new or different handler in the - * middle of a parse, and the SAX parser must begin using the new - * handler immediately.</p> - * - * @param handler The error handler. - * @see ErrorHandler - * @see SAXException - * @see HandlerBase - */ - public abstract void setErrorHandler (ErrorHandler handler); - - - /** - * Parse an XML document. - * - * <p>The application can use this method to instruct the SAX parser - * to begin parsing an XML document from any valid input - * source (a character stream, a byte stream, or a URI).</p> - * - * <p>Applications may not invoke this method while a parse is in - * progress (they should create a new Parser instead for each - * additional XML document). Once a parse is complete, an - * application may reuse the same Parser object, possibly with a - * different input source.</p> - * - * @param source The input source for the top-level of the - * XML document. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @exception java.io.IOException An IO exception from the parser, - * possibly from a byte stream or character stream - * supplied by the application. - * @see org.xml.sax.InputSource - * @see #parse(java.lang.String) - * @see #setEntityResolver - * @see #setDTDHandler - * @see #setDocumentHandler - * @see #setErrorHandler - */ - public abstract void parse (InputSource source) - throws SAXException, IOException; - - - /** - * Parse an XML document from a system identifier (URI). - * - * <p>This method is a shortcut for the common case of reading a - * document from a system identifier. It is the exact - * equivalent of the following:</p> - * - * <pre> - * parse(new InputSource(systemId)); - * </pre> - * - * <p>If the system identifier is a URL, it must be fully resolved - * by the application before it is passed to the parser.</p> - * - * @param systemId The system identifier (URI). - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @exception java.io.IOException An IO exception from the parser, - * possibly from a byte stream or character stream - * supplied by the application. - * @see #parse(org.xml.sax.InputSource) - */ - public abstract void parse (String systemId) - throws SAXException, IOException; - -} - -// end of Parser.java diff --git a/external/jaxp/source/org/xml/sax/SAXException.java b/external/jaxp/source/org/xml/sax/SAXException.java deleted file mode 100755 index 3e5005c7a..000000000 --- a/external/jaxp/source/org/xml/sax/SAXException.java +++ /dev/null @@ -1,152 +0,0 @@ -// SAX exception class. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -/** - * Encapsulate a general SAX error or warning. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class can contain basic error or warning information from - * either the XML parser or the application: a parser writer or - * application writer can subclass it to provide additional - * functionality. SAX handlers may throw this exception or - * any exception subclassed from it.</p> - * - * <p>If the application needs to pass through other types of - * exceptions, it must wrap those exceptions in a SAXException - * or an exception derived from a SAXException.</p> - * - * <p>If the parser or application needs to include information about a - * specific location in an XML document, it should use the - * {@link org.xml.sax.SAXParseException SAXParseException} subclass.</p> - * - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.SAXParseException - */ -public class SAXException extends Exception { - - - /** - * Create a new SAXException. - */ - public SAXException () - { - super(); - this.exception = null; - } - - - /** - * Create a new SAXException. - * - * @param message The error or warning message. - */ - public SAXException (String message) { - super(message); - this.exception = null; - } - - - /** - * Create a new SAXException wrapping an existing exception. - * - * <p>The existing exception will be embedded in the new - * one, and its message will become the default message for - * the SAXException.</p> - * - * @param e The exception to be wrapped in a SAXException. - */ - public SAXException (Exception e) - { - super(); - this.exception = e; - } - - - /** - * Create a new SAXException from an existing exception. - * - * <p>The existing exception will be embedded in the new - * one, but the new exception will have its own message.</p> - * - * @param message The detail message. - * @param e The exception to be wrapped in a SAXException. - */ - public SAXException (String message, Exception e) - { - super(message); - this.exception = e; - } - - - /** - * Return a detail message for this exception. - * - * <p>If there is an embedded exception, and if the SAXException - * has no detail message of its own, this method will return - * the detail message from the embedded exception.</p> - * - * @return The error or warning message. - */ - public String getMessage () - { - String message = super.getMessage(); - - if (message == null && exception != null) { - return exception.getMessage(); - } else { - return message; - } - } - - - /** - * Return the embedded exception, if any. - * - * @return The embedded exception, or null if there is none. - */ - public Exception getException () - { - return exception; - } - - - /** - * Override toString to pick up any embedded exception. - * - * @return A string representation of this exception. - */ - public String toString () - { - if (exception != null) { - return exception.toString(); - } else { - return super.toString(); - } - } - - - - ////////////////////////////////////////////////////////////////////// - // Internal state. - ////////////////////////////////////////////////////////////////////// - - - /** - * @serial The embedded exception if tunnelling, or null. - */ - private Exception exception; - -} - -// end of SAXException.java diff --git a/external/jaxp/source/org/xml/sax/SAXNotRecognizedException.java b/external/jaxp/source/org/xml/sax/SAXNotRecognizedException.java deleted file mode 100755 index 07f62ff60..000000000 --- a/external/jaxp/source/org/xml/sax/SAXNotRecognizedException.java +++ /dev/null @@ -1,52 +0,0 @@ -// SAXNotRecognizedException.java - unrecognized feature or value. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the Public Domain. - -package org.xml.sax; - - -/** - * Exception class for an unrecognized identifier. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>An XMLReader will throw this exception when it finds an - * unrecognized feature or property identifier; SAX applications and - * extensions may use this class for other, similar purposes.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.SAXNotSupportedException - */ -public class SAXNotRecognizedException extends SAXException -{ - - /** - * Default constructor. - */ - public SAXNotRecognizedException () - { - super(); - } - - - /** - * Construct a new exception with the given message. - * - * @param message The text message of the exception. - */ - public SAXNotRecognizedException (String message) - { - super(message); - } - -} - -// end of SAXNotRecognizedException.java diff --git a/external/jaxp/source/org/xml/sax/SAXNotSupportedException.java b/external/jaxp/source/org/xml/sax/SAXNotSupportedException.java deleted file mode 100755 index 9eacfa6f3..000000000 --- a/external/jaxp/source/org/xml/sax/SAXNotSupportedException.java +++ /dev/null @@ -1,52 +0,0 @@ -// SAXNotSupportedException.java - unsupported feature or value. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the Public Domain. - -package org.xml.sax; - -/** - * Exception class for an unsupported operation. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>An XMLReader will throw this exception when it recognizes a - * feature or property identifier, but cannot perform the requested - * operation (setting a state or value). Other SAX2 applications and - * extensions may use this class for similar purposes.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.SAXNotRecognizedException - */ -public class SAXNotSupportedException extends SAXException -{ - - /** - * Construct a new exception with no message. - */ - public SAXNotSupportedException () - { - super(); - } - - - /** - * Construct a new exception with the given message. - * - * @param message The text message of the exception. - */ - public SAXNotSupportedException (String message) - { - super(message); - } - -} - -// end of SAXNotSupportedException.java diff --git a/external/jaxp/source/org/xml/sax/SAXParseException.java b/external/jaxp/source/org/xml/sax/SAXParseException.java deleted file mode 100755 index eae1f4391..000000000 --- a/external/jaxp/source/org/xml/sax/SAXParseException.java +++ /dev/null @@ -1,269 +0,0 @@ -// SAX exception class. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax; - -/** - * Encapsulate an XML parse error or warning. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This exception may include information for locating the error - * in the original XML document, as if it came from a {@link Locator} - * object. Note that although the application - * will receive a SAXParseException as the argument to the handlers - * in the {@link org.xml.sax.ErrorHandler ErrorHandler} interface, - * the application is not actually required to throw the exception; - * instead, it can simply read the information in it and take a - * different action.</p> - * - * <p>Since this exception is a subclass of {@link org.xml.sax.SAXException - * SAXException}, it inherits the ability to wrap another exception.</p> - * - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.SAXException - * @see org.xml.sax.Locator - * @see org.xml.sax.ErrorHandler - */ -public class SAXParseException extends SAXException { - - - ////////////////////////////////////////////////////////////////////// - // Constructors. - ////////////////////////////////////////////////////////////////////// - - - /** - * Create a new SAXParseException from a message and a Locator. - * - * <p>This constructor is especially useful when an application is - * creating its own exception from within a {@link org.xml.sax.ContentHandler - * ContentHandler} callback.</p> - * - * @param message The error or warning message. - * @param locator The locator object for the error or warning (may be - * null). - * @see org.xml.sax.Locator - */ - public SAXParseException (String message, Locator locator) { - super(message); - if (locator != null) { - init(locator.getPublicId(), locator.getSystemId(), - locator.getLineNumber(), locator.getColumnNumber()); - } else { - init(null, null, -1, -1); - } - } - - - /** - * Wrap an existing exception in a SAXParseException. - * - * <p>This constructor is especially useful when an application is - * creating its own exception from within a {@link org.xml.sax.ContentHandler - * ContentHandler} callback, and needs to wrap an existing exception that is not a - * subclass of {@link org.xml.sax.SAXException SAXException}.</p> - * - * @param message The error or warning message, or null to - * use the message from the embedded exception. - * @param locator The locator object for the error or warning (may be - * null). - * @param e Any exception. - * @see org.xml.sax.Locator - */ - public SAXParseException (String message, Locator locator, - Exception e) { - super(message, e); - if (locator != null) { - init(locator.getPublicId(), locator.getSystemId(), - locator.getLineNumber(), locator.getColumnNumber()); - } else { - init(null, null, -1, -1); - } - } - - - /** - * Create a new SAXParseException. - * - * <p>This constructor is most useful for parser writers.</p> - * - * <p>All parameters except the message are as if - * they were provided by a {@link Locator}. For example, if the - * system identifier is a URL (including relative filename), the - * caller must resolve it fully before creating the exception.</p> - * - * - * @param message The error or warning message. - * @param publicId The public identifer of the entity that generated - * the error or warning. - * @param systemId The system identifer of the entity that generated - * the error or warning. - * @param lineNumber The line number of the end of the text that - * caused the error or warning. - * @param columnNumber The column number of the end of the text that - * cause the error or warning. - */ - public SAXParseException (String message, String publicId, String systemId, - int lineNumber, int columnNumber) - { - super(message); - init(publicId, systemId, lineNumber, columnNumber); - } - - - /** - * Create a new SAXParseException with an embedded exception. - * - * <p>This constructor is most useful for parser writers who - * need to wrap an exception that is not a subclass of - * {@link org.xml.sax.SAXException SAXException}.</p> - * - * <p>All parameters except the message and exception are as if - * they were provided by a {@link Locator}. For example, if the - * system identifier is a URL (including relative filename), the - * caller must resolve it fully before creating the exception.</p> - * - * @param message The error or warning message, or null to use - * the message from the embedded exception. - * @param publicId The public identifer of the entity that generated - * the error or warning. - * @param systemId The system identifer of the entity that generated - * the error or warning. - * @param lineNumber The line number of the end of the text that - * caused the error or warning. - * @param columnNumber The column number of the end of the text that - * cause the error or warning. - * @param e Another exception to embed in this one. - */ - public SAXParseException (String message, String publicId, String systemId, - int lineNumber, int columnNumber, Exception e) - { - super(message, e); - init(publicId, systemId, lineNumber, columnNumber); - } - - - /** - * Internal initialization method. - * - * @param publicId The public identifier of the entity which generated the exception, - * or null. - * @param systemId The system identifier of the entity which generated the exception, - * or null. - * @param lineNumber The line number of the error, or -1. - * @param columnNumber The column number of the error, or -1. - */ - private void init (String publicId, String systemId, - int lineNumber, int columnNumber) - { - this.publicId = publicId; - this.systemId = systemId; - this.lineNumber = lineNumber; - this.columnNumber = columnNumber; - } - - - /** - * Get the public identifier of the entity where the exception occurred. - * - * @return A string containing the public identifier, or null - * if none is available. - * @see org.xml.sax.Locator#getPublicId - */ - public String getPublicId () - { - return this.publicId; - } - - - /** - * Get the system identifier of the entity where the exception occurred. - * - * <p>If the system identifier is a URL, it will have been resolved - * fully.</p> - * - * @return A string containing the system identifier, or null - * if none is available. - * @see org.xml.sax.Locator#getSystemId - */ - public String getSystemId () - { - return this.systemId; - } - - - /** - * The line number of the end of the text where the exception occurred. - * - * <p>The first line is line 1.</p> - * - * @return An integer representing the line number, or -1 - * if none is available. - * @see org.xml.sax.Locator#getLineNumber - */ - public int getLineNumber () - { - return this.lineNumber; - } - - - /** - * The column number of the end of the text where the exception occurred. - * - * <p>The first column in a line is position 1.</p> - * - * @return An integer representing the column number, or -1 - * if none is available. - * @see org.xml.sax.Locator#getColumnNumber - */ - public int getColumnNumber () - { - return this.columnNumber; - } - - - - ////////////////////////////////////////////////////////////////////// - // Internal state. - ////////////////////////////////////////////////////////////////////// - - - /** - * @serial The public identifier, or null. - * @see #getPublicId - */ - private String publicId; - - - /** - * @serial The system identifier, or null. - * @see #getSystemId - */ - private String systemId; - - - /** - * @serial The line number, or -1. - * @see #getLineNumber - */ - private int lineNumber; - - - /** - * @serial The column number, or -1. - * @see #getColumnNumber - */ - private int columnNumber; - -} - -// end of SAXParseException.java diff --git a/external/jaxp/source/org/xml/sax/XMLFilter.java b/external/jaxp/source/org/xml/sax/XMLFilter.java deleted file mode 100755 index 3fe733ff4..000000000 --- a/external/jaxp/source/org/xml/sax/XMLFilter.java +++ /dev/null @@ -1,64 +0,0 @@ -// XMLFilter.java - filter SAX2 events. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the Public Domain. - -package org.xml.sax; - - -/** - * Interface for an XML filter. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>An XML filter is like an XML reader, except that it obtains its - * events from another XML reader rather than a primary source like - * an XML document or database. Filters can modify a stream of - * events as they pass on to the final application.</p> - * - * <p>The XMLFilterImpl helper class provides a convenient base - * for creating SAX2 filters, by passing on all {@link org.xml.sax.EntityResolver - * EntityResolver}, {@link org.xml.sax.DTDHandler DTDHandler}, - * {@link org.xml.sax.ContentHandler ContentHandler} and {@link org.xml.sax.ErrorHandler - * ErrorHandler} events automatically.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.helpers.XMLFilterImpl - */ -public interface XMLFilter extends XMLReader -{ - - /** - * Set the parent reader. - * - * <p>This method allows the application to link the filter to - * a parent reader (which may be another filter). The argument - * may not be null.</p> - * - * @param parent The parent reader. - */ - public abstract void setParent (XMLReader parent); - - - /** - * Get the parent reader. - * - * <p>This method allows the application to query the parent - * reader (which may be another filter). It is generally a - * bad idea to perform any operations on the parent reader - * directly: they should all pass through this filter.</p> - * - * @return The parent filter, or null if none has been set. - */ - public abstract XMLReader getParent (); - -} - -// end of XMLFilter.java diff --git a/external/jaxp/source/org/xml/sax/XMLReader.java b/external/jaxp/source/org/xml/sax/XMLReader.java deleted file mode 100755 index 41aae08ec..000000000 --- a/external/jaxp/source/org/xml/sax/XMLReader.java +++ /dev/null @@ -1,396 +0,0 @@ -// XMLReader.java - read an XML document. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the Public Domain. - -package org.xml.sax; - -import java.io.IOException; - - -/** - * Interface for reading an XML document using callbacks. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p><strong>Note:</strong> despite its name, this interface does - * <em>not</em> extend the standard Java {@link java.io.Reader Reader} - * interface, because reading XML is a fundamentally different activity - * than reading character data.</p> - * - * <p>XMLReader is the interface that an XML parser's SAX2 driver must - * implement. This interface allows an application to set and - * query features and properties in the parser, to register - * event handlers for document processing, and to initiate - * a document parse.</p> - * - * <p>All SAX interfaces are assumed to be synchronous: the - * {@link #parse parse} methods must not return until parsing - * is complete, and readers must wait for an event-handler callback - * to return before reporting the next event.</p> - * - * <p>This interface replaces the (now deprecated) SAX 1.0 {@link - * org.xml.sax.Parser Parser} interface. The XMLReader interface - * contains two important enhancements over the old Parser - * interface (as well as some minor ones):</p> - * - * <ol> - * <li>it adds a standard way to query and set features and - * properties; and</li> - * <li>it adds Namespace support, which is required for many - * higher-level XML standards.</li> - * </ol> - * - * <p>There are adapters available to convert a SAX1 Parser to - * a SAX2 XMLReader and vice-versa.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.XMLFilter - * @see org.xml.sax.helpers.ParserAdapter - * @see org.xml.sax.helpers.XMLReaderAdapter - */ -public interface XMLReader -{ - - - //////////////////////////////////////////////////////////////////// - // Configuration. - //////////////////////////////////////////////////////////////////// - - - /** - * Look up the value of a feature flag. - * - * <p>The feature name is any fully-qualified URI. It is - * possible for an XMLReader to recognize a feature name but - * temporarily be unable to return its value. - * Some feature values may be available only in specific - * contexts, such as before, during, or after a parse. - * Also, some feature values may not be programmatically accessible. - * (In the case of an adapter for SAX1 {@link Parser}, there is no - * implementation-independent way to expose whether the underlying - * parser is performing validation, expanding external entities, - * and so forth.) </p> - * - * <p>All XMLReaders are required to recognize the - * http://xml.org/sax/features/namespaces and the - * http://xml.org/sax/features/namespace-prefixes feature names.</p> - * - * <p>Typical usage is something like this:</p> - * - * <pre> - * XMLReader r = new MySAXDriver(); - * - * // try to activate validation - * try { - * r.setFeature("http://xml.org/sax/features/validation", true); - * } catch (SAXException e) { - * System.err.println("Cannot activate validation."); - * } - * - * // register event handlers - * r.setContentHandler(new MyContentHandler()); - * r.setErrorHandler(new MyErrorHandler()); - * - * // parse the first document - * try { - * r.parse("http://www.foo.com/mydoc.xml"); - * } catch (IOException e) { - * System.err.println("I/O exception reading XML document"); - * } catch (SAXException e) { - * System.err.println("XML exception reading document."); - * } - * </pre> - * - * <p>Implementors are free (and encouraged) to invent their own features, - * using names built on their own URIs.</p> - * - * @param name The feature name, which is a fully-qualified URI. - * @return The current value of the feature (true or false). - * @exception org.xml.sax.SAXNotRecognizedException If the feature - * value can't be assigned or retrieved. - * @exception org.xml.sax.SAXNotSupportedException When the - * XMLReader recognizes the feature name but - * cannot determine its value at this time. - * @see #setFeature - */ - public boolean getFeature (String name) - throws SAXNotRecognizedException, SAXNotSupportedException; - - - /** - * Set the value of a feature flag. - * - * <p>The feature name is any fully-qualified URI. It is - * possible for an XMLReader to expose a feature value but - * to be unable to change the current value. - * Some feature values may be immutable or mutable only - * in specific contexts, such as before, during, or after - * a parse.</p> - * - * <p>All XMLReaders are required to support setting - * http://xml.org/sax/features/namespaces to true and - * http://xml.org/sax/features/namespace-prefixes to false.</p> - * - * @param name The feature name, which is a fully-qualified URI. - * @param value The requested value of the feature (true or false). - * @exception org.xml.sax.SAXNotRecognizedException If the feature - * value can't be assigned or retrieved. - * @exception org.xml.sax.SAXNotSupportedException When the - * XMLReader recognizes the feature name but - * cannot set the requested value. - * @see #getFeature - */ - public void setFeature (String name, boolean value) - throws SAXNotRecognizedException, SAXNotSupportedException; - - - /** - * Look up the value of a property. - * - * <p>The property name is any fully-qualified URI. It is - * possible for an XMLReader to recognize a property name but - * temporarily be unable to return its value. - * Some property values may be available only in specific - * contexts, such as before, during, or after a parse.</p> - * - * <p>XMLReaders are not required to recognize any specific - * property names, though an initial core set is documented for - * SAX2.</p> - * - * <p>Implementors are free (and encouraged) to invent their own properties, - * using names built on their own URIs.</p> - * - * @param name The property name, which is a fully-qualified URI. - * @return The current value of the property. - * @exception org.xml.sax.SAXNotRecognizedException If the property - * value can't be assigned or retrieved. - * @exception org.xml.sax.SAXNotSupportedException When the - * XMLReader recognizes the property name but - * cannot determine its value at this time. - * @see #setProperty - */ - public Object getProperty (String name) - throws SAXNotRecognizedException, SAXNotSupportedException; - - - /** - * Set the value of a property. - * - * <p>The property name is any fully-qualified URI. It is - * possible for an XMLReader to recognize a property name but - * to be unable to change the current value. - * Some property values may be immutable or mutable only - * in specific contexts, such as before, during, or after - * a parse.</p> - * - * <p>XMLReaders are not required to recognize setting - * any specific property names, though a core set is defined by - * SAX2.</p> - * - * <p>This method is also the standard mechanism for setting - * extended handlers.</p> - * - * @param name The property name, which is a fully-qualified URI. - * @param value The requested value for the property. - * @exception org.xml.sax.SAXNotRecognizedException If the property - * value can't be assigned or retrieved. - * @exception org.xml.sax.SAXNotSupportedException When the - * XMLReader recognizes the property name but - * cannot set the requested value. - */ - public void setProperty (String name, Object value) - throws SAXNotRecognizedException, SAXNotSupportedException; - - - - //////////////////////////////////////////////////////////////////// - // Event handlers. - //////////////////////////////////////////////////////////////////// - - - /** - * Allow an application to register an entity resolver. - * - * <p>If the application does not register an entity resolver, - * the XMLReader will perform its own default resolution.</p> - * - * <p>Applications may register a new or different resolver in the - * middle of a parse, and the SAX parser must begin using the new - * resolver immediately.</p> - * - * @param resolver The entity resolver. - * @see #getEntityResolver - */ - public void setEntityResolver (EntityResolver resolver); - - - /** - * Return the current entity resolver. - * - * @return The current entity resolver, or null if none - * has been registered. - * @see #setEntityResolver - */ - public EntityResolver getEntityResolver (); - - - /** - * Allow an application to register a DTD event handler. - * - * <p>If the application does not register a DTD handler, all DTD - * events reported by the SAX parser will be silently ignored.</p> - * - * <p>Applications may register a new or different handler in the - * middle of a parse, and the SAX parser must begin using the new - * handler immediately.</p> - * - * @param handler The DTD handler. - * @see #getDTDHandler - */ - public void setDTDHandler (DTDHandler handler); - - - /** - * Return the current DTD handler. - * - * @return The current DTD handler, or null if none - * has been registered. - * @see #setDTDHandler - */ - public DTDHandler getDTDHandler (); - - - /** - * Allow an application to register a content event handler. - * - * <p>If the application does not register a content handler, all - * content events reported by the SAX parser will be silently - * ignored.</p> - * - * <p>Applications may register a new or different handler in the - * middle of a parse, and the SAX parser must begin using the new - * handler immediately.</p> - * - * @param handler The content handler. - * @see #getContentHandler - */ - public void setContentHandler (ContentHandler handler); - - - /** - * Return the current content handler. - * - * @return The current content handler, or null if none - * has been registered. - * @see #setContentHandler - */ - public ContentHandler getContentHandler (); - - - /** - * Allow an application to register an error event handler. - * - * <p>If the application does not register an error handler, all - * error events reported by the SAX parser will be silently - * ignored; however, normal processing may not continue. It is - * highly recommended that all SAX applications implement an - * error handler to avoid unexpected bugs.</p> - * - * <p>Applications may register a new or different handler in the - * middle of a parse, and the SAX parser must begin using the new - * handler immediately.</p> - * - * @param handler The error handler. - * @see #getErrorHandler - */ - public void setErrorHandler (ErrorHandler handler); - - - /** - * Return the current error handler. - * - * @return The current error handler, or null if none - * has been registered. - * @see #setErrorHandler - */ - public ErrorHandler getErrorHandler (); - - - - //////////////////////////////////////////////////////////////////// - // Parsing. - //////////////////////////////////////////////////////////////////// - - /** - * Parse an XML document. - * - * <p>The application can use this method to instruct the XML - * reader to begin parsing an XML document from any valid input - * source (a character stream, a byte stream, or a URI).</p> - * - * <p>Applications may not invoke this method while a parse is in - * progress (they should create a new XMLReader instead for each - * nested XML document). Once a parse is complete, an - * application may reuse the same XMLReader object, possibly with a - * different input source.</p> - * - * <p>During the parse, the XMLReader will provide information - * about the XML document through the registered event - * handlers.</p> - * - * <p>This method is synchronous: it will not return until parsing - * has ended. If a client application wants to terminate - * parsing early, it should throw an exception.</p> - * - * @param source The input source for the top-level of the - * XML document. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @exception java.io.IOException An IO exception from the parser, - * possibly from a byte stream or character stream - * supplied by the application. - * @see org.xml.sax.InputSource - * @see #parse(java.lang.String) - * @see #setEntityResolver - * @see #setDTDHandler - * @see #setContentHandler - * @see #setErrorHandler - */ - public void parse (InputSource input) - throws IOException, SAXException; - - - /** - * Parse an XML document from a system identifier (URI). - * - * <p>This method is a shortcut for the common case of reading a - * document from a system identifier. It is the exact - * equivalent of the following:</p> - * - * <pre> - * parse(new InputSource(systemId)); - * </pre> - * - * <p>If the system identifier is a URL, it must be fully resolved - * by the application before it is passed to the parser.</p> - * - * @param systemId The system identifier (URI). - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @exception java.io.IOException An IO exception from the parser, - * possibly from a byte stream or character stream - * supplied by the application. - * @see #parse(org.xml.sax.InputSource) - */ - public void parse (String systemId) - throws IOException, SAXException; - -} diff --git a/external/jaxp/source/org/xml/sax/ext/Attributes2.java b/external/jaxp/source/org/xml/sax/ext/Attributes2.java deleted file mode 100644 index ea7f1087e..000000000 --- a/external/jaxp/source/org/xml/sax/ext/Attributes2.java +++ /dev/null @@ -1,91 +0,0 @@ -// Attributes2.java - extended Attributes -// http://www.saxproject.org -// Public Domain: no warranty. - -package org.xml.sax.ext; - -import org.xml.sax.Attributes; - - -/** - * SAX2 extension to augment the per-attribute information - * provided though {@link Attributes}. - * If an implementation supports this extension, the attributes - * provided in {@link org.xml.sax.ContentHandler#startElement - * ContentHandler.startElement() } will implement this interface, - * and the <em>http://xml.org/sax/features/use-attributes2</em> - * feature flag will have the value <em>true</em>. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * </blockquote> - * - * <p> XMLReader implementations are not required to support this - * information, and it is not part of core-only SAX2 distributions.</p> - * - * @since SAX 2.0 (extensions 1.1 alpha) - * @author David Brownell - * @version TBS - */ -public interface Attributes2 extends Attributes -{ - - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.ArrayIndexOutOfBoundsException - * When the supplied index does not identify an attribute. - */ - public boolean isDeclared (int index); - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.IllegalArgumentException - * When the supplied names do not identify an attribute. - */ - public boolean isDeclared (java.lang.String qName); - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.IllegalArgumentException - * When the supplied names do not identify an attribute. - */ - public boolean isDeclared (java.lang.String uri, java.lang.String localName); - - - /** - * Returns true unless the attribute value was provided - * by DTD defaulting. - * - * @param index The attribute index (zero-based). - * @return true if the value was found in the XML text, - * false if the value was provided by DTD defaulting. - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not identify an attribute. - */ - public boolean isSpecified (int index); - - /** - * Returns true unless the attribute value was provided - * by DTD defaulting. - * - * @param uri The Namespace URI, or the empty string if - * the name has no Namespace URI. - * @param localName The attribute's local name. - * @return true if the value was found in the XML text, - * false if the value was provided by DTD defaulting. - * @exception java.lang.IllegalArgumentException When the - * supplied names do not identify an attribute. - */ - public boolean isSpecified (String uri, String localName); - - /** - * Returns true unless the attribute value was provided - * by DTD defaulting. - * - * @param qName The XML 1.0 qualified name. - * @return true if the value was found in the XML text, - * false if the value was provided by DTD defaulting. - * @exception java.lang.IllegalArgumentException When the - * supplied name does not identify an attribute. - */ - public boolean isSpecified (String qName); -} diff --git a/external/jaxp/source/org/xml/sax/ext/Attributes2Impl.java b/external/jaxp/source/org/xml/sax/ext/Attributes2Impl.java deleted file mode 100644 index 6781e1856..000000000 --- a/external/jaxp/source/org/xml/sax/ext/Attributes2Impl.java +++ /dev/null @@ -1,279 +0,0 @@ -// Attributes2Impl.java - extended AttributesImpl -// http://www.saxproject.org -// Public Domain: no warranty. - -package org.xml.sax.ext; - -import org.xml.sax.Attributes; -import org.xml.sax.helpers.AttributesImpl; - - -/** - * SAX2 extension helper for additional Attributes information, - * implementing the {@link Attributes2} interface. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * </blockquote> - * - * <p>This is not part of core-only SAX2 distributions.</p> - * - * <p>The <em>specified</em> flag for each attribute will always - * be true, unless it has been set to false in the copy constructor - * or using {@link #setSpecified}. </p> - * - * @since SAX 2.0 (extensions 1.1 alpha) - * @author David Brownell - * @version TBS - */ -public class Attributes2Impl extends AttributesImpl implements Attributes2 -{ - private boolean flags []; - - private boolean declaredFlags[]; - - /** - * Construct a new, empty Attributes2Impl object. - */ - public Attributes2Impl () { } - - - /** - * Copy an existing Attributes or Attributes2 object. - * If the object implements Attributes2, values of the - * <em>specified</em> flag for each attribute are copied, - * otherwise the flag values are set to <em>true</em>. - * - * <p>This constructor is especially useful inside a - * {@link org.xml.sax.ContentHandler#startElement startElement} event.</p> - * - * @param atts The existing Attributes object. - */ - public Attributes2Impl (Attributes atts) - { - super (atts); - } - - - //////////////////////////////////////////////////////////////////// - // Implementation of Attributes2 - //////////////////////////////////////////////////////////////////// - - - - /* - note(1) - The implementation of the isDeclared methods is wrong. It's only here - to make the class compile, it's not intended to work yet. - */ - - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.ArrayIndexOutOfBoundsException - * When the supplied index does not identify an attribute. - */ - public boolean isDeclared (int index) - { - if (index < 0 || index >= getLength ()) - throw new ArrayIndexOutOfBoundsException ("No attribute at index: " + index); - return declaredFlags [index]; - } - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.IllegalArgumentException - * When the supplied names do not identify an attribute. - */ - public boolean isDeclared (java.lang.String qName) - { - int index = getIndex (qName); - if (index < 0) - throw new IllegalArgumentException ("No such attribute: " + qName); - return declaredFlags [index]; - } - - /** @return false unless the attribute was declared in the DTD. - * @throws java.lang.IllegalArgumentException - * When the supplied names do not identify an attribute. - */ - public boolean isDeclared (java.lang.String uri, java.lang.String localName) - { - int index = getIndex (uri, localName); - if (index < 0) - throw new IllegalArgumentException ("No such attribute: local=" - + localName - + ", namespace=" + uri); - return declaredFlags [index]; - } - - - /** - * Returns the current value of an attribute's "specified" flag. - * - * @param index The attribute index (zero-based). - * @return current flag value - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not identify an attribute. - */ - public boolean isSpecified (int index) - { - if (index < 0 || index >= getLength ()) - throw new ArrayIndexOutOfBoundsException ( - "No attribute at index: " + index); - return flags [index]; - } - - - /** - * Returns the current value of an attribute's "specified" flag. - * - * @param uri The Namespace URI, or the empty string if - * the name has no Namespace URI. - * @param localName The attribute's local name. - * @return current flag value - * @exception java.lang.IllegalArgumentException When the - * supplied names do not identify an attribute. - */ - public boolean isSpecified (String uri, String localName) - { - int index = getIndex (uri, localName); - - if (index < 0) - throw new IllegalArgumentException ( - "No such attribute: local=" + localName - + ", namespace=" + uri); - return flags [index]; - } - - - /** - * Returns the current value of an attribute's "specified" flag. - * - * @param qName The XML 1.0 qualified name. - * @return current flag value - * @exception java.lang.IllegalArgumentException When the - * supplied name does not identify an attribute. - */ - public boolean isSpecified (String qName) - { - int index = getIndex (qName); - - if (index < 0) - throw new IllegalArgumentException ( - "No such attribute: " + qName); - return flags [index]; - } - - - //////////////////////////////////////////////////////////////////// - // Manipulators - //////////////////////////////////////////////////////////////////// - - - /** - * Copy an entire Attributes object. The "specified" flags are - * assigned as true, unless the object is an Attributes2 object - * in which case those values are copied. - * - * @see AttributesImpl#setAttributes - */ - public void setAttributes (Attributes atts) - { - int length = atts.getLength (); - - super.setAttributes (atts); - flags = new boolean [length]; - declaredFlags = new boolean[length]; - - if (atts instanceof Attributes2) { - Attributes2 a2 = (Attributes2) atts; - for (int i = 0; i < length; i++) { - flags [i] = a2.isSpecified (i); - declaredFlags[i] = a2.isDeclared(i); - } - } else { - for (int i = 0; i < length; i++) { - flags [i] = true; - declaredFlags[i] = getType(i).equals("CDATA"); - } - } - - } - - - /** - * Add an attribute to the end of the list, setting its - * "specified" flag to true. To set that flag's value - * to false, use {@link #setSpecified}. - * - * @see AttributesImpl#addAttribute - */ - public void addAttribute (String uri, String localName, String qName, - String type, String value) - { - super.addAttribute (uri, localName, qName, type, value); - - int length = getLength (); - - if (length < flags.length) { - boolean newFlags [] = new boolean [length]; - System.arraycopy (flags, 0, newFlags, 0, flags.length); - flags = newFlags; - boolean newDeclFlags[] = new boolean[length]; - System.arraycopy (declaredFlags, 0, newDeclFlags, 0, declaredFlags.length); - declaredFlags = newDeclFlags; - } - - flags [length - 1] = true; - declaredFlags[length - 1] = type.equals("CDATA"); - } - - - // javadoc entirely from superclass - public void removeAttribute (int index) - { - int origMax = getLength () - 1; - - super.removeAttribute (index); - if (index != origMax) - System.arraycopy (flags, index + 1, flags, index, - origMax - index); - } - - - - /** - * Assign a value to the "declared" flag of a specific attribute. - * This is the only way this flag can be cleared, except clearing - * by initialization with the copy constructor. - * - * @param index The index of the attribute (zero-based). - * @param value The desired flag value. - * @throws java.lang.ArrayIndexOutOfBoundsException - * When the supplied index does not identify an attribute. - */ - public void setDeclared (int index, boolean value) - { - if (index < 0 || index >= getLength ()) - throw new ArrayIndexOutOfBoundsException ("No attribute at index: " + index); - declaredFlags [index] = value; - } - - /** - * Assign a value to the "specified" flag of a specific attribute. - * This is the only way this flag can be cleared, except clearing - * by initialization with the copy constructor. - * - * @param index The index of the attribute (zero-based). - * @param value The desired flag value. - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not identify an attribute. - */ - public void setSpecified (int index, boolean value) - { - if (index < 0 || index >= getLength ()) - throw new ArrayIndexOutOfBoundsException ( - "No attribute at index: " + index); - flags [index] = value; - } -} diff --git a/external/jaxp/source/org/xml/sax/ext/DeclHandler.java b/external/jaxp/source/org/xml/sax/ext/DeclHandler.java deleted file mode 100755 index 85ac476f7..000000000 --- a/external/jaxp/source/org/xml/sax/ext/DeclHandler.java +++ /dev/null @@ -1,142 +0,0 @@ -// DeclHandler.java - Optional handler for DTD declaration events. -// http://www.saxproject.org -// Public Domain: no warranty. - -package org.xml.sax.ext; - -import org.xml.sax.SAXException; - - -/** - * SAX2 extension handler for DTD declaration events. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This is an optional extension handler for SAX2 to provide more - * complete information about DTD declarations in an XML document. - * XML readers are not required to recognize this handler, and it - * is not part of core-only SAX2 distributions.</p> - * - * <p>Note that data-related DTD declarations (unparsed entities and - * notations) are already reported through the {@link - * org.xml.sax.DTDHandler DTDHandler} interface.</p> - * - * <p>If you are using the declaration handler together with a lexical - * handler, all of the events will occur between the - * {@link org.xml.sax.ext.LexicalHandler#startDTD startDTD} and the - * {@link org.xml.sax.ext.LexicalHandler#endDTD endDTD} events.</p> - * - * <p>To set the DeclHandler for an XML reader, use the - * {@link org.xml.sax.XMLReader#setProperty setProperty} method - * with the property name - * <code>http://xml.org/sax/properties/declaration-handler</code> - * and an object implementing this interface (or null) as the value. - * If the reader does not report declaration events, it will throw a - * {@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException} - * when you attempt to register the handler.</p> - * - * @since SAX 2.0 (extensions 1.0) - * @author David Megginson - * @version 2.0.1 (sax2r2) - */ -public interface DeclHandler -{ - - /** - * Report an element type declaration. - * - * <p>The content model will consist of the string "EMPTY", the - * string "ANY", or a parenthesised group, optionally followed - * by an occurrence indicator. The model will be normalized so - * that all parameter entities are fully resolved and all whitespace - * is removed,and will include the enclosing parentheses. Other - * normalization (such as removing redundant parentheses or - * simplifying occurrence indicators) is at the discretion of the - * parser.</p> - * - * @param name The element type name. - * @param model The content model as a normalized string. - * @exception SAXException The application may raise an exception. - */ - public abstract void elementDecl (String name, String model) - throws SAXException; - - - /** - * Report an attribute type declaration. - * - * <p>Only the effective (first) declaration for an attribute will - * be reported. The type will be one of the strings "CDATA", - * "ID", "IDREF", "IDREFS", "NMTOKEN", "NMTOKENS", "ENTITY", - * "ENTITIES", a parenthesized token group with - * the separator "|" and all whitespace removed, or the word - * "NOTATION" followed by a space followed by a parenthesized - * token group with all whitespace removed.</p> - * - * <p>The value will be the value as reported to applications, - * appropriately normalized and with entity and character - * references expanded. </p> - * - * @param eName The name of the associated element. - * @param aName The name of the attribute. - * @param type A string representing the attribute type. - * @param mode A string representing the attribute defaulting mode - * ("#IMPLIED", "#REQUIRED", or "#FIXED") or null if - * none of these applies. - * @param value A string representing the attribute's default value, - * or null if there is none. - * @exception SAXException The application may raise an exception. - */ - public abstract void attributeDecl (String eName, - String aName, - String type, - String mode, - String value) - throws SAXException; - - - /** - * Report an internal entity declaration. - * - * <p>Only the effective (first) declaration for each entity - * will be reported. All parameter entities in the value - * will be expanded, but general entities will not.</p> - * - * @param name The name of the entity. If it is a parameter - * entity, the name will begin with '%'. - * @param value The replacement text of the entity. - * @exception SAXException The application may raise an exception. - * @see #externalEntityDecl - * @see org.xml.sax.DTDHandler#unparsedEntityDecl - */ - public abstract void internalEntityDecl (String name, String value) - throws SAXException; - - - /** - * Report a parsed external entity declaration. - * - * <p>Only the effective (first) declaration for each entity - * will be reported.</p> - * - * @param name The name of the entity. If it is a parameter - * entity, the name will begin with '%'. - * @param publicId The declared public identifier of the entity, or - * null if none was declared. - * @param systemId The declared system identifier of the entity. - * @exception SAXException The application may raise an exception. - * @see #internalEntityDecl - * @see org.xml.sax.DTDHandler#unparsedEntityDecl - */ - public abstract void externalEntityDecl (String name, String publicId, - String systemId) - throws SAXException; - -} - -// end of DeclHandler.java diff --git a/external/jaxp/source/org/xml/sax/ext/DefaultHandler2.java b/external/jaxp/source/org/xml/sax/ext/DefaultHandler2.java deleted file mode 100644 index b8fc670d3..000000000 --- a/external/jaxp/source/org/xml/sax/ext/DefaultHandler2.java +++ /dev/null @@ -1,129 +0,0 @@ -// DefaultHandler2.java - extended DefaultHandler -// http://www.saxproject.org -// Public Domain: no warranty. - -package org.xml.sax.ext; - -import java.io.IOException; -import org.xml.sax.InputSource; -import org.xml.sax.SAXException; -import org.xml.sax.helpers.DefaultHandler; - - -/** - * This class extends the SAX2 base handler class to support the - * SAX2 {@link LexicalHandler}, {@link DeclHandler}, and - * {@link EntityResolver2} extensions. Except for overriding the - * original SAX1 {@link DefaultHandler#resolveEntity resolveEntity()} - * method the added handler methods just return. Subclassers may - * override everything on a method-by-method basis. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * </blockquote> - * - * <p> <em>Note:</em> this class might yet learn that the - * <em>ContentHandler.setDocumentLocator()</em> call might be passed a - * {@link Locator2} object, and that the - * <em>ContentHandler.startElement()</em> call might be passed a - * {@link Attributes2} object. - * - * @since SAX 2.0 (extensions 1.1 alpha) - * @author David Brownell - * @version TBS - */ -public class DefaultHandler2 extends DefaultHandler - implements LexicalHandler, DeclHandler, EntityResolver2 -{ - /** Constructs a handler which ignores all parsing events. */ - public DefaultHandler2 () { } - - - // SAX2 ext-1.0 LexicalHandler - - public void startCDATA () - throws SAXException - {} - - public void endCDATA () - throws SAXException - {} - - public void startDTD (String name, String publicId, String systemId) - throws SAXException - {} - - public void endDTD () - throws SAXException - {} - - public void startEntity (String name) - throws SAXException - {} - - public void endEntity (String name) - throws SAXException - {} - - public void comment (char ch [], int start, int length) - throws SAXException - { } - - - // SAX2 ext-1.0 DeclHandler - - public void attributeDecl (String eName, String aName, - String type, String mode, String value) - throws SAXException - {} - - public void elementDecl (String name, String model) - throws SAXException - {} - - public void externalEntityDecl (String name, - String publicId, String systemId) - throws SAXException - {} - - public void internalEntityDecl (String name, String value) - throws SAXException - {} - - // SAX2 ext-1.1 EntityResolver2 - - /** - * Tells the parser that if no external subset has been declared - * in the document text, none should be used. - */ - public InputSource getExternalSubset (String name, String baseURI) - throws SAXException, IOException - { return null; } - - /** - * Tells the parser to resolve the systemId against the baseURI - * and read the entity text from that resulting absolute URI. - * Note that because the older - * {@link DefaultHandler#resolveEntity DefaultHandler.resolveEntity()}, - * method is overridden to call this one, this method may sometimes - * be invoked with null <em>name</em> and <em>baseURI</em>, and - * with the <em>systemId</em> already absolutized. - */ - public InputSource resolveEntity (String name, String publicId, - String baseURI, String systemId) - throws SAXException, IOException - { return null; } - - // SAX1 EntityResolver - - /** - * Invokes - * {@link EntityResolver2#resolveEntity EntityResolver2.resolveEntity()} - * with null entity name and base URI. - * You only need to override that method to use this class. - */ - public InputSource resolveEntity (String publicId, String systemId) - throws SAXException, IOException - { return resolveEntity (null, publicId, null, systemId); } -} diff --git a/external/jaxp/source/org/xml/sax/ext/EntityResolver2.java b/external/jaxp/source/org/xml/sax/ext/EntityResolver2.java deleted file mode 100644 index f25bd32bc..000000000 --- a/external/jaxp/source/org/xml/sax/ext/EntityResolver2.java +++ /dev/null @@ -1,196 +0,0 @@ -// EntityResolver2.java - Extended SAX entity resolver. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax.ext; - -import java.io.IOException; - -import org.xml.sax.EntityResolver; -import org.xml.sax.InputSource; -import org.xml.sax.XMLReader; -import org.xml.sax.SAXException; - - -/** - * Extended interface for mapping external entity references to input - * sources, or providing a missing external subset. The - * {@link XMLReader#setEntityResolver XMLReader.setEntityResolver()} method - * is used to provide implementations of this interface to parsers. - * When a parser uses the methods in this interface, the - * {@link EntityResolver2#resolveEntity EntityResolver2.resolveEntity()} - * method (in this interface) is used <em>instead of</em> the older (SAX 1.0) - * {@link EntityResolver#resolveEntity EntityResolver.resolveEntity()} method. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * </blockquote> - * - * <p>If a SAX application requires the customized handling which this - * interface defines for external entities, it must ensure that it uses - * an XMLReader with the - * <em>http://xml.org/sax/features/use-entity-resolver2</em> feature flag - * set to <em>true</em> (which is its default value when the feature is - * recognized). If that flag is unrecognized, or its value is false, - * or the resolver does not implement this interface, then only the - * {@link EntityResolver} method will be used. - * </p> - * - * <p>That supports three categories of application that modify entity - * resolution. <em>Old Style</em> applications won't know about this interface; - * they will provide an EntityResolver. - * <em>Transitional Mode</em> provide an EntityResolver2 and automatically - * get the benefit of its methods in any systems (parsers or other tools) - * supporting it, due to polymorphism. - * Both <em>Old Style</em> and <em>Transitional Mode</em> applications will - * work with any SAX2 parser. - * <em>New style</em> applications will fail to run except on SAX2 parsers - * that support this particular feature. - * They will insist that feature flag have a value of "true", and the - * EntityResolver2 implementation they provide might throw an exception - * if the original SAX 1.0 style entity resolution method is invoked. - * </p> - * - * @see org.xml.sax.XMLReader#setEntityResolver - * - * @since SAX 2.0 (extensions 1.1 alpha) - * @author David Brownell - * @version TBD - */ -public interface EntityResolver2 extends EntityResolver -{ - /** - * Allows applications to provide an external subset for documents - * that don't explicitly define one. Documents with DOCTYPE declarations - * that omit an external subset can thus augment the declarations - * available for validation, entity processing, and attribute processing - * (normalization, defaulting, and reporting types including ID). - * This augmentation is reported - * through the {@link LexicalHandler#startDTD startDTD()} method as if - * the document text had originally included the external subset; - * this callback is made before any internal subset data or errors - * are reported.</p> - * - * <p>This method can also be used with documents that have no DOCTYPE - * declaration. When the root element is encountered, - * but no DOCTYPE declaration has been seen, this method is - * invoked. If it returns a value for the external subset, that root - * element is declared to be the root element, giving the effect of - * splicing a DOCTYPE declaration at the end the prolog of a document - * that could not otherwise be valid. The sequence of parser callbacks - * in that case logically resembles this:</p> - * - * <pre> - * ... comments and PIs from the prolog (as usual) - * startDTD ("rootName", source.getPublicId (), source.getSystemId ()); - * startEntity ("[dtd]"); - * ... declarations, comments, and PIs from the external subset - * endEntity ("[dtd]"); - * endDTD (); - * ... then the rest of the document (as usual) - * startElement (..., "rootName", ...); - * </pre> - * - * <p>Note that the InputSource gets no further resolution. - * Implementations of this method may wish to invoke - * {@link #resolveEntity resolveEntity()} to gain benefits such as use - * of local caches of DTD entities. Also, this method will never be - * used by a (non-validating) processor that is not including external - * parameter entities. </p> - * - * <p>Uses for this method include facilitating data validation when - * interoperating with XML processors that would always require - * undesirable network accesses for external entities, or which for - * other reasons adopt a "no DTDs" policy. - * Non-validation motives include forcing documents to include DTDs so - * that attributes are handled consistently. - * For example, an XPath processor needs to know which attibutes have - * type "ID" before it can process a widely used type of reference.</p> - * - * <p><strong>Warning:</strong> Returning an external subset modifies - * the input document. By providing definitions for general entities, - * it can make a malformed document appear to be well formed. - * </p> - * - * @param name Identifies the document root element. This name comes - * from a DOCTYPE declaration (where available) or from the actual - * root element. - * @param baseURI The document's base URI, serving as an additional - * hint for selecting the external subset. This is always an absolute - * URI, unless it is null because the XMLReader was given an InputSource - * without one. - * - * @return An InputSource object describing the new external subset - * to be used by the parser, or null to indicate that no external - * subset is provided. - * - * @exception SAXException Any SAX exception, possibly wrapping - * another exception. - * @exception IOException Probably indicating a failure to create - * a new InputStream or Reader, or an illegal URL. - */ - public InputSource getExternalSubset (String name, String baseURI) - throws SAXException, IOException; - - /** - * Allows applications to map references to external entities into input - * sources, or tell the parser it should use conventional URI resolution. - * This method is only called for external entities which have been - * properly declared. - * This method provides more flexibility than the {@link EntityResolver} - * interface, supporting implementations of more complex catalogue - * schemes such as the one defined by the <a href= - "http://www.oasis-open.org/committees/entity/spec-2001-08-06.html" - >OASIS XML Catalogs</a> specification.</p> - * - * <p>Parsers configured to use this resolver method will call it - * to determine the input source to use for any external entity - * being included because of a reference in the XML text. - * That excludes the document entity, and any external entity returned - * by {@link #getExternalSubset getExternalSubset()}. - * When a (non-validating) processor is configured not to include - * a class of entities (parameter or general) through use of feature - * flags, this method is not invoked for such entities. </p> - * - * <p>Note that the entity naming scheme used here is the same one - * used in the {@link LexicalHandler}, or in the {@link - org.xml.sax.ContentHandler#skippedEntity - ContentHandler.skippedEntity()} - * method. </p> - * - * @param name Identifies the external entity being resolved. - * Either "[dtd]" for the external subset, or a name starting - * with "%" to indicate a parameter entity, or else the name of - * a general entity. This is never null when invoked by a SAX2 - * parser. - * @param publicId The public identifier of the external entity being - * referenced (normalized as required by the XML specification), or - * null if none was supplied. - * @param baseURI The URI with respect to which relative systemIDs - * are interpreted. This is always an absolute URI, unless it is - * null (likely because the XMLReader was given an InputSource without - * one). This URI is defined by the XML specification to be the one - * associated with the "<" starting the relevant declaration. - * @param systemId The system identifier of the external entity - * being referenced; either a relative or absolute URI. - * This is never null when invoked by a SAX2 parser; only declared - * entities, and any external subset, are resolved by such parsers. - * - * @return An InputSource object describing the new input source to - * be used by the parser. Returning null directs the parser to - * resolve the system ID against the base URI and open a connection - * to resulting URI. - * - * @exception SAXException Any SAX exception, possibly wrapping - * another exception. - * @exception IOException Probably indicating a failure to create - * a new InputStream or Reader, or an illegal URL. - */ - public InputSource resolveEntity ( - String name, - String publicId, - String baseURI, - String systemId - ) throws SAXException, IOException; -} diff --git a/external/jaxp/source/org/xml/sax/ext/LexicalHandler.java b/external/jaxp/source/org/xml/sax/ext/LexicalHandler.java deleted file mode 100755 index f59062c1a..000000000 --- a/external/jaxp/source/org/xml/sax/ext/LexicalHandler.java +++ /dev/null @@ -1,211 +0,0 @@ -// LexicalHandler.java - optional handler for lexical parse events. -// http://www.saxproject.org -// Public Domain: no warranty. - -package org.xml.sax.ext; - -import org.xml.sax.SAXException; - -/** - * SAX2 extension handler for lexical events. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This is an optional extension handler for SAX2 to provide - * lexical information about an XML document, such as comments - * and CDATA section boundaries. - * XML readers are not required to recognize this handler, and it - * is not part of core-only SAX2 distributions.</p> - * - * <p>The events in the lexical handler apply to the entire document, - * not just to the document element, and all lexical handler events - * must appear between the content handler's startDocument and - * endDocument events.</p> - * - * <p>To set the LexicalHandler for an XML reader, use the - * {@link org.xml.sax.XMLReader#setProperty setProperty} method - * with the property name - * <code>http://xml.org/sax/properties/lexical-handler</code> - * and an object implementing this interface (or null) as the value. - * If the reader does not report lexical events, it will throw a - * {@link org.xml.sax.SAXNotRecognizedException SAXNotRecognizedException} - * when you attempt to register the handler.</p> - * - * @since SAX 2.0 (extensions 1.0) - * @author David Megginson - * @version 2.0.1 (sax2r2) - */ -public interface LexicalHandler -{ - - /** - * Report the start of DTD declarations, if any. - * - * <p>This method is intended to report the beginning of the - * DOCTYPE declaration; if the document has no DOCTYPE declaration, - * this method will not be invoked.</p> - * - * <p>All declarations reported through - * {@link org.xml.sax.DTDHandler DTDHandler} or - * {@link org.xml.sax.ext.DeclHandler DeclHandler} events must appear - * between the startDTD and {@link #endDTD endDTD} events. - * Declarations are assumed to belong to the internal DTD subset - * unless they appear between {@link #startEntity startEntity} - * and {@link #endEntity endEntity} events. Comments and - * processing instructions from the DTD should also be reported - * between the startDTD and endDTD events, in their original - * order of (logical) occurrence; they are not required to - * appear in their correct locations relative to DTDHandler - * or DeclHandler events, however.</p> - * - * <p>Note that the start/endDTD events will appear within - * the start/endDocument events from ContentHandler and - * before the first - * {@link org.xml.sax.ContentHandler#startElement startElement} - * event.</p> - * - * @param name The document type name. - * @param publicId The declared public identifier for the - * external DTD subset, or null if none was declared. - * @param systemId The declared system identifier for the - * external DTD subset, or null if none was declared. - * (Note that this is not resolved against the document - * base URI.) - * @exception SAXException The application may raise an - * exception. - * @see #endDTD - * @see #startEntity - */ - public abstract void startDTD (String name, String publicId, - String systemId) - throws SAXException; - - - /** - * Report the end of DTD declarations. - * - * <p>This method is intended to report the end of the - * DOCTYPE declaration; if the document has no DOCTYPE declaration, - * this method will not be invoked.</p> - * - * @exception SAXException The application may raise an exception. - * @see #startDTD - */ - public abstract void endDTD () - throws SAXException; - - - /** - * Report the beginning of some internal and external XML entities. - * - * <p>The reporting of parameter entities (including - * the external DTD subset) is optional, and SAX2 drivers that - * report LexicalHandler events may not implement it; you can use the - * <code - * >http://xml.org/sax/features/lexical-handler/parameter-entities</code> - * feature to query or control the reporting of parameter entities.</p> - * - * <p>General entities are reported with their regular names, - * parameter entities have '%' prepended to their names, and - * the external DTD subset has the pseudo-entity name "[dtd]".</p> - * - * <p>When a SAX2 driver is providing these events, all other - * events must be properly nested within start/end entity - * events. There is no additional requirement that events from - * {@link org.xml.sax.ext.DeclHandler DeclHandler} or - * {@link org.xml.sax.DTDHandler DTDHandler} be properly ordered.</p> - * - * <p>Note that skipped entities will be reported through the - * {@link org.xml.sax.ContentHandler#skippedEntity skippedEntity} - * event, which is part of the ContentHandler interface.</p> - * - * <p>Because of the streaming event model that SAX uses, some - * entity boundaries cannot be reported under any - * circumstances:</p> - * - * <ul> - * <li>general entities within attribute values</li> - * <li>parameter entities within declarations</li> - * </ul> - * - * <p>These will be silently expanded, with no indication of where - * the original entity boundaries were.</p> - * - * <p>Note also that the boundaries of character references (which - * are not really entities anyway) are not reported.</p> - * - * <p>All start/endEntity events must be properly nested. - * - * @param name The name of the entity. If it is a parameter - * entity, the name will begin with '%', and if it is the - * external DTD subset, it will be "[dtd]". - * @exception SAXException The application may raise an exception. - * @see #endEntity - * @see org.xml.sax.ext.DeclHandler#internalEntityDecl - * @see org.xml.sax.ext.DeclHandler#externalEntityDecl - */ - public abstract void startEntity (String name) - throws SAXException; - - - /** - * Report the end of an entity. - * - * @param name The name of the entity that is ending. - * @exception SAXException The application may raise an exception. - * @see #startEntity - */ - public abstract void endEntity (String name) - throws SAXException; - - - /** - * Report the start of a CDATA section. - * - * <p>The contents of the CDATA section will be reported through - * the regular {@link org.xml.sax.ContentHandler#characters - * characters} event; this event is intended only to report - * the boundary.</p> - * - * @exception SAXException The application may raise an exception. - * @see #endCDATA - */ - public abstract void startCDATA () - throws SAXException; - - - /** - * Report the end of a CDATA section. - * - * @exception SAXException The application may raise an exception. - * @see #startCDATA - */ - public abstract void endCDATA () - throws SAXException; - - - /** - * Report an XML comment anywhere in the document. - * - * <p>This callback will be used for comments inside or outside the - * document element, including comments in the external DTD - * subset (if read). Comments in the DTD must be properly - * nested inside start/endDTD and start/endEntity events (if - * used).</p> - * - * @param ch An array holding the characters in the comment. - * @param start The starting position in the array. - * @param length The number of characters to use from the array. - * @exception SAXException The application may raise an exception. - */ - public abstract void comment (char ch[], int start, int length) - throws SAXException; - -} - -// end of LexicalHandler.java diff --git a/external/jaxp/source/org/xml/sax/ext/Locator2.java b/external/jaxp/source/org/xml/sax/ext/Locator2.java deleted file mode 100644 index 150a1ba11..000000000 --- a/external/jaxp/source/org/xml/sax/ext/Locator2.java +++ /dev/null @@ -1,76 +0,0 @@ -// Locator2.java - extended Locator -// http://www.saxproject.org -// Public Domain: no warranty. - -package org.xml.sax.ext; - -import org.xml.sax.Locator; - - -/** - * SAX2 extension to augment the entity information provided - * though a {@link Locator}. - * If an implementation supports this extension, the Locator - * provided in {@link org.xml.sax.ContentHandler#setDocumentLocator - * ContentHandler.setDocumentLocator() } will implement this - * interface, and the - * <em>http://xml.org/sax/features/use-locator2</em> feature - * flag will have the value <em>true</em>. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * </blockquote> - * - * <p> XMLReader implementations are not required to support this - * information, and it is not part of core-only SAX2 distributions.</p> - * - * @since SAX 2.0 (extensions 1.1 alpha) - * @author David Brownell - * @version TBS - */ -public interface Locator2 extends Locator -{ - /** - * Returns the version of XML used for the entity. This will - * normally be the identifier from the current entity's - * <em><?xml version='...' ...?></em> declaration, - * or be defaulted by the parser. - * - * <p> At this writing, only one version ("1.0") is defined, but it - * seems likely that a new version will be defined which has slightly - * different rules about which characters are legal in XML names. - * - * @return Identifier for the XML version being used to interpret - * the entity's text. - */ - public String getXMLVersion (); - - /** - * Returns the name of the character encoding for the entity. - * If the encoding was declared externally (for example, in a MIME - * Content-Type header), that will be the name returned. Else if there - * was an <em><?xml ...encoding='...'?></em> declaration at - * the start of the document, that encoding name will be returned. - * Otherwise the encoding will been inferred (normally to be UTF-8, or - * some UTF-16 variant), and that inferred name will be returned. - * - * <p>When an {@link org.xml.sax.InputSource InputSource} is used - * to provide an entity's character stream, this method returns the - * encoding provided in that input stream. - * - * <p> Note that some recent W3C specifications require that text - * in some encodings be normalized, using Unicode Normalization - * Form C, before processing. Such normalization must be performed - * by applications, and would normally be triggered based on the - * value returned by this method. - * - * <p> Encoding names may be those used by the underlying JVM, - * and comparisons should be case-insensitive. - * - * @return Name of the character encoding being used to interpret - * the entity's text, or null if this was not provided for a - * character stream passed through an InputSource. - */ - public String getEncoding (); -} diff --git a/external/jaxp/source/org/xml/sax/ext/Locator2Impl.java b/external/jaxp/source/org/xml/sax/ext/Locator2Impl.java deleted file mode 100644 index c77dfe605..000000000 --- a/external/jaxp/source/org/xml/sax/ext/Locator2Impl.java +++ /dev/null @@ -1,100 +0,0 @@ -// Locator2Impl.java - extended LocatorImpl -// http://www.saxproject.org -// Public Domain: no warranty. - -package org.xml.sax.ext; - -import org.xml.sax.Locator; -import org.xml.sax.helpers.LocatorImpl; - - -/** - * SAX2 extension helper for holding additional Entity information, - * implementing the {@link Locator2} interface. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * </blockquote> - * - * <p> This is not part of core-only SAX2 distributions.</p> - * - * @since SAX 2.0 (extensions 1.1 alpha) - * @author David Brownell - * @version TBS - */ -public class Locator2Impl extends LocatorImpl implements Locator2 -{ - private String encoding; - private String version; - - - /** - * Construct a new, empty Locator2Impl object. - * This will not normally be useful, since the main purpose - * of this class is to make a snapshot of an existing Locator. - */ - public Locator2Impl () { } - - /** - * Copy an existing Locator or Locator2 object. - * If the object implements Locator2, values of the - * <em>encoding</em> and <em>version</em>strings are copied, - * otherwise they set to <em>null</em>. - * - * @param locator The existing Locator object. - */ - public Locator2Impl (Locator locator) - { - super (locator); - if (locator instanceof Locator2) { - Locator2 l2 = (Locator2) locator; - - version = l2.getXMLVersion (); - encoding = l2.getEncoding (); - } - } - - //////////////////////////////////////////////////////////////////// - // Locator2 method implementations - //////////////////////////////////////////////////////////////////// - - /** - * Returns the current value of the version property. - * - * @see #setXMLVersion - */ - public String getXMLVersion () - { return version; } - - /** - * Returns the current value of the encoding property. - * - * @see #setEncoding - */ - public String getEncoding () - { return encoding; } - - - //////////////////////////////////////////////////////////////////// - // Setters - //////////////////////////////////////////////////////////////////// - - /** - * Assigns the current value of the version property. - * - * @param version the new "version" value - * @see #getXMLVersion - */ - public void setXMLVersion (String version) - { this.version = version; } - - /** - * Assigns the current value of the encoding property. - * - * @param version the new "encoding" value - * @see #getEncoding - */ - public void setEncoding (String encoding) - { this.encoding = encoding; } -} diff --git a/external/jaxp/source/org/xml/sax/ext/package.html b/external/jaxp/source/org/xml/sax/ext/package.html deleted file mode 100755 index 6f5db3e3b..000000000 --- a/external/jaxp/source/org/xml/sax/ext/package.html +++ /dev/null @@ -1,46 +0,0 @@ -<HTML><HEAD> -<!-- $Id: package.html,v 1.2 2004-05-01 16:18:52 mark Exp $ --> -</HEAD><BODY> - -<p> -This package contains interfaces to SAX2 facilities that -conformant SAX drivers won't necessarily support. - -<p>See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> -for more information about SAX.</p> - -<p> This package is independent of the SAX2 core, though the functionality -exposed generally needs to be implemented within a parser core. -That independence has several consequences:</p> - -<ul> - -<li>SAX2 drivers are <em>not</em> required to recognize these handlers. -</li> - -<li>You cannot assume that the class files will be present in every SAX2 -installation.</li> - -<li>This package may be updated independently of SAX2 (i.e. new -handlers and classes may be added without updating SAX2 itself).</li> - -<li>The new handlers are not implemented by the SAX2 -<code>org.xml.sax.helpers.DefaultHandler</code> or -<code>org.xml.sax.helpers.XMLFilterImpl</code> classes. -You can subclass these if you need such behavior, or -use the helper classes found here.</li> - -<li>The handlers need to be registered differently than core SAX2 -handlers.</li> - -</ul> - -<p>This package, SAX2-ext, is a standardized extension to SAX2. It is -designed both to allow SAX parsers to pass certain types of information -to applications, and to serve as a simple model for other SAX2 parser -extension packages. Not all such extension packages should need to -be recognized directly by parsers, however. -As an example, most validation systems can be cleanly layered on top -of parsers supporting the standardized SAX2 interfaces. </p> - -</BODY></HTML> diff --git a/external/jaxp/source/org/xml/sax/helpers/AttributeListImpl.java b/external/jaxp/source/org/xml/sax/helpers/AttributeListImpl.java deleted file mode 100755 index a8009e8a2..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/AttributeListImpl.java +++ /dev/null @@ -1,311 +0,0 @@ -// SAX default implementation for AttributeList. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax.helpers; - -import org.xml.sax.AttributeList; - -import java.util.Vector; - - -/** - * Default implementation for AttributeList. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>AttributeList implements the deprecated SAX1 {@link - * org.xml.sax.AttributeList AttributeList} interface, and has been - * replaced by the new SAX2 {@link org.xml.sax.helpers.AttributesImpl - * AttributesImpl} interface.</p> - * - * <p>This class provides a convenience implementation of the SAX - * {@link org.xml.sax.AttributeList AttributeList} interface. This - * implementation is useful both for SAX parser writers, who can use - * it to provide attributes to the application, and for SAX application - * writers, who can use it to create a persistent copy of an element's - * attribute specifications:</p> - * - * <pre> - * private AttributeList myatts; - * - * public void startElement (String name, AttributeList atts) - * { - * // create a persistent copy of the attribute list - * // for use outside this method - * myatts = new AttributeListImpl(atts); - * [...] - * } - * </pre> - * - * <p>Please note that SAX parsers are not required to use this - * class to provide an implementation of AttributeList; it is - * supplied only as an optional convenience. In particular, - * parser writers are encouraged to invent more efficient - * implementations.</p> - * - * @deprecated This class implements a deprecated interface, - * {@link org.xml.sax.AttributeList AttributeList}; - * that interface has been replaced by - * {@link org.xml.sax.Attributes Attributes}, - * which is implemented in the - * {@link org.xml.sax.helpers.AttributesImpl - * AttributesImpl} helper class. - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.AttributeList - * @see org.xml.sax.DocumentHandler#startElement - */ -public class AttributeListImpl implements AttributeList -{ - - /** - * Create an empty attribute list. - * - * <p>This constructor is most useful for parser writers, who - * will use it to create a single, reusable attribute list that - * can be reset with the clear method between elements.</p> - * - * @see #addAttribute - * @see #clear - */ - public AttributeListImpl () - { - } - - - /** - * Construct a persistent copy of an existing attribute list. - * - * <p>This constructor is most useful for application writers, - * who will use it to create a persistent copy of an existing - * attribute list.</p> - * - * @param atts The attribute list to copy - * @see org.xml.sax.DocumentHandler#startElement - */ - public AttributeListImpl (AttributeList atts) - { - setAttributeList(atts); - } - - - - //////////////////////////////////////////////////////////////////// - // Methods specific to this class. - //////////////////////////////////////////////////////////////////// - - - /** - * Set the attribute list, discarding previous contents. - * - * <p>This method allows an application writer to reuse an - * attribute list easily.</p> - * - * @param atts The attribute list to copy. - */ - public void setAttributeList (AttributeList atts) - { - int count = atts.getLength(); - - clear(); - - for (int i = 0; i < count; i++) { - addAttribute(atts.getName(i), atts.getType(i), atts.getValue(i)); - } - } - - - /** - * Add an attribute to an attribute list. - * - * <p>This method is provided for SAX parser writers, to allow them - * to build up an attribute list incrementally before delivering - * it to the application.</p> - * - * @param name The attribute name. - * @param type The attribute type ("NMTOKEN" for an enumeration). - * @param value The attribute value (must not be null). - * @see #removeAttribute - * @see org.xml.sax.DocumentHandler#startElement - */ - public void addAttribute (String name, String type, String value) - { - names.addElement(name); - types.addElement(type); - values.addElement(value); - } - - - /** - * Remove an attribute from the list. - * - * <p>SAX application writers can use this method to filter an - * attribute out of an AttributeList. Note that invoking this - * method will change the length of the attribute list and - * some of the attribute's indices.</p> - * - * <p>If the requested attribute is not in the list, this is - * a no-op.</p> - * - * @param name The attribute name. - * @see #addAttribute - */ - public void removeAttribute (String name) - { - int i = names.indexOf(name); - - if (i >= 0) { - names.removeElementAt(i); - types.removeElementAt(i); - values.removeElementAt(i); - } - } - - - /** - * Clear the attribute list. - * - * <p>SAX parser writers can use this method to reset the attribute - * list between DocumentHandler.startElement events. Normally, - * it will make sense to reuse the same AttributeListImpl object - * rather than allocating a new one each time.</p> - * - * @see org.xml.sax.DocumentHandler#startElement - */ - public void clear () - { - names.removeAllElements(); - types.removeAllElements(); - values.removeAllElements(); - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.AttributeList - //////////////////////////////////////////////////////////////////// - - - /** - * Return the number of attributes in the list. - * - * @return The number of attributes in the list. - * @see org.xml.sax.AttributeList#getLength - */ - public int getLength () - { - return names.size(); - } - - - /** - * Get the name of an attribute (by position). - * - * @param i The position of the attribute in the list. - * @return The attribute name as a string, or null if there - * is no attribute at that position. - * @see org.xml.sax.AttributeList#getName(int) - */ - public String getName (int i) - { - if (i < 0) { - return null; - } - try { - return (String)names.elementAt(i); - } catch (ArrayIndexOutOfBoundsException e) { - return null; - } - } - - - /** - * Get the type of an attribute (by position). - * - * @param i The position of the attribute in the list. - * @return The attribute type as a string ("NMTOKEN" for an - * enumeration, and "CDATA" if no declaration was - * read), or null if there is no attribute at - * that position. - * @see org.xml.sax.AttributeList#getType(int) - */ - public String getType (int i) - { - if (i < 0) { - return null; - } - try { - return (String)types.elementAt(i); - } catch (ArrayIndexOutOfBoundsException e) { - return null; - } - } - - - /** - * Get the value of an attribute (by position). - * - * @param i The position of the attribute in the list. - * @return The attribute value as a string, or null if - * there is no attribute at that position. - * @see org.xml.sax.AttributeList#getValue(int) - */ - public String getValue (int i) - { - if (i < 0) { - return null; - } - try { - return (String)values.elementAt(i); - } catch (ArrayIndexOutOfBoundsException e) { - return null; - } - } - - - /** - * Get the type of an attribute (by name). - * - * @param name The attribute name. - * @return The attribute type as a string ("NMTOKEN" for an - * enumeration, and "CDATA" if no declaration was - * read). - * @see org.xml.sax.AttributeList#getType(java.lang.String) - */ - public String getType (String name) - { - return getType(names.indexOf(name)); - } - - - /** - * Get the value of an attribute (by name). - * - * @param name The attribute name. - * @see org.xml.sax.AttributeList#getValue(java.lang.String) - */ - public String getValue (String name) - { - return getValue(names.indexOf(name)); - } - - - - //////////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////////// - - Vector names = new Vector(); - Vector types = new Vector(); - Vector values = new Vector(); - -} - -// end of AttributeListImpl.java diff --git a/external/jaxp/source/org/xml/sax/helpers/AttributesImpl.java b/external/jaxp/source/org/xml/sax/helpers/AttributesImpl.java deleted file mode 100755 index 0a6099e93..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/AttributesImpl.java +++ /dev/null @@ -1,617 +0,0 @@ -// AttributesImpl.java - default implementation of Attributes. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the public domain. - -package org.xml.sax.helpers; - -import org.xml.sax.Attributes; - - -/** - * Default implementation of the Attributes interface. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class provides a default implementation of the SAX2 - * {@link org.xml.sax.Attributes Attributes} interface, with the - * addition of manipulators so that the list can be modified or - * reused.</p> - * - * <p>There are two typical uses of this class:</p> - * - * <ol> - * <li>to take a persistent snapshot of an Attributes object - * in a {@link org.xml.sax.ContentHandler#startElement startElement} event; or</li> - * <li>to construct or modify an Attributes object in a SAX2 driver or filter.</li> - * </ol> - * - * <p>This class replaces the now-deprecated SAX1 {@link - * org.xml.sax.helpers.AttributeListImpl AttributeListImpl} - * class; in addition to supporting the updated Attributes - * interface rather than the deprecated {@link org.xml.sax.AttributeList - * AttributeList} interface, it also includes a much more efficient - * implementation using a single array rather than a set of Vectors.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - */ -public class AttributesImpl implements Attributes -{ - - - //////////////////////////////////////////////////////////////////// - // Constructors. - //////////////////////////////////////////////////////////////////// - - - /** - * Construct a new, empty AttributesImpl object. - */ - public AttributesImpl () - { - length = 0; - data = null; - } - - - /** - * Copy an existing Attributes object. - * - * <p>This constructor is especially useful inside a - * {@link org.xml.sax.ContentHandler#startElement startElement} event.</p> - * - * @param atts The existing Attributes object. - */ - public AttributesImpl (Attributes atts) - { - setAttributes(atts); - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.Attributes. - //////////////////////////////////////////////////////////////////// - - - /** - * Return the number of attributes in the list. - * - * @return The number of attributes in the list. - * @see org.xml.sax.Attributes#getLength - */ - public int getLength () - { - return length; - } - - - /** - * Return an attribute's Namespace URI. - * - * @param index The attribute's index (zero-based). - * @return The Namespace URI, the empty string if none is - * available, or null if the index is out of range. - * @see org.xml.sax.Attributes#getURI - */ - public String getURI (int index) - { - if (index >= 0 && index < length) { - return data[index*5]; - } else { - return null; - } - } - - - /** - * Return an attribute's local name. - * - * @param index The attribute's index (zero-based). - * @return The attribute's local name, the empty string if - * none is available, or null if the index if out of range. - * @see org.xml.sax.Attributes#getLocalName - */ - public String getLocalName (int index) - { - if (index >= 0 && index < length) { - return data[index*5+1]; - } else { - return null; - } - } - - - /** - * Return an attribute's qualified (prefixed) name. - * - * @param index The attribute's index (zero-based). - * @return The attribute's qualified name, the empty string if - * none is available, or null if the index is out of bounds. - * @see org.xml.sax.Attributes#getQName - */ - public String getQName (int index) - { - if (index >= 0 && index < length) { - return data[index*5+2]; - } else { - return null; - } - } - - - /** - * Return an attribute's type by index. - * - * @param index The attribute's index (zero-based). - * @return The attribute's type, "CDATA" if the type is unknown, or null - * if the index is out of bounds. - * @see org.xml.sax.Attributes#getType(int) - */ - public String getType (int index) - { - if (index >= 0 && index < length) { - return data[index*5+3]; - } else { - return null; - } - } - - - /** - * Return an attribute's value by index. - * - * @param index The attribute's index (zero-based). - * @return The attribute's value or null if the index is out of bounds. - * @see org.xml.sax.Attributes#getValue(int) - */ - public String getValue (int index) - { - if (index >= 0 && index < length) { - return data[index*5+4]; - } else { - return null; - } - } - - - /** - * Look up an attribute's index by Namespace name. - * - * <p>In many cases, it will be more efficient to look up the name once and - * use the index query methods rather than using the name query methods - * repeatedly.</p> - * - * @param uri The attribute's Namespace URI, or the empty - * string if none is available. - * @param localName The attribute's local name. - * @return The attribute's index, or -1 if none matches. - * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String) - */ - public int getIndex (String uri, String localName) - { - int max = length * 5; - for (int i = 0; i < max; i += 5) { - if (data[i].equals(uri) && data[i+1].equals(localName)) { - return i / 5; - } - } - return -1; - } - - - /** - * Look up an attribute's index by qualified (prefixed) name. - * - * @param qName The qualified name. - * @return The attribute's index, or -1 if none matches. - * @see org.xml.sax.Attributes#getIndex(java.lang.String) - */ - public int getIndex (String qName) - { - int max = length * 5; - for (int i = 0; i < max; i += 5) { - if (data[i+2].equals(qName)) { - return i / 5; - } - } - return -1; - } - - - /** - * Look up an attribute's type by Namespace-qualified name. - * - * @param uri The Namespace URI, or the empty string for a name - * with no explicit Namespace URI. - * @param localName The local name. - * @return The attribute's type, or null if there is no - * matching attribute. - * @see org.xml.sax.Attributes#getType(java.lang.String,java.lang.String) - */ - public String getType (String uri, String localName) - { - int max = length * 5; - for (int i = 0; i < max; i += 5) { - if (data[i].equals(uri) && data[i+1].equals(localName)) { - return data[i+3]; - } - } - return null; - } - - - /** - * Look up an attribute's type by qualified (prefixed) name. - * - * @param qName The qualified name. - * @return The attribute's type, or null if there is no - * matching attribute. - * @see org.xml.sax.Attributes#getType(java.lang.String) - */ - public String getType (String qName) - { - int max = length * 5; - for (int i = 0; i < max; i += 5) { - if (data[i+2].equals(qName)) { - return data[i+3]; - } - } - return null; - } - - - /** - * Look up an attribute's value by Namespace-qualified name. - * - * @param uri The Namespace URI, or the empty string for a name - * with no explicit Namespace URI. - * @param localName The local name. - * @return The attribute's value, or null if there is no - * matching attribute. - * @see org.xml.sax.Attributes#getValue(java.lang.String,java.lang.String) - */ - public String getValue (String uri, String localName) - { - int max = length * 5; - for (int i = 0; i < max; i += 5) { - if (data[i].equals(uri) && data[i+1].equals(localName)) { - return data[i+4]; - } - } - return null; - } - - - /** - * Look up an attribute's value by qualified (prefixed) name. - * - * @param qName The qualified name. - * @return The attribute's value, or null if there is no - * matching attribute. - * @see org.xml.sax.Attributes#getValue(java.lang.String) - */ - public String getValue (String qName) - { - int max = length * 5; - for (int i = 0; i < max; i += 5) { - if (data[i+2].equals(qName)) { - return data[i+4]; - } - } - return null; - } - - - - //////////////////////////////////////////////////////////////////// - // Manipulators. - //////////////////////////////////////////////////////////////////// - - - /** - * Clear the attribute list for reuse. - * - * <p>Note that little memory is freed by this call: - * the current array is kept so it can be - * reused.</p> - */ - public void clear () - { - if (data != null) { - for (int i = 0; i < (length * 5); i++) - data [i] = null; - } - length = 0; - } - - - /** - * Copy an entire Attributes object. - * - * <p>It may be more efficient to reuse an existing object - * rather than constantly allocating new ones.</p> - * - * @param atts The attributes to copy. - */ - public void setAttributes (Attributes atts) - { - clear(); - length = atts.getLength(); - if (length > 0) { - data = new String[length*5]; - for (int i = 0; i < length; i++) { - data[i*5] = atts.getURI(i); - data[i*5+1] = atts.getLocalName(i); - data[i*5+2] = atts.getQName(i); - data[i*5+3] = atts.getType(i); - data[i*5+4] = atts.getValue(i); - } - } - } - - - /** - * Add an attribute to the end of the list. - * - * <p>For the sake of speed, this method does no checking - * to see if the attribute is already in the list: that is - * the responsibility of the application.</p> - * - * @param uri The Namespace URI, or the empty string if - * none is available or Namespace processing is not - * being performed. - * @param localName The local name, or the empty string if - * Namespace processing is not being performed. - * @param qName The qualified (prefixed) name, or the empty string - * if qualified names are not available. - * @param type The attribute type as a string. - * @param value The attribute value. - */ - public void addAttribute (String uri, String localName, String qName, - String type, String value) - { - ensureCapacity(length+1); - data[length*5] = uri; - data[length*5+1] = localName; - data[length*5+2] = qName; - data[length*5+3] = type; - data[length*5+4] = value; - length++; - } - - - /** - * Set an attribute in the list. - * - * <p>For the sake of speed, this method does no checking - * for name conflicts or well-formedness: such checks are the - * responsibility of the application.</p> - * - * @param index The index of the attribute (zero-based). - * @param uri The Namespace URI, or the empty string if - * none is available or Namespace processing is not - * being performed. - * @param localName The local name, or the empty string if - * Namespace processing is not being performed. - * @param qName The qualified name, or the empty string - * if qualified names are not available. - * @param type The attribute type as a string. - * @param value The attribute value. - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not point to an attribute - * in the list. - */ - public void setAttribute (int index, String uri, String localName, - String qName, String type, String value) - { - if (index >= 0 && index < length) { - data[index*5] = uri; - data[index*5+1] = localName; - data[index*5+2] = qName; - data[index*5+3] = type; - data[index*5+4] = value; - } else { - badIndex(index); - } - } - - - /** - * Remove an attribute from the list. - * - * @param index The index of the attribute (zero-based). - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not point to an attribute - * in the list. - */ - public void removeAttribute (int index) - { - if (index >= 0 && index < length) { - if (index < length - 1) { - System.arraycopy(data, (index+1)*5, data, index*5, - (length-index-1)*5); - } - index = (length - 1) * 5; - data [index++] = null; - data [index++] = null; - data [index++] = null; - data [index++] = null; - data [index] = null; - length--; - } else { - badIndex(index); - } - } - - - /** - * Set the Namespace URI of a specific attribute. - * - * @param index The index of the attribute (zero-based). - * @param uri The attribute's Namespace URI, or the empty - * string for none. - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not point to an attribute - * in the list. - */ - public void setURI (int index, String uri) - { - if (index >= 0 && index < length) { - data[index*5] = uri; - } else { - badIndex(index); - } - } - - - /** - * Set the local name of a specific attribute. - * - * @param index The index of the attribute (zero-based). - * @param localName The attribute's local name, or the empty - * string for none. - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not point to an attribute - * in the list. - */ - public void setLocalName (int index, String localName) - { - if (index >= 0 && index < length) { - data[index*5+1] = localName; - } else { - badIndex(index); - } - } - - - /** - * Set the qualified name of a specific attribute. - * - * @param index The index of the attribute (zero-based). - * @param qName The attribute's qualified name, or the empty - * string for none. - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not point to an attribute - * in the list. - */ - public void setQName (int index, String qName) - { - if (index >= 0 && index < length) { - data[index*5+2] = qName; - } else { - badIndex(index); - } - } - - - /** - * Set the type of a specific attribute. - * - * @param index The index of the attribute (zero-based). - * @param type The attribute's type. - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not point to an attribute - * in the list. - */ - public void setType (int index, String type) - { - if (index >= 0 && index < length) { - data[index*5+3] = type; - } else { - badIndex(index); - } - } - - - /** - * Set the value of a specific attribute. - * - * @param index The index of the attribute (zero-based). - * @param value The attribute's value. - * @exception java.lang.ArrayIndexOutOfBoundsException When the - * supplied index does not point to an attribute - * in the list. - */ - public void setValue (int index, String value) - { - if (index >= 0 && index < length) { - data[index*5+4] = value; - } else { - badIndex(index); - } - } - - - - //////////////////////////////////////////////////////////////////// - // Internal methods. - //////////////////////////////////////////////////////////////////// - - - /** - * Ensure the internal array's capacity. - * - * @param n The minimum number of attributes that the array must - * be able to hold. - */ - private void ensureCapacity (int n) { - if (n <= 0) { - return; - } - int max; - if (data == null || data.length == 0) { - max = 25; - } - else if (data.length >= n * 5) { - return; - } - else { - max = data.length; - } - while (max < n * 5) { - max *= 2; - } - - String newData[] = new String[max]; - if (length > 0) { - System.arraycopy(data, 0, newData, 0, length*5); - } - data = newData; - } - - - /** - * Report a bad array index in a manipulator. - * - * @param index The index to report. - * @exception java.lang.ArrayIndexOutOfBoundsException Always. - */ - private void badIndex (int index) - throws ArrayIndexOutOfBoundsException - { - String msg = - "Attempt to modify attribute at illegal index: " + index; - throw new ArrayIndexOutOfBoundsException(msg); - } - - - - //////////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////////// - - int length; - String data []; - -} - -// end of AttributesImpl.java - diff --git a/external/jaxp/source/org/xml/sax/helpers/DefaultHandler.java b/external/jaxp/source/org/xml/sax/helpers/DefaultHandler.java deleted file mode 100755 index 343774dec..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/DefaultHandler.java +++ /dev/null @@ -1,466 +0,0 @@ -// DefaultHandler.java - default implementation of the core handlers. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the public domain. - -package org.xml.sax.helpers; - -import java.io.IOException; - -import org.xml.sax.InputSource; -import org.xml.sax.Locator; -import org.xml.sax.Attributes; -import org.xml.sax.EntityResolver; -import org.xml.sax.DTDHandler; -import org.xml.sax.ContentHandler; -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; - - -/** - * Default base class for SAX2 event handlers. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class is available as a convenience base class for SAX2 - * applications: it provides default implementations for all of the - * callbacks in the four core SAX2 handler classes:</p> - * - * <ul> - * <li>{@link org.xml.sax.EntityResolver EntityResolver}</li> - * <li>{@link org.xml.sax.DTDHandler DTDHandler}</li> - * <li>{@link org.xml.sax.ContentHandler ContentHandler}</li> - * <li>{@link org.xml.sax.ErrorHandler ErrorHandler}</li> - * </ul> - * - * <p>Application writers can extend this class when they need to - * implement only part of an interface; parser writers can - * instantiate this class to provide default handlers when the - * application has not supplied its own.</p> - * - * <p>This class replaces the deprecated SAX1 - * {@link org.xml.sax.HandlerBase HandlerBase} class.</p> - * - * @since SAX 2.0 - * @author David Megginson, - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.EntityResolver - * @see org.xml.sax.DTDHandler - * @see org.xml.sax.ContentHandler - * @see org.xml.sax.ErrorHandler - */ -public class DefaultHandler - implements EntityResolver, DTDHandler, ContentHandler, ErrorHandler -{ - - - //////////////////////////////////////////////////////////////////// - // Default implementation of the EntityResolver interface. - //////////////////////////////////////////////////////////////////// - - /** - * Resolve an external entity. - * - * <p>Always return null, so that the parser will use the system - * identifier provided in the XML document. This method implements - * the SAX default behaviour: application writers can override it - * in a subclass to do special translations such as catalog lookups - * or URI redirection.</p> - * - * @param publicId The public identifer, or null if none is - * available. - * @param systemId The system identifier provided in the XML - * document. - * @return The new input source, or null to require the - * default behaviour. - * @exception java.io.IOException If there is an error setting - * up the new input source. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.EntityResolver#resolveEntity - */ - public InputSource resolveEntity (String publicId, String systemId) - throws IOException, SAXException - { - return null; - } - - - - //////////////////////////////////////////////////////////////////// - // Default implementation of DTDHandler interface. - //////////////////////////////////////////////////////////////////// - - - /** - * Receive notification of a notation declaration. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass if they wish to keep track of the notations - * declared in a document.</p> - * - * @param name The notation name. - * @param publicId The notation public identifier, or null if not - * available. - * @param systemId The notation system identifier. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DTDHandler#notationDecl - */ - public void notationDecl (String name, String publicId, String systemId) - throws SAXException - { - // no op - } - - - /** - * Receive notification of an unparsed entity declaration. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to keep track of the unparsed entities - * declared in a document.</p> - * - * @param name The entity name. - * @param publicId The entity public identifier, or null if not - * available. - * @param systemId The entity system identifier. - * @param notationName The name of the associated notation. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.DTDHandler#unparsedEntityDecl - */ - public void unparsedEntityDecl (String name, String publicId, - String systemId, String notationName) - throws SAXException - { - // no op - } - - - - //////////////////////////////////////////////////////////////////// - // Default implementation of ContentHandler interface. - //////////////////////////////////////////////////////////////////// - - - /** - * Receive a Locator object for document events. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass if they wish to store the locator for use - * with other document events.</p> - * - * @param locator A locator for all SAX document events. - * @see org.xml.sax.ContentHandler#setDocumentLocator - * @see org.xml.sax.Locator - */ - public void setDocumentLocator (Locator locator) - { - // no op - } - - - /** - * Receive notification of the beginning of the document. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the beginning - * of a document (such as allocating the root node of a tree or - * creating an output file).</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#startDocument - */ - public void startDocument () - throws SAXException - { - // no op - } - - - /** - * Receive notification of the end of the document. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the end - * of a document (such as finalising a tree or closing an output - * file).</p> - * - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#endDocument - */ - public void endDocument () - throws SAXException - { - // no op - } - - - /** - * Receive notification of the start of a Namespace mapping. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the start of - * each Namespace prefix scope (such as storing the prefix mapping).</p> - * - * @param prefix The Namespace prefix being declared. - * @param uri The Namespace URI mapped to the prefix. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#startPrefixMapping - */ - public void startPrefixMapping (String prefix, String uri) - throws SAXException - { - // no op - } - - - /** - * Receive notification of the end of a Namespace mapping. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the end of - * each prefix mapping.</p> - * - * @param prefix The Namespace prefix being declared. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#endPrefixMapping - */ - public void endPrefixMapping (String prefix) - throws SAXException - { - // no op - } - - - /** - * Receive notification of the start of an element. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the start of - * each element (such as allocating a new tree node or writing - * output to a file).</p> - * - * @param uri The Namespace URI, or the empty string if the - * element has no Namespace URI or if Namespace - * processing is not being performed. - * @param localName The local name (without prefix), or the - * empty string if Namespace processing is not being - * performed. - * @param qName The qualified name (with prefix), or the - * empty string if qualified names are not available. - * @param atts The attributes attached to the element. If - * there are no attributes, it shall be an empty - * Attributes object. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#startElement - */ - public void startElement (String uri, String localName, - String qName, Attributes attributes) - throws SAXException - { - // no op - } - - - /** - * Receive notification of the end of an element. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions at the end of - * each element (such as finalising a tree node or writing - * output to a file).</p> - * - * @param uri The Namespace URI, or the empty string if the - * element has no Namespace URI or if Namespace - * processing is not being performed. - * @param localName The local name (without prefix), or the - * empty string if Namespace processing is not being - * performed. - * @param qName The qualified name (with prefix), or the - * empty string if qualified names are not available. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#endElement - */ - public void endElement (String uri, String localName, String qName) - throws SAXException - { - // no op - } - - - /** - * Receive notification of character data inside an element. - * - * <p>By default, do nothing. Application writers may override this - * method to take specific actions for each chunk of character data - * (such as adding the data to a node or buffer, or printing it to - * a file).</p> - * - * @param ch The characters. - * @param start The start position in the character array. - * @param length The number of characters to use from the - * character array. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#characters - */ - public void characters (char ch[], int start, int length) - throws SAXException - { - // no op - } - - - /** - * Receive notification of ignorable whitespace in element content. - * - * <p>By default, do nothing. Application writers may override this - * method to take specific actions for each chunk of ignorable - * whitespace (such as adding data to a node or buffer, or printing - * it to a file).</p> - * - * @param ch The whitespace characters. - * @param start The start position in the character array. - * @param length The number of characters to use from the - * character array. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#ignorableWhitespace - */ - public void ignorableWhitespace (char ch[], int start, int length) - throws SAXException - { - // no op - } - - - /** - * Receive notification of a processing instruction. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions for each - * processing instruction, such as setting status variables or - * invoking other methods.</p> - * - * @param target The processing instruction target. - * @param data The processing instruction data, or null if - * none is supplied. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#processingInstruction - */ - public void processingInstruction (String target, String data) - throws SAXException - { - // no op - } - - - /** - * Receive notification of a skipped entity. - * - * <p>By default, do nothing. Application writers may override this - * method in a subclass to take specific actions for each - * processing instruction, such as setting status variables or - * invoking other methods.</p> - * - * @param name The name of the skipped entity. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ContentHandler#processingInstruction - */ - public void skippedEntity (String name) - throws SAXException - { - // no op - } - - - - //////////////////////////////////////////////////////////////////// - // Default implementation of the ErrorHandler interface. - //////////////////////////////////////////////////////////////////// - - - /** - * Receive notification of a parser warning. - * - * <p>The default implementation does nothing. Application writers - * may override this method in a subclass to take specific actions - * for each warning, such as inserting the message in a log file or - * printing it to the console.</p> - * - * @param e The warning information encoded as an exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ErrorHandler#warning - * @see org.xml.sax.SAXParseException - */ - public void warning (SAXParseException e) - throws SAXException - { - // no op - } - - - /** - * Receive notification of a recoverable parser error. - * - * <p>The default implementation does nothing. Application writers - * may override this method in a subclass to take specific actions - * for each error, such as inserting the message in a log file or - * printing it to the console.</p> - * - * @param e The warning information encoded as an exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ErrorHandler#warning - * @see org.xml.sax.SAXParseException - */ - public void error (SAXParseException e) - throws SAXException - { - // no op - } - - - /** - * Report a fatal XML parsing error. - * - * <p>The default implementation throws a SAXParseException. - * Application writers may override this method in a subclass if - * they need to take specific actions for each fatal error (such as - * collecting all of the errors into a single report): in any case, - * the application must stop all regular processing when this - * method is invoked, since the document is no longer reliable, and - * the parser may no longer report parsing events.</p> - * - * @param e The error information encoded as an exception. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @see org.xml.sax.ErrorHandler#fatalError - * @see org.xml.sax.SAXParseException - */ - public void fatalError (SAXParseException e) - throws SAXException - { - throw e; - } - -} - -// end of DefaultHandler.java diff --git a/external/jaxp/source/org/xml/sax/helpers/LocatorImpl.java b/external/jaxp/source/org/xml/sax/helpers/LocatorImpl.java deleted file mode 100755 index a5b633c49..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/LocatorImpl.java +++ /dev/null @@ -1,213 +0,0 @@ -// SAX default implementation for Locator. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax.helpers; - -import org.xml.sax.Locator; - - -/** - * Provide an optional convenience implementation of Locator. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class is available mainly for application writers, who - * can use it to make a persistent snapshot of a locator at any - * point during a document parse:</p> - * - * <pre> - * Locator locator; - * Locator startloc; - * - * public void setLocator (Locator locator) - * { - * // note the locator - * this.locator = locator; - * } - * - * public void startDocument () - * { - * // save the location of the start of the document - * // for future use. - * Locator startloc = new LocatorImpl(locator); - * } - *</pre> - * - * <p>Normally, parser writers will not use this class, since it - * is more efficient to provide location information only when - * requested, rather than constantly updating a Locator object.</p> - * - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.Locator Locator - */ -public class LocatorImpl implements Locator -{ - - - /** - * Zero-argument constructor. - * - * <p>This will not normally be useful, since the main purpose - * of this class is to make a snapshot of an existing Locator.</p> - */ - public LocatorImpl () - { - } - - - /** - * Copy constructor. - * - * <p>Create a persistent copy of the current state of a locator. - * When the original locator changes, this copy will still keep - * the original values (and it can be used outside the scope of - * DocumentHandler methods).</p> - * - * @param locator The locator to copy. - */ - public LocatorImpl (Locator locator) - { - setPublicId(locator.getPublicId()); - setSystemId(locator.getSystemId()); - setLineNumber(locator.getLineNumber()); - setColumnNumber(locator.getColumnNumber()); - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.Locator - //////////////////////////////////////////////////////////////////// - - - /** - * Return the saved public identifier. - * - * @return The public identifier as a string, or null if none - * is available. - * @see org.xml.sax.Locator#getPublicId - * @see #setPublicId - */ - public String getPublicId () - { - return publicId; - } - - - /** - * Return the saved system identifier. - * - * @return The system identifier as a string, or null if none - * is available. - * @see org.xml.sax.Locator#getSystemId - * @see #setSystemId - */ - public String getSystemId () - { - return systemId; - } - - - /** - * Return the saved line number (1-based). - * - * @return The line number as an integer, or -1 if none is available. - * @see org.xml.sax.Locator#getLineNumber - * @see #setLineNumber - */ - public int getLineNumber () - { - return lineNumber; - } - - - /** - * Return the saved column number (1-based). - * - * @return The column number as an integer, or -1 if none is available. - * @see org.xml.sax.Locator#getColumnNumber - * @see #setColumnNumber - */ - public int getColumnNumber () - { - return columnNumber; - } - - - - //////////////////////////////////////////////////////////////////// - // Setters for the properties (not in org.xml.sax.Locator) - //////////////////////////////////////////////////////////////////// - - - /** - * Set the public identifier for this locator. - * - * @param publicId The new public identifier, or null - * if none is available. - * @see #getPublicId - */ - public void setPublicId (String publicId) - { - this.publicId = publicId; - } - - - /** - * Set the system identifier for this locator. - * - * @param systemId The new system identifier, or null - * if none is available. - * @see #getSystemId - */ - public void setSystemId (String systemId) - { - this.systemId = systemId; - } - - - /** - * Set the line number for this locator (1-based). - * - * @param lineNumber The line number, or -1 if none is available. - * @see #getLineNumber - */ - public void setLineNumber (int lineNumber) - { - this.lineNumber = lineNumber; - } - - - /** - * Set the column number for this locator (1-based). - * - * @param columnNumber The column number, or -1 if none is available. - * @see #getColumnNumber - */ - public void setColumnNumber (int columnNumber) - { - this.columnNumber = columnNumber; - } - - - - //////////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////////// - - private String publicId; - private String systemId; - private int lineNumber; - private int columnNumber; - -} - -// end of LocatorImpl.java diff --git a/external/jaxp/source/org/xml/sax/helpers/NamespaceSupport.java b/external/jaxp/source/org/xml/sax/helpers/NamespaceSupport.java deleted file mode 100755 index dae8e5cc7..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/NamespaceSupport.java +++ /dev/null @@ -1,768 +0,0 @@ -// NamespaceSupport.java - generic Namespace support for SAX. -// http://www.saxproject.org -// Written by David Megginson -// This class is in the Public Domain. NO WARRANTY! - -package org.xml.sax.helpers; - -import java.util.EmptyStackException; -import java.util.Enumeration; -import java.util.Hashtable; -import java.util.Vector; - - -/** - * Encapsulate Namespace logic for use by applications using SAX, - * or internally by SAX drivers. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class encapsulates the logic of Namespace processing: - * it tracks the declarations currently in force for each context - * and automatically processes qualified XML 1.0 names into their - * Namespace parts; it can also be used in reverse for generating - * XML 1.0 from Namespaces.</p> - * - * <p>Namespace support objects are reusable, but the reset method - * must be invoked between each session.</p> - * - * <p>Here is a simple session:</p> - * - * <pre> - * String parts[] = new String[3]; - * NamespaceSupport support = new NamespaceSupport(); - * - * support.pushContext(); - * support.declarePrefix("", "http://www.w3.org/1999/xhtml"); - * support.declarePrefix("dc", "http://www.purl.org/dc#"); - * - * parts = support.processName("p", parts, false); - * System.out.println("Namespace URI: " + parts[0]); - * System.out.println("Local name: " + parts[1]); - * System.out.println("Raw name: " + parts[2]); - * - * parts = support.processName("dc:title", parts, false); - * System.out.println("Namespace URI: " + parts[0]); - * System.out.println("Local name: " + parts[1]); - * System.out.println("Raw name: " + parts[2]); - * - * support.popContext(); - * </pre> - * - * <p>Note that this class is optimized for the use case where most - * elements do not contain Namespace declarations: if the same - * prefix/URI mapping is repeated for each context (for example), this - * class will be somewhat less efficient.</p> - * - * <p>Although SAX drivers (parsers) may choose to use this class to - * implement namespace handling, they are not required to do so. - * Applications must track namespace information themselves if they - * want to use namespace information. - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - */ -public class NamespaceSupport -{ - - - //////////////////////////////////////////////////////////////////// - // Constants. - //////////////////////////////////////////////////////////////////// - - - /** - * The XML Namespace URI as a constant. - * The value is <code>http://www.w3.org/XML/1998/namespace</code> - * as defined in the XML Namespaces specification. - * - * <p>This is the Namespace URI that is automatically mapped - * to the "xml" prefix.</p> - */ - public final static String XMLNS = - "http://www.w3.org/XML/1998/namespace"; - - - /** - * An empty enumeration. - */ - private final static Enumeration EMPTY_ENUMERATION = - new Vector().elements(); - - - //////////////////////////////////////////////////////////////////// - // Constructor. - //////////////////////////////////////////////////////////////////// - - - /** - * Create a new Namespace support object. - */ - public NamespaceSupport () - { - reset(); - } - - - - //////////////////////////////////////////////////////////////////// - // Context management. - //////////////////////////////////////////////////////////////////// - - - /** - * Reset this Namespace support object for reuse. - * - * <p>It is necessary to invoke this method before reusing the - * Namespace support object for a new session.</p> - */ - public void reset () - { - contexts = new Context[32]; - contextPos = 0; - contexts[contextPos] = currentContext = new Context(); - currentContext.declarePrefix("xml", XMLNS); - } - - - /** - * Start a new Namespace context. - * The new context will automatically inherit - * the declarations of its parent context, but it will also keep - * track of which declarations were made within this context. - * - * <p>Event callback code should start a new context once per element. - * This means being ready to call this in either of two places. - * For elements that don't include namespace declarations, the - * <em>ContentHandler.startElement()</em> callback is the right place. - * For elements with such a declaration, it'd done in the first - * <em>ContentHandler.startPrefixMapping()</em> callback. - * A boolean flag can be used to - * track whether a context has been started yet. When either of - * those methods is called, it checks the flag to see if a new context - * needs to be started. If so, it starts the context and sets the - * flag. After <em>ContentHandler.startElement()</em> - * does that, it always clears the flag. - * - * <p>Normally, SAX drivers would push a new context at the beginning - * of each XML element. Then they perform a first pass over the - * attributes to process all namespace declarations, making - * <em>ContentHandler.startPrefixMapping()</em> callbacks. - * Then a second pass is made, to determine the namespace-qualified - * names for all attributes and for the element name. - * Finally all the information for the - * <em>ContentHandler.startElement()</em> callback is available, - * so it can then be made. - * - * <p>The Namespace support object always starts with a base context - * already in force: in this context, only the "xml" prefix is - * declared.</p> - * - * @see org.xml.sax.ContentHandler - * @see #popContext - */ - public void pushContext () - { - int max = contexts.length; - - contexts [contextPos].declsOK = false; - contextPos++; - - // Extend the array if necessary - if (contextPos >= max) { - Context newContexts[] = new Context[max*2]; - System.arraycopy(contexts, 0, newContexts, 0, max); - max *= 2; - contexts = newContexts; - } - - // Allocate the context if necessary. - currentContext = contexts[contextPos]; - if (currentContext == null) { - contexts[contextPos] = currentContext = new Context(); - } - - // Set the parent, if any. - if (contextPos > 0) { - currentContext.setParent(contexts[contextPos - 1]); - } - } - - - /** - * Revert to the previous Namespace context. - * - * <p>Normally, you should pop the context at the end of each - * XML element. After popping the context, all Namespace prefix - * mappings that were previously in force are restored.</p> - * - * <p>You must not attempt to declare additional Namespace - * prefixes after popping a context, unless you push another - * context first.</p> - * - * @see #pushContext - */ - public void popContext () - { - contexts[contextPos].clear(); - contextPos--; - if (contextPos < 0) { - throw new EmptyStackException(); - } - currentContext = contexts[contextPos]; - } - - - - //////////////////////////////////////////////////////////////////// - // Operations within a context. - //////////////////////////////////////////////////////////////////// - - - /** - * Declare a Namespace prefix. All prefixes must be declared - * before they are referenced. For example, a SAX driver (parser) - * would scan an element's attributes - * in two passes: first for namespace declarations, - * then a second pass using {@link #processName processName()} to - * interpret prefixes against (potentially redefined) prefixes. - * - * <p>This method declares a prefix in the current Namespace - * context; the prefix will remain in force until this context - * is popped, unless it is shadowed in a descendant context.</p> - * - * <p>To declare the default element Namespace, use the empty string as - * the prefix.</p> - * - * <p>Note that you must <em>not</em> declare a prefix after - * you've pushed and popped another Namespace context, or - * treated the declarations phase as complete by processing - * a prefixed name.</p> - * - * <p>Note that there is an asymmetry in this library: {@link - * #getPrefix getPrefix} will not return the "" prefix, - * even if you have declared a default element namespace. - * To check for a default namespace, - * you have to look it up explicitly using {@link #getURI getURI}. - * This asymmetry exists to make it easier to look up prefixes - * for attribute names, where the default prefix is not allowed.</p> - * - * @param prefix The prefix to declare, or the empty string to - * indicate the default element namespace. This may never have - * the value "xml" or "xmlns". - * @param uri The Namespace URI to associate with the prefix. - * @return true if the prefix was legal, false otherwise - * @exception IllegalStateException when a prefix is declared - * after looking up a name in the context, or after pushing - * another context on top of it. - * - * @see #processName - * @see #getURI - * @see #getPrefix - */ - public boolean declarePrefix (String prefix, String uri) - { - if (prefix.equals("xml") || prefix.equals("xmlns")) { - return false; - } else { - currentContext.declarePrefix(prefix, uri); - return true; - } - } - - - /** - * Process a raw XML 1.0 name, after all declarations in the current - * context have been handled by {@link #declarePrefix declarePrefix()}. - * - * <p>This method processes a raw XML 1.0 name in the current - * context by removing the prefix and looking it up among the - * prefixes currently declared. The return value will be the - * array supplied by the caller, filled in as follows:</p> - * - * <dl> - * <dt>parts[0]</dt> - * <dd>The Namespace URI, or an empty string if none is - * in use.</dd> - * <dt>parts[1]</dt> - * <dd>The local name (without prefix).</dd> - * <dt>parts[2]</dt> - * <dd>The original raw name.</dd> - * </dl> - * - * <p>All of the strings in the array will be internalized. If - * the raw name has a prefix that has not been declared, then - * the return value will be null.</p> - * - * <p>Note that attribute names are processed differently than - * element names: an unprefixed element name will received the - * default Namespace (if any), while an unprefixed attribute name - * will not.</p> - * - * @param qName The raw XML 1.0 name to be processed. - * @param parts An array supplied by the caller, capable of - * holding at least three members. - * @param isAttribute A flag indicating whether this is an - * attribute name (true) or an element name (false). - * @return The supplied array holding three internalized strings - * representing the Namespace URI (or empty string), the - * local name, and the raw XML 1.0 name; or null if there - * is an undeclared prefix. - * @see #declarePrefix - * @see java.lang.String#intern */ - public String [] processName (String qName, String parts[], - boolean isAttribute) - { - String myParts[] = currentContext.processName(qName, isAttribute); - if (myParts == null) { - return null; - } else { - parts[0] = myParts[0]; - parts[1] = myParts[1]; - parts[2] = myParts[2]; - return parts; - } - } - - - /** - * Look up a prefix and get the currently-mapped Namespace URI. - * - * <p>This method looks up the prefix in the current context. - * Use the empty string ("") for the default Namespace.</p> - * - * @param prefix The prefix to look up. - * @return The associated Namespace URI, or null if the prefix - * is undeclared in this context. - * @see #getPrefix - * @see #getPrefixes - */ - public String getURI (String prefix) - { - return currentContext.getURI(prefix); - } - - - /** - * Return an enumeration of all prefixes currently declared. - * - * <p><strong>Note:</strong> if there is a default prefix, it will not be - * returned in this enumeration; check for the default prefix - * using the {@link #getURI getURI} with an argument of "".</p> - * - * @return An enumeration of all prefixes declared in the - * current context except for the empty (default) - * prefix. - * @see #getDeclaredPrefixes - * @see #getURI - */ - public Enumeration getPrefixes () - { - return currentContext.getPrefixes(); - } - - - /** - * Return one of the prefixes mapped to a Namespace URI. - * - * <p>If more than one prefix is currently mapped to the same - * URI, this method will make an arbitrary selection; if you - * want all of the prefixes, use the {@link #getPrefixes} - * method instead.</p> - * - * <p><strong>Note:</strong> this will never return the empty (default) prefix; - * to check for a default prefix, use the {@link #getURI getURI} - * method with an argument of "".</p> - * - * @param uri The Namespace URI. - * @param isAttribute true if this prefix is for an attribute - * (and the default Namespace is not allowed). - * @return One of the prefixes currently mapped to the URI supplied, - * or null if none is mapped or if the URI is assigned to - * the default Namespace. - * @see #getPrefixes(java.lang.String) - * @see #getURI - */ - public String getPrefix (String uri) - { - return currentContext.getPrefix(uri); - } - - - /** - * Return an enumeration of all prefixes currently declared for a URI. - * - * <p>This method returns prefixes mapped to a specific Namespace - * URI. The xml: prefix will be included. If you want only one - * prefix that's mapped to the Namespace URI, and you don't care - * which one you get, use the {@link #getPrefix getPrefix} - * method instead.</p> - * - * <p><strong>Note:</strong> the empty (default) prefix is <em>never</em> included - * in this enumeration; to check for the presence of a default - * Namespace, use the {@link #getURI getURI} method with an - * argument of "".</p> - * - * @param uri The Namespace URI. - * @return An enumeration of all prefixes declared in the - * current context. - * @see #getPrefix - * @see #getDeclaredPrefixes - * @see #getURI - */ - public Enumeration getPrefixes (String uri) - { - Vector prefixes = new Vector(); - Enumeration allPrefixes = getPrefixes(); - while (allPrefixes.hasMoreElements()) { - String prefix = (String)allPrefixes.nextElement(); - if (uri.equals(getURI(prefix))) { - prefixes.addElement(prefix); - } - } - return prefixes.elements(); - } - - - /** - * Return an enumeration of all prefixes declared in this context. - * - * <p>The empty (default) prefix will be included in this - * enumeration; note that this behaviour differs from that of - * {@link #getPrefix} and {@link #getPrefixes}.</p> - * - * @return An enumeration of all prefixes declared in this - * context. - * @see #getPrefixes - * @see #getURI - */ - public Enumeration getDeclaredPrefixes () - { - return currentContext.getDeclaredPrefixes(); - } - - - - //////////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////////// - - private Context contexts[]; - private Context currentContext; - private int contextPos; - - - - //////////////////////////////////////////////////////////////////// - // Internal classes. - //////////////////////////////////////////////////////////////////// - - /** - * Internal class for a single Namespace context. - * - * <p>This module caches and reuses Namespace contexts, - * so the number allocated - * will be equal to the element depth of the document, not to the total - * number of elements (i.e. 5-10 rather than tens of thousands). - * Also, data structures used to represent contexts are shared when - * possible (child contexts without declarations) to further reduce - * the amount of memory that's consumed. - * </p> - */ - final class Context { - - /** - * Create the root-level Namespace context. - */ - Context () - { - copyTables(); - } - - - /** - * (Re)set the parent of this Namespace context. - * The context must either have been freshly constructed, - * or must have been cleared. - * - * @param context The parent Namespace context object. - */ - void setParent (Context parent) - { - this.parent = parent; - declarations = null; - prefixTable = parent.prefixTable; - uriTable = parent.uriTable; - elementNameTable = parent.elementNameTable; - attributeNameTable = parent.attributeNameTable; - defaultNS = parent.defaultNS; - declSeen = false; - declsOK = true; - } - - /** - * Makes associated state become collectible, - * invalidating this context. - * {@link #setParent} must be called before - * this context may be used again. - */ - void clear () - { - parent = null; - prefixTable = null; - uriTable = null; - elementNameTable = null; - attributeNameTable = null; - defaultNS = null; - } - - - /** - * Declare a Namespace prefix for this context. - * - * @param prefix The prefix to declare. - * @param uri The associated Namespace URI. - * @see org.xml.sax.helpers.NamespaceSupport#declarePrefix - */ - void declarePrefix (String prefix, String uri) - { - // Lazy processing... - if (!declsOK) - throw new IllegalStateException ( - "can't declare any more prefixes in this context"); - if (!declSeen) { - copyTables(); - } - if (declarations == null) { - declarations = new Vector(); - } - - prefix = prefix.intern(); - uri = uri.intern(); - if ("".equals(prefix)) { - if ("".equals(uri)) { - defaultNS = null; - } else { - defaultNS = uri; - } - } else { - prefixTable.put(prefix, uri); - uriTable.put(uri, prefix); // may wipe out another prefix - } - declarations.addElement(prefix); - } - - - /** - * Process a raw XML 1.0 name in this context. - * - * @param qName The raw XML 1.0 name. - * @param isAttribute true if this is an attribute name. - * @return An array of three strings containing the - * URI part (or empty string), the local part, - * and the raw name, all internalized, or null - * if there is an undeclared prefix. - * @see org.xml.sax.helpers.NamespaceSupport#processName - */ - String [] processName (String qName, boolean isAttribute) - { - String name[]; - Hashtable table; - - // detect errors in call sequence - declsOK = false; - - // Select the appropriate table. - if (isAttribute) { - table = attributeNameTable; - } else { - table = elementNameTable; - } - - // Start by looking in the cache, and - // return immediately if the name - // is already known in this content - name = (String[])table.get(qName); - if (name != null) { - return name; - } - - // We haven't seen this name in this - // context before. Maybe in the parent - // context, but we can't assume prefix - // bindings are the same. - name = new String[3]; - name[2] = qName.intern(); - int index = qName.indexOf(':'); - - - // No prefix. - if (index == -1) { - if (isAttribute || defaultNS == null) { - name[0] = ""; - } else { - name[0] = defaultNS; - } - name[1] = name[2]; - } - - // Prefix - else { - String prefix = qName.substring(0, index); - String local = qName.substring(index+1); - String uri; - if ("".equals(prefix)) { - uri = defaultNS; - } else { - uri = (String)prefixTable.get(prefix); - } - if (uri == null) { - return null; - } - name[0] = uri; - name[1] = local.intern(); - } - - // Save in the cache for future use. - // (Could be shared with parent context...) - table.put(name[2], name); - return name; - } - - - /** - * Look up the URI associated with a prefix in this context. - * - * @param prefix The prefix to look up. - * @return The associated Namespace URI, or null if none is - * declared. - * @see org.xml.sax.helpers.NamespaceSupport#getURI - */ - String getURI (String prefix) - { - if ("".equals(prefix)) { - return defaultNS; - } else if (prefixTable == null) { - return null; - } else { - return (String)prefixTable.get(prefix); - } - } - - - /** - * Look up one of the prefixes associated with a URI in this context. - * - * <p>Since many prefixes may be mapped to the same URI, - * the return value may be unreliable.</p> - * - * @param uri The URI to look up. - * @return The associated prefix, or null if none is declared. - * @see org.xml.sax.helpers.NamespaceSupport#getPrefix - */ - String getPrefix (String uri) - { - if (uriTable == null) { - return null; - } else { - return (String)uriTable.get(uri); - } - } - - - /** - * Return an enumeration of prefixes declared in this context. - * - * @return An enumeration of prefixes (possibly empty). - * @see org.xml.sax.helpers.NamespaceSupport#getDeclaredPrefixes - */ - Enumeration getDeclaredPrefixes () - { - if (declarations == null) { - return EMPTY_ENUMERATION; - } else { - return declarations.elements(); - } - } - - - /** - * Return an enumeration of all prefixes currently in force. - * - * <p>The default prefix, if in force, is <em>not</em> - * returned, and will have to be checked for separately.</p> - * - * @return An enumeration of prefixes (never empty). - * @see org.xml.sax.helpers.NamespaceSupport#getPrefixes - */ - Enumeration getPrefixes () - { - if (prefixTable == null) { - return EMPTY_ENUMERATION; - } else { - return prefixTable.keys(); - } - } - - - - //////////////////////////////////////////////////////////////// - // Internal methods. - //////////////////////////////////////////////////////////////// - - - /** - * Copy on write for the internal tables in this context. - * - * <p>This class is optimized for the normal case where most - * elements do not contain Namespace declarations.</p> - */ - private void copyTables () - { - if (prefixTable != null) { - prefixTable = (Hashtable)prefixTable.clone(); - } else { - prefixTable = new Hashtable(); - } - if (uriTable != null) { - uriTable = (Hashtable)uriTable.clone(); - } else { - uriTable = new Hashtable(); - } - elementNameTable = new Hashtable(); - attributeNameTable = new Hashtable(); - declSeen = true; - } - - - - //////////////////////////////////////////////////////////////// - // Protected state. - //////////////////////////////////////////////////////////////// - - Hashtable prefixTable; - Hashtable uriTable; - Hashtable elementNameTable; - Hashtable attributeNameTable; - String defaultNS = null; - boolean declsOK = true; - - - - //////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////// - - private Vector declarations = null; - private boolean declSeen = false; - private Context parent = null; - } -} - -// end of NamespaceSupport.java diff --git a/external/jaxp/source/org/xml/sax/helpers/NewInstance.java b/external/jaxp/source/org/xml/sax/helpers/NewInstance.java deleted file mode 100644 index cfd9a4724..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/NewInstance.java +++ /dev/null @@ -1,78 +0,0 @@ -// NewInstance.java - create a new instance of a class by name. -// http://www.saxproject.org -// Written by Edwin Goei, edwingo@apache.org -// and by David Brownell, dbrownell@users.sourceforge.net -// NO WARRANTY! This class is in the Public Domain. - -package org.xml.sax.helpers; - -import java.lang.reflect.Method; -import java.lang.reflect.InvocationTargetException; - -/** - * Create a new instance of a class by name. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class contains a static method for creating an instance of a - * class from an explicit class name. It tries to use the thread's context - * ClassLoader if possible and falls back to using - * Class.forName(String).</p> - * - * <p>This code is designed to compile and run on JDK version 1.1 and later - * including versions of Java 2.</p> - * - * @author Edwin Goei, David Brownell - * @version 2.0.1 (sax2r2) - */ -class NewInstance { - - /** - * Creates a new instance of the specified class name - * - * Package private so this code is not exposed at the API level. - */ - static Object newInstance (ClassLoader classLoader, String className) - throws ClassNotFoundException, IllegalAccessException, - InstantiationException - { - Class driverClass; - if (classLoader == null) { - driverClass = Class.forName(className); - } else { - driverClass = classLoader.loadClass(className); - } - return driverClass.newInstance(); - } - - /** - * Figure out which ClassLoader to use. For JDK 1.2 and later use - * the context ClassLoader. - */ - static ClassLoader getClassLoader () - { - Method m = null; - - try { - m = Thread.class.getMethod("getContextClassLoader", null); - } catch (NoSuchMethodException e) { - // Assume that we are running JDK 1.1, use the current ClassLoader - return NewInstance.class.getClassLoader(); - } - - try { - return (ClassLoader) m.invoke(Thread.currentThread(), null); - } catch (IllegalAccessException e) { - // assert(false) - throw new UnknownError(e.getMessage()); - } catch (InvocationTargetException e) { - // assert(e.getTargetException() instanceof SecurityException) - throw new UnknownError(e.getMessage()); - } - } -} diff --git a/external/jaxp/source/org/xml/sax/helpers/ParserAdapter.java b/external/jaxp/source/org/xml/sax/helpers/ParserAdapter.java deleted file mode 100755 index 1dfef61c7..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/ParserAdapter.java +++ /dev/null @@ -1,1024 +0,0 @@ -// ParserAdapter.java - adapt a SAX1 Parser to a SAX2 XMLReader. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the public domain. - -package org.xml.sax.helpers; - -import java.io.IOException; -import java.util.Enumeration; -import java.util.Vector; - -import org.xml.sax.Parser; // deprecated -import org.xml.sax.InputSource; -import org.xml.sax.Locator; -import org.xml.sax.AttributeList; // deprecated -import org.xml.sax.EntityResolver; -import org.xml.sax.DTDHandler; -import org.xml.sax.DocumentHandler; // deprecated -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; - -import org.xml.sax.XMLReader; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.SAXNotRecognizedException; -import org.xml.sax.SAXNotSupportedException; - - -/** - * Adapt a SAX1 Parser as a SAX2 XMLReader. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class wraps a SAX1 {@link org.xml.sax.Parser Parser} - * and makes it act as a SAX2 {@link org.xml.sax.XMLReader XMLReader}, - * with feature, property, and Namespace support. Note - * that it is not possible to report {@link org.xml.sax.ContentHandler#skippedEntity - * skippedEntity} events, since SAX1 does not make that information available.</p> - * - * <p>This adapter does not test for duplicate Namespace-qualified - * attribute names.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.helpers.XMLReaderAdapter - * @see org.xml.sax.XMLReader - * @see org.xml.sax.Parser - */ -public class ParserAdapter implements XMLReader, DocumentHandler -{ - - - //////////////////////////////////////////////////////////////////// - // Constructors. - //////////////////////////////////////////////////////////////////// - - - /** - * Construct a new parser adapter. - * - * <p>Use the "org.xml.sax.parser" property to locate the - * embedded SAX1 driver.</p> - * - * @exception SAXException If the embedded driver - * cannot be instantiated or if the - * org.xml.sax.parser property is not specified. - */ - public ParserAdapter () - throws SAXException - { - super(); - - String driver = System.getProperty("org.xml.sax.parser"); - - try { - setup(ParserFactory.makeParser()); - } catch (ClassNotFoundException e1) { - throw new - SAXException("Cannot find SAX1 driver class " + - driver, e1); - } catch (IllegalAccessException e2) { - throw new - SAXException("SAX1 driver class " + - driver + - " found but cannot be loaded", e2); - } catch (InstantiationException e3) { - throw new - SAXException("SAX1 driver class " + - driver + - " loaded but cannot be instantiated", e3); - } catch (ClassCastException e4) { - throw new - SAXException("SAX1 driver class " + - driver + - " does not implement org.xml.sax.Parser"); - } catch (NullPointerException e5) { - throw new - SAXException("System property org.xml.sax.parser not specified"); - } - } - - - /** - * Construct a new parser adapter. - * - * <p>Note that the embedded parser cannot be changed once the - * adapter is created; to embed a different parser, allocate - * a new ParserAdapter.</p> - * - * @param parser The SAX1 parser to embed. - * @exception java.lang.NullPointerException If the parser parameter - * is null. - */ - public ParserAdapter (Parser parser) - { - super(); - setup(parser); - } - - - /** - * Internal setup method. - * - * @param parser The embedded parser. - * @exception java.lang.NullPointerException If the parser parameter - * is null. - */ - private void setup (Parser parser) - { - if (parser == null) { - throw new - NullPointerException("Parser argument must not be null"); - } - this.parser = parser; - atts = new AttributesImpl(); - nsSupport = new NamespaceSupport(); - attAdapter = new AttributeListAdapter(); - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.XMLReader. - //////////////////////////////////////////////////////////////////// - - - // - // Internal constants for the sake of convenience. - // - private final static String FEATURES = "http://xml.org/sax/features/"; - private final static String NAMESPACES = FEATURES + "namespaces"; - private final static String NAMESPACE_PREFIXES = FEATURES + "namespace-prefixes"; - - - /** - * Set a feature flag for the parser. - * - * <p>The only features recognized are namespaces and - * namespace-prefixes.</p> - * - * @param name The feature name, as a complete URI. - * @param value The requested feature value. - * @exception SAXNotRecognizedException If the feature - * can't be assigned or retrieved. - * @exception SAXNotSupportedException If the feature - * can't be assigned that value. - * @see org.xml.sax.XMLReader#setFeature - */ - public void setFeature (String name, boolean value) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if (name.equals(NAMESPACES)) { - checkNotParsing("feature", name); - namespaces = value; - if (!namespaces && !prefixes) { - prefixes = true; - } - } else if (name.equals(NAMESPACE_PREFIXES)) { - checkNotParsing("feature", name); - prefixes = value; - if (!prefixes && !namespaces) { - namespaces = true; - } - } else { - throw new SAXNotRecognizedException("Feature: " + name); - } - } - - - /** - * Check a parser feature flag. - * - * <p>The only features recognized are namespaces and - * namespace-prefixes.</p> - * - * @param name The feature name, as a complete URI. - * @return The current feature value. - * @exception SAXNotRecognizedException If the feature - * value can't be assigned or retrieved. - * @exception SAXNotSupportedException If the - * feature is not currently readable. - * @see org.xml.sax.XMLReader#setFeature - */ - public boolean getFeature (String name) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if (name.equals(NAMESPACES)) { - return namespaces; - } else if (name.equals(NAMESPACE_PREFIXES)) { - return prefixes; - } else { - throw new SAXNotRecognizedException("Feature: " + name); - } - } - - - /** - * Set a parser property. - * - * <p>No properties are currently recognized.</p> - * - * @param name The property name. - * @param value The property value. - * @exception SAXNotRecognizedException If the property - * value can't be assigned or retrieved. - * @exception SAXNotSupportedException If the property - * can't be assigned that value. - * @see org.xml.sax.XMLReader#setProperty - */ - public void setProperty (String name, Object value) - throws SAXNotRecognizedException, SAXNotSupportedException - { - throw new SAXNotRecognizedException("Property: " + name); - } - - - /** - * Get a parser property. - * - * <p>No properties are currently recognized.</p> - * - * @param name The property name. - * @return The property value. - * @exception SAXNotRecognizedException If the property - * value can't be assigned or retrieved. - * @exception SAXNotSupportedException If the property - * value is not currently readable. - * @see org.xml.sax.XMLReader#getProperty - */ - public Object getProperty (String name) - throws SAXNotRecognizedException, SAXNotSupportedException - { - throw new SAXNotRecognizedException("Property: " + name); - } - - - /** - * Set the entity resolver. - * - * @param resolver The new entity resolver. - * @see org.xml.sax.XMLReader#setEntityResolver - */ - public void setEntityResolver (EntityResolver resolver) - { - entityResolver = resolver; - } - - - /** - * Return the current entity resolver. - * - * @return The current entity resolver, or null if none was supplied. - * @see org.xml.sax.XMLReader#getEntityResolver - */ - public EntityResolver getEntityResolver () - { - return entityResolver; - } - - - /** - * Set the DTD handler. - * - * @param resolver The new DTD handler. - * @see org.xml.sax.XMLReader#setEntityResolver - */ - public void setDTDHandler (DTDHandler handler) - { - dtdHandler = handler; - } - - - /** - * Return the current DTD handler. - * - * @return The current DTD handler, or null if none was supplied. - * @see org.xml.sax.XMLReader#getEntityResolver - */ - public DTDHandler getDTDHandler () - { - return dtdHandler; - } - - - /** - * Set the content handler. - * - * @param resolver The new content handler. - * @see org.xml.sax.XMLReader#setEntityResolver - */ - public void setContentHandler (ContentHandler handler) - { - contentHandler = handler; - } - - - /** - * Return the current content handler. - * - * @return The current content handler, or null if none was supplied. - * @see org.xml.sax.XMLReader#getEntityResolver - */ - public ContentHandler getContentHandler () - { - return contentHandler; - } - - - /** - * Set the error handler. - * - * @param resolver The new error handler. - * @see org.xml.sax.XMLReader#setEntityResolver - */ - public void setErrorHandler (ErrorHandler handler) - { - errorHandler = handler; - } - - - /** - * Return the current error handler. - * - * @return The current error handler, or null if none was supplied. - * @see org.xml.sax.XMLReader#getEntityResolver - */ - public ErrorHandler getErrorHandler () - { - return errorHandler; - } - - - /** - * Parse an XML document. - * - * @param systemId The absolute URL of the document. - * @exception java.io.IOException If there is a problem reading - * the raw content of the document. - * @exception SAXException If there is a problem - * processing the document. - * @see #parse(org.xml.sax.InputSource) - * @see org.xml.sax.Parser#parse(java.lang.String) - */ - public void parse (String systemId) - throws IOException, SAXException - { - parse(new InputSource(systemId)); - } - - - /** - * Parse an XML document. - * - * @param input An input source for the document. - * @exception java.io.IOException If there is a problem reading - * the raw content of the document. - * @exception SAXException If there is a problem - * processing the document. - * @see #parse(java.lang.String) - * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource) - */ - public void parse (InputSource input) - throws IOException, SAXException - { - if (parsing) { - throw new SAXException("Parser is already in use"); - } - setupParser(); - parsing = true; - try { - parser.parse(input); - } finally { - parsing = false; - } - parsing = false; - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.DocumentHandler. - //////////////////////////////////////////////////////////////////// - - - /** - * Adapter implementation method; do not call. - * Adapt a SAX1 document locator event. - * - * @param locator A document locator. - * @see org.xml.sax.ContentHandler#setDocumentLocator - */ - public void setDocumentLocator (Locator locator) - { - this.locator = locator; - if (contentHandler != null) { - contentHandler.setDocumentLocator(locator); - } - } - - - /** - * Adapter implementation method; do not call. - * Adapt a SAX1 start document event. - * - * @exception SAXException The client may raise a - * processing exception. - * @see org.xml.sax.DocumentHandler#startDocument - */ - public void startDocument () - throws SAXException - { - if (contentHandler != null) { - contentHandler.startDocument(); - } - } - - - /** - * Adapter implementation method; do not call. - * Adapt a SAX1 end document event. - * - * @exception SAXException The client may raise a - * processing exception. - * @see org.xml.sax.DocumentHandler#endDocument - */ - public void endDocument () - throws SAXException - { - if (contentHandler != null) { - contentHandler.endDocument(); - } - } - - - /** - * Adapter implementation method; do not call. - * Adapt a SAX1 startElement event. - * - * <p>If necessary, perform Namespace processing.</p> - * - * @param qName The qualified (prefixed) name. - * @param qAtts The XML 1.0 attribute list (with qnames). - * @exception SAXException The client may raise a - * processing exception. - */ - public void startElement (String qName, AttributeList qAtts) - throws SAXException - { - // These are exceptions from the - // first pass; they should be - // ignored if there's a second pass, - // but reported otherwise. - Vector exceptions = null; - - // If we're not doing Namespace - // processing, dispatch this quickly. - if (!namespaces) { - if (contentHandler != null) { - attAdapter.setAttributeList(qAtts); - contentHandler.startElement("", "", qName.intern(), - attAdapter); - } - return; - } - - - // OK, we're doing Namespace processing. - nsSupport.pushContext(); - int length = qAtts.getLength(); - - // First pass: handle NS decls - for (int i = 0; i < length; i++) { - String attQName = qAtts.getName(i); - - if (!attQName.startsWith("xmlns")) - continue; - // Could be a declaration... - String prefix; - int n = attQName.indexOf(':'); - - // xmlns=... - if (n == -1 && attQName.length () == 5) { - prefix = ""; - } else if (n != 5) { - // XML namespaces spec doesn't discuss "xmlnsf:oo" - // (and similarly named) attributes ... at most, warn - continue; - } else // xmlns:foo=... - prefix = attQName.substring(n+1); - - String value = qAtts.getValue(i); - if (!nsSupport.declarePrefix(prefix, value)) { - reportError("Illegal Namespace prefix: " + prefix); - continue; - } - if (contentHandler != null) - contentHandler.startPrefixMapping(prefix, value); - } - - // Second pass: copy all relevant - // attributes into the SAX2 AttributeList - // using updated prefix bindings - atts.clear(); - for (int i = 0; i < length; i++) { - String attQName = qAtts.getName(i); - String type = qAtts.getType(i); - String value = qAtts.getValue(i); - - // Declaration? - if (attQName.startsWith("xmlns")) { - String prefix; - int n = attQName.indexOf(':'); - - if (n == -1 && attQName.length () == 5) { - prefix = ""; - } else if (n != 5) { - // XML namespaces spec doesn't discuss "xmlnsf:oo" - // (and similarly named) attributes ... ignore - prefix = null; - } else { - prefix = attQName.substring(n+1); - } - // Yes, decl: report or prune - if (prefix != null) { - if (prefixes) - atts.addAttribute("", "", attQName.intern(), - type, value); - continue; - } - } - - // Not a declaration -- report - try { - String attName[] = processName(attQName, true, true); - atts.addAttribute(attName[0], attName[1], attName[2], - type, value); - } catch (SAXException e) { - if (exceptions == null) - exceptions = new Vector(); - exceptions.addElement(e); - atts.addAttribute("", attQName, attQName, type, value); - } - } - - // now handle the deferred exception reports - if (exceptions != null && errorHandler != null) { - for (int i = 0; i < exceptions.size(); i++) - errorHandler.error((SAXParseException) - (exceptions.elementAt(i))); - } - - // OK, finally report the event. - if (contentHandler != null) { - String name[] = processName(qName, false, false); - contentHandler.startElement(name[0], name[1], name[2], atts); - } - } - - - /** - * Adapter implementation method; do not call. - * Adapt a SAX1 end element event. - * - * @param qName The qualified (prefixed) name. - * @exception SAXException The client may raise a - * processing exception. - * @see org.xml.sax.DocumentHandler#endElement - */ - public void endElement (String qName) - throws SAXException - { - // If we're not doing Namespace - // processing, dispatch this quickly. - if (!namespaces) { - if (contentHandler != null) { - contentHandler.endElement("", "", qName.intern()); - } - return; - } - - // Split the name. - String names[] = processName(qName, false, false); - if (contentHandler != null) { - contentHandler.endElement(names[0], names[1], names[2]); - Enumeration prefixes = nsSupport.getDeclaredPrefixes(); - while (prefixes.hasMoreElements()) { - String prefix = (String)prefixes.nextElement(); - contentHandler.endPrefixMapping(prefix); - } - } - nsSupport.popContext(); - } - - - /** - * Adapter implementation method; do not call. - * Adapt a SAX1 characters event. - * - * @param ch An array of characters. - * @param start The starting position in the array. - * @param length The number of characters to use. - * @exception SAXException The client may raise a - * processing exception. - * @see org.xml.sax.DocumentHandler#characters - */ - public void characters (char ch[], int start, int length) - throws SAXException - { - if (contentHandler != null) { - contentHandler.characters(ch, start, length); - } - } - - - /** - * Adapter implementation method; do not call. - * Adapt a SAX1 ignorable whitespace event. - * - * @param ch An array of characters. - * @param start The starting position in the array. - * @param length The number of characters to use. - * @exception SAXException The client may raise a - * processing exception. - * @see org.xml.sax.DocumentHandler#ignorableWhitespace - */ - public void ignorableWhitespace (char ch[], int start, int length) - throws SAXException - { - if (contentHandler != null) { - contentHandler.ignorableWhitespace(ch, start, length); - } - } - - - /** - * Adapter implementation method; do not call. - * Adapt a SAX1 processing instruction event. - * - * @param target The processing instruction target. - * @param data The remainder of the processing instruction - * @exception SAXException The client may raise a - * processing exception. - * @see org.xml.sax.DocumentHandler#processingInstruction - */ - public void processingInstruction (String target, String data) - throws SAXException - { - if (contentHandler != null) { - contentHandler.processingInstruction(target, data); - } - } - - - - //////////////////////////////////////////////////////////////////// - // Internal utility methods. - //////////////////////////////////////////////////////////////////// - - - /** - * Initialize the parser before each run. - */ - private void setupParser () - { - nsSupport.reset(); - - if (entityResolver != null) { - parser.setEntityResolver(entityResolver); - } - if (dtdHandler != null) { - parser.setDTDHandler(dtdHandler); - } - if (errorHandler != null) { - parser.setErrorHandler(errorHandler); - } - parser.setDocumentHandler(this); - locator = null; - } - - - /** - * Process a qualified (prefixed) name. - * - * <p>If the name has an undeclared prefix, use only the qname - * and make an ErrorHandler.error callback in case the app is - * interested.</p> - * - * @param qName The qualified (prefixed) name. - * @param isAttribute true if this is an attribute name. - * @return The name split into three parts. - * @exception SAXException The client may throw - * an exception if there is an error callback. - */ - private String [] processName (String qName, boolean isAttribute, - boolean useException) - throws SAXException - { - String parts[] = nsSupport.processName(qName, nameParts, - isAttribute); - if (parts == null) { - if (useException) - throw makeException("Undeclared prefix: " + qName); - reportError("Undeclared prefix: " + qName); - parts = new String[3]; - parts[0] = parts[1] = ""; - parts[2] = qName.intern(); - } - return parts; - } - - - /** - * Report a non-fatal error. - * - * @param message The error message. - * @exception SAXException The client may throw - * an exception. - */ - void reportError (String message) - throws SAXException - { - if (errorHandler != null) - errorHandler.error(makeException(message)); - } - - - /** - * Construct an exception for the current context. - * - * @param message The error message. - */ - private SAXParseException makeException (String message) - { - if (locator != null) { - return new SAXParseException(message, locator); - } else { - return new SAXParseException(message, null, null, -1, -1); - } - } - - - /** - * Throw an exception if we are parsing. - * - * <p>Use this method to detect illegal feature or - * property changes.</p> - * - * @param type The type of thing (feature or property). - * @param name The feature or property name. - * @exception SAXNotSupportedException If a - * document is currently being parsed. - */ - private void checkNotParsing (String type, String name) - throws SAXNotSupportedException - { - if (parsing) { - throw new SAXNotSupportedException("Cannot change " + - type + ' ' + - name + " while parsing"); - - } - } - - - - //////////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////////// - - private NamespaceSupport nsSupport; - private AttributeListAdapter attAdapter; - - private boolean parsing = false; - private String nameParts[] = new String[3]; - - private Parser parser = null; - - private AttributesImpl atts = null; - - // Features - private boolean namespaces = true; - private boolean prefixes = false; - - // Properties - - // Handlers - Locator locator; - - EntityResolver entityResolver = null; - DTDHandler dtdHandler = null; - ContentHandler contentHandler = null; - ErrorHandler errorHandler = null; - - - - //////////////////////////////////////////////////////////////////// - // Inner class to wrap an AttributeList when not doing NS proc. - //////////////////////////////////////////////////////////////////// - - - /** - * Adapt a SAX1 AttributeList as a SAX2 Attributes object. - * - * <p>This class is in the Public Domain, and comes with NO - * WARRANTY of any kind.</p> - * - * <p>This wrapper class is used only when Namespace support - * is disabled -- it provides pretty much a direct mapping - * from SAX1 to SAX2, except that names and types are - * interned whenever requested.</p> - */ - final class AttributeListAdapter implements Attributes - { - - /** - * Construct a new adapter. - */ - AttributeListAdapter () - { - } - - - /** - * Set the embedded AttributeList. - * - * <p>This method must be invoked before any of the others - * can be used.</p> - * - * @param The SAX1 attribute list (with qnames). - */ - void setAttributeList (AttributeList qAtts) - { - this.qAtts = qAtts; - } - - - /** - * Return the length of the attribute list. - * - * @return The number of attributes in the list. - * @see org.xml.sax.Attributes#getLength - */ - public int getLength () - { - return qAtts.getLength(); - } - - - /** - * Return the Namespace URI of the specified attribute. - * - * @param The attribute's index. - * @return Always the empty string. - * @see org.xml.sax.Attributes#getURI - */ - public String getURI (int i) - { - return ""; - } - - - /** - * Return the local name of the specified attribute. - * - * @param The attribute's index. - * @return Always the empty string. - * @see org.xml.sax.Attributes#getLocalName - */ - public String getLocalName (int i) - { - return ""; - } - - - /** - * Return the qualified (prefixed) name of the specified attribute. - * - * @param The attribute's index. - * @return The attribute's qualified name, internalized. - */ - public String getQName (int i) - { - return qAtts.getName(i).intern(); - } - - - /** - * Return the type of the specified attribute. - * - * @param The attribute's index. - * @return The attribute's type as an internalized string. - */ - public String getType (int i) - { - return qAtts.getType(i).intern(); - } - - - /** - * Return the value of the specified attribute. - * - * @param The attribute's index. - * @return The attribute's value. - */ - public String getValue (int i) - { - return qAtts.getValue(i); - } - - - /** - * Look up an attribute index by Namespace name. - * - * @param uri The Namespace URI or the empty string. - * @param localName The local name. - * @return The attributes index, or -1 if none was found. - * @see org.xml.sax.Attributes#getIndex(java.lang.String,java.lang.String) - */ - public int getIndex (String uri, String localName) - { - return -1; - } - - - /** - * Look up an attribute index by qualified (prefixed) name. - * - * @param qName The qualified name. - * @return The attributes index, or -1 if none was found. - * @see org.xml.sax.Attributes#getIndex(java.lang.String) - */ - public int getIndex (String qName) - { - int max = atts.getLength(); - for (int i = 0; i < max; i++) { - if (qAtts.getName(i).equals(qName)) { - return i; - } - } - return -1; - } - - - /** - * Look up the type of an attribute by Namespace name. - * - * @param uri The Namespace URI - * @param localName The local name. - * @return The attribute's type as an internalized string. - */ - public String getType (String uri, String localName) - { - return null; - } - - - /** - * Look up the type of an attribute by qualified (prefixed) name. - * - * @param qName The qualified name. - * @return The attribute's type as an internalized string. - */ - public String getType (String qName) - { - return qAtts.getType(qName).intern(); - } - - - /** - * Look up the value of an attribute by Namespace name. - * - * @param uri The Namespace URI - * @param localName The local name. - * @return The attribute's value. - */ - public String getValue (String uri, String localName) - { - return null; - } - - - /** - * Look up the value of an attribute by qualified (prefixed) name. - * - * @param qName The qualified name. - * @return The attribute's value. - */ - public String getValue (String qName) - { - return qAtts.getValue(qName); - } - - private AttributeList qAtts; - } -} - -// end of ParserAdapter.java diff --git a/external/jaxp/source/org/xml/sax/helpers/ParserFactory.java b/external/jaxp/source/org/xml/sax/helpers/ParserFactory.java deleted file mode 100755 index c3a64eafe..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/ParserFactory.java +++ /dev/null @@ -1,128 +0,0 @@ -// SAX parser factory. -// http://www.saxproject.org -// No warranty; no copyright -- use this as you will. - -package org.xml.sax.helpers; - -import java.lang.ClassNotFoundException; -import java.lang.IllegalAccessException; -import java.lang.InstantiationException; -import java.lang.SecurityException; -import java.lang.ClassCastException; - -import org.xml.sax.Parser; - - -/** - * Java-specific class for dynamically loading SAX parsers. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p><strong>Note:</strong> This class is designed to work with the now-deprecated - * SAX1 {@link org.xml.sax.Parser Parser} class. SAX2 applications should use - * {@link org.xml.sax.helpers.XMLReaderFactory XMLReaderFactory} instead.</p> - * - * <p>ParserFactory is not part of the platform-independent definition - * of SAX; it is an additional convenience class designed - * specifically for Java XML application writers. SAX applications - * can use the static methods in this class to allocate a SAX parser - * dynamically at run-time based either on the value of the - * `org.xml.sax.parser' system property or on a string containing the class - * name.</p> - * - * <p>Note that the application still requires an XML parser that - * implements SAX1.</p> - * - * @deprecated This class works with the deprecated - * {@link org.xml.sax.Parser Parser} - * interface. - * @since SAX 1.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - */ -public class ParserFactory { - - - /** - * Private null constructor. - */ - private ParserFactory () - { - } - - - /** - * Create a new SAX parser using the `org.xml.sax.parser' system property. - * - * <p>The named class must exist and must implement the - * {@link org.xml.sax.Parser Parser} interface.</p> - * - * @exception java.lang.NullPointerException There is no value - * for the `org.xml.sax.parser' system property. - * @exception java.lang.ClassNotFoundException The SAX parser - * class was not found (check your CLASSPATH). - * @exception IllegalAccessException The SAX parser class was - * found, but you do not have permission to load - * it. - * @exception InstantiationException The SAX parser class was - * found but could not be instantiated. - * @exception java.lang.ClassCastException The SAX parser class - * was found and instantiated, but does not implement - * org.xml.sax.Parser. - * @see #makeParser(java.lang.String) - * @see org.xml.sax.Parser - */ - public static Parser makeParser () - throws ClassNotFoundException, - IllegalAccessException, - InstantiationException, - NullPointerException, - ClassCastException - { - String className = System.getProperty("org.xml.sax.parser"); - if (className == null) { - throw new NullPointerException("No value for sax.parser property"); - } else { - return makeParser(className); - } - } - - - /** - * Create a new SAX parser object using the class name provided. - * - * <p>The named class must exist and must implement the - * {@link org.xml.sax.Parser Parser} interface.</p> - * - * @param className A string containing the name of the - * SAX parser class. - * @exception java.lang.ClassNotFoundException The SAX parser - * class was not found (check your CLASSPATH). - * @exception IllegalAccessException The SAX parser class was - * found, but you do not have permission to load - * it. - * @exception InstantiationException The SAX parser class was - * found but could not be instantiated. - * @exception java.lang.ClassCastException The SAX parser class - * was found and instantiated, but does not implement - * org.xml.sax.Parser. - * @see #makeParser() - * @see org.xml.sax.Parser - */ - public static Parser makeParser (String className) - throws ClassNotFoundException, - IllegalAccessException, - InstantiationException, - ClassCastException - { - return (Parser) NewInstance.newInstance ( - NewInstance.getClassLoader (), className); - } - -} - diff --git a/external/jaxp/source/org/xml/sax/helpers/XMLFilterImpl.java b/external/jaxp/source/org/xml/sax/helpers/XMLFilterImpl.java deleted file mode 100755 index b5f0e2fd0..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/XMLFilterImpl.java +++ /dev/null @@ -1,712 +0,0 @@ -// XMLFilterImpl.java - base SAX2 filter implementation. -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the Public Domain. - -package org.xml.sax.helpers; - -import java.io.IOException; - -import org.xml.sax.XMLReader; -import org.xml.sax.XMLFilter; -import org.xml.sax.InputSource; -import org.xml.sax.Locator; -import org.xml.sax.Attributes; -import org.xml.sax.EntityResolver; -import org.xml.sax.DTDHandler; -import org.xml.sax.ContentHandler; -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; -import org.xml.sax.SAXParseException; -import org.xml.sax.SAXNotSupportedException; -import org.xml.sax.SAXNotRecognizedException; - - -/** - * Base class for deriving an XML filter. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class is designed to sit between an {@link org.xml.sax.XMLReader - * XMLReader} and the client application's event handlers. By default, it - * does nothing but pass requests up to the reader and events - * on to the handlers unmodified, but subclasses can override - * specific methods to modify the event stream or the configuration - * requests as they pass through.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.XMLFilter - * @see org.xml.sax.XMLReader - * @see org.xml.sax.EntityResolver - * @see org.xml.sax.DTDHandler - * @see org.xml.sax.ContentHandler - * @see org.xml.sax.ErrorHandler - */ -public class XMLFilterImpl - implements XMLFilter, EntityResolver, DTDHandler, ContentHandler, ErrorHandler -{ - - - //////////////////////////////////////////////////////////////////// - // Constructors. - //////////////////////////////////////////////////////////////////// - - - /** - * Construct an empty XML filter, with no parent. - * - * <p>This filter will have no parent: you must assign a parent - * before you start a parse or do any configuration with - * setFeature or setProperty, unless you use this as a pure event - * consumer rather than as an {@link XMLReader}.</p> - * - * @see org.xml.sax.XMLReader#setFeature - * @see org.xml.sax.XMLReader#setProperty - * @see #setParent - */ - public XMLFilterImpl () - { - super(); - } - - - /** - * Construct an XML filter with the specified parent. - * - * @see #setParent - * @see #getParent - */ - public XMLFilterImpl (XMLReader parent) - { - super(); - setParent(parent); - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.XMLFilter. - //////////////////////////////////////////////////////////////////// - - - /** - * Set the parent reader. - * - * <p>This is the {@link org.xml.sax.XMLReader XMLReader} from which - * this filter will obtain its events and to which it will pass its - * configuration requests. The parent may itself be another filter.</p> - * - * <p>If there is no parent reader set, any attempt to parse - * or to set or get a feature or property will fail.</p> - * - * @param parent The parent XML reader. - * @see #getParent - */ - public void setParent (XMLReader parent) - { - this.parent = parent; - } - - - /** - * Get the parent reader. - * - * @return The parent XML reader, or null if none is set. - * @see #setParent - */ - public XMLReader getParent () - { - return parent; - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.XMLReader. - //////////////////////////////////////////////////////////////////// - - - /** - * Set the value of a feature. - * - * <p>This will always fail if the parent is null.</p> - * - * @param name The feature name. - * @param value The requested feature value. - * @exception org.xml.sax.SAXNotRecognizedException If the feature - * value can't be assigned or retrieved from the parent. - * @exception org.xml.sax.SAXNotSupportedException When the - * parent recognizes the feature name but - * cannot set the requested value. - */ - public void setFeature (String name, boolean value) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if (parent != null) { - parent.setFeature(name, value); - } else { - throw new SAXNotRecognizedException("Feature: " + name); - } - } - - - /** - * Look up the value of a feature. - * - * <p>This will always fail if the parent is null.</p> - * - * @param name The feature name. - * @return The current value of the feature. - * @exception org.xml.sax.SAXNotRecognizedException If the feature - * value can't be assigned or retrieved from the parent. - * @exception org.xml.sax.SAXNotSupportedException When the - * parent recognizes the feature name but - * cannot determine its value at this time. - */ - public boolean getFeature (String name) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if (parent != null) { - return parent.getFeature(name); - } else { - throw new SAXNotRecognizedException("Feature: " + name); - } - } - - - /** - * Set the value of a property. - * - * <p>This will always fail if the parent is null.</p> - * - * @param name The property name. - * @param value The requested property value. - * @exception org.xml.sax.SAXNotRecognizedException If the property - * value can't be assigned or retrieved from the parent. - * @exception org.xml.sax.SAXNotSupportedException When the - * parent recognizes the property name but - * cannot set the requested value. - */ - public void setProperty (String name, Object value) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if (parent != null) { - parent.setProperty(name, value); - } else { - throw new SAXNotRecognizedException("Property: " + name); - } - } - - - /** - * Look up the value of a property. - * - * @param name The property name. - * @return The current value of the property. - * @exception org.xml.sax.SAXNotRecognizedException If the property - * value can't be assigned or retrieved from the parent. - * @exception org.xml.sax.SAXNotSupportedException When the - * parent recognizes the property name but - * cannot determine its value at this time. - */ - public Object getProperty (String name) - throws SAXNotRecognizedException, SAXNotSupportedException - { - if (parent != null) { - return parent.getProperty(name); - } else { - throw new SAXNotRecognizedException("Property: " + name); - } - } - - - /** - * Set the entity resolver. - * - * @param resolver The new entity resolver. - */ - public void setEntityResolver (EntityResolver resolver) - { - entityResolver = resolver; - } - - - /** - * Get the current entity resolver. - * - * @return The current entity resolver, or null if none was set. - */ - public EntityResolver getEntityResolver () - { - return entityResolver; - } - - - /** - * Set the DTD event handler. - * - * @param resolver The new DTD handler. - */ - public void setDTDHandler (DTDHandler handler) - { - dtdHandler = handler; - } - - - /** - * Get the current DTD event handler. - * - * @return The current DTD handler, or null if none was set. - */ - public DTDHandler getDTDHandler () - { - return dtdHandler; - } - - - /** - * Set the content event handler. - * - * @param resolver The new content handler. - */ - public void setContentHandler (ContentHandler handler) - { - contentHandler = handler; - } - - - /** - * Get the content event handler. - * - * @return The current content handler, or null if none was set. - */ - public ContentHandler getContentHandler () - { - return contentHandler; - } - - - /** - * Set the error event handler. - * - * @param handle The new error handler. - */ - public void setErrorHandler (ErrorHandler handler) - { - errorHandler = handler; - } - - - /** - * Get the current error event handler. - * - * @return The current error handler, or null if none was set. - */ - public ErrorHandler getErrorHandler () - { - return errorHandler; - } - - - /** - * Parse a document. - * - * @param input The input source for the document entity. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @exception java.io.IOException An IO exception from the parser, - * possibly from a byte stream or character stream - * supplied by the application. - */ - public void parse (InputSource input) - throws SAXException, IOException - { - setupParse(); - parent.parse(input); - } - - - /** - * Parse a document. - * - * @param systemId The system identifier as a fully-qualified URI. - * @exception org.xml.sax.SAXException Any SAX exception, possibly - * wrapping another exception. - * @exception java.io.IOException An IO exception from the parser, - * possibly from a byte stream or character stream - * supplied by the application. - */ - public void parse (String systemId) - throws SAXException, IOException - { - parse(new InputSource(systemId)); - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.EntityResolver. - //////////////////////////////////////////////////////////////////// - - - /** - * Filter an external entity resolution. - * - * @param publicId The entity's public identifier, or null. - * @param systemId The entity's system identifier. - * @return A new InputSource or null for the default. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - * @exception java.io.IOException The client may throw an - * I/O-related exception while obtaining the - * new InputSource. - */ - public InputSource resolveEntity (String publicId, String systemId) - throws SAXException, IOException - { - if (entityResolver != null) { - return entityResolver.resolveEntity(publicId, systemId); - } else { - return null; - } - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.DTDHandler. - //////////////////////////////////////////////////////////////////// - - - /** - * Filter a notation declaration event. - * - * @param name The notation name. - * @param publicId The notation's public identifier, or null. - * @param systemId The notation's system identifier, or null. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void notationDecl (String name, String publicId, String systemId) - throws SAXException - { - if (dtdHandler != null) { - dtdHandler.notationDecl(name, publicId, systemId); - } - } - - - /** - * Filter an unparsed entity declaration event. - * - * @param name The entity name. - * @param publicId The entity's public identifier, or null. - * @param systemId The entity's system identifier, or null. - * @param notationName The name of the associated notation. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void unparsedEntityDecl (String name, String publicId, - String systemId, String notationName) - throws SAXException - { - if (dtdHandler != null) { - dtdHandler.unparsedEntityDecl(name, publicId, systemId, - notationName); - } - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.ContentHandler. - //////////////////////////////////////////////////////////////////// - - - /** - * Filter a new document locator event. - * - * @param locator The document locator. - */ - public void setDocumentLocator (Locator locator) - { - this.locator = locator; - if (contentHandler != null) { - contentHandler.setDocumentLocator(locator); - } - } - - - /** - * Filter a start document event. - * - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void startDocument () - throws SAXException - { - if (contentHandler != null) { - contentHandler.startDocument(); - } - } - - - /** - * Filter an end document event. - * - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void endDocument () - throws SAXException - { - if (contentHandler != null) { - contentHandler.endDocument(); - } - } - - - /** - * Filter a start Namespace prefix mapping event. - * - * @param prefix The Namespace prefix. - * @param uri The Namespace URI. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void startPrefixMapping (String prefix, String uri) - throws SAXException - { - if (contentHandler != null) { - contentHandler.startPrefixMapping(prefix, uri); - } - } - - - /** - * Filter an end Namespace prefix mapping event. - * - * @param prefix The Namespace prefix. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void endPrefixMapping (String prefix) - throws SAXException - { - if (contentHandler != null) { - contentHandler.endPrefixMapping(prefix); - } - } - - - /** - * Filter a start element event. - * - * @param uri The element's Namespace URI, or the empty string. - * @param localName The element's local name, or the empty string. - * @param qName The element's qualified (prefixed) name, or the empty - * string. - * @param atts The element's attributes. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void startElement (String uri, String localName, String qName, - Attributes atts) - throws SAXException - { - if (contentHandler != null) { - contentHandler.startElement(uri, localName, qName, atts); - } - } - - - /** - * Filter an end element event. - * - * @param uri The element's Namespace URI, or the empty string. - * @param localName The element's local name, or the empty string. - * @param qName The element's qualified (prefixed) name, or the empty - * string. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void endElement (String uri, String localName, String qName) - throws SAXException - { - if (contentHandler != null) { - contentHandler.endElement(uri, localName, qName); - } - } - - - /** - * Filter a character data event. - * - * @param ch An array of characters. - * @param start The starting position in the array. - * @param length The number of characters to use from the array. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void characters (char ch[], int start, int length) - throws SAXException - { - if (contentHandler != null) { - contentHandler.characters(ch, start, length); - } - } - - - /** - * Filter an ignorable whitespace event. - * - * @param ch An array of characters. - * @param start The starting position in the array. - * @param length The number of characters to use from the array. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void ignorableWhitespace (char ch[], int start, int length) - throws SAXException - { - if (contentHandler != null) { - contentHandler.ignorableWhitespace(ch, start, length); - } - } - - - /** - * Filter a processing instruction event. - * - * @param target The processing instruction target. - * @param data The text following the target. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void processingInstruction (String target, String data) - throws SAXException - { - if (contentHandler != null) { - contentHandler.processingInstruction(target, data); - } - } - - - /** - * Filter a skipped entity event. - * - * @param name The name of the skipped entity. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void skippedEntity (String name) - throws SAXException - { - if (contentHandler != null) { - contentHandler.skippedEntity(name); - } - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.ErrorHandler. - //////////////////////////////////////////////////////////////////// - - - /** - * Filter a warning event. - * - * @param e The warning as an exception. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void warning (SAXParseException e) - throws SAXException - { - if (errorHandler != null) { - errorHandler.warning(e); - } - } - - - /** - * Filter an error event. - * - * @param e The error as an exception. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void error (SAXParseException e) - throws SAXException - { - if (errorHandler != null) { - errorHandler.error(e); - } - } - - - /** - * Filter a fatal error event. - * - * @param e The error as an exception. - * @exception org.xml.sax.SAXException The client may throw - * an exception during processing. - */ - public void fatalError (SAXParseException e) - throws SAXException - { - if (errorHandler != null) { - errorHandler.fatalError(e); - } - } - - - - //////////////////////////////////////////////////////////////////// - // Internal methods. - //////////////////////////////////////////////////////////////////// - - - /** - * Set up before a parse. - * - * <p>Before every parse, check whether the parent is - * non-null, and re-register the filter for all of the - * events.</p> - */ - private void setupParse () - { - if (parent == null) { - throw new NullPointerException("No parent for filter"); - } - parent.setEntityResolver(this); - parent.setDTDHandler(this); - parent.setContentHandler(this); - parent.setErrorHandler(this); - } - - - - //////////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////////// - - private XMLReader parent = null; - private Locator locator = null; - private EntityResolver entityResolver = null; - private DTDHandler dtdHandler = null; - private ContentHandler contentHandler = null; - private ErrorHandler errorHandler = null; - -} - -// end of XMLFilterImpl.java diff --git a/external/jaxp/source/org/xml/sax/helpers/XMLReaderAdapter.java b/external/jaxp/source/org/xml/sax/helpers/XMLReaderAdapter.java deleted file mode 100755 index 7438a3d04..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/XMLReaderAdapter.java +++ /dev/null @@ -1,537 +0,0 @@ -// XMLReaderAdapter.java - adapt an SAX2 XMLReader to a SAX1 Parser -// http://www.saxproject.org -// Written by David Megginson -// NO WARRANTY! This class is in the public domain. - -package org.xml.sax.helpers; - -import java.io.IOException; -import java.util.Locale; - -import org.xml.sax.Parser; // deprecated -import org.xml.sax.Locator; -import org.xml.sax.InputSource; -import org.xml.sax.AttributeList; // deprecated -import org.xml.sax.EntityResolver; -import org.xml.sax.DTDHandler; -import org.xml.sax.DocumentHandler; // deprecated -import org.xml.sax.ErrorHandler; -import org.xml.sax.SAXException; - -import org.xml.sax.XMLReader; -import org.xml.sax.Attributes; -import org.xml.sax.ContentHandler; -import org.xml.sax.SAXNotSupportedException; - - -/** - * Adapt a SAX2 XMLReader as a SAX1 Parser. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class wraps a SAX2 {@link org.xml.sax.XMLReader XMLReader} - * and makes it act as a SAX1 {@link org.xml.sax.Parser Parser}. The XMLReader - * must support a true value for the - * http://xml.org/sax/features/namespace-prefixes property or parsing will fail - * with a {@link org.xml.sax.SAXException SAXException}; if the XMLReader - * supports a false value for the http://xml.org/sax/features/namespaces - * property, that will also be used to improve efficiency.</p> - * - * @since SAX 2.0 - * @author David Megginson - * @version 2.0.1 (sax2r2) - * @see org.xml.sax.Parser - * @see org.xml.sax.XMLReader - */ -public class XMLReaderAdapter implements Parser, ContentHandler -{ - - - //////////////////////////////////////////////////////////////////// - // Constructor. - //////////////////////////////////////////////////////////////////// - - - /** - * Create a new adapter. - * - * <p>Use the "org.xml.sax.driver" property to locate the SAX2 - * driver to embed.</p> - * - * @exception org.xml.sax.SAXException If the embedded driver - * cannot be instantiated or if the - * org.xml.sax.driver property is not specified. - */ - public XMLReaderAdapter () - throws SAXException - { - setup(XMLReaderFactory.createXMLReader()); - } - - - /** - * Create a new adapter. - * - * <p>Create a new adapter, wrapped around a SAX2 XMLReader. - * The adapter will make the XMLReader act like a SAX1 - * Parser.</p> - * - * @param xmlReader The SAX2 XMLReader to wrap. - * @exception java.lang.NullPointerException If the argument is null. - */ - public XMLReaderAdapter (XMLReader xmlReader) - { - setup(xmlReader); - } - - - - /** - * Internal setup. - * - * @param xmlReader The embedded XMLReader. - */ - private void setup (XMLReader xmlReader) - { - if (xmlReader == null) { - throw new NullPointerException("XMLReader must not be null"); - } - this.xmlReader = xmlReader; - qAtts = new AttributesAdapter(); - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.Parser. - //////////////////////////////////////////////////////////////////// - - - /** - * Set the locale for error reporting. - * - * <p>This is not supported in SAX2, and will always throw - * an exception.</p> - * - * @param The locale for error reporting. - * @see org.xml.sax.Parser#setLocale - * @exception org.xml.sax.SAXException Thrown unless overridden. - */ - public void setLocale (Locale locale) - throws SAXException - { - throw new SAXNotSupportedException("setLocale not supported"); - } - - - /** - * Register the entity resolver. - * - * @param resolver The new resolver. - * @see org.xml.sax.Parser#setEntityResolver - */ - public void setEntityResolver (EntityResolver resolver) - { - xmlReader.setEntityResolver(resolver); - } - - - /** - * Register the DTD event handler. - * - * @param handler The new DTD event handler. - * @see org.xml.sax.Parser#setDTDHandler - */ - public void setDTDHandler (DTDHandler handler) - { - xmlReader.setDTDHandler(handler); - } - - - /** - * Register the SAX1 document event handler. - * - * <p>Note that the SAX1 document handler has no Namespace - * support.</p> - * - * @param handler The new SAX1 document event handler. - * @see org.xml.sax.Parser#setDocumentHandler - */ - public void setDocumentHandler (DocumentHandler handler) - { - documentHandler = handler; - } - - - /** - * Register the error event handler. - * - * @param handler The new error event handler. - * @see org.xml.sax.Parser#setErrorHandler - */ - public void setErrorHandler (ErrorHandler handler) - { - xmlReader.setErrorHandler(handler); - } - - - /** - * Parse the document. - * - * <p>This method will throw an exception if the embedded - * XMLReader does not support the - * http://xml.org/sax/features/namespace-prefixes property.</p> - * - * @param systemId The absolute URL of the document. - * @exception java.io.IOException If there is a problem reading - * the raw content of the document. - * @exception org.xml.sax.SAXException If there is a problem - * processing the document. - * @see #parse(org.xml.sax.InputSource) - * @see org.xml.sax.Parser#parse(java.lang.String) - */ - public void parse (String systemId) - throws IOException, SAXException - { - parse(new InputSource(systemId)); - } - - - /** - * Parse the document. - * - * <p>This method will throw an exception if the embedded - * XMLReader does not support the - * http://xml.org/sax/features/namespace-prefixes property.</p> - * - * @param input An input source for the document. - * @exception java.io.IOException If there is a problem reading - * the raw content of the document. - * @exception org.xml.sax.SAXException If there is a problem - * processing the document. - * @see #parse(java.lang.String) - * @see org.xml.sax.Parser#parse(org.xml.sax.InputSource) - */ - public void parse (InputSource input) - throws IOException, SAXException - { - setupXMLReader(); - xmlReader.parse(input); - } - - - /** - * Set up the XML reader. - */ - private void setupXMLReader () - throws SAXException - { - xmlReader.setFeature("http://xml.org/sax/features/namespace-prefixes", true); - try { - xmlReader.setFeature("http://xml.org/sax/features/namespaces", - false); - } catch (SAXException e) { - // NO OP: it's just extra information, and we can ignore it - } - xmlReader.setContentHandler(this); - } - - - - //////////////////////////////////////////////////////////////////// - // Implementation of org.xml.sax.ContentHandler. - //////////////////////////////////////////////////////////////////// - - - /** - * Set a document locator. - * - * @param locator The document locator. - * @see org.xml.sax.ContentHandler#setDocumentLocator - */ - public void setDocumentLocator (Locator locator) - { - if (documentHandler != null) - documentHandler.setDocumentLocator(locator); - } - - - /** - * Start document event. - * - * @exception org.xml.sax.SAXException The client may raise a - * processing exception. - * @see org.xml.sax.ContentHandler#startDocument - */ - public void startDocument () - throws SAXException - { - if (documentHandler != null) - documentHandler.startDocument(); - } - - - /** - * End document event. - * - * @exception org.xml.sax.SAXException The client may raise a - * processing exception. - * @see org.xml.sax.ContentHandler#endDocument - */ - public void endDocument () - throws SAXException - { - if (documentHandler != null) - documentHandler.endDocument(); - } - - - /** - * Adapt a SAX2 start prefix mapping event. - * - * @param prefix The prefix being mapped. - * @param uri The Namespace URI being mapped to. - * @see org.xml.sax.ContentHandler#startPrefixMapping - */ - public void startPrefixMapping (String prefix, String uri) - { - } - - - /** - * Adapt a SAX2 end prefix mapping event. - * - * @param prefix The prefix being mapped. - * @see org.xml.sax.ContentHandler#endPrefixMapping - */ - public void endPrefixMapping (String prefix) - { - } - - - /** - * Adapt a SAX2 start element event. - * - * @param uri The Namespace URI. - * @param localName The Namespace local name. - * @param qName The qualified (prefixed) name. - * @param atts The SAX2 attributes. - * @exception org.xml.sax.SAXException The client may raise a - * processing exception. - * @see org.xml.sax.ContentHandler#endDocument - */ - public void startElement (String uri, String localName, - String qName, Attributes atts) - throws SAXException - { - if (documentHandler != null) { - qAtts.setAttributes(atts); - documentHandler.startElement(qName, qAtts); - } - } - - - /** - * Adapt a SAX2 end element event. - * - * @param uri The Namespace URI. - * @param localName The Namespace local name. - * @param qName The qualified (prefixed) name. - * @exception org.xml.sax.SAXException The client may raise a - * processing exception. - * @see org.xml.sax.ContentHandler#endElement - */ - public void endElement (String uri, String localName, - String qName) - throws SAXException - { - if (documentHandler != null) - documentHandler.endElement(qName); - } - - - /** - * Adapt a SAX2 characters event. - * - * @param ch An array of characters. - * @param start The starting position in the array. - * @param length The number of characters to use. - * @exception org.xml.sax.SAXException The client may raise a - * processing exception. - * @see org.xml.sax.ContentHandler#characters - */ - public void characters (char ch[], int start, int length) - throws SAXException - { - if (documentHandler != null) - documentHandler.characters(ch, start, length); - } - - - /** - * Adapt a SAX2 ignorable whitespace event. - * - * @param ch An array of characters. - * @param start The starting position in the array. - * @param length The number of characters to use. - * @exception org.xml.sax.SAXException The client may raise a - * processing exception. - * @see org.xml.sax.ContentHandler#ignorableWhitespace - */ - public void ignorableWhitespace (char ch[], int start, int length) - throws SAXException - { - if (documentHandler != null) - documentHandler.ignorableWhitespace(ch, start, length); - } - - - /** - * Adapt a SAX2 processing instruction event. - * - * @param target The processing instruction target. - * @param data The remainder of the processing instruction - * @exception org.xml.sax.SAXException The client may raise a - * processing exception. - * @see org.xml.sax.ContentHandler#processingInstruction - */ - public void processingInstruction (String target, String data) - throws SAXException - { - if (documentHandler != null) - documentHandler.processingInstruction(target, data); - } - - - /** - * Adapt a SAX2 skipped entity event. - * - * @param name The name of the skipped entity. - * @see org.xml.sax.ContentHandler#skippedEntity - * @exception org.xml.sax.SAXException Throwable by subclasses. - */ - public void skippedEntity (String name) - throws SAXException - { - } - - - - //////////////////////////////////////////////////////////////////// - // Internal state. - //////////////////////////////////////////////////////////////////// - - XMLReader xmlReader; - DocumentHandler documentHandler; - AttributesAdapter qAtts; - - - - //////////////////////////////////////////////////////////////////// - // Internal class. - //////////////////////////////////////////////////////////////////// - - - /** - * Internal class to wrap a SAX2 Attributes object for SAX1. - */ - final class AttributesAdapter implements AttributeList - { - AttributesAdapter () - { - } - - - /** - * Set the embedded Attributes object. - * - * @param The embedded SAX2 Attributes. - */ - void setAttributes (Attributes attributes) - { - this.attributes = attributes; - } - - - /** - * Return the number of attributes. - * - * @return The length of the attribute list. - * @see org.xml.sax.AttributeList#getLength - */ - public int getLength () - { - return attributes.getLength(); - } - - - /** - * Return the qualified (prefixed) name of an attribute by position. - * - * @return The qualified name. - * @see org.xml.sax.AttributeList#getName - */ - public String getName (int i) - { - return attributes.getQName(i); - } - - - /** - * Return the type of an attribute by position. - * - * @return The type. - * @see org.xml.sax.AttributeList#getType(int) - */ - public String getType (int i) - { - return attributes.getType(i); - } - - - /** - * Return the value of an attribute by position. - * - * @return The value. - * @see org.xml.sax.AttributeList#getValue(int) - */ - public String getValue (int i) - { - return attributes.getValue(i); - } - - - /** - * Return the type of an attribute by qualified (prefixed) name. - * - * @return The type. - * @see org.xml.sax.AttributeList#getType(java.lang.String) - */ - public String getType (String qName) - { - return attributes.getType(qName); - } - - - /** - * Return the value of an attribute by qualified (prefixed) name. - * - * @return The value. - * @see org.xml.sax.AttributeList#getValue(java.lang.String) - */ - public String getValue (String qName) - { - return attributes.getValue(qName); - } - - private Attributes attributes; - } - -} - -// end of XMLReaderAdapter.java diff --git a/external/jaxp/source/org/xml/sax/helpers/XMLReaderFactory.java b/external/jaxp/source/org/xml/sax/helpers/XMLReaderFactory.java deleted file mode 100755 index 32b7f1c08..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/XMLReaderFactory.java +++ /dev/null @@ -1,200 +0,0 @@ -// XMLReaderFactory.java - factory for creating a new reader. -// http://www.saxproject.org -// Written by David Megginson -// and by David Brownell -// NO WARRANTY! This class is in the Public Domain. - -package org.xml.sax.helpers; -import java.io.BufferedReader; -import java.io.InputStream; -import java.io.InputStreamReader; -import org.xml.sax.XMLReader; -import org.xml.sax.SAXException; - - -/** - * Factory for creating an XML reader. - * - * <blockquote> - * <em>This module, both source code and documentation, is in the - * Public Domain, and comes with <strong>NO WARRANTY</strong>.</em> - * See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> - * for further information. - * </blockquote> - * - * <p>This class contains static methods for creating an XML reader - * from an explicit class name, or based on runtime defaults:</p> - * - * <pre> - * try { - * XMLReader myReader = XMLReaderFactory.createXMLReader(); - * } catch (SAXException e) { - * System.err.println(e.getMessage()); - * } - * </pre> - * - * <p><strong>Note to Distributions bundled with parsers:</strong> - * You should modify the implementation of the no-arguments - * <em>createXMLReader</em> to handle cases where the external - * configuration mechanisms aren't set up. That method should do its - * best to return a parser when one is in the class path, even when - * nothing bound its class name to <code>org.xml.sax.driver</code> so - * those configuration mechanisms would see it.</p> - * - * @since SAX 2.0 - * @author David Megginson, David Brownell - * @version 2.0.1 (sax2r2) - */ -final public class XMLReaderFactory -{ - /** - * Private constructor. - * - * <p>This constructor prevents the class from being instantiated.</p> - */ - private XMLReaderFactory () - { - } - - private static final String property = "org.xml.sax.driver"; - - /** - * Attempt to create an XMLReader from system defaults. - * In environments which can support it, the name of the XMLReader - * class is determined by trying each these options in order, and - * using the first one which succeeds:</p> <ul> - * - * <li>If the system property <code>org.xml.sax.driver</code> - * has a value, that is used as an XMLReader class name. </li> - * - * <li>The JAR "Services API" is used to look for a class name - * in the <em>META-INF/services/org.xml.sax.driver</em> file in - * jarfiles available to the runtime.</li> - * - * <li> SAX parser distributions are strongly encouraged to provide - * a default XMLReader class name that will take effect only when - * previous options (on this list) are not successful.</li> - * - * <li>Finally, if {@link ParserFactory#makeParser()} can - * return a system default SAX1 parser, that parser is wrapped in - * a {@link ParserAdapter}. (This is a migration aid for SAX1 - * environments, where the <code>org.xml.sax.parser</code> system - * property will often be usable.) </li> - * - * </ul> - * - * <p> In environments such as small embedded systems, which can not - * support that flexibility, other mechanisms to determine the default - * may be used. </p> - * - * <p>Note that many Java environments allow system properties to be - * initialized on a command line. This means that <em>in most cases</em> - * setting a good value for that property ensures that calls to this - * method will succeed, except when security policies intervene. - * This will also maximize application portability to older SAX - * environments, with less robust implementations of this method. - * </p> - * - * @return A new XMLReader. - * @exception org.xml.sax.SAXException If no default XMLReader class - * can be identified and instantiated. - * @see #createXMLReader(java.lang.String) - */ - public static XMLReader createXMLReader () - throws SAXException - { - String className = null; - ClassLoader loader = NewInstance.getClassLoader (); - - // 1. try the JVM-instance-wide system property - try { className = System.getProperty (property); } - catch (RuntimeException e) { /* normally fails for applets */ } - - // 2. if that fails, try META-INF/services/ - if (className == null) { - try { - String service = "META-INF/services/" + property; - InputStream in; - BufferedReader reader; - - if (loader == null) - in = ClassLoader.getSystemResourceAsStream (service); - else - in = loader.getResourceAsStream (service); - - if (in != null) { - reader = new BufferedReader ( - new InputStreamReader (in, "UTF8")); - className = reader.readLine (); - in.close (); - } - } catch (Exception e) { - } - } - - // 3. Distro-specific fallback - if (className == null) { -// BEGIN DISTRIBUTION-SPECIFIC - - // use the non-validating one - className = "gnu.xml.aelfred2.SAXDriver"; - -// END DISTRIBUTION-SPECIFIC - } - - // do we know the XMLReader implementation class yet? - if (className != null) - return loadClass (loader, className); - - // 4. panic -- adapt any SAX1 parser - try { - return new ParserAdapter (ParserFactory.makeParser ()); - } catch (Exception e) { - throw new SAXException ("Can't create default XMLReader; " - + "is system property org.xml.sax.driver set?"); - } - } - - - /** - * Attempt to create an XML reader from a class name. - * - * <p>Given a class name, this method attempts to load - * and instantiate the class as an XML reader.</p> - * - * <p>Note that this method will not be usable in environments where - * the caller (perhaps an applet) is not permitted to load classes - * dynamically.</p> - * - * @return A new XML reader. - * @exception org.xml.sax.SAXException If the class cannot be - * loaded, instantiated, and cast to XMLReader. - * @see #createXMLReader() - */ - public static XMLReader createXMLReader (String className) - throws SAXException - { - return loadClass (NewInstance.getClassLoader (), className); - } - - private static XMLReader loadClass (ClassLoader loader, String className) - throws SAXException - { - try { - return (XMLReader) NewInstance.newInstance (loader, className); - } catch (ClassNotFoundException e1) { - throw new SAXException("SAX2 driver class " + className + - " not found", e1); - } catch (IllegalAccessException e2) { - throw new SAXException("SAX2 driver class " + className + - " found but cannot be loaded", e2); - } catch (InstantiationException e3) { - throw new SAXException("SAX2 driver class " + className + - " loaded but cannot be instantiated (no empty public constructor?)", - e3); - } catch (ClassCastException e4) { - throw new SAXException("SAX2 driver class " + className + - " does not implement XMLReader", e4); - } - } -} diff --git a/external/jaxp/source/org/xml/sax/helpers/package.html b/external/jaxp/source/org/xml/sax/helpers/package.html deleted file mode 100755 index 3eecb08f7..000000000 --- a/external/jaxp/source/org/xml/sax/helpers/package.html +++ /dev/null @@ -1,11 +0,0 @@ -<HTML><HEAD> -<!-- $Id: package.html,v 1.2 2004-05-01 16:18:52 mark Exp $ --> -</HEAD><BODY> - -<p>This package contains "helper" classes, including -support for bootstrapping SAX-based applications. - -<p>See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> -for more information about SAX.</p> - -</BODY></HTML> diff --git a/external/jaxp/source/org/xml/sax/package.html b/external/jaxp/source/org/xml/sax/package.html deleted file mode 100755 index e87676622..000000000 --- a/external/jaxp/source/org/xml/sax/package.html +++ /dev/null @@ -1,229 +0,0 @@ -<html><head> -<!-- $Id: package.html,v 1.2 2004-05-01 16:18:52 mark Exp $ --> -</head><body> - -<p> This package provides the core SAX APIs. -Some SAX1 APIs are deprecated to encourage integration of -namespace-awareness into designs of new applications -and into maintainance of existing infrastructure. </p> - -<p>See <a href='http://www.saxproject.org'>http://www.saxproject.org</a> -for more information about SAX.</p> - - -<h2> SAX2 Standard Feature Flags </h2> - -<p> One of the essential characteristics of SAX2 is that it added -feature flags which can be used to examine and perhaps modify -parser modes, in particular modes such as validation. -Since features are identified by (absolute) URIs, anyone -can define such features. -Currently defined standard feature URIs have the prefix -<code>http://xml.org/sax/features/</code> before an identifier such as -<code>validation</code>. Turn features on or off using -<em>setFeature</em>. Those standard identifiers are: </p> - - -<table border="1" cellpadding="3" cellspacing="0" width="100%"> - <tr align="center" bgcolor="#ccccff"> - <th>Feature ID</th> - <th>Default</th> - <th>Description</th> - </tr> - - <tr> - <td>external-general-entities</td> - <td><em>unspecified</em></td> - <td> Reports whether this parser processes external - general entities; always true if validating</td> - </tr> - - <tr> - <td>external-parameter-entities</td> - <td><em>unspecified</em></td> - <td> Reports whether this parser processes external - parameter entities; always true if validating</td> - </tr> - - <tr> - <td>is-standalone</td> - <td><em>none</em></td> - <td> May be examined only during a parse, after the - <em>startDocument()</em> callback has been made; read-only. - The value is true if the document specified the - "standalone" flag in its XML declaration, - and otherwise is false. </td> - </tr> - - <tr> - <td>lexical-handler/parameter-entities</td> - <td><em>unspecified</em></td> - <td> true indicates that the LexicalHandler will report the - beginning and end of parameter entities - </td> - </tr> - - <tr> - <td>namespaces</td> - <td>true</td> - <td> true indicates namespace URIs and unprefixed local names - for element and attribute names will be available </td> - </tr> - - <tr> - <td>namespace-prefixes</td> - <td>false</td> - <td> true indicates XML 1.0 names (with prefixes) and attributes - (including <em>xmlns*</em> attributes) will be available </td> - </tr> - - <tr> - <td>resolve-dtd-uris</td> - <td><em>true</em></td> - <td> A value of "true" indicates that system IDs in declarations will - be absolutized (relative to their base URIs) before reporting. - (That is the default behavior for all SAX2 XML parsers.) - A value of "false" indicates those IDs will not be absolutized; - parsers will provide the base URI from - <em>Locator.getSystemId()</em>. - This applies to system IDs passed in <ul> - <li><em>DTDHandler.notationDecl()</em>, - <li><em>DTDHandler.unparsedEntityDecl()</em>, and - <li><em>DeclHandler.externalEntityDecl()</em>. - </ul> - It does not apply to <em>EntityResolver.resolveEntity()</em>, - which is not used to report declarations, or to - <em>LexicalHandler.startDTD()</em>, which already provides - the non-absolutized URI. - </td> - </tr> - - <tr> - <td>string-interning</td> - <td><em>unspecified</em></td> - <td> true if all XML names (for elements, prefixes, attributes, - entities, notations, and local names), - as well as Namespace URIs, will have been interned - using <em>java.lang.String.intern</em>. This supports fast - testing of equality/inequality against string constants.</td> - </tr> - - <tr> - <td>use-attributes2</td> - <td><em>unspecified</em></td> - <td> Returns true if the <em>Attributes</em> objects passed by - this parser in <em>ContentHandler.startElement()</em> - implement the <a href="ext/Attributes2.html" - ><em>org.xml.sax.ext.Attributes2</em></a> interface. - That interface exposes additional information, - such as whether the attribute was specified in the - source text rather than defaulted. - </td> - </tr> - - <tr> - <td>use-locator2</td> - <td><em>unspecified</em></td> - <td> Returns true if the <em>Locator</em> objects passed by - this parser in <em>ContentHandler.setDocumentLocator()</em> - implement the <a href="ext/Locator2.html" - ><em>org.xml.sax.ext.Locator2</em></a> interface. - That interface exposes additional entity information, - such as the character encoding and XML version used. - </td> - </tr> - - <tr> - <td>use-entity-resolver2</td> - <td><em>true</em> (when recognized)</td> - <td> Returns true if, when <em>setEntityResolver</em> is given - an object implementing the <a href="ext/EntityResolver2.html" - ><em>org.xml.sax.ext.EntityResolver2</em></a> interface, - those new methods will be used. - Returns false to indicate that those methods will not be used. - </td> - </tr> - - <tr> - <td>validation</td> - <td><em>unspecified</em></td> - <td> controls whether the parser is reporting all validity - errors; if true, all external entities will be read. </td> - </tr> - -</table> - -<p> Support for the default values of the -<em>namespaces</em> and <em>namespace-prefixes</em> -properties is required. -</p> - -<p> For default values not specified by SAX2, -each XMLReader implementation specifies its default, -or may choose not to expose the feature flag. -Unless otherwise specified here, -implementations may support changing current values -of these standard feature flags, but not while parsing. -</p> - -<h2> SAX2 Standard Handler and Property IDs </h2> - -<p> For parser interface characteristics that are described -as objects, a separate namespace is defined. The -objects in this namespace are again identified by URI, and -the standard property URIs have the prefix -<code>http://xml.org/sax/properties/</code> before an identifier such as -<code>lexical-handler</code> or -<code>dom-node</code>. Manage those properties using -<em>setProperty()</em>. Those identifiers are: </p> - -<table border="1" cellpadding="3" cellspacing="0" width="100%"> - <tr align="center" bgcolor="#ccccff"> - <th>Property ID</th> - <th>Description</th> - </tr> - - <tr> - <td>declaration-handler</td> - <td> Used to see most DTD declarations except those treated - as lexical ("document element name is ...") or which are - mandatory for all SAX parsers (<em>DTDHandler</em>). - The Object must implement <a href="ext/DeclHandler.html" - ><em>org.xml.sax.ext.DeclHandler</em></a>. - </td> - </tr> - - <tr> - <td>dom-node</td> - <td> For "DOM Walker" style parsers, which ignore their - <em>parser.parse()</em> parameters, this is used to - specify the DOM (sub)tree being walked by the parser. - The Object must implement the - <em>org.w3c.dom.Node</em> interface. - </td> - </tr> - - <tr> - <td>lexical-handler</td> - <td> Used to see some syntax events that are essential in some - applications: comments, CDATA delimeters, selected general - entity inclusions, and the start and end of the DTD - (and declaration of document element name). - The Object must implement <a href="ext/LexicalHandler.html" - ><em>org.xml.sax.ext.LexicalHandler</em></a>. - </td> - </tr> - - <tr> - <td>xml-string</td> - <td> Readable only during a parser callback, this exposes a <b>TBS</b> - chunk of characters responsible for the current event. </td> - </tr> - -</table> - -<p> All of these standard properties are optional; -XMLReader implementations need not support them. -</p> - -</body></html> diff --git a/external/jaxp/tests/dom/NodeType.java b/external/jaxp/tests/dom/NodeType.java deleted file mode 100644 index 7dac3b7d3..000000000 --- a/external/jaxp/tests/dom/NodeType.java +++ /dev/null @@ -1,73 +0,0 @@ -package tests.dom; - - -import org.w3c.dom.*; -import javax.xml.parsers.*; -import java.io.*; - -/** - * NodeType DOM test. - * Test that the values of Dom nodes are correct. - * - * - * @author <a href="mailto:arnaud.vandyck@ulg.ac.be">Arnaud Vandyck</a> - * @created Thu Oct 10 21:44:07 2002 - * @version - */ -public class NodeType -{ - - public static String[] NODETYPE = - { - "Unknow Node", "ELEMENT_NODE", "ATTRIBUTE_NODE", "TEXT_NODE", - "CDATA_SECTION_NODE", "ENTITY_REFERENCE_NODE", "ENTITY_NODE", - "PROCESSING_INSTRUCTION_NODE", "COMMENT_NODE", "DOCUMENT_NODE", - "DOCUMENT_TYPE_NODE", "DOCUMENT_FRAGMENT_NODE", "NOTATION_NODE" - }; - - public NodeType () - { - } - - public static void main(String[] args) - { - try - { - System.out.println( "Starting processing..." ); - - DocumentBuilder domManager = DocumentBuilderFactory.newInstance().newDocumentBuilder(); - - FileInputStream fis = new FileInputStream("tests/dom/nodetype.xml"); - Document d = domManager.parse( fis ); - System.out.println( "File has been passed to the processor..." ); - - Element root = d.getDocumentElement(); - System.out.println( "Root tag name: " + root.getTagName() ); - - printChildNodes( root.getChildNodes() ); - } - catch (Exception e1) - { - e1.printStackTrace(); - } - } - - static private void printChildNodes( NodeList list ) - { - int l = list.getLength(); - for (int i=0; i<l; i++) - { - Node node = list.item( i ); - printNode( node ); - printChildNodes( node.getChildNodes() ); - } - } - - static private void printNode( Node node ) - { - System.out.println( node.getNodeName() - + " [" + NODETYPE[node.getNodeType()] + "]: " - + node.getNodeValue() ); - } - -} diff --git a/external/jaxp/tests/dom/nodetype.xml b/external/jaxp/tests/dom/nodetype.xml deleted file mode 100644 index 333030d8a..000000000 --- a/external/jaxp/tests/dom/nodetype.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1" standalone="no" ?> -<?xml-stylesheet type="text/xsl" href="sdocbook.xsl"?> -<!DOCTYPE article SYSTEM "file:///usr/share/sgml/docbook/dtd/xml/4.2/docbookx.dtd" -[ -<!NOTATION wmf SYSTEM "wmf" > -<!ENTITY g001 SYSTEM "images/example_001.wmf" NDATA wmf > - -<!ENTITY yo "Yooooooo"> -<!ENTITY yo2 "&yo;"> -]> - -<article> - <articleinfo> - <title>Titre de test</title> - <author> - <firstname>Arnaud</firstname> - <surname>Vandyck</surname> - </author> - </articleinfo> - <section> - <title>Test</title> - <para>Entite yo: &yo;</para> - <para>Entite yo2: &yo2;</para> - <para>Entite EURO: €</para> - </section> -</article>
\ No newline at end of file |