http://xml.apache.org/http://www.apache.org/http://www.w3.org/

Xerces Project

Overview
Charter
Release Info
Advisories
Download

Xerces-C++ 3.1.4
Installation
Build Instructions

Programming
Samples
FAQs

API Reference
DOM C++ Binding
Migration Guide

Feedback
Bug-Reporting
Mailing Lists

Source Repository
Applications

Release Information for earlier releases
 

Release Information for Xerces-C++ 3.1.3
 

For a list of bug fixes in Xerces-C++ 3.1.4, see the Release Notes


Release Information for Xerces-C++ 3.1.2
 

For a list of bug fixes in Xerces-C++ 3.1.2, see the Release Notes


Release Information for Xerces-C++ 3.1.1
 

The following new features and bug fixes have been implemented in Xerces-C++ 3.1.1:

Date  Contributor  Description 
2010-04-21  Boris Kolpackov  Check that we have non-NULL host before trying to connect (XERCESC-1920). 
2010-04-18  Boris Kolpackov  Recover from the mismatching start/end even count which may happen when we continue parsing an invalid document (XERCESC-1919). 
2010-04-16  Boris Kolpackov  Add Visual Studio 2010 projects and solution. 
2010-04-16  Boris Kolpackov  Use proper VC++ version in PDB file name. 
2010-04-13  Alberto Massari  If the transcoder doesn't process any input, throw an exception (XERCESC-1916). 
2010-04-12  Alberto Massari  Delay the recursive expansion of includes until the document fragment has been placed in the final location (XERCESC-1918). 
2010-04-12  Alberto Massari  The code formatting a content model was skipping the cardinality indicators (*, +, ?) (XERCESC-1914). 
2010-04-11  Boris Kolpackov  Fix a few bugs and memory leaks in XInclude code. 
2010-04-11  Boris Kolpackov  Give proper name to 64-bit PDB file in static build (XERCESC-1907). 
2010-04-11  Boris Kolpackov  Spelling fixes (XERCESC-1911). 
2010-04-11  Boris Kolpackov  Don't include cpuid.h if we are using intrin.h (XERCESC-1912). 
2010-04-07  Boris Kolpackov  Fix socket leak. 
2010-03-19  Boris Kolpackov  Set scanner object on validation context. Needed during QName validation. Don't re-validate default/fixed values in preContentValidation when called from loadGrammar. This values are already validated in TraverseSchema. 
2010-02-17  Boris Kolpackov  Remove explicit setting of prefix for cloned elements and attributes since it is done properly by the create*() functions (XERCESC-1913). 

Release Information for Xerces-C++ 3.1.0
 

The following new features and bug fixes have been implemented in Xerces-C++ 3.1.0:

Date  Contributor  Description 
2010-01-26  Boris Kolpackov  Remove the "experimental" marker from the loadGrammar API. 
2010-01-20  John Snelson  Fix an infinite loop bug in XML 1.1 NCName parsing. 
2010-01-20  Boris Kolpackov  Get rid of warnings uncovered with g++ -W -Wall. 
2009-11-24  Boris Kolpackov  Don't call u_init in ICU 3.6 and later. 
2009-11-23  Boris Kolpackov  Store the anonymous type count in the SchemaGrammar object. 
2009-11-23  Boris Kolpackov  Save the scope count to the grammar object in case we will be adding to this schema (multi-import case). 
2009-11-23  Boris Kolpackov  Mark schema DOM representation as unavailable after the call to TraverseSchema. 
2009-11-23  Alberto Massari  Don't use intrinsics in VS.NET 2003 since they are not available. 
2009-11-23  Boris Kolpackov  Redo libcurl check to avoid liking to the library when we don't use it. Also update the make pretty-printing code. 
2009-11-20  Boris Kolpackov  Fix a bug in the new LocalFileFormatTarget buffering implementation. 
2009-11-20  Boris Kolpackov  Clear the cached GrammarInfo list when calling resedCachedGrammarPool. 
2009-11-20  Boris Kolpackov  Limit the buffer growth in LocalFileFormatTarget to 64Kb. Optimize MemBufFormatTarget. 
2009-11-20  Boris Kolpackov  Make sure that imported schemas, as well as those loaded with loadGrammar or via the schemaLocation attributes get taken into account when we decide whether the schema in question has already been loaded. 
2009-11-19  Boris Kolpackov  Implement loading of multiple schemas with the same namespace in loadGrammar() when multi-import is enabled. 
2009-11-19  Boris Kolpackov  Extend multi-import support to schemas provided with the schemaLocation attributes (XERCESC-1659). 
2009-11-18  Boris Kolpackov  Try to switch to the XML Schema mode if we see xsi:type or xsi:nill (XERCESC-1263). 
2009-11-18  Boris Kolpackov  Provide a more descriptive error message for empty date-time type values (XERCESC-1703). 
2009-11-18  Boris Kolpackov  Skip the character that we just unescaped when searching for the next percent sign (XERCESC-1826). 
2009-11-18  Boris Kolpackov  Recognize a register-based authority in URI (XERCESC-1748, XERCESC-1747). 
2009-11-18  Boris Kolpackov  Commit a partial fix for XERCESC-1866 by David Bertoni. 
2009-11-18  Boris Kolpackov  Load schemas specified with the external schema location properties even if the load-schema property is set to false (XERCESC-1713). 
2009-11-17  Boris Kolpackov  Catch and ignore exceptions in destructors (XERCESC-1898). 
2009-11-13  John Snelson  Fixed DOMDocumentImpl::importNode() to copy the prefix of element and attribute nodes. 
2009-11-13  Alberto Massari  Add a variant to test for XERCESC-1893. 
2009-11-13  Boris Kolpackov  Call getDatatypeValidator before checking whether the schema has been imported. 
2009-11-12  Boris Kolpackov  Rework the way we search for and detect the ICU and libcurl libraries (XERCESC-1892). 
2009-11-11  Boris Kolpackov  Rework the binToText implementation and usage so that we don't need the XERCES_SIZEOF_* macros. This should allow using the same set of headers for 32 and 64-bit builds (XERCESC-1874). 
2009-11-11  Boris Kolpackov  Fix ICU message loader makefile to handle dist properly. 
2009-11-10  Alberto Massari  As we now generate source files for the ICU message loader, use standard automake code. 
2009-11-10  Boris Kolpackov  Rework compilation of ICU message loader resources (XERCESC-1882). 
2009-11-10  Boris Kolpackov  Do not complain that the XSD namespace is not imported (XERCESC-1896). 
2009-11-05  Boris Kolpackov  Enable multiple import handling in examples and test. 
2009-11-05  Boris Kolpackov  Allow the user to change the low water mark used by the parsers (XERCESC-1607). 
2009-11-04  Boris Kolpackov  Free resources if we throw from c-tors (XERCESC-1480). 
2009-11-04  Boris Kolpackov  Remove mentioning of XMLString::release (XERCESC-1847). 
2009-11-04  Boris Kolpackov  Use US-ASCII instead of USASCII. 
2009-11-04  Boris Kolpackov  Expand setNewLine() documentation (XERCESC-1507). 
2009-11-04  Boris Kolpackov  Disable throwing of an exception from the DOMLSParser::parse*() functions (XERCESC-1894). 
2009-10-30  Alberto Massari  Export PDB also for static builds (XERCESC-1759). 
2009-10-28  Alberto Massari  Implemented DOMLSParser::parseWithContext. 
2009-10-28  Alberto Massari  When the base type for a complex type cannot be found in an imported schema that has already been processed, check if a simple type with the same name exists (XERCESC-1893). 
2009-10-27  Boris Kolpackov  Check if glibtoolize exist. Otherwise call libtoolize. 
2009-10-20  James Berry  For builds with curl, use curl-config to get appropriate compiler and linker flags (XERCESC-1892). 
2009-10-06  Alberto Massari  Place the creation of token in the main function to avoid misalignments. 
2009-09-04  Alberto Massari  When releasing an element, remove and release also its attributes (XERCESC-646). 
2009-09-04  Alberto Massari  Improve support for DOMLSParserFilter: (1) if startElement() returned REJECT it was treated like SKIP, and it was changing the current parent node one time too much; (2) the acceptNode() callback was invoked on text nodes every time some data was added to them, potentially removing it many times; (3) the nodes rejected by the callback were not recycled, leading to the same memory footprint as they were accepted. 
2009-09-02  Alberto Massari  Performance improvements. 
2009-08-28  Alberto Massari  The test to detect if the CPU was SSE2-enabled using __get_cpuid was reversed; configure.ac was testing for the presence of emmintrin.h before detecting which compiler option turned on SSE2, and the header cannot be used until that switch has been set. 
2009-08-28  Alberto Massari  If a minOccurs/maxOccurs cannot be parsed in a valid integer because it's too big, assume it is 500. 
2009-08-26  Alberto Massari  Use SSE2 instructions to speed up bit operations used in schema validation with large maxOccurs. 
2009-08-26  Alberto Massari  The invalid xs:float is now e-46, not e-39. 
2009-08-25  Alberto Massari  Updated documentation to reflect the change in limits for xs:float datatype. 
2009-08-25  Alberto Massari  Fixed memory leak; added optimization to the bitfield enumerator. 
2009-08-24  Alberto Massari  Improved performance and reduced memory footprint of schema validation involving large maxOccurs: (1) the CMStateSet uses a sparsely allocated matrix to store the bits, resulting in less memory usage and faster bitwise operations (when analyzing an unallocated chunk, no operations are done); also, having moved the dynamic buffer data members into a separate structure, the space used by two pointers has been added to the cached bit fields, that is now 128 bits; (2) the DFA builder chooses the faster algorithm depending on the data being analyzed. The regression test for XERCESC-1051 now completes in 30 seconds instead of 80. 
2009-08-21  Alberto Massari  When testing for simple type blocked substitutions, allow list and unions when base type is anySimpleType. 
2009-08-21  Alberto Massari  When testing for blocked substitutions, check the entire inheritance chain. 
2009-08-21  Alberto Massari  Added optimizations forgotten in previous commit, plus tests. 
2009-08-20  Alberto Massari  When retrieving an attribute of a schema declaration, specify its type so that the proper whitespace collapse operation can be performed. 
2009-08-20  Alberto Massari  Improved validation of xsi:nil. 
2009-08-14  Alberto Massari  Move the list with the imported targetNamespace in TraverseSchema, so that a schema can "see" what an imported schema imports (XERCESC-1249). 
2009-08-14  Alberto Massari  When matching an XPath expression, don't accept a node only if it's the first branch of an union that matches. The XPath parser takes care of removing identical branches (XERCESC-809). 
2009-08-14  Alberto Massari  Ignore the lax directive if an element has an xsi:type directive (XERCESC-1707). 
2009-08-14  Alberto Massari  When storing a default/fixed value, use the canonical representation. 
2009-08-14  Alberto Massari  Use an entity resolver to feed the grammar for the XML namespace. 
2009-08-14  Alberto Massari  When building the key for identity constraints, use the topmost validator. 
2009-08-13  Alberto Massari  Name and reference to names should be whitespace collapsed. 
2009-08-13  Alberto Massari  Don't manipulate the XPath expression to ensure it starts with "./" before parsing; add the proper token after the scanner phase. 
2009-08-13  Alberto Massari  Complain if an identity constraint has an empty name. 
2009-08-13  Alberto Massari  When placing a value in the identity constraint map, store the actual validator used, instead of the official one. 
2009-08-13  Alberto Massari  Instead of using the FLT_MIN and FLT_MAX macros, use the XMLSchema definition of minimum and maximum value for a xs:float (XERCESC-1833). 
2009-08-13  Alberto Massari  When the xsi:type attribute is present, don't emit validation errors complaining of a missing declaration (XERCESC-1481). 
2009-08-13  Alberto Massari  Attributes in the xsi namespace were not whitespace-normalized. 
2009-08-12  Alberto Massari  Blocked substitution was not checked when defined on a complex type (XERCESC-1568): (1) Blocked substitution should not be checked when xsi:type names the same original type; (2) Blocked substitution didn't check the bit of the restriction/extension, but it performed an equality check. 
2009-08-12  Alberto Massari  When parsing a "block" attribute, an empty value means an empty set, not "use blockDefault". 
2009-08-12  Alberto Massari  When parsing a "final" attribute, an empty value means an empty set, not "use finalDefault" (XERCESC-1716). 
2009-08-12  Alberto Massari  When an identity constraint involves a QName, store the value using its Clark name so that values using different prefixes can be matched. 
2009-08-11  Alberto Massari  When validating an annotation, report the location of the error in the source schema, not inside the annotation itself. 
2009-08-10  Alberto Massari  Test that runs a few parse operations with an input stream that splits the source in bad locations. 
2009-08-10  Alberto Massari  Before assuming that a complex type has a simple type as base type simply because it has a data type validator, inspect the base type definition (XERCESC-697). 
2009-08-10  Alberto Massari  Before processing a schema location, remove the 0xFFFF characters present in the non-normalized attribute value (XERCESC-1831). 
2009-08-10  Alberto Massari  If a derived attribute is prohibited, don't check type substitution and fixed facet (XERCESC-961). 
2009-08-10  Alberto Massari  Deprecate two symbols because of a typo in the name; added a version with the correct spelling. 
2009-08-10  Alberto Massari  Add check for NULL (XERCESC-1863). 
2009-08-10  Alberto Massari  Don't report repetitions in the block/final schema attributes as errors. If a derived attribute is prohibited, don't check type substitution and fixed facet (XERCESC-961). 
2009-08-05  Alberto Massari  On Linux, iconv requires char*; on Solaris, const char*. Use autoconf to pick the correct code. 
2009-08-05  Alberto Massari  Allow GNUiconv to be compiled on Solaris (XERCESC-1856). 
2009-08-04  Alberto Massari  Allow platform with machine/endian.h to select the GNUiconv transcoder. 
2009-08-04  Alberto Massari  Add an autoconf test to verify if the compiler supports the matching operator delete (XERCESC-1380). 
2009-07-30  Alberto Massari  Before complaining that there are not enough child nodes, test the existing ones to be correct (XERCESC-1246). 
2009-07-29  Alberto Massari  Fix end position for fixed string pattern matching (XERCESC-1021). 
2009-07-29  Alberto Massari  Report an error if more than one anyAttribute declaration is found, or if it is not the last declaration (XERCESC-1717). 
2009-07-29  Alberto Massari  If an imported schema had a keyref definition, all the others keyref definition ended up in that schema, and would not be enforced (XERCESC-1583). 
2009-07-29  Alberto Massari  If there is no complex type in the stack, fallback to the schema element definition, like it is done a few lines earlier (XERCESC-1808). 
2009-07-29  Alberto Massari  When copying a context object, allocate new memory for fMatch and fOffsets only if the size of the data being copied is different, so that a user-provided fMatch object can be properly filled (XERCESC-1870). 
2009-07-28  Alberto Massari  Improve scalability of identity checking by using a hash table whose hash value is computed on the canonical values of the values (XERCESC-1878). 
2009-07-08  Alberto Massari  Added methods defined in the Element Traversal specification (http://www.w3.org/TR/2008/REC-ElementTraversal-20081222/). 
2009-06-30  Alberto Massari  Include system-dependent files only if the appropriate macro is defined (XERCESC-1852). 
2009-06-30  Alberto Massari  Fix warning (XERCESC-1872). 
2009-06-03  Alberto Massari  Avoid recursion when parsing simply nested DTD structures. This issue is referenced in the following document: CVE-2009-1885 (http://nvd.nist.gov/nvd.cfm?cvename=CVE-2009-1885). Thanks to Jukka Taimisto, Tero Rontti and Rauli Kaksonen from the CROSS project at Codenomicon Ltd. and CERT-FI for bringing this issue to our attention. 
2009-06-03  Alberto Massari  Improve XSTSHarness to also run the XML Test Suite. 
2009-05-28  Alberto Massari  Add quotes around path in custom build command (XERCESC-1868). 
2009-05-28  Alberto Massari  The PDB file for VC 9.0 used "vc80" (XERCESC-1869). 
2009-05-26  Boris Kolpackov  Check return value of getaddrinfo for non-zero instead of less-than-zero (XERCESC-1871). 
2009-04-27  Alberto Massari  The implementation of some methods didn't match exactly the signature (XERCESC-1867). 
2009-04-23  Boris Kolpackov  Save the scope count value in the SchemaGrammar object. This is necessary for the multiple import option to function correctly. 
2009-03-30  John Snelson  Initializing unitialized variables in TranscodeToStr and TranscodeFromStr (#XERCESC-1858). 
2009-03-27  John Snelson  Fixed a bug when transcoding small strings using TranscodeToStr (XERCESC-1858). 
2009-03-12  Alberto Massari  When the DOMLSInput contains a stringData buffer, the encoding of the source is XMLCh. 

Release Information for Xerces-C++ 3.0.1
 

The following bugs have been fixed in Xerces-C++ 3.0.1:

Date  Contributor  Description 
2009-02-12  Boris Kolpackov  More robust handling of leading/trailing whitespaces (XERCESC-1838). 
2009-02-12  Boris Kolpackov  Minor documentation updates, including a fix for XERCESC-1848. 
2009-02-10  Boris Kolpackov  Add --disable-rpath configure option. 
2009-01-29  Alberto Massari  Remove class name from method declaration (XERCESC-1850). 
2009-01-16  John Snelson  Fix a bug in the socket and winsock net accessors when a redirection response does not contain a "Location" header. 
2009-01-16  John Snelson  Make XMLMutex use the correct MemoryManager when it closes it's mutex. 
2008-11-12  Boris Kolpackov  Documentation fixes (XERCESC-1841). 
2008-10-30  Alberto Massari  Backport fixes for memory leaks. 
2008-10-29  Alberto Massari  Force Borland projects to use CRLF EOL. 
2008-10-39  Alberto Massari  The wrong constructor was called, causing a memory leak (XERCESC-1840). 
2008-10-23  Alberto Massari  Fix memory leak (XERCESC-1834). 
2008-10-21  Boris Kolpackov  Update URLs in source code to point to the new pages. 

Release Information for Xerces-C++ 3.0.0
 

The following new features and bug fixes have been implemented in Xerces-C++ 3.0.0:

Date  Contributor  Description 
2008-09-22  Vitaly Prapirny  Create Borland project for NetAccessor test. 
2008-09-22  Boris Kolpackov  Allow use of the Windows transcoder and net accessor on Cygwin but only if the user explicitly asks for it. 
2008-09-19  Alberto Massari  Avoid DOMDocument definition from Windows SDK (XERCESC-1830). 
2008-09-17  Boris Kolpackov  Pass raw names to start/endElement if namespaces are disabled. Patch by David Bertoni. 
2008-09-17  Boris Kolpackov  Reimplement skippedString logic to handle "short" and "long" strings separately. 
2008-09-17  David Bertoni  Temporary fix for XERCESC-1827 along with sanity test case. 
2008-09-16  Boris Kolpackov  Avoid pretty-printing comments only in text-only nodes. 
2008-09-16  Boris Kolpackov  Do not add any whitespaces around CDATA sections and comments since they might be non-ignorable (XERCESC-1823). 
2008-09-16  Boris Kolpackov  Add support for generating pkgconfig file. Patch by Jay Berkenbilt (XERCESC-1824). 
2008-09-16  Boris Kolpackov  Pass proper memory manager to mutex. 
2008-09-15  Boris Kolpackov  Allow changing global DOMDocument heap parameters via overloaded Initialize(). 
2008-07-24  Alberto Massari  Include winnt.h from the Platform SDK instead of winres.h from MFC. 
2008-07-23  Alberto Massari  Performance improvement. 
2008-07-22  Alberto Massari  Remove the PCRE-like regular expression engine, and replace it with a XPath 2.0-compatible one (XERCESC-1816). Original patch by John Snelson, modified to fix an exception thrown when expressions negating a character class (e.g. [^\s]) were used. 
2008-07-22  Boris Kolpackov  XML to DOM parsing optimizations. 
2008-07-21  Boris Kolpackov  Various optimizations. 
2008-07-21  Boris Kolpackov  Remove repetitive calls to the getOwnerDocument() virtual function and in some cases use the data member directly. Put DOMStringPool functionality directly into DOMDocumentImpl, make getPooledString() inline. 
2008-07-19  Boris Kolpackov  Get rid of unused MemoryManager argument in hash functions. 
2008-07-17  Alberto Massari  Fixed regression in determining lax/skip/strict processing of an xsd:any preceded by another xsd:any represented using compact syntax (XERCESC-1822). 
2008-07-17  Alberto Massari  The XSTS schema allows multiple schema files to be loaded before a test. 
2008-07-17  Alberto Massari  When comparing two unions, use the validator that correctly parses both instances. 
2008-07-17  Alberto Massari  If an element cannot be found in the schema for its namespace, it is also searched in the empty namespace to see if the user mistakenly forgot about undefining the default namespace; in this case a better error report is generated and (if schema processing is allowed to continue) the empty namespace definition is taken. However, even if the empty namespace definition didn't pass a few checks, we ended up silently using it -> we changed the namespace of the element without notifying the user (XERCESC-1819). 
2008-07-16  Alberto Massari  Build a compact tree also for xsd:any nodes (XERCESC-1051). Reduce the memory required to build a DFA by creating a shallow CMNode hierarchy. Avoid stack overflow when analyzing non-compact model trees. Optimized the building of the DFA state table by avoiding linear searches. 
2008-07-15  Boris Kolpackov  Cygwin is a POSIX emulation layer so use POSIX file manager, transcoder, path delimiter, and net accessor. Still using Windows mutex manager because of the problem in Cygwin pthread emulation. 
2008-07-15  Boris Kolpackov  Require the exact match for the schema loader and storer version. 
2008-07-15  David Bertoni  Fix for XERCESC-1806. 
2008-07-15  David Bertoni  More cleanup for unsigned int/XMLSize_t changes and various compiler warnings. 
2008-07-15  David Bertoni  Fix for XERCESC-1818. 
2008-07-13  Alberto Massari  Backported fix for XERCESJ-773: build a representation of large minOccurs/maxOccurs in constant time and memory (which uses a counter during validation) for element and wildcard particles when each model group particle in the content model: has minOccurs/maxOccurs == 1 or contains only one element/wildcard particle with minOccurs/maxOccurs == 1. (XERCESC-1051). 
2008-07-13  Boris Kolpackov  Use mutex to synchronize access to global document. Fixes XERCESC-1652. 
2008-07-12  Boris Kolpackov  Disable automatic selection of ICU message loader when ICU is available (XERCESC-1769). 
2008-07-11  Boris Kolpackov  Review, cleanup and make consistent all error messages. 
2008-07-09  Boris Kolpackov  Use the ISO8859-1 encoding in net accessors. Add support for httpInfo in the curl net accessor. Patch by John Snelson (XERCESC-1805). 
2008-07-09  Alberto Massari  Added more checks to the XSD syntax. 
2008-07-04  Boris Kolpackov  Increment XERCES_GRAMMAR_SERIALIZATION_LEVEL since the size of line/column fields has changed. 
2008-07-04  Boris Kolpackov  Cleanup interfaces in parsers/ to use XMLSize_t. 
2008-07-03  Boris Kolpackov  Cleanup public interfaces in framework/ to use XMLSize_t. 
2008-07-02  Alberto Massari  Use the _wcsupr naming instead of wcsupr (only Visual C++ defines both, Borland only defines the version prefixed by the underscore). 
2008-06-29  Boris Kolpackov  Add 64-bit support. 
2008-06-28  David Bertoni  Fix for XERCESC-1813. 
2008-06-27  Boris Kolpackov  Use XMLFileLoc consistently to represent line/column. Clean up the SAX interface to use XMLSize_t instead of int/long. 
2008-06-27  Boris Kolpackov  Add XMLFileLoc type (64-bit) that represents location in a file (line/column). Use it in DOM interfaces. 
2008-06-26  Alberto Massari  Added missing "Is" in front of the "MusicalSymbols" regex group. 
2008-06-26  Boris Kolpackov  Use XMLSize_t instead of int/long for indexes and sizes in DOM interfaces. Use enum types instead of short. 
2008-06-26  Alberto Massari  Define regular expression category \w as defined by the XMLSchema specs (XERCESC-541). 
2008-06-25  Boris Kolpackov  Provide a way to disable automatic loading of schemas specified in XML documents. Patch by Wouter Coene. 
2008-06-25  Boris Kolpackov  Move XMLGrammarPoolImpl from internal/ to framework/ so that it can be instantiated directly by the use. 
2008-06-24  Alberto Massari  XSTSHarness now handles the 2006 version of the test suite. 
2008-06-24  Boris Kolpackov  Implement the revised interpretation of ##other in which unqualified names are not matched. Fixes XERCESC-1758, XERCESC-1655. 
2008-06-22  Boris Kolpackov  Add getContentType function to the BinInputStream to allow stream to report out-of-band content type. Implement it in various streams. Factor out and cleanup common code from Socket and WinSock net accessors. Fix a number of bugs. Patch by John Snelson (XERCESC-1805). 
2008-06-20  Boris Kolpackov  Change the DOMXPathResult interface to accommodate both XPath 1 and 2 models. Return DOMXPathResult* instead of void* from evaluate. Add basic auto pointer operations to JanitorMemFunCall class template. 
2008-06-19  Boris Kolpackov  Make regular expressions thread-safe and use runtime memory manager when executing. Add new allMatches() function for advanced use-cases. Patch by John Snelson (XERCESC-1803). 
2008-06-19  Boris Kolpackov  DOM XPath support: Support for resolving default namespace. Support for removing namespace-prefix bindings. Additional documentation. 
2008-05-21  Alberto Massari  Avoid that an external entity having an empty SYSTEM id is treated as internal (XERCESC-1763). 
2008-05-20  David Cargill  Schema fixes for e1-16 errata and full schema checking of any choice restricted by any. 
2008-05-13  Alberto Massari  Add addNamespaceBinding() and release() APIs to XPathNSResolver class (XERCESC-1802) - patch by John Snelson. 
2008-05-13  Alberto Massari  Don't blindly subtract a number from an unsigned int, it could overflow (XERCESC-1804). 
2008-05-01  Alberto Massari  Rewrite the storage mechanism to avoid cast (XERCESC-1678). 
2008-04-07  Alberto Massari  Avoid error messages where English words are specified at runtime. 
2008-04-02  Alberto Massari  Replace copyrighted schema with a simple test case (XERCESC-1791). 
2008-03-22  Boris Kolpackov  Fix XERCESC-1790. Other error messages cleanups. 
2008-03-14  Alberto Massari  DOMPrint now shows how to run an XPath query on a DOM tree (XERCESC-1786). 
2008-03-14  Alberto Massari  If the XPath parser returns 'false', it means the XPath is invalid. (XERCESC-1787). 
2008-03-14  Alberto Massari  Identity constraints on xs:anySimpleType instances are enforced by comparing their lexical values (XERCESC-1393). 
2008-03-11  Boris Kolpackov  Lock the mutex when performing cleanup in the WinSock net accessor. 
2008-03-11  Alberto Massari  When looking for the best encoding, match both char size and endianness. 
2008-03-11  Alberto Massari  Add UTF16-LE and UTF16-BE to the list of encodings tested by GNUiconv (XERCESC-1663). 
2008-03-10  Boris Kolpackov  Get rid of lazy initialization that relied on double-checked locking. Now every static object is initialized in Initialize() and released in Terminate() via XMLInitializer. 
2008-03-09  Boris Kolpackov  Get rid of atomic operations. 
2008-03-07  Boris Kolpackov  New RPM spec by Scott Cantor. 
2008-03-03  Boris Kolpackov  Apply the fast DOM child append patch (XERCESC-1735). 
2008-03-03  Boris Kolpackov  Adjust DOM heap allocation parameters to be the same as in 2.8.0 which appears to give the best overall performance. 
2008-02-26  Alberto Massari  Add VC9 target, remove references to deprecated DOM. 
2008-02-25  Alberto Massari  Validate the attributes of a simple type definition before trusting its content (XERCESC-1718). 
2008-02-25  Alberto Massari  Report an error when a grammar or a type is not found (XERCESC-1745). 
2008-02-21  Alberto Massari  Added configuration to VC9 project files to build Xerces with the ICU transcoder. 
2008-02-21  Alberto Massari  Added configuration to VC8 project files to build Xerces with the ICU transcoder. 
2008-02-21  Alberto Massari  Added configuration to VC7.1 project files to build Xerces with the ICU transcoder. 
2008-02-20  Alberto Massari  Check for the callback pointer to be valid before each call, as a callback could be resetting it (XERCESC-1781). 
2008-02-13  Boris Kolpackov  Make sure the base type was provided when trying to resolve the schema grammar (addition to the previous fix) (XERCESC-1777). 
2008-02-12  Boris Kolpackov  In restriction checking, when looking for a declaration of a base element, use the schema grammar corresponding to the type this element is declared in (XERCESC-1777). 
2008-01-22  Alberto Massari  Update gMaxProtoLen to reflect the addition of "https" (XERCESC-1698). 
2008-01-22  Alberto Massari  Use the same code as in the fopen.c sample from libcurl (XERCESC-1756). 
2008-01-22  Alberto Massari  Show how to release a transcoded string (XERCESC-1767). 
2008-01-22  Alberto Massari  Fixed 64 bit issue (XERCESC-1768). 
2007-11-21  Alberto Massari  Add project files for Visual Studio 2008. 
2007-10-08  David Cargill  Encode characters for anyURI using xlink 5.4 algorithm. Patch from Gilbert Chan. 
2007-08-30  Alberto Massari  - Don't allocate a stack unless the string to be matched is longer than 256 characters. Don't use backtracking if the regex pattern doesn't have ambiguities (XERCESC-1242). 
2007-08-28  Alberto Massari  - SrcOffset is a XMLFilePos (64 bit). MsgLoader and Transcode API needed some more XMLSize_t (XERCESC-1531). 
2007-08-24  Alberto Massari  Avoid recursion when checking for closures. Patch by Vitaly Prapirny (XERCESC-1242). 
2007-07-30  Alberto Massari  The GroupContentRestricted error is used for both 'sequence' and 'choice' models, so get the model at runtime (XERCESC-1724). 
2007-07-18  Alberto Massari  Parser interfaces now use XMLSize_t for characters, comment, ignorableWhitespace, docCharacters, doctypeWhitespace (XERCESC-1531). 
2007-07-18  Alberto Massari  Fixed signed/unsigned conversions (XERCESC-1531). 
2007-07-18  Alberto Massari  Send the NODE_CLONED notification for each node in the tree when cloning the entire DOMDocument (XERCESC-1722). 
2007-07-17  Alberto Massari  GNUIconv should not look at APP_NO_THREADS, and look at where endian.h is located (XERCESC-1709). 
2007-07-11  Alberto Massari  Line numbers should use unsigned long (XERCESC-1531). 
2007-07-11  Alberto Massari  XMLString, XMLBuffer and Base64 should use XMLSize_t (XERCESC-1531). 
2007-07-10  Alberto Massari  XMLTransService should use XMLSize_t (XERCESC-1531). 
2007-07-09  Alberto Massari  XSerializeEngine should use XMLSize_t (XERCESC-1531). 
2007-07-06  Alberto Massari  All lists and vectors should use unsigned int to report size and access items (XERCESC-1531). 
2007-07-06  Alberto Massari  Changed MemBufInputSource to use XMLSize_t (XERCESC-1531). 
2007-07-06  Alberto Massari  Changed XMLFormatTarget interface to have writeChars use XMLSize_t (XERCESC-1531). 
2007-07-06  Alberto Massari  Changed XMLTransService interface to have transcodeFrom and transcodeTo use XMLSize_t (XERCESC-1531). 
2007-07-06  Alberto Massari  Changed BinOutputStream interface to have curPos return a 64-bit integer, and use XMLSize_t in writeBytes (XERCESC-1531). 
2007-07-06  Alberto Massari  Changed BinInputStream interface to have curPos return a 64-bit integer, and use XMLSize_t in readBytes (XERCESC-1531). 
2007-06-09  David Cargill  Apply base whitespace facet to enumeration values. Patch from Gilbert Chan. 
2007-06-09  David Cargill  Suppress DTD error message for attribute referring to unknown entity when attribute not used. Patch from John Kim. 
2007-05-21  Alberto Massari  In the fix for XERCESC-1592, code to set xmlns="" that was moved from retrieveNamespaceMappping to preprocessSchema was not executed for imported schemas. 
2007-05-15  Alberto Massari  mblen returns 0 when given an empty string; rewrote code to only use mbstowcs (XERCESC-1702). 
2007-05-08  Alberto Massari  Add https to the list of valid protocols for XMLURL (XERCESC-1698). 
2007-04-25  Alberto Massari  Add x64 target to VC8 project files. 
2007-04-17  Alberto Massari  Fix for XERCESC-1092. 
2007-04-10  Alberto Massari  Make the header guards less obvious (XERCESC-1693). 
2007-04-06  Alberto Massari  Fix for XERCESC-1592. 
2007-03-08  Alberto Massari  Fixed infinite loop when an XPath expression contained an unexpected character (XERCESC-1682). 
2007-03-06  Alberto Massari  IconvGNU and IconvFBSD transcoders override application-set locale, XERCESC-1660 (patch by Boris Kolpackov). 
2007-03-02  Alberto Massari  Initial commit of XInclude support (by Simon Rowland). 
2007-02-07  Alberto Massari  Even if the XSTS suite thinks differently, the XMLSchema 1.1 clarifies that two values derived from the same value space should be treated as equals; so find out the common ancestor and use it to perform the comparison. 
2007-02-02  Alberto Massari  Implemented the DOML3 XPath interfaces, reusing the XPath processor used inside the XMLSchema validation; this means it understands only a limited subset of the XPath syntax, and can only return DOMElement nodes. However, it could be useful for simple navigations, or maybe be later expanded. 
2007-01-30  Alberto Massari  Allow 'list' and 'union' in the finalDefault attribute of a schema (XERCESC-1633). 
2007-01-30  Alberto Massari  Fix backport of XERCESC-1237. 
2007-01-30  Alberto Massari  Only xs:key should complain if not all the fields of an identity constraint are not found in the XML instance (XERCESC-1237). 
2007-01-02  Alberto Massari  When calling getAttributeNodeNS, ensure we are providing a localName (XERCESC-1473). 
2006-12-18  Alberto Massari  The 'dst' argument in the DOMUserDataHandler::handle callback is non-const, in order to let the application modify the newly created node (XERCESC-783). 
2006-12-11  Alberto Massari  Performance improvement: allocate memory only when the data inside the XMLElementDecl cannot be reused. 
2006-12-01  Alberto Massari  Use the algorithm from http://unicode.org/unicode/faq/utf_bom.html#35 to encode/decode surrogate pairs (XERCESC-1654). 
2006-10-20  Alberto Massari  Enable IPv6 addresses by using getaddrinfo when available [based on a patch by Ramanjaneyulu Malisetti]. 
2006-10-20  Alberto Massari  Handle both IPv4 and IPv6 on Windows (to be enabled via a macro, as it is only available starting with Windows XP) [based on a patch by Ramanjaneyulu Malisetti]. 
2006-10-20  Alberto Massari  Report the correct error when the XML PI has 'XML' instead of 'xml' (XERCESC-1641). 
2006-10-16  Alberto Massari  Allow the user to specify the memory manager used by LSSerializer::writeToString. 
2006-09-26  Alberto Massari  Removed warnings (XERCESC-1619). 
2006-09-26  Alberto Massari  Make some methods const (XERCESC-1628). 
2006-09-26  Alberto Massari  When checking for a valid restriction, take into account substitution groups (XERCESC-1281). 
2006-08-30  Alberto Massari  Don't crash if an external parameter entity has no SYSTEM id (XERCESC-1536). 
2006-08-28  Alberto Massari  IconvGNU transcoder now works on big endian machines. 
2006-08-23  Alberto Massari  Default or fixed attribute values should be whitespace normalized, if the datatype requires it, before being validated. 
2006-08-23  Alberto Massari  DOMLSParserImpl::loadGrammar should not release the previously loaded DOMDocument (XERCESC-1626). 
2006-07-25  Alberto Massari  Reduce the number of allocations needed by text and attribute nodes (XERCESC-1585). 
2006-07-25  Alberto Massari  Remove support for building Xerces with VC7. 
2006-07-04  Alberto Massari  Removed usage of MB_CUR_MAX from iconv transcoder; if the block-oriented APIs are available, use them (XERCESC-1444, patch by Axel Weiss). 
2006-06-12  Alberto Massari  Added parameter space-first-level-elements to DOMLSSerializer to let the user control whether the children of the document root should have an extra line feed between them (XERCESC- 1561). 
2006-05-30  Alberto Massari  SAX2XMLReader should use the prefix reported by the reader, not the one stored in the element declaration (XERCESC-1598). 
2006-05-30  Alberto Massari  DGXMLScanner was treating predefined entities inside attribute values as if they were in the element content (XERCESC-1597). 
2006-05-23  James Berry  Fix for XERCESC-1595. 
2006-05-12  Alberto Massari  Allow spaces in anyURIs, as they are 'legal but highly discouraged' (XERCESC-1581). 
2006-03-19  Alberto Massari  Factory method is no more inline to avoid including an internal header in a public one (XERCESC-1579). 
2006-02-28  Alberto Massari  Remove BOM-detection code inside refreshCharBuffer: the fix for XERCESC-1284 makes it unnecessary, and the UTF-8 part was updating the wrong index (XERCESC-1385). 
2006-02-18  Alberto Massari  When serializing attribute values, escape also carriage returns and tabs (XERCESC-1547). 
2006-02-18  Alberto Massari  If an encoding has been forced on a InputSource, ignore a compatible BOM found in the stream (XERCESC-1284). 
2006-02-06  David Bertoni  Patch from Tobias Schuette for XERCESC-1491. 
2006-01-21  David Bertoni  Fix for XERCESC-1555 from Mark Weaver. 
2006-01-21  David Bertoni  Fixes for XERCESC-1548. 
2006-01-16  David Cargill  Fix for XERCESC-1546. Canonical value of list was putting in an extra null character. 
2006-01-16  Alberto Massari