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



      

Reply via email to