| Migration Archive |

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

| Migrating from Xerces-C++ 2.5.0 to Xerces-C++ 2.6.0 |

The following section is a discussion of the technical differences between Xerces-C++ 2.5.0 code base and the Xerces-C++ 2.6.0.

Topics discussed are:

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

- New Public API
- Modified Public API
- Deprecated/Removed Public API
- Please note the following source code incompatibility: Rename VALUE_CONSTRAINT enumeration values in XSConstants.hpp due to conflict with system header. New values are VALUE_CONSTRAINT_NONE, VALUE_CONSTRAINT_DEFAULT and VALUE_CONSTRAINT_FIXED. Old values are VC_NONE, VC_DEFAULT and VC_FIXED.
- Also note that if you have implemented your own XMLGrammarPool implementation, that the original getXSModel has been marked deprecated and a new method, of the same name, that takes a bool parameter has been added. This new getXSModel needs to always return an XSModel.

| New features in Xerces-C++ 2.6.0 |

- Reduce footprint of DLL by building the deprecated DOM as a separate library
- Improve packaging scripts
- Enable ID's to work on all kinds of schema components
- Add messages to DOMExceptions along with the error code
- Improve annotation error-reporting capabilities
- Make grammar caching work with DTD internal subsets
- Bring parser up to the XML 1.0 3rd Edition
- Update to the XML 1.1 recommendation
- Add new method to DOMDocument so that DOM level-2 style DOMDocumentTypes (which have a DOMDocument to own them) can be created
- Feature for disabling identity constraints
- Update schema errata
- Provide means to get actual values out of PSVI/schema component model
- Synthesize annotation components for non-schema attributes
- Expose partial PSVIElement information at the start element call
- Externalize validation, actual/canonical value production for arbitrary strings
- Laxly validate schema annotations
- Upgrade to ICU 3.0
- Handle elements with a large number of attributes more efficiently

| Public API Changes |

The following lists the public API changes between the Xerces-C++ 2.5.0; and the Xerces-C++ 2.6.0 releases of the parser.

| New Public API |

- XSValue
- IdentityConstraintHandler
- XMLBufferFullHandler
- XMLString: removeChar, isValidNOTATION
- XMLUri: normalizeUri
- PSVIHandler: handlePartialElementPSVI
- RefHash family of classes: getHashModulus
- XSAnnotation: setline/col and systemid
- XMLReader: handeEOL
- XMLChar: isValidNmToken
- XMLBigDecimal: parseDecimal, getIntVal
- HexBin: getCanonicalRepresentation, decode
- Base64: getCanonicalRepresentation, decode
- XMLBigInteger: compareValues
- XMLAbstractDoubleFloat: isDataConverted, getValue, isDataOverFlowed
- PSVIItem: getActualValue
- XSSimpleTypeDefinition: getDatatypeValidator
- RefHash2KeysTableOf: transferElement
- XMLGrammarPool: getXSModel

| Modified Public API |

- XSerializeEngine constructor
- MACUnicodeConverters

| Deprecated/Removed Public API |

- XSerializeEngine constructor
- DTDAttDef: getDOMTypeInfoName, getDOMTypeInfoUri
- DTDElementDecl: getDOMTypeInfoName, getDOMTypeInfoUri
- SchemaAttDef: setAnyDatatypeValidator
- UnionDatatypeValidator: getMemberTypeName, getMemberTypeUri, getMemberTypeAnonymous, getMemberTypeValidator
- XMLAttr: getValidatingTypeURI, getValidatingTypeName, setDatatypeValidator, setSchemaValidated
- ComplexTypeInfo: setContentModel
- XMLGrammarPool: getXSModel
- SAXParser, mark this class deprecated

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