It is clear now that the hash function inXMLString.cpp is re-implemented. This is causing big problems. Now that in windows 64 or unix platform, the jobs we and our customers created using old versions of Xerces expected the order of types enumerated in the hash table filled by the old hash function. They won't run any more, they will have to be re-created. Also, a job created in windows 32 bit won't be able to run in other platforms. If I bring back the old hash function, will it cause other problems?
Thanks much! ________________________________ From: Boris Kolpackov <[email protected]> To: [email protected] Sent: Wed, February 3, 2010 7:07:16 AM Subject: Re: RefHashTableOfEnumerator returns me elements in different order for different platforms Hi Gordon, Gordon Brown <[email protected]> writes: > I understand the order of types might not be gurantteed in a sense > that it might not be the same as presented in the schema itself. > But is it expected that the same piece of code (complexTypeRegistry) > might return types in different order in different platforms? The hashtable enumeration works this way because the XMLSize_t type size varies among 32 and 64-bit platforms which in turn leads to different hash values. I don't think we guarantee any particular order of enumeration nor that it will be the same among all the platforms. Though you can add an enhancement request[1] for this feature if you believe we should provide such a guarantee. [1] http://xerces.apache.org/xerces-c/bug-report.html Boris -- Boris Kolpackov, Code Synthesis http://codesynthesis.com/~boris/blog Open-source XML data binding for C++ http://codesynthesis..com/products/xsd XML data binding for embedded systems http://codesynthesis.com/products/xsde Command line interface to C++ compiler http://codesynthesis.com/projects/cli
