> > The implicit assumption here is that for a given piece of > processing > > (a single request), only one schema version will be > active. (We make > > this same assumption about SOAP versions) > > As I read the code, it appears that the check for null is made against > all compiled in schema versions, not merely the active one? > For future > growth and scalability, I like the idea of having only one > single active > version.
The check for null when deserializing is made against all versions, it's true. This is because we might not know what the active version is until we get to a null/nil attribute. This could be altered to: 1) Check only the active version if there is one 2) If not, and we find a null/nil, use that to set the active version We should also be setting the active version the first time we see a use of xsd: types or xsi: attributes in a given message. So I guess the schemaVersion in MessageContext could default to null to indicate "not set" until someone needs it (when writing a message, for instance) at which point it'll default to 2001.... --Glen