Oracle XML Parser 2.0.2.9.0
---------------------------

July 11, 2000

Changes:

New API in DOMParser class:

- reset() : Reset the internal DOM data structures.

  New API in XMLDocument class:

- print(PrintDriver): Customization of the print functionality

  New Interface

- PrintDriver : Interface for customizing print
- XMLPrintDriver class : Default implementation of PrintDriver.

  Bug Fixes:

- Bug #1327645 NullPointerException using current()
- Bug #1322251 value of xsl top-level param changed as side-effect of if-test
- Bug #1317768 java.lang.ClassCastException from xml/xsl parser
- Bug #1314594 two keys in same stylesheet dont work, one key ok
- Bug #1313397 duplicate attribute defintions in dtd attlist not tolerated.
- Bug #1312894 exception on attr with two or more avt's and value longer than expression
- Bug #1311563 XML parser needs to provide api to clean up internal datastructures
- Bug #1293126 ENH REQ: Provide formatting options for print() method on XMLNode
- Bug #1292910 XMLNode.print() incorrectly escape characters in CDATA section
- Bug #1189707 XSLT: potential performance improvements
- Bug #1056165 Deserializing dom tree causes tag names not to be interned

  Oracle XML Parser 2.0.2.8.0
  ---------------------------

  May 18, 2000

  Changes:
  New builtin extension element-

- ora:output - where xmlns:ora="http://www.oracle.com/XSL/Transform/java".
  This element can be used a top-level element similar to xsl:output (can have all attribute allowed in xsl:output, and has similar functionality). It has an additional attribute 'name' used an an identifier. When ora:output is used in a template, it can have only two attribute 'use' and 'href'. 'use' attribute specifies the top-level ora:output to be used, and 'href' gives the output URL.
  New builtin extension function-
- ora:node-set - where xmlns:ora="http://www.oracle.com/XSL/Transform/java".
  ora:node-set function converts a result tree fragment into a node-set.

  Bug fixes:

- Bug# 1295864: Namespace qualified name not allowed in dtd parameter entity
- Bug# 1278648: Nullpointerexception if missing name attribute
- Bug# 1277644: Numberformatexception using selectnodes with sum()
- Bug# 1272137: Nist java dom conformance test: nullpointerexception calling substringdata()
- Bug# 1272120: Selectnodes on a document fragment result of a transformation does not work
- Bug# 1271143: Nullpointerexception for missing variable after warning.
- Bug# 1265045: Don't merge multiple xsl:output
- Bug# 1264391: XMLDOMException doing xmlnode.valueof(".") on an attribute node
- Bug# 1263988: XSL-1046 doing xsl:apply-imports from a named template
- Bug# 1255863: Document('') gives stringindexoutofbounds exception
- Bug# 1250927: XML parser fails to identify ebcdic input file.
- Bug# 1250366: Need support for cp1047 encoding in xmlreader.java
- Bug# 1250337: Xml parser tests fail with utf8 exceptions
- Bug# 1248540: Parser fails to parse dtds containing ( #pcdata )
- Bug# 1242099: Relative url handled incorrectly when parsing an inputstream (w/baseurl set)
- Bug# 1241009: System-property('xsl:version') is supposed to be number, not string
- Bug# 1223503: Non-breaking space displays as a-with-carat in html; encoding mismatches
- Bug# 1223486: XML decl output for method="html" done using oraxsl
- Bug# 1189597: xmlnode.selectnodes isn't threadsafe
- Bug# 1188882: not implemented as per xslt spec
- Bug# 1186370: XSLT: import precedence rules are incorrect
- Bug# 1186358: XSLT: error when using xsl:message inside xsl:attribute
- Bug# 1186317: XSLT: xsl:imports that aren't first children should cause error
- Bug# 1140801: Can't match comments before doc element or at end of file
- Bug# 1065368: ((XMLNODE)doc).selectnodes("/") returns a nodelist with an element named "ROOT"

  Oracle XML Parser 2.0.2.7.0
  ---------------------------

  March 1, 2000

  Changes:

- New command line interface to parse XML documents has been added to bin directory. (See bin/readme.html for details)
- Debugging support has been added to XSLT processing. The errors/warnings include the system identifier, line number, and column number in debug mode. You can either use DOMParser.setDebugMode(boolean) or use Java system property 'oracle.xml.parser.debugmode' to set the debug mode.

  New API in DOMParser class:

- setDebugMode(boolean flag)

  New API in XMLDocument class:

- setDoctype(String rootname, String sysid, String pubid) - Adds DOCTYPE declaration to the XML Dcoument.

  Bug fixes:

- Bug #1212480: XSL Errors reported as MissingResourceException with certain Java VMs
- Bug #1156743: Infinite loop parsing document with 'enews.dtd' dtd
- Bug #1154528: Improved error messages
- Bug #1146274: Text comes out before XML decl in output
- Bug #1143969: XSL-1029: Cannot transform child '#comment' in xsl:call-template
- Bug #1143567: No line numbers in error messages
- Bug #1138336: Unexplainable new line in transformed output
- Bug #1138014: QNames fail in test expressions
- Bug #1137444: xsl:decimal-format not recognized
- Bug #1136224: Null Pointer Exception if xsl:comment has element children
- Bug #1133322: ArrayOutOfBounds exception if quote missing from xmldecl version attribute
- Bug #1130324: xsl:html output method shouldn't set default encoding if node specified
- Bug #1115222: Getting Java exception when xsl substring function is used
- Bug #1115079: HTML empty elements can't use empty xml syntax
- Bug #1087409: Need a simple way to set DOCTYPE uri on an XMLDocument
- Bug #1086661: xsl:version attribute now required on literal result element
- Bug #1053836: File names and line #s of error would ease debugging

  This is the seventh production patch release for v2.

  Oracle XML Parser 2.0.2.6.0
  ---------------------------

  December 07, 1999

  Changes:

- Conformance to the XSLT/XPATH October REC.

New API in XSLStylesheet class:

- removeParam(String param)
- resetParams()

  Bug fixes:

- Bug #1111423: OutOfMemory exception, if multiple calls made to document()
- Bug #1101028: Unexpected character error in DTD parsing document using Docbook DTD
- Bug #1101021: #default not supported in exclude-result-prefixes
- Bug #1099830: Extra characters inserted into output using the XML Parser
- Bug #1099663: HTML output does not allow *only* doctype-public to be specified
- Bug #1099536: HTML output does not disable escaping for script, style unless lowercase
- Bug #1098738: ArrayOutOfBoundsException xsl:if test="not(@a)'"
- Bug #1095047: XSLProcessor NPE'S on named templates with non-empty namespaces
- Bug #1094971: XSLStylesheet needs methods for removing parameters
- Bug #1092351: Using valueof() shuffles order of elements in my source document
- Bug #1086663: xsl:sort data-type attribute can now be a namespace-prefixed name
- Bug #1064692: Default xml-serialization should use empty-element syntax
- Bug #1064689: Current() function doesn't work correctly

  This is the sixth production patch release for v2.

  Oracle XML Parser 2.0.2.5.0
  ---------------------------

  November 16, 1999

  Changes:

- Conformance to the XSLT/XPATH October PR.
- Support for internationalized error messages has been added. The locale can be set using setLocale(java.util.Locale) function in XSLProcessor, SAXParser, and DOMParser. The following locales are supported:

  Country | Language | Country Code | Language Code
  --- | --- | --- | ---
  ARGENTINA | SPANISH | AR | es
  BRAZIL | BRAZILIAN PORTUGUESE | BR | pt
  CHINA | CHINESE | CN | zh
  CZECH REPUBLIC | CZECH | CZ | cs
  DENMARK | DANISH | DK | da
  FINLAND | FINNISH | FI | fi
  FRANCE | FRENCH | FR | fr
  GERMANY | GERMAN | DE | de
  GREECE | GREEK | GR | el
  HUNGARY | HUNGARIAN | HU | hu
  ISRAEL | HEBREW | IL | iw
  ITALY | ITALIAN | IT | it
  JAPAN | JAPANESE | JP | ja
  KOREA | KOREAN | KR | ko
  NORWAY | NORWEGIAN | NO | no
  POLAND | POLISH | PL | pl
  PORTUGAL | PORTUGUESE | PT | pt
  ROMANIA | ROMANIAN | RO | ro
  RUSSIA | RUSSIAN | RU | ru
  SLOVAKIA | SLOVAK | SK | sk
  SPAIN | CATALAN | ES | ca
  SPAIN | SPANISH | ES | es
  SWEDEN | SWEDISH | SE | sv
  TAIWAN | CHINESE | TW | zh
  THE NETHERLANDS | DUTCH | NL | nl
  TURKEY | TURKISH | TR | tr
  UNITED ARAB EMIRATES | ARABIC | AE | ar
  UNITED STATES | ENGLISH | US | en

  New APIs in XMLNode class:

- value-of(String pattern)
- selectNodes(String pattern)
- selectSingleNode(String pattern)
- selectSingleNode(String pattern, NSResolver ns)

  New API in XSLStylesheet class

- setParam(String param, String value)

  Bug fixes:

- Bug #957465: Missing a way to set stylesheet-level param-variables
- Bug #962290: selectNodes() improvements
- Bug #1033472: Html output prints empty elements for non-empty elements
- Bug #1040717: Character entity for greater that in html output style
- Bug #1046003: Bug is parsing text nodes larger than 16K
- Bug #1051671: 'xsl:namespace-alias' not supported
- Bug #1052387: Disable-output-escaping doesn't flush while printing
- Bug #1053273: 'xsl:message' terminate attribute not supported
- Bug #1058004: No access to media-type and encoding on xsl:output
- Bug #1058008: xsl:version attribute not copied to result
- Bug #1061159: Exclude-result-prefixes not supported
- Bug #1067965: Bug in Non-validating parser while reading QNames in DTD

  This is the fifth production patch release for v2.

  Oracle XML Parser 2.0.2.4.0
  ---------------------------

  October 11, 1999

  Changes:

  XSL URI constant is now: http://www.w3.org/1999/XSL/Transform

  Extension functions namespace has changed from http://www.oracle.com/oracle.xml.parser/xsl/java/classname to http://www.oracle.com/XSL/Transform/java/classname.

  Bug fixes:

- Bug #998696: xsl:apply-imports is now recognized
- Bug #1026072: Fixed a bug in function-available

  This is the fourth production patch release for v2.

  Oracle XML Parser 2.0.2.3.0
  ---------------------------

  October 7, 1999

  Changes:

  Extension functions support was added, that allows users of the XSL processor to call any Java method from XSL expressions. Please refer to extfunc.html for more details on Extension functions.

- Bug fixes: Minor bug fixes in print methods.

  This is the third production patch release for v2.

  Oracle XML Parser 2.0.2.2.0
  ---------------------------

  September 29, 1999

  Changes:

  New API in XSLProcessor class to support `xsl:output` element :

- processXSL(XSLStylesheet xsl, XMLDocument xml, OutputStream out)
- processXSL(XSLStylesheet xsl, XMLDocument xml, PrintWriter pw)
- processXSL(XSLStylesheet xsl, XMLDocumentFragment xml, OutputStream out)
- processXSL(XSLStylesheet xsl, XMLDocumentFragment xml, PrintWriter pw)

  Bug fixes:

- Bug #1006749: ArrayIndexOutOfBoundsException at XMLBytereader.getColumnNumber.
- Bug #1005654: DTD comments end up in parsed document that refers to DTD?
- Bug #1002535: Superfluous element produces with on root merging xml documents using the xslt.
- Bug #1001054: document() function not working as expected.
- Bug #998885: xsl:output method = "html" not supported
- Bug #992102: ArrayOutOfBoundException oracle.xml.parser.v2.XMLReader.skipWhiteSpace

  This is the second production patch release for v2.

  Oracle XML Parser 2.0.2.1.0
  ---------------------------

  September 20, 1999

  Changes:

- Bug#992758: Fix in invalid character detection.
- Bug#995394: Fix in forward referencing of IDs.
- Bug fix in XPath Boolean and Number expression parsing.
- Bug fix in XSL:Number with empty count attribute.

  This is the first production patch release for v2.

  Oracle XML Parser 2.0.2.0.0
  ---------------------------

  September 9, 1999

  Changes:

  Conformance to the XSLT/XPATH August WD.

  Note that there are several changes between April99 XSLT draft and the August99 XSLT/Xpath draft and these changes have been implemented in the XSL Processor. The XSL Processor has been modified to accept XPath syntax for expressions and patterns. Stylesheets might have to be modified to be conformant to the August XSLT/XPath draft before they can be used with this release.

  Some of the changes between April draft and the August draft are:

- Expressions in the stylesheet must match the XPath production Expr.
- Some of the attribute names and element names in XSL namespace have changed.
- Some new functions have been added to XPath CORE function library.

  Please refer to the August XSLT/XPath draft for more details.

  This is the first production release for v2.

  Oracle XML Parser 2.0.1.0.0
  ---------------------------

  August 27, 1999

  Changes:

  Note the command line version of 'oraxsl' which can be used in scripts and can specify multiple # of threads has been added to the bin directory.

  Note that the 'xmlparser.jar' file name has been changed to 'xmlparserv2.jar' to allow co-existence with v1 Java XML parser.

  Bug fixes for #972862, i.e., DOM exception when the DTD is cached rather than loaded everytime for multiple files; #968640, i.e., support for character set encoding names that are non-IANA; #929682, i.e., a command-line version of XSLT is now bundled (see the bin directory); #978320, i.e., error adding nodes to a cloned document using CloneNode() method; for problems with attribute validation/setDTD/parseDTD.

  Improved Lexer. With JDK 1.6, the parser seems to have better performance overall because of changes in the lexical analyzer.

  New Interface: XMLToken. Applications can register an interface handle and the interface callback method 'token()' receives XML tokens registered and found by the parser. XML tokens are defined as interface constants. They are: `
  STagName,
  EmptyElemTag,
  STag,
  ETag,
  ETagName,
  Attribute,
  AttName,
  AttValue,
  Reference,
  Comment,
  CharData,
  CDSect,
  PI,
  PITarge,
  XMLDecl,
  TextDecl,
  DTDName,
  AttListDecl,
  elementdecl,
  ElemDeclName,
  EntityDecl,
  EntityDeclName,
  EntityValue,
  NotationDecl,
  ExternalID.`
  The tokens above correspond to the syntax variables from W3C XML specifications.

  New API in the following Classes:
  1. oracle.xml.parser.
  -setTokenHandler (XMLToken handler). Sets XMLtoken interface handler.
  -setToken (int token, boolean val). Registers on/off XML token.

  Oracle XML Parser 2.0.0.2.0
  ---------------------------

  August 18, 1999

  Changes:

  Bug fixes for #929678, i.e., problem with pattern matching on xmlns and xml namespaces; #929318, i.e., problem using xsl:import and xsl:include; #920770, i.e., validation of unparsed entities and entity attributes; and miscellaneous bugs fixes to handle encodings.

  This is the second beta patch release for v2.

  Oracle XML Parser 2.0.0.1.0
  ---------------------------

  July 2, 1999

  Changes:

  Bug fixes for #920536, i.e. Cannot access element attributes via XSLT; #898423. i.e. ElementDecl's in DTDs; #774774, i.e. DOM extensions using XSL pattern matching; #863890 i.e. SAX IOException not thrown.

  API in the following new interface:

  1. oracle.xml.parser.v2.NSResolver
    - resolveNamespacePrefix( find the namespace definition in scope for a given namespace prefix )

  New APIs in the following classes:

  1. oracle.xml.parser.v2.XMLNode
    - selectNodes( Selects nodes from the tree which match the given pattern; client can provide an NSResolver implementation to resolve namespace prefixes in the pattern ).
  2. oracle.xml.parser.v2.ElementDecl
    - getParseTree( Returns the root Node of Content Model parse tree, which could then be traversed node by node using getFirstChild() and getLastChild(). The Node types are: PLUS, COMMA, ASTERISK, ELEMENT, QMARK ).

  This is the first beta patch release for v2.

  Oracle XML Parser 2.0.0.0.0
  ---------------------------

  The Oracle XML v2 parser is an early beta release and is written in Java. It features an improved architecture over the Oracle XML V1 parser and has shown better performance on small to large XML documents. It will also be able to format the XML document according to a stylesheet, having integrated an XSLT processor.

  NOTE: Several of the package names and error messages are different than in the v1 of the parser. See below and v2changes.txt and the .diff difference files in the sample directory.

  Version 2 of the XML Parser for Java, besides incorporating an XSLT processor, has been re-architected from version 1. This has resulted in a number of changes to the class names especially those that support Namespaces. The following is a summary of the changes developers will have to take into account when converting their code from v1 to v2.

  NOTE: This summary is based upon XML Parser versions v1.0.1.4 as v1 and v2.0.0.0 as v2.

  NEW CLASS STRUCTURE

  The oracle.xml.parser package has been renamed to oracle.xml.parser.v2. The following are the new interfaces:

  NSName
  XMLDocumentHandler

  The following interfaces have been removed:

  NSAttr
  NSAttributeList
  NSDocumentHandler
  NSElement

  The following are the new classes in v2:

  DOMParser
  DefaultXMLDocumentHandler
  SAXAttrList
  SAXParser
  XSLProcessor
  XSLStylesheet
  XSLException

  Within this package the classes have been reorganized as follows:

  v1 | v2 | NOTES
  XMLParser | XMLParser DOMParser SAXParser | includes methods applicable to DOM and SAX access, includes methods specific to DOM access, includes methods specific to SAX access)
  NSDocumentHandler | XMLDocumentHandler |
  NSAttr, XMLAttr | XMLAttr | supports Namespace, NSAttr interface has been removed
  NSAttributeList | SAXAttrList | includes methods in NSAttributeList and org.xml.sax.AttributeList
  NSElement, XMLElement | XMLElement | supports Namespace, NSElelement interface removed

  ADDITIONAL PUBLIC CLASS/VARIABLE/CONSTRUCTOR/METHOD CHANGES

  AttrDecl

  v1 | v2 | NOTES
  getName() | eliminated | Use XMLNode.getNodeName
  getPresence() | getAttrPresence() |
  getType() | getAttrType() |
  getValues() | getEnumerationValues() |

  ElementDecl

  v1 | v2 | NOTES
  ASTERISK | na | Implemented in v2.0.1 for tokenizer feature
  COMMA | na | Implemented in v2.0.1 for tokenizer feature
  ELEMENT | na | Implemented in v2.0.1 for tokenizer feature
  OR | na | Implemented in v2.0.1 for tokenizer feature
  PLUS | na | Implemented in v2.0.1 for tokenizer feature
  QMARK | na | Implemented in v2.0.1 for tokenizer feature
  getParseTree() | na | Implemented in v2.0.1 for tokenizer feature

  XMLAttr

  v1 | v2 | NOTES
  na | XMLAttr(String, String, String, String) | new constructor
  na | cloneNode() | new method
  na | getPrefix() | new method

  XMLElement

  v1 | v2 | NOTES
  na | XMLElement(String, String, String) | new constructor
  na | checkNamespace(String, String) | new method
  na | getElementsByTagName(String, String) | new method
  na | resolveNamespacePrefix(String) | new method

  XMLNode

  v1 | v2 | NOTES
  na | transformNode() | new method

  XMLText

  v1 | v2 | NOTES
  na | getNodeValue() | new method

  The licensing agreement is found in LICENSE. The parser is currently available only for testing purposes. We expect to make the parser available for commercial use in the future.

  Please post any questions, comments, or bug reports to the XML Forum on the Oracle Technology Network at http://technet.oracle.com. At this time OTN is your only support resource.

  The parser conforms to the following standards:

  * The W3C recommendation for Extensible Markup Language (XML) 1.0 at
  http://www.w3.org/TR/1998/REC-xml-19980210.

  * The W3C recommendation for Document Object Model Level 1 1.0 at
  http://www.w3.org/TR/1998/REC-DOM-Level-1-19981001.

  * The W3C recommendation for Extensible Stylesheet Language Transformations (XSLT) Version 1.0 at
  http://www.w3.org/TR/WD-xslt.

  * The W3C proposed recommendation for Namespaces in XML at
  http://www.w3.org/TR/1998/PR-xml-names-19981117.

  * The Simple API for XML (SAX) 1.0 at http://www.megginson.com/SAX/index.html.

  The parser currently supports the following encodings: UTF-8, UTF-16, ISO-10646-UCS-2, ISO-10646-UCS-4, US-ASCII, EBCDIC-CP-US, ISO-8859-1, and Shift_SJIS. UTF-8 is the default encoding if none is specified. Any other ASCII or EBCDIC based encodings that are supported by the JDK may be used. However, they must be specified in the format required by the JDK instead of as official character set names defined by IANA. Additional encodings will be added to the list of supported encodings in future releases.

  The parser also provides error recovery. It will recover from most errors and continue processing until a fatal error is encountered.

  The following directories and files are found in the release:

  license.html - licensing agreement
  readme.html - this file
  doc/ - API documentation
  lib/ - contains the XML parser and XSL processor archive
  sample/ - contains examples of how to use the XML parser and XSL processor