

























|
 |  |  |  | Migrating to earlier Releases |  |  |  |  |
| | |
|
 |  |  |  | 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
|
| | |
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.
| | |
- 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
|
| | |
- 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
|
|
|
 |  |  |  | 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 |  |  |  |  |
| | |
- 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
|
| | |
Xerces-C++ 2.2.0 now supports C++ Namespace. All Xerces-C++
classes, data and variables are defined in the xercesc namespace
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 qualify all the Xerces-C++ classes, data and variables.
See the Programming Guide Using C++ Namespace
for details.
|
| | |
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.
| | |
- To support additional DOM L3 functions, the following are added:
- DOMAttr: isId, getTypeInfo
- DOMElement: setIdAttribute, setIdAttributeNS, setIdAttributeNode, getTypeInfo
- Added DOMTypeInfo class for getTypeInfo class 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.
|
| | |
- 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.
|
|
|
|
|