| 
 
Oracle XML Parser 2.0.4.0.0 (C++)   | 
 
First production v2 release. Changes are mainly bug fixes.
 
For XML parser, the following bugs were fixed: 
 
- 1352943   XMLPARSE() SOMETIMES CHOKES ON FILENAMES 
  - 1302311   PROBLEM WITH PARAMETER ENTITY PROCESSING 
  - 1323674    INCONSISTENT ERROR HANDLING IN THE C XML PARSER 
  - 1328871    LPXPRINTBUFFER UNCONDITIONALLY PREPENDS XML COMMENT TO OUTPUT 
  - 1349962    USING FREED MEMORY LOCATION CAUSES TLPXVNSA31.DIF oraxmldom.h was renamed to oradom.h 
     | 
| 
 
   | 
 
For the XSLT processor, the following bugs were fixed: 
 
- 1225546   USELESS ERROR MESSAGE NEEDS DETAIL 
  - 1267616  TLPXST14.DIF: REPLACE DBL_MAX WITH SBIG_ORAMAXVAL IN LPXXP.C:LPXXPSUBSTRING() 
  - 1289228  ERROR CONTEXT REQUIRED FOR DEBUGGING: FILE NAME, LINE#, FUNCTION, ETC 
     | 
| 
 
   | 
- 1289214    XSL:CHOOSE DOESN'T WORK 
  - 1298028    XPATH CONSTRUCT NOT(POSITION()=LAST()) NOT WORKING 
  - 1298193    XPATH FUNCTIONS DON'T PROVIDE IMPLICIT TYPE CONVERSION OF PARAMS 
  - 1323665    C XML PARSER CANNOT SET BASE DIRECTORY OR URI FOR STYLESHEET PARSING 
  - 1325452    SEVERE MEMORY CONSUMPTION / LEAK IN XSLPROCESS 
  - 1333693    CHAINED TRANSFORMS WITH C XSL PROCESSOR DON'T WORK: LPX-00002 
     | 
| 
 
Oracle XML Parser 2.0.3.0.0 (C++)   | 
 
SAX memory usage: Smaller, and flat for any input size and multiple parses (memory leaks plugged). 
 
XSLT memory usage: Improved. 
 
Validation warnings: Validity Constraint (VC) errors have been changed to warnings and do not terminate parsing. For compatibilty with the old behavior (halt on warnings as well as errors), a new flag XML_FLAG_STOP_ON_WARNING (or '-W' to the xml program) has been added. 
 
Performance improvements: Switch to finite automata VC structure validation yields 10% performance gain.
 
HTTP support: HTTP URIs are now supported; look for FTP in the next release. For other access methods, the user may define their own callbacks with the new xmlaccess() API.    | 
| 
 
Oracle XML Parser 2.0.2.0.0 (C++)   | 
 
XSLT improvements: Various bugs fixed in the XSLT processor; error messages are improved; xsl:number, xsl:sort, xsl:namespace-alias, xsl:decimal-format, forwards-compatible processing with xsl:version, and literal result element as stylesheet are now available; the following XSLT-specific additions to the core XPath library are now available: current(), format-number(), generate-id(), and system-property(). 
 
XML parser bug fixes: Some problems with validation and matching of start and end tags with SAX were fixed. Also, a bug with parameter entity processing in external entities was fixed.    | 
| 
 
Oracle XML Parser 2.0.1.0.0 (C++)   | 
 
Performance improvements: Major performance improvement over the last, about two and a half times faster for UTF-8 parsing and about four times faster for ASCII parsing. Comparison timing against previous version for parsing (DOM) and validating various standalone files (SPARC Ultra 1 CPU time): 
 
File size   Old UTF-8    New UTF-8    Speedup    Old ASCII   New  ASCII   Speedup
 
42K         180ms            70ms            2.6             120ms           40ms           3.0
 
134K        510ms          210ms            2.4             450ms         100ms           4.5
 
247K        980ms          400ms            2.5             690ms         180ms           3.8
 
1M          2860ms        1130ms            2.5           1820ms         380ms           4.8
 
2.7M      10550ms        4100ms            2.6           7450ms       1930ms           3.9
 
10.5M     42250ms      16400ms            2.6         29900ms       7800ms           3.8 
 
Conformance improvements: Stricter conformance to the XML 1.0 spec yields higher scores on standard test suites (Jim Clark, Oasis, etc).     | 
| 
 
   | 
 
Lists, not arrays: Internal parser data structures are now uniformly lists; arrays have been dropped. Therefore, access is now better suited to a firstChild/nextSibling style loop instead of numChildNodes/getChildNode. DTD parsing:A new API call xmlparsedtd() is added which parses an external DTD directly, without needing an enclosing document. Used mainly by the Class Generator.    | 
| 
 
   | 
 
Error reporting: Error messages are improved and more specific, with nearly twice as many as before. Error location is now described by a stack of line number/entity pairs, showing the final location of the error and intermediate inclusions (e.g. line X of file, line Y of entity). 
 
NOTE: You must use the new error message file (lpxus.msb) provided with this release; the error message file provided with earlier releases is incompatible. See below. 
 
XSL improvements: Various bugs fixed in the XSLT processor; xsl:call-template is now fully supported.    | 
| 
 
Oracle XML Parser 2.0.1.0.0 (C++)   | 
 
Performance improvements: Major performance improvement over the last, about two and a half times faster for UTF-8 parsing and about four times faster for ASCII parsing. Comparison timing against previous version for parsing (DOM) and validating various standalone files (SPARC Ultra 1 CPU time):File sizeOld UTF-8New UTF-8SpeedupOld ASCIINew ASCIISpeedup42K180ms70ms2.6120ms40ms3.0134K510ms210ms2.4450ms100ms4.5247K980ms400ms2.5690ms180ms3.81M2860ms1130ms2.51820ms380ms4.82.7M10550ms4100ms2.67450ms1930ms3.910.5M42250ms16400ms2.629900ms7800ms3.8   | 
| 
 
   | 
 
Conformance improvements: Stricter conformance to the XML 1.0 spec yields higher scores on standard test suites (Jim Clark, Oasis, etc). 
 
Lists, not arrays: Internal parser data structures are now uniformly lists; arrays have been dropped. Therefore, access is now better suited to a firstChild/nextSibling style loop instead of numChildNodes/item.    | 
| 
 
   | 
 
DTD parsing:A new method XMLParser::xmlparseDTD() is added which parses an external DTD directly, without needing an enclosing document. Used mainly by the Class Generator.    | 
| 
 
   | 
 
Error reporting: Error messages are improved and more specific, with nearly twice as many as before. Error location is now described by a stack of line number/entity pairs, showing the final location of the error and intermediate inclusions (e.g. line X of file, line Y of entity).    | 
| 
 
   | 
 
NOTE: Use the new error message file (lpxus.msb) provided with this release; the error message file provided with earlier releases is incompatible. See below. 
 
XSL improvements: Various bugs fixed in the XSLT processor; xsl:call-template is now fully supported.    | 
| 
 
Oracle XML Parser 2.0.0.0.0 (C++)   | 
 
The Oracle XML v2 parser is a beta release and is written in C, with a C++ wrapper. The main difference from the Oracle XML v1 parser is the ability to format the XML document according to a stylesheet via an integrated an XSLT processor. The XML parser will check if an XML document is well-formed, and optionally validate it against a DTD. The parser will construct an object tree which can be accessed via a DOM interface or operate serially via a SAX interface.    |