| Migration Archive |

| For migration information to Xerces-C++ 2 series or earlier, please refer to Migration Archive.

| Migrating from Xerces-C++ 2 series to Xerces-C++ 3.0.0 |

The following section is a discussion of the technical differences between Xerces-C++ 2 series and Xerces-C++ 3.0.0.

Topics discussed are:

- New features in Xerces-C++ 3.0.0
- Public API Changes

- New Public API
- Modified Public API
- Deprecated/Removed Public API

| New features in Xerces-C++ 3.0.0 |

- Autotools-based build system for the UNIX/Linux/Mac OS X platforms
- Project files for VC++ 9
- Support for the ICU transcoder in VC++ 7.1, 8, and 9 project files
- libcurl-based net accessor
- Support for XInclude in DOM
- Support for both XPath 1 and XPath 2 models in the DOM XPath interface
- Support for the XML Schema subset of XPath 1 in DOM
- Conformance to the final DOM Level 3 interface specification
- Ability to provide custom DOM memory manager as well as tune the global DOM heap parameters
- All public and widely used interfaces as well as a large portion of the implementation were converted to be 64-bit safe.
- Various XML Schema fixes including the fix for the large maxOccurs and minOccurs bug as well as for the changed ##other interpretation
- Reviewed and cleaned up diagnostics messages
- Optimizations for SAX/SAX2 and DOM parsing as well as XML Schema validation

| Public API Changes |

Xerces-C++ 3.0.0 is a major release and includes a number of application-breaking interface changes compared to Xerces-C++ 2 series. The following sub-sections provide an overview of the public API changes between Xerces-C++ 2 series and this release.

| New Public APIs |

- XMLGrammarPoolImpl implementation has been moved to framework/ and is now publicly accessible
- DOM XPath interfaces now support XPath 2 model
- A number of DOM interfaces (DOMLSInput, DOMLSOuput, DOMLSParser, DOMLSSerializer, DOMConfiguration, etc.) were added as part of the the final DOM Level 3 specification conformance work

| Modified Public APIs |

A large number of public APIs have been modified. Consult individual interface documentation for details. The following list gives an overview of major changes:

- Several DOM interfaces have been adjusted to conform to the final DOM Level 3 specification
- DOM XPath interfaces have been adjusted to support both XPath 1 and XPath 2
- Many public interfaces that used int/long types to represent memory-related sizes, counts, indexes, etc., have been modified to use the 64-bit safe XMLSize_t type instead

| Deprecated/Removed Public APIs |

| All APIs marked as deprecated in Xerces-C++ 2 series have been removed in this release. In particular deprecated DOM (depdom) as well as COM support have been removed. Furthermore, a number of DOM interfaces (DOMBuilder, DOMWriter, DOMInputSource, etc.) were replaced as part of the the final DOM Level 3 specification conformance work.

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