The problem seems to come from the following change in the Xerces-C 3 API (tested here with Xerces-C 3.1.1).
From the migration guide from 2.8.0 to 3.0.0 on page
http://xerces.apache.org/xerces-c/migra ... fiedAPI300Many 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
The type of some arguments of the members of SAX2 DefaultHandler have changed. In particular, the "length"
argument in member function ::characters has changed from unsigned int to XMLSize_t.
This affects the following files:
StructuredDocumentHandler.h
StructuredDocumentHandler.C
You can fix it with the following:
- Code: Select all
===================================================================
--- StructuredDocumentHandler.C (revision 800)
+++ StructuredDocumentHandler.C (working copy)
@@ -61,7 +61,7 @@
////////////////////////////////////////////////////////////////////////////////
void StructuredDocumentHandler::characters(const XMLCh* const chars,
- const unsigned int length)
+ const XMLSize_t length)
{
#if TIMING
Timer tm;
===================================================================
--- StructuredDocumentHandler.h (revision 800)
+++ StructuredDocumentHandler.h (working copy)
@@ -61,7 +61,7 @@
void startElement(const XMLCh* const uri,const XMLCh* const localname,
const XMLCh* const qname, const Attributes& attributes);
- void characters(const XMLCh* const chars, const unsigned int length);
+ void characters(const XMLCh* const chars, const XMLSize_t length);
void endElement(const XMLCh* const uri, const XMLCh* const localname,
const XMLCh* const qname);
void ignorableWhitespace(const XMLCh* const chars,
===================================================================
--- WavefunctionHandler.C (revision 836)
+++ WavefunctionHandler.C (working copy)
@@ -405,7 +405,7 @@
{
// base64 encoding
unsigned int length;
-#ifdef XERCESC_3_0_1
+#ifdef XERCESC_3
XMLByte* b = Base64::decode((XMLByte*)content.c_str(),
(XMLSize_t*) &length);
#else
Note the change of the test for XERCESC_3_0_1 in WavefunctionHandler.C to XERCESC_3, since the minor versions upgrades are likely not affecting the API.
The above fix was released in 1.52.3. See
http://eslab.ucdavis.edu/software/qboxPlease post to this list if you find more Xerces-C 3 problems.
Thanks