| Migration Archive |
| For migration information to Xerces-C++ 2.1.0 or earlier, please refer to Migration Archive.
| Migrating from Xerces-C++ 2.1.0 to Xerces-C++ 2.2.0 |
| The following section is a discussion of the technical differences between Xerces-C++ 2.1.0 code base and the Xerces-C++ 2.2.0. Topics discussed are: New features in Xerces-C++ 2.2.0 Using C++ Namespace Public API Changes New Public API Modified Public API Deprecated/Removed Public API
| New features in Xerces-C++ 2.2.0 |
| C++ Namespace Support Schema 1.0 Errata Implementation Experimental Implementation of XML 1.1 More DOM L3 Core Support: DOMNode: baseURI DOMAttr: isId, getTypeInfo DOMElement: setIdAttribute, setIdAttributeNS, setIdAttributeNode, getTypeInfo DOM Message: make use of the non-standard extension DOMImplementation::loadDOMExceptionMsg to load the default error text message for the correspond Exception Code. New feature XMLPlatformUtils::Initialize(const char* const locale) to set the locale for message loader. See Specify locale for Message Loader for details Support Build with ICU Message Loader, or Message Catalog Message Loader RPM for Linux 390: Uniconv390 support 390: support record-oriented MVS datasets with the DOM Level 3 serialization APIs Support for Linux/390 Performance: Break Scanner for different functionalities and many other performance improvement New feature, "http://apache.org/xml/features/dom/byte-order-mark", allows user to enable DOMWriter to write Byte-Order-Mark in the output XML stream, See Xercesc Feature: Byte Order Mark for details
| Using C++ Namespace |
| Xerces-C++ 2.2.0 now supports C++ Namespace. All Xerces-C++ classes/data/variables are defined in the `"namespace xercesc"` if C++ Namespace support is ENABLED. All the binary distributions of Xerces-C++ 2.2.0 are now built with C++ Namespace enabled. Therefore users' applications that links with the distributed binary packages must namespace qualified all the Xerces-C++ classes/data/variables with `"xercesc::"` or add the `"using namespace xercesc"` clause. See the Programming Guide Using C++ Namespace for more details.
| Public API Changes |
| The following lists the public API changes between the Xerces-C++ 2.1.0; and the Xerces-C++ 2.2.0 releases of the parser.
| New Public API |
| To support additional DOM L3 functions, the following are added: DOMAttr: isId, getTypeInfo DOMElement: setIdAttribute, setIdAttributeNS, setIdAttributeNode, getTypeInfo Added DOMTypeInfo class for getTypeInfo calss in DOMElement and DOMAttr Added getDOMTypeInfoUri, getDOMTypeInfoName to XMLAttDef and XMLElementDecl for use in building DOMTypeInfo Added a non-standard extension DOMImplementation::loadDOMExceptionMsg to load the default error message for the corresponding DOMException code. XMLAttr: Added a constructor and a set method to allow creating/setting of XMLAttr using a rawname. Added XMLUri::getUriText to return the URI as a string specification. Add XMLString::fixURI to transform an absolute path filename to standard URI form. Added XMLString::equals for faster string comparison. To allow users to tell the parser to force standard uri conformance, the following are added: XercesDOMParser/DOMParser/SAXParser: get/setStandardUriConformant and DOMBuilder/SAX2XMLReader will recognize the feature http://apache.org/xml/features/standard-uri-conformant Add XMLURL::hasInvalidChar() to indicate if the URL has invalid char as per RFC standard To allow users to enable/disable src offset calculation, the following are added: XercesDOMParser/DOMParser/SAXParser: get/setCalculateSrcOfs and DOMBuilder/SAX2XMLReader will recognize the feature http://apache.org/xml/features/calculate-src-ofst To allow users to select the scanner when scanning XML documents, the following are added: XercesDOMParser/DOMParser/SAXParser: useScanner and DOMBuilder/SAX2XMLReader will recognize the property http://apache.org/xml/properties/scannerName Added getSrcOffset to XercesDOMParser/DOMParser/SAXParser/DOMBuilder/SAX2XMLReader to allow users to get the current src offset within the input source.
| Modified Public API |
| The following DOM functions are being added a const modifier. DOMImplementation::hasFeature DOMNode: isSameNode, isEqualNode, compareTreePosition XMLPlatformUtils::Initialize() takes a parameter specifying locale for message loader, with default value "en_US". To fix [Bug 13641], the QName copy constructor is corrected to take a reference as parameter, i.e. QName(const QName& qname). To fix [Bug 12232], the QName operator== has been added a const modified. Move XMLUri copy constructor and operator = as public. Move XMLUri::isURIString as public. For validation purpose, added two more default parameters to XMLValidator::validateAttrValue. To fix [Bug 15802], the getURIText of DOMParser/XercesDOMParser/SAXParser/SAX2XMLReader are being added a const modifier.
| Deprecated/Removed Public API |
| No Deprecated Public API in this release.

Copyright © 2001 The Apache Software Foundation. All Rights Reserved.