[xsd-users] Custom get/set methods

Boris Kolpackov boris at codesynthesis.com
Thu Nov 15 08:26:45 EST 2007


Hi Vinay,

Mogulothu, Vinay K <vinay.mogulothu at lehman.com> writes:

> The code generated from C++/tree has get/set methods with the
> attribute name, we would like to provide the methods through
> getAttribute, setAttribute for access

Do you want attribute accessor/modifier functions to be in the form
getFoo/setFoo where "Foo" is the name of the attribute -or- do you
want to have getAttribute("Foo")/setAttribute("Foo")?

> From the three cardinality classes, the access methods for cardinality
> one and sequence if we can add prefix get/set would work for us, for the
> cardinality optional, do we have to write the get/set methods as
> wrappers and access the underlying attribute using get() and set()

I guess you want to add the get/set prefixes to accessors/modifiers.
You can do it by customizing the generated types. That is, you can
instruct the XSD compiler to generate the normal mapping for XML
Schema types with different names and then you can inherit your
"wrapper" types from these generated types and implement the get/set
functions by calling the generated versions. For more information
on type customization see the C++/Tree Mapping Customization Guide:

http://wiki.codesynthesis.com/Tree/Customization_guide

As well as the examples in the examples/cxx/tree/custom/ directory.


This approach will work fine for small schemas where you have a handful
of types. For large vocabularies this will be a daunting task.

A feature that would allow changing the generated class/function names
has been requested before. I guess it would work fairly well for your
situation. We are still considering implementing this so let me know if
you are interested and we can see if we can make something for you
to try.

Boris




More information about the xsd-users mailing list