| Xerces-J 2.8.0 |

This release introduces several new validation related features and provides enhancements to the XML schema annotation support. All of the schema component interfaces in the XML Schema API now have a getAnnotations() method which returns a list of XSAnnotations. This includes annotations on particles and attribute uses which were previously "lost". In addition, in this release we implemented support for pretty-printing in the LSSerializer, repaired the warn-on-undeclared-elemdef feature which had been broken for several releases and fixed many other bugs.

- Added a getAnnotations() method to each of the component interfaces in the XML Schema API (including XSParticle and XSAttributeUse) and implemented the support for the new methods. `[Neil Delima]`
- Implemented a property for starting schema assessment from a specific type definition. `[Peter McCracken]`
- Implemented features for disabling ID/IDREF, unparsed entity and identity constraint checking. `[Peter McCracken]`
- Implemented a feature which instructs the schema validator to ignore xsi:type attributes until a global element declaration has been found. `[Peter McCracken]`
- Modified the JAXP Validation API implementation so that it propagates features set on the SchemaFactory to the Schemas created from the factory and in turn ValidatorHandlers and Validators constructed from those Schema objects (as clarified by JAXP 1.4). `[Peter McCracken]`
- Implemented the DOM Level 3 Load and Save format-pretty-print parameter. `[Matej Kraus]`
- Fixed the warn-on-undeclared-elemdef feature which had been broken for many releases. `[Michael Glavassevich]`
- Implemented a feature which allows the parser to process DTDs containing large content models which under normal operation may cause a StackOverflowError to occur. `[Michael Glavassevich]`
- Improved the performance and memory usage of XSAnnotation.writeAnnotation(). `[Michael Glavassevich]`
- Implemented XML Schema erratum E2-66. `[Sandy Gao]`
- Fixed bugs in the implementation of Document.normalizeDocument() which caused DTD validation to fail in numerous scenarios. `[Michael Glavassevich]`
- Fixed a bug where schema validation performed in Document.normalizeDocument() was adding default attributes without setting their owner element or firing mutation events. `[Michael Glavassevich]`
- Fixed a bug which caused the JAXP 1.2 method for schema validation to fail when the parser is reused. `[Michael Glavassevich]`
- Fixed a bug which caused a ClassCastException to be thrown when adopting a node from a deferred DOM into a non-deferred DOM. `[Michael Glavassevich]`
- Fixed the dtdjars build target which had been broken for several releases. `[Michael Glavassevich]`
- Improved identity constraint error messages. `[George Cristian Bina]`
- Fixed various bugs and made various improvements. `[Nathan Beyer, Dave Brosius, Sandy Gao, Michael Glavassevich, Matej Kraus, Peter McCracken]`

| Xerces-J 2.7.1 |

This release fixes one XInclude bug and several schema related bugs which were present in Xerces-J 2.7.0.

- Fixed an inconsistency in the validation behaviour of the parser when XInclude processing is enabled and the validation and schema validation features are also enabled. `[Michael Glavassevich]`
- Fixed a bug where in a DOM Level 3 context with schema validation enabled, not all schema constraints (such as unique particle attribution) were being checked. `[Michael Glavassevich]`
- Fixed bugs which allowed various invalid lexical values to be accepted by the schema validator for the following types: double, date, float, gDay, gMonthDay, gMonth and gYearMonth. `[Michael Glavassevich]`
- Fixed a schema bug where errors would be reported for comments and processing instructions which appear as the children of an element declared to have empty content. `[Michael Glavassevich]`
- Fixed a bug which caused an NPE to be thrown for a namespace declaration such as xmlns="" which appeared on an ancestor element of an <annotation>. `[Michael Glavassevich]`

| Xerces-J 2.7.0 |

This release provides a complete implementation of the parser related portions of JAXP 1.3 and also brings Xerces into compliance with SAX 2.0.2, the DOM Level 3 Core and Load/Save W3C Recommendations, the XML Inclusions (XInclude) Version 1.0 W3C Recommendation and the XML Schema 1.0 Structures and Datatypes Second Edition W3C Recommendations.

Xerces-J 2.7.0 incorporates two minor changes to the Xerces Native Interface (documented below). A new package `org.apache.xerces.xs.datatypes` has been added to Xerces' XML Schema API that provides a full schema datatype to object mapping. In addition, in this release we introduced many new parser features, improved parser performance in several areas and fixed many bugs.

- Implemented the following packages defined by JAXP 1.3: javax.xml.datatype, javax.xml.parsers and javax.xml.validation. `[Neeraj Bajaj, Neil Delima, Joseph Fialli, Michael Glavassevich, Kohsuke Kawaguchi, Ankit Pasricha, Jeff Suttor, K. Venugopal, Jack Z. Wang, Arun Yadav]`
- Defined and implemented interfaces (`org.apache.xerces.xs.datatypes`) for accessing actual values. `[Naela Nissar, Ankit Pasricha]`
- Implemented a feature that instructs the schema processor to use all schema location hints for a given target namespace when locating components. `[Ankit Pasricha]`
- Implemented partial experimental support for the first working draft of XML Schema 1.1 Structures and Datatypes. `[Naela Nissar, Ankit Pasricha]`
- Implemented features for configuring whether the XInclude processor performs base URI fixup and/or language fixup. `[Michael Glavassevich]`
- Implemented the XInclude Recommendation (December 2004). `[Neil Delima, Michael Glavassevich]`
- Fixed a bug which caused the DTD validator to be activated when using the XInclude processor with schema validation turned on. `[Michael Glavassevich]`
- Modified the XNI XMLLocator interface to include getCharacterOffset and getXMLVersion. Added a getCharacterOffset method to XMLParseException. `[Michael Glavassevich, Ankit Pasricha]`
- Made various modifications to support the reporting of character offsets in XNI and DOM. `[Ankit Pasricha]`
- Implemented SAX 2.0.2 and SAX2 Extensions 1.1. `[Michael Glavassevich]`
- Fixed SAX conformance bugs including one concerning skipped entities. `[Michael Glavassevich]`
- Implemented a feature that allows schema annotations to be validated. `[Michael Glavassevich]`
- Added support for generating synthetic annotations when a schema component has non-schema attributes but no child annotation. `[Ankit Pasricha]`
- Fixed numerous schema related bugs. `[Mike Boos, Neil Delima, Sandy Gao, Michael Glavassevich, Kohsuke Kawaguchi, Elena Litani, Ankit Pasricha]`
- Reimplemented Text.replaceWholeText and TypeInfo.isDerivedFrom according to the DOM Level 3 Core Recommendation. `[Neil Delima]`
- Fixed various DOM Level 3 bugs. `[Jonathan Au, Neil Delima, Michael Glavassevich, Naela Nissar, Ankit Pasricha, K. Venugopal]`
- Fixed numerous bugs in the DOM Level 2 Events and Traversal and Range implementation. `[Neil Delima, Naela Nissar]`
- Created two new parser configurations that support XML 1.1. `[John Kim]`
- Improved the performance of the SymbolTable, processing of attribute values and parsing of relative URIs. `[Michael Glavassevich, John Kim]`
- Added support for EntityResolver2 and LSResourceResolver to XMLCatalogResolver. `[Michael Glavassevich, John Kim]`
- Fixed a potential memory leak in the ObjectFactory classes which in some circumstances allowed input streams to never be closed. `[Michael Glavassevich]`
- Fixed a thread-safety bug concerning identity constraints which caused spurious errors about duplicate field matches to be reported. `[Michael Glavassevich]`
- Fixed various bugs. `[Dave Brosius, Michael Glavassevich, Eric Isakson]`

| Xerces-J 2.6.2 |

This release fixes several bugs which were present in Xerces-J 2.6.1. It also provides a few minor performance improvements.

- Fixed a bug in the specification of the XML Schema API. Some of the method signatures did not match the signatures in the implementation. `[Elena Litani]`
- Fixed a bug introduced in 2.6.1 which caused the XMLSerializer to automatically expand entity references and convert CDATA sections to text. `[Elena Litani]`
- Fixed a possible security hole regarding class loading. `[Neeraj Bajaj]`
- Improved class initialization for the XMLChar and XML11Char classes to reduce the cost of loading Xerces. `[Michael Glavassevich]`
- Fixed a SAX conformance bug involving spurious prefix mapping events with namespace support turned off. `[Michael Glavassevich]`
- Made message localization changes. `[Neil Delima, Michael Glavassevich]`
- Fixed schema related bugs. `[Sandy Gao]`
- Fixed various bugs. `[Curt Arnold, Michael Glavassevich, Kohsuke Kawaguchi, Naela Nissar]`

| Xerces-J 2.6.1 |

This release provides support for OASIS XML Catalogs and includes several bug fixes for XML 1.1, XML Schema and DOM Level 3 Core and Load/Save. It also contains several performance improvements and includes an update for the latest working draft of XInclude. This is the last release to support JDK 1.1.

- Added support for XML Catalogs. `[Michael Glavassevich]`
- Implemented some remaining XML Schema errata and fixed several schema related bugs. `[Sandy Gao]`
- Fixed various DOM Level 3 bugs. `[Neil Delima, Kohsuke Kawaguchi, Michael Glavassevich, Elena Litani, K. Venugopal]`
- Implemented well-formedness checking for LSSerializer (DOM Level 3). `[Elena Litani]`
- Modified the XJavac task used by the build file so that Xerces can be built on Mac OS X with Apple JDK 1.4. `[Alex Milowski]`
- Fixed possible security hole: the features and properties set on the parser were not propagated to the XMLSchemaLoader. `[Elena Litani]`
- Implemented the latest XInclude draft, excluding support for XPointer. `[Michael Glavassevich, K. Venugopal]`
- Implemented missing support for supplemental characters in XML 1.1 names. `[Michael Glavassevich]`
- Fixed a bug which caused the parser to overwrite some of the user's configuration with default values when namespace support was disabled. `[Michael Glavassevich]`
- Implemented various performance improvements. `[Michael Glavassevich]`
- Fixed various bugs. `[Michael Glavassevich, Lucian Holland, Kohsuke Kawaguchi, Elena Litani]`

| Xerces-J 2.6.0 |

This release provides an implementation of W3C DOM Level 3 Core and Load/Save Candidate Recommendations and also brings Xerces into compliance with the most recent work of the W3C XML Core working group (XML 1.1, Namespace in XML 1.1, XML 1.0 3rd edition, XInclude). In addition, in this release we improved parser performance in several areas and fixed many bugs.

- Improved the scanning of attribute lists, both small and large. `[Michael Glavassevich]`
- Reimplemented XML11Configuration (the default configuration), improving performance during reset; accomplished primarily by adding an internal feature which allows components to query whether or not they need to read features and properties from the configuration. `[Elena Litani]`
- Modified XML Schema interfaces (`org.apache.xerces.xs`) and updated the implementation accordingly. Methods were added to expose actual values and their types and new interfaces were added for loading XSModels. In addition, fixed various bugs in the implementation and `PSVIWriter` sample. `[Sandy Gao, Pete Lloyd, Elena Litani]`
- Implemented the DOM Level 3 Core and Load and Save Candidate Recommendations. `[Neil Delima, Neeraj Bajaj, Michael Glavassevich, Elena Litani, Ramesh Mandava, Gopal Sharma, K.Venugopal]`
- Added support for the 'well-formed' feature in DOM Level 3 Core. `[Neeraj Bajaj]`
- Added XML 1.1 support to DOM Level 3. `[K.Venugopal]`
- Fixed the serializer so that TAB (0x9), LF (0xA), CR (0xD), NEL (0x85) and LSEP (0x2028) are escaped where appropriate in order to allow these characters to be roundtripped. `[Neil Delima, Elena Litani]`
- Implemented experimental support for the XML 1.1 PR. This still excludes section 2.13. `[Michael Glavassevich]`
- Fixed a bug which could cause the parser to run out of memory (or other resources) while parsing documents containing many entity references. `[Michael Glavassevich]`
- Implemented missing support for Registry-based Naming Authority in the URI implementation. `[Michael Glavassevich]`
- Modified the XJavac task used by the build file so that Xerces can be built on Linux with Blackdown JDK 1.4. `[Amit Kapoor]`
- Removed static references to sun.io.CharToByteConverter which made it impossible to compile Xerces on platforms that do not have this internal class. With binaries on such platforms, the serializer was unusable with many encodings. `[Michael Glavassevich]`
- Added support for XML Base to the XInclude implementation. Fixed various bugs regarding text inclusion and relative URI resolution in the XInclude implementation. `[Michael Glavassevich, Peter McCracken, Neil Pitman]`
- Implemented errata from the XML 1.0 Second Edition Specification. `[Neil Delima, Michael Glavassevich, Glenn Marcy, Peter McCracken]`
- Moved Xerces' SAX support up to SAX 2.0.1. `[Elena Litani]`
- Fixed bugs in the XML 1.1 entity scanner that in some cases treated NEL (0x85) and LSEP (0x2028) as white space characters in internal entities, and not as end of line characters in external entities. `[Michael Glavassevich]`
- Fixed bug in HTML DOM implementation that would cause a hierarchy request error by trying to move a doctype node to be a child of the <html> element. `[Andy Clark]`
- Fixed various bugs. `[Neil Delima, Sandy Gao, Neil Graham, Michael Glavassevich, Elena Litani, Lisa Martin, Peter McCracken, Gareth Reakes, Neeraj Bajaj, K.Venugopal, Ramesh Mandava, Kohsuke Kawaguchi, Gopal Sharma]`

| Xerces-J 2.5.0 |

This release provides a partial implementation of W3C XInclude specification as well as adds annotation support for the XML Schema component API. In addition to fixing many bugs, this release also brings Xerces into compliance with the most recent work of the W3C DOM working group on DOM level 3 Core and Load/Save, and includes additional fixes related to the XML 1.1 specification.

- Fixed an ArrayIndexOutOfBoundsException in the scanner caused by some invalid character references. `[Michael Glavassevich]`
- Fixed various bugs related to XML 1.1. `[Neil Graham, Neil Delima, Michael Glavassevich]`
- Fixed various bugs in the URI implementation, and added previously missing support for IPv6 addresses. `[Michael Glavassevich]`
- Fixed performance issue for attributes with large value field. `[Thomas DeWeese]`
- Implemented the latest DOM Level 3 Core and Load and Save drafts in Last Call. `[Elena Litani, Gopal Sharma, Arun Yadav, Neeraj Bajaj]`
- Added annotation support to the XML Schema component model API implementation. Modified the PSVI API to allow exposing facets as objects. `[Neil Graham, Elena Litani]`
- Added preliminary XInclude implementation, excluding support for XPointer and XML Base specifications. `[Peter McCracken, Arun Yadav, Elena Litani]`
- Modified PSVIWriter to output all PSVI information. Changed it to output to an XNI event stream rather than a file. `[Peter McCracken, Neil Graham]`
- Modified error messages for Schema validation. `[Peter McCracken, Sandy Gao]`
- Fixed various bugs. `[Neil Delima, Neil Graham, Elena Litani, Michael Glavassevich, K. Venugopal]`

| Xerces-J 2.4.0 |

This release incorporates two minor changes to the Xerces Native Interface. In addition to fixing many bugs, this release also brings Xerces into compliance with the most recent work of the W3C DOM working group on DOM level 3 Core and Load/Save, and includes additional fixes based on the XML Schema errata. Also in this release, XML 1.1. is supported by default.

- Modified XNI XMLResourceIdentifier to include set/getNamespace. Added getEncoding method to the XNI XMLLocator interface. `[Sandy Gao, Neil Graham]`
- Fixed scanner implementation to be able to handle large CDATA sections without buffering. `[Andy Clark]`
- Made internal class loading strategy a bit more friendly in environments which need to provide classloaders to do things like manage multiple versions of Xerces. `[Igor Malinin, Neil Graham]`
- Improved robustness of build shell script under the Cygwin environment. `[J. Pietschmann, Neil Graham]`
- Fixed null pointer exception in DTDConfiguration caused when no DTD handlers are registered. `[Andy Clark]`
- Fixed various bugs related to <redefine> in XML Schema traversal. `[Khaled Noaman, Sandy Gao]`
- Fixed various bugs related to the pattern facet (regular expression) in XML Schema. `[Khaled Noaman, Sandy Gao]`
- Implemented the latest DOM Level 3 Core and Load and Save drafts. `[Elena Litani]`
- Improved performance of XML11Configuration and made it the default configuration. `[Elena Litani]`
- Added support for ordering disconnected nodes (DOM Level 3 compareDocumentPosition) `[Lisa Martin]`
- In anticipation of the DOM Level 3 Events specification, fix Xerces Events implementation to call event listeners in the order in which they were registered `[Arnaud Le Hors]`
- Implemented XML Schema errata as they were published. `[Sandy Gao]`
- Fixed a bug related the external-schemaLocation property. `[Sandy Gao]`
- Fixed various bugs. `[Ville Skyttä, Michael Glavassevich, Elena Litani, Sandy Gao, Neil Graham]`

| Xerces-J 2.3.0 |

With this release, the Xerces-J developers are declaring the Xerces Native Interface (XNI) core and parsers packages to be gold. This release also brings Xerces into compliance with the most recent work of the W3C DOM working group on DOM level 3 Core and Load/Save, and introduces many fixes to bring Xerces's behaviour into line with XML Schema errata. Support for the parsing of documents written according to the XML 1.1 candidate recommendation has also been completed, except that no option for verifying that documents are normalized has yet been implemented. Finally, Xerces now provides means by which applications can force the parser to reject certain kinds of documents the processing of which could result in a denial-of-service attack.

- Modified XMLLocator interface to remove setter methods for move towards finalizing XNI; this change also implied removing XMLLocator's dependence upon XMLResourceIdentifier. `[Andy Clark]`
- Implemented several DOM Level 3 features, including DOMConfiguration, exposing type information via DOM, and allowing to set an ID attribute in the DOM. `[Elena Litani]`
- Modified support for DOM L3 compareDocumentPosition (formerly compareTreePosition). `[Lisa Martin]`
- Modified several XNI interfaces, i.e. NamespaceContext, XMLResourceIdentifier, Augmentation, XMLAttributes, and updated implementation accordingly. `[Elena Litani, Sandy Gao]`
- Modified PSVI interfaces (`org.apache.xerces.impl.xs.psvi`) and updated implementation accordingly. `[Elena Litani]`
- Modified XMLDTDHandler, XMLDTDSource, XMLDTDContentModelHandler and XMLDTDContentModelSource to make these pipelines doubly-linked, as was done in the last release for the main document pipeline. `[Neil Graham]`
- Completed experimental support for XML 1.1 and XML Namespaces 1.1 CR's, except for XML 1.1 section 2.13. `[Neil Graham]`
- Provided a mechanism by which applications can instruct the parser to abort the parsing of documents containing constructs that could swamp system resources. `[Neil Graham, Neeraj Bajaj]`
- Added a feature "disallow-doctype-decl" so that a fatal error is reported if this feature is on and the incoming document has a DOCTYPE. `[Sandy Gao]`
- Added a feature "standard-uri-conformant" so that the parser enforces the URI rules when this feature is on. `[Sandy Gao]`
- Performance update: ported the partial DTM implementation of DOM and use it for parsing Schema documents. `[Sandy Gao]`
- Provided full support for canonical representation of XML Schema datatypes. `[Sandy Gao]`
- Implemented XML Schema errata as they were published. `[Sandy Gao]`
- Fix comment parsing bug that prevented Tomcat 4.1.12 from making use of Xerces versions later than 2.1.0. `[Tim Bruce, Neil Graham]`

| Xerces-J 2.2.1 |

This release fixes four important bugs and several minor problems that were present in Xerces-J 2.2.0.

- Fixed SAX endElement call so that the element's namespace URI is returned. `[Elena Litani]`
- Fixed HTML DOM implementation so that it can be instantiated. `[Neil Graham]`
- Made the external-schema-location property work again. `[Sandy Gao]`
- Enabled Xerces to validate the schema for schemas. `[Sandy Gao]`

| Xerces-J 2.2.0 |

As well as incorporating two changes to the Xerces Native Interface, this release focuses on performance improvements and bug fixes.

- Modified XMLComponent interface so that components used in a parser configuration can specify preferred default values for settings. Also updated all classes that implement the XMLComponent interface. `[Andy Clark]`
- Modified XNI XMLDocumentHandler interface so that NamespaceContext objects are passed on the startDocument call. This makes the start/endPrefixMapping calls redundant; they have been deprecated. `[Elena Litani, Arnaud Le Hors]`
- Fixed many conformance bugs and enhanced the parser's performance in many situations. `[Elena Litani, Sandy Gao, Neil Graham]`

| Xerces-J 2.1.0 |

As well as some relatively minor changes to XNI, this release includes many bugfixes and performance improvements.

- Added xni.XMLDocumentHandler.setDocumentSource/getDocumentSource and XMLDocumentSource.getDocumentHandler methods to allow to modify Xerces pipeline dynamically. `[Elena Litani]`
- Store PSVI in DOM tree: when the new DOM document is used, element/attribute nodes can be casted to Element/AttributePSVI interfaces to retrieve PSVI properties. `[Sandy Gao]`
- Provide access to PSVI via SAX using org.apache.xerces.impl.xs.psvi.PSVIProvider interface. `[Elena Litani]`
- Provided a way to convert preparsed schema grammars to XSModels. `[Sandy Gao]`
- Message localization changes. `[Sandy Gao, Neil Graham, Elena Litani, Lisa Martin]`
- Send all element PSVI properties on endElement calls, so that the application doesn't need to stack them when startElement is called. `[Sandy Gao]`
- Made it possible to build a Schema Datatype jar file. Now it can be used as a standalone data type library. `[Sandy Gao]`
- Performance update: avoid using exceptions to determine whether an array needs to be resized. `[Henry Zongaro, Sandy Gao]`
- Performance update: avoid adding the commonly used XML symbols to the symbol table again and again. `[Sandy Gao]`
- Performance update: improve scanning speed by skipping end tag names and using proper input buffer size. `[Neeraj Bajaj, Sandy Gao]`
- Applied fixes to Xerces's regular expression suport to address a number of bugs reported by users. `[Kent Tamura, Neil Graham]`
- Provide implementation for DOM Level 3 DOMBuilderFilter and DOMWriterFilter. `[Elena Litani]`
- Applied fixes to JAXP, SAX and internal object factory code so that it behaves correctly in environments where AccessControllers are being used. These fixes make it no longer possible to compile Xerces under JDK 1.1.8. `[Edwin Goei, Neil Graham]`
- Reorganize the code again to allow to build Xerces with DOM Level 3 support and modifying the build.xml to replace import statements in the source code. `[Elena Litani]`
- Changed various parts of Xerces's implementation so that it is now statically immutable. `[Neil Graham]`
- Reorganized identity constraint support to improve both conformance and performance. `[Neil Graham]`
- General bug fixes. `[Elena Litani, Neil Graham, Lisa Martin, Sandy Gao]`

| Xerces-J 2.0.2 |

In this release, numerous bugs have been fixed. Only one minor change in the Xerces Native Interface is included (documented below); considerable new functionality has also been added in terms of PSVI support, DOM level 3, and grammar preparsing/caching.

- Schema Component API interfaces and implementation; full PSVI support. `[Sandy Gao, Elena Litani]`
- Add XMLResourceIdentifier to startExternalSubset() method defined in XNI XMLDTDHandler. That allows supporting baseURI for an external subset. `[Elena Litani]`
- Add implementation for baseURI, documentURI, normalizeDocument and required normalize document features. Added support for DOM revalidation against XML Schemas. [DOM Level 3] `[Elena Litani]`
- Added implementation for compareTreePosition method of DOM L3. `[Lisa Martin]`
- Added XMLGrammarLoader interface to the xni.grammars package; refactor DTD and Schema validation code to create classes implementing this interface; created a convenience class (XMLGrammarPreparser) that uses the new grammar loaders to permit grammar preparsing; wrote a sample (xni.XMLGrammarBuilder) that demonstrates how all this works. `[Neil Graham]`
- Reorganized the code in Xerces DOM implementation to expose DOM Level 3 functionality via org.w3c.dom package. Added several build targets for building customized xerces jar files that include DOM Level 3 Core and Load/Save interfaces and implementation of those interfaces: jars-dom3, apijar-dom3, sampjar-dom3. `[Arnaud Le Hors, Elena Litani]`
- Updated xni.DocumentTracer sample to print augmentations for events. This makes it easier to debug configurations that augment the document's infoset. `[Andy Clark]`
- Removed dependence on SAX attribute interfaces from XMLAttributesImpl utility class. The AbstractSAXParser already defines a SAX attribute proxy class so that the parser and components can be properly layered. `[Andy Clark]`
- Moved from the org.xml.sax.helpers.AttributesImpl shipped with SAX 2.0 to that shipping in 2.0.1. This solves problems encountered with creating empty attribute lists. `[Neil Graham]`
- Improved handling of settings in parser classes making it easier to re-use the parsers with other parser configurations. Previously, the parser instances assumed that all configurations supported various settings (i.e. the parser would set default values without first adding the recognized features and property identifiers to the parser configuration). `[Andy Clark]`
- Fixed bug in HTML DOM implementation that was causing xerces.dom element nodes to be created instead of the appropriate HTML element nodes. `[Andy Clark]`
- Fixed bug to avoid null pointer exception in AbstractDOMParser when locator information is not available from parser configuration. `[Andy Clark]`
- Fixed bug in WrappedInput/OutputStream classes reported by Morten Bjørhus. `[Andy Clark]`
- The DTD validator failed to report "undeclared element" error if an attribute was declared for an undeclared element.`[Elena Litani]`
- Performance fixes: replaced code that increases array sizes by catching ArrayIndexOutOfBoundsExceptions with code that checks the sizes of the relevant arrays. Also streamlined several method calls in the DTD Grammar classes to account for the fact that scope is not relevant for this type of grammar. Finally, improved algorithm for recognizing entities and notations. `[Henry Zongaro, Neil Graham]`
- Compress jars by default. We have not done so in the past, and it will be useful to see if this proves problematic or beneficial. `[Neil Graham]`
- Added several build targets for building customized xercesImpl jarfiles. Now we can build a DTD-only version, and a DTD-only version also excluding support for the HTML/WML DOM. `[Neil Graham]`
- Parser now reads external entities one chunk at a time, rather than a character at a time; this increases performance dramatically in certain circumstances. This fix also allows a number of EBCDIC encodings to work which did not work previously. `[Neil Graham, Henry Zongaro]`
- Performance enhancement: implemented DOM node and declaration pools that reduce number of objects created during building of XML Schema grammars. `[Elena Litani]`
- Improved performance for non-deferred DOM: reduced number of concatenations for characters (bug #5602) `[Elena Litani]`
- According to the namespace spec errata, namespace declaration attributes should be bound to a special namespace; and errors should be reported on illegal bindings of "xmlns" and "xml" prefixes and their namespaces. `[Sandy Gao]`
- Refined schema error messages: provide more descriptive error messages for simple type validation errors; avoid cascading errors when a grammar for a given namespace is not found, or when components from a certain namespace can't be accessed from a given schema document. `[Sandy Gao]`
- Changed the lexical representation of gMonth from "--MM--" to "--MM". `[Sandy Gao]`
- Decimal point shouldn't be allowed in integer-derived types; "fractionDigits" and "totalDigits" should be calculated on the value space. `[Sandy Gao]`
- Fixed several DOM bugs. Xerces now passes W3C DOM Level 1 Core test suite. `[Elena Litani]`
- Improved management of ID attributes in the DOM so that Document.getElementByID is more reliable. `[Arnaud Le Hors]`
- Applied patch from Scott Sanders to fix Java serialization of the DOM and add a test. `[Arnaud Le Hors]`
- Applied patch from Henry Zongaro to fix a ClassCastException in the deferred DOM.`[Elena Litani]`
- Applied patch from Fabio Riccardi to reset normalize value in the PSVI. `[Elena Litani]`
- Applied patch from Joe Kesselman that fixes NPE in a NodeIterator (bug #6888). `[Elena Litani]`

| Xerces-J 2.0.1 |

This release fixes a number of bugs.

- Fixed and closed bugs filed in Bugzilla. `[Sandy Gao, Pavani Mukthipudi, Elena Litani, Rahul Srivastava, Neil Graham, Neeraj Bajaj, Lisa Martin, Gopal Sharma, Andy Clark, Arun Yadav]`
- Added the support of reporting line/column numbers of schema errors. `[Sandy Gao]`
- When creating DOM nodes, use Strings we already have, instead of creating new ones. `[Sandy Gao]`
- Updated DTD datatypes to use the new datatype interfaces. `[Sandy Gao]`
- Fixed an entity resolution bug: we passed null as the system ID to the entity resolver. `[Sandy Gao]`
- Fixed a bug in the handling of URI's containing "../../". `[Sandy Gao]`
- Fixed a thread-safety bug in schema simple type implementation. The implementation class should be stateless after construction. `[Sandy Gao]`
- Fixed bugs in namespace algorithm for serialization.`[Elena Litani]`
- Fixed a bug in deferred DOM for CDATA nodes.`[Elena Litani]`
- Enabled processing of base 64-encoded material on OS/390.`[Neil Graham, Steve Dulin]`
- Modified XNI grammar interfaces such that Grammars now have an associated XMLGrammarDescription and XMLGrammarDescriptions record the type of the grammar. `[Neil Graham]`
- Fixed a bug related to Signature of call back attributeDecl in XNI samples.`[Rahul Srivastava]`
- Fixed a bug related to feature prefix in AbstractDOMParser.`[Rahul Srivastava]`
- Added the support for defer loading of schema gramars, grammar is parsed only when there is reference to any schema component from that namespace. `[Neeraj Bajaj]`
- JAXP 1.2 schemaSource property, if the String given is relative URI, now it is resolved against the instance document being parsed. `[Neeraj Bajaj]`
- Fixed a bug related to SchemaNormalizedValue to expose it only when validation attempted is full. `[Pavani Mukthipudi]`

| Xerces-J 2.0.0 |

This is the first production-quality release of the Xerces2 Java XML parser. We are confident that it also marks the stabilization of the XNI API, although changes in XNI are still possible. As well as these XNI improvements and extensions, a host of bugs and limitations that existed in Xerces 2.0.0beta4 have been fixed in this release.

- Implemented support for UCS-4 and UCS-2 encodings.`[Neil Graham]`
- Added ability to override default parser configuration. `[Andy Clark]`
- Implemented DOM Level 3 isEqualNode() method `[Arnaud Le Hors]`
- Implemented namespace fixup during serialization of DOM tree.`[Elena Litani]`
- Added implementation for new Xerces features validation/schema/normalized-value and validation/schema/element-default`[Elena Litani]`
- Implemented current-element-node property`[Ted Leung]`
- Added internal subset string to DOM.`[Andy Clark]`
- Added support for warn-on-duplicate-attdef xerces feature validation/warn-on-duplicate-attdef `[Neeraj Bajaj]`
- Added an interface, XMLResourceIdentifier, for describing the physical location of XML resources (external entities, schemas etc.) for use in grammar caching and entity resolution. Updated XMLEntityResolver, XMLLocator, XMLDocumentHandler, XMLDocumentFragmentHandler, and XMLDTDHandler to use this new interface consistently instead of unwieldy lists of Strings in various callbacks. `[Neil Graham]`
- Updated Xerces Native Interface to add augmentations to document fragment handler, DTD handler, and the DTD content model handler interfaces. Additional methods were also renamed and/or modified. `[Andy Clark]`
- Updated Xerces Native Interface to add methods to Augmentations, XMLAttributes, and modify PSVI interfaces. `[Elena Litani]`
- Cleaned up separation between DOMParser and DeferredDOM by moving part of the code from createDeferredElement back into the parser, this has several benefits including to only have to walk the list of attributes once `[Arnaud Le Hors]`
- Provided support for fundamental facets in DV implementation `[Neeraj Bajaj, Sandy Gao]`
- Moved schema simple type error messages to the property file to enable localization. `[Sandy Gao]`
- Fixed various bugs related to the dependency between schema documents. `[Sandy Gao]`
- Modified URI resolution strategy so that Windows network paths are recognized. `[Sandy Gao]`
- Fixed various bugs related to schema components traversal and validation. `[Sandy Gao]`
- Fixed a bug in the ui.DOMParserSaveEncoding sample. `[Joerg Vogel, Neil Graham]`
- Modified XMLDTDScanner to synchronize start/end entity calls. Fixed XMLDocumentScannerImpl so it always checks settings for load-external-dtd feature. Modified implementation of setDocumentHandler(): now user can change document handler during the parse. `[Elena Litani]`
- Fixed DOM L2 bugs: synchronization for entity reference nodes, cloning of attribute node, report of event phases. `[Arnaud Le Hors, Elena Litani]`
- Fixed a bug in XMLDocumentFragmentScannerImpl occuring when a ] is encountered at the end of an entity. `[Arnaud Le Hors]`
- Fixed misc. SAX bugs. `[Lisa Martin]`
- Fixed JAXP implementation of schemaLanguage property. `[Edwin Goei]`
- Massive Javadoc fixes. `[Ted Leung, Neeraj Bajaj, Rahul Srivastava]`
- Fixed external-schemaLocation and external-noNamespaceSchemalocation properties related bug (# 5768) `[Gopal Sharma]`
- Fixed namespaces and namespace-prefixes related SAX bug. `[Rahul Srivastava]`
- Corrected features documentation for string-interning feature. `[Rahul Srivastava]`
- Fixed the bug in which duplicate attribute definitions were not ignored and error was reported for ID datatype and Notation. `[Neeraj Bajaj]`
- Fixed the bug where 'locale' value was not set for StandardParserConfiguration. `[Takuki Kamiya, Neeraj Bajaj]`

| Xerces-J 2.0.0 (beta4) |

This release fixes a number of bugs, introduces more changes to the Xerces Native Interface, provides partial experimental DOM Level 3 implementation, and includes full XML Schema support.

- Implemented schema particle derivation restriction checking `[Lisa Martin]`
- Added checking for schema constraint cos-element-consistent `[Lisa Martin]`
- resolved misc. SAX2 bugs `[Lisa Martin]`
- Added implementation of DOMInputSource, DOMError, DOMLocator and wrappers for entity resolver and error handler (DOM Level 3). `[Gopal Sharma, Elena Litani]`
- Added implementation of DOMWriter, DocumentLS, DOMImplementationLS and new features support for save and load: create-cdata-nodes, split-cdata-sections (DOM Level 3). `[Rahul Srivastava, Elena Litani]`
- Added implementation of DOMBuilder, DOMASBuilder and partial implementation of ASModel. Add support for a new feature "include-comments" (DOM Level 3). `[Pavani Mukthipudi, Neil Graham, Elena Litani]`
- Added Augmentations interface to core XNI interfaces and PSVI interfaces as an extension to XNI (unstable). Added DOM Level 3 interfaces to xerces.dom3 package. Modified samples accordingly. `[Elena Litani]`
- Implemented split of xerces.jar file into an API-only jar file (xmlParserAPIs.jar) and a jarfile containing only the API implementation (xercesImpl.jar). `[Neil Graham]`
- Modified XNI document handler interface to include Augmentations as an extra parameter on each parser event. Modified XMLAttributes interface to include getter methods for augmentations. `[Elena Litani]`
- Implemented PSVI support in Xerces and added PSVIWriter, PSVIParser and PSVIConfiguration sample files. `[Arun Yadav, Elena Litani, Sandy Gao]`
- Added "external-schemaLocation" and "external-noNamespaceSchemaLocation" properties. `[Sandy Gao]`
- New schema simple type interface and implementation. It fixes various bugs in the old implementation, and provides enough information for PSVI support. `[Sandy Gao, Neeraj Bajaj]`
- Internalize all symbols in SymbolTable using java.lang.String#intern(). Now applications can compare the symbols by reference. `[Sandy Gao]`
- Added "schema-full-checking" feature, and implemented "Unique Particle Attribution" constraint. `[Sandy Gao]`
- Changed the default configuration to standard parser configuration (that does not include XML Schema validator), modified how and when the pipeline is constructed. `[Elena Litani]`
- Changed XML Schema validation behavior back to validate only if the http://xml.org/sax/features/validation feature is true. Note: XML Schema validation is off by default. `[Andy Clark]`
- Added constructor to new DTDXSParserConfiguration so it can share settings from a parent configuration. `[Andy Clark]`
- The parser no longer wraps RuntimeException with XNIException in the parse method. `[Andy Clark]`
- Fixed cloneNode() for Entity, EntityReference and DocumentType. Fixed importNode() of EntityReference nodes which mistakenly carried the old value. Fixed handling EntityReference node subtrees that left the node empty in non deferred DOM. `[Arnaud Le Hors]`
- Added missing default attribute values in the DOM and fixed double entity value bug in deferred DOM. `[Andy Clark]`
- Fixed getElementById() in the DOMParser. Bound namespace attributes to http://www.w3.org/2000/xmlns/ (DOM only). `[Elena Litani]`
- Various documentation fixes.`[Andy Clark, Elena Litani]`
- Added more DOM Level 3 interfaces to xerces.dom3 package. Implemented DOMImplementationRegistry (DOMImplementationSource really), Node.set/getTextContent(), Node.isSameNode(), Node.getInterface(), Node.set/getUserData(). Extended dom.mem.Test to test these additions. `[Arnaud Le Hors]`
- Added ASBuilder sample to the DOM samples package to show how to use the new DOM level 3 ASBuilder interface to implement a form of grammar caching. `[Sandy Gao]`
- Enabled the parser to process documents encoded in EBCDIC and UTF-16. `[Neil Graham]`

| Xerces-J 2.0.0 (beta3) |

This release fixes a number of bugs, introduces some changes to the Xerces Native Interface, and is the first Xerces2 release to include XML Schema validation support. Please note that the XML Schema validation code was completely rewritten for Xerces2 and should be considered alpha at this time.

- Redesigned and rewrote XML Schema validation code. Also updated standard parser configuration to include the XML Schema validator in the document pipeline by default. `[Sandy Gao, Lisa Martin, Neil Graham, Elena Litani, Rahul Srivastava, Gopal Sharma, Pavani Mukthipudi, Neeraj Bajaj]`
- Added new default parser configuration that includes DTD and XML Schema validators (DTDXSParserConfiguration). Implemented dynamic validation for both validators. `[Sandy Gao, Elena Litani]`
- Synced up javax.xml.parsers package with latest code from xml-commons module and various bug fixes. `[Edwin Goei]`
- DOM/ DOMParser bug fixes. `[Ted Leung, Andy Clark, Elena Litani, Arun Yadav]`
- Fixed newline normalization bug. Previously, the sequence #x0A #x0D was being converted to #x0A instead of #x0A #x0A per section 2.11 of the XML 1.0 specification. Thanks to Aleksander Slominski for the bug report. `[Andy Clark]`
- Added getter methods to XMLParserConfiguration interface and added filter interfaces for components that consume and produce document and DTD information. `[Andy Clark]`
- Fixed DTD scanner from reporting entity boundaries appearing inside of markup declarations. Entity boundaries appearing in the content model of an element declaration is still reported, though. `[Andy Clark]`
- Simplified XMLAttributes interface by removing the methods related to entities appearing in attribute values. `[Andy Clark]`
- Changed the XMLDTDHandler defined in XNI to add a non-normalized value parameter to the internal element declaration callback. Also implemented the non-normalized value for attribute values. `[Andy Clark]`
- Fixed bug in entity manager that would never resolve IANA encoding names to Java encoding names properly. (Bug #3449) `[Pavani Mukthipudi]`
- Fixed bug in SAX parser that was not forwarding external entity declarations in the DTD. (Bug #3392) `[Neeraj Bajaj]`
- Separated the XMLDocumentScannerImpl class so that it derives from XMLDocumentFragmentScannerImpl which enables an application to parse document fragments. `[Andy Clark]`
- Ported the deferred DOM implementation from the Xerces 1.x codebase. `[Arnaud Le Hors]`

| Xerces-J 2.0.0 (beta2) |

This is primarily a bug fix release. However, a new XNI interface and additional documentation have been added.

- Fixed bug for when namespace bindings were added as default attributes from the DTD. `[Andy Clark]`
- Fixed Xerces2 standard components to properly recognize and use the features and properties that they are documented to accept. `[Andy Clark]`
- Added documentation to the XNI Manual for re-using the Xerces2 parser components. `[Andy Clark]`
- Moved Xerces 1.x to "xerces_j_1" branch and moved Xerces2 to the main trunk of the "xml-xerces" module. `[Arnaud Le Hors]`
- Improved ability of document and DTD scanners to perform pull parsing. `[Andy Clark]`
- Fixed bug where namespace binder would turn an emptyElement callback into startElement and endElement callbacks. `[Andy Clark]`
- Updated standard parser configuration to separate DTD validation and namespace binding in the parsing pipeline. `[Andy Clark]`
- Removed old XML Schema code that was not being used. This code is intended to be replaced by either a port of the Xerces 1.x XML Schema implementation or by a re-designed, re-implemented XML Schema implementation. `[Andy Clark]`
- Fixed bug in scanner that allowed the built-in entity references to be sent via XNI. The default value for this feature should have been false. `[Andy Clark]`
- Fixed several SAX bugs.`[Andy Clark]`
- Synchronized DOM implementation code from Xerces 1.x codebase. `[Andy Clark]`

| Xerces-J 2.0.0 (beta) |

First beta release of the Xerces2 code. Besides numerous bug fixes, this release has changes and additions to XNI. The new XNI parser configuration framework has been added in this release. Refer to the XNI Manual for complete information.

- Added document and DTD scanner interfaces to XNI to allow parser configuration pipelines to be constructed generically. `[Andy Clark]`
- Fixed bug in DTD grammar for mixed content models that was building the wrong validation content model. `[Sandy Gao]`
- Removed SAX dependency from XNI framework. Now the only dependence on external API such as SAX is in the implementation of the AbstractSAXParser and DOMParser so that legacy code doesn't break. `[Andy Clark]`
- Rewrote existing documentation, added XNI information, cleaned up stylesheets, and converted some docs to use custom DTDs. `[Andy Clark]`
- DTD method ordering problem for INCLUDE/IGNORE sections.`[Petr Kuzel]`
- Improved DFA build-time performance.`[ATOZAWA@jp.ibm.com]`
- Synchronized with Xerces 1.3.0`[Arnaud Le Hors]`

| Xerces-J 2.0.0 (alpha) |

| Initial alpha release of Xerces2 code.

Copyright © 1999-2006 The Apache Software Foundation. All Rights Reserved.