[xsd-users] <choice> abuse
rlischner at proteus-technologies.com
Mon Mar 12 11:26:58 EDT 2007
The implemenentation of <choice> has the potential for abuse. Suppose I have a schema with the following:
<element name="a" type="int"/>
<element name="b" type="float"/>
<element name="c" type="string"/>
The generated class X has three optional members: a, b, and c. The problem is that I can set all three members:
with the nonsensical result that the "choice" has all three values, not only one. I wish the code were more resilient to programmer error. Calling x.b(2.718) should result in a call to x.a().reset() and x.c().reset().
Or the implementation of <choice> could switch to a union, with a generated enumeration to specify which union member is valid.
Meanwhile, I'm open to suggestions for the best way to ensure that programmers do not inadvertently create invalid objects.
Ray Lischner, Proteus Technologies
More information about the xsd-users