[xsd-users] RE: xsd bypasses customized types
Boris Kolpackov
boris at codesynthesis.com
Wed Apr 21 09:04:42 EDT 2010
Hi Richard,
Richard Cresswell <rcresswell at gmail.com> writes:
> Don't we still have the same problem that we saw at the beginning of
> this thread though? The from-base class constructor is being
> suppressed because it is trying to use the fundamental value
> constructors.
With the original patch that I sent to Ray, the from-base c-tor is not
suppressed if (1) you specify the --generate-from-base-ctor option
and (2) there is a custom type in the inheritance hierarchy. If I have
a schema fragment like this:
<simpleType name="base">
<union memberTypes="NCName"/>
</simpleType>
<complexType name="derived">
<simpleContent>
<extension base="test:base">
<attribute name="x" type="string"/>
</extension>
</simpleContent>
</complexType>
Which I then compile with '--custom-type base' and --generate-from-base-ctor,
I get the following c-tors in the generated derived class:
derived (const char*);
derived (const std::string&);
derived (const test::base&);
> I think I might be having trouble envisioning the cases that you say
> this would break. Isn't the suppression of the from-base constructor
> and its replacement by the fundamental constructors just to counter
> code bloat?
Yes, that's correct.
> Can you give an example where the functionality I describe would break
> an object that is derived from a custom type?
When I said that the functionality you proposed would break other code,
I was referring to the suppression of the default c-tor, not the
suppression of the from-base c-tor.
Boris
More information about the xsd-users
mailing list