This is related to something I was thinking about the other day. If I'm=
going
to write some code to manipulate very 'record oriented' XML data, I'd o=
ften end
up having a class that represents the records, into which I load the da=
ta after
parsing it in. One thing that would greatly ease the job of doing this =
would be
a program that would take an XML schema, a translation file, and spit o=
ut a
class that represents the schema (with getters/setters/serialization/et=
c...
appropriate for the language and library.) It could also automatically =
spit out
a method that would (given a DOM fragment of that record type), suck ou=
t the
data for that XML record into itself (and vice versa to update the DOM =
fragment
to represent itself again.
The translation obviously could also be an XML file in which a set of t=
ags are
defined that allow the translation to be customized, for instance a typ=
e
mapping tag that says any type foo:int should map to tCIDLib::TInt4 or
something like that.
So, when the XML changes, I can just rerun the translator and spit out =
the new
class. Any added value I would just provide in a derived class, so that=
the
underlying data management class can be spit out as required, without l=
osing
any of my code. You could do a translation file for Java, for C++ STL, =
I could
do one for my CIDLib libraries, etc...
Is anyone doing something like this? Or is this just another dumb idea
(something I'm good at :-) It almost enough trouble to do a translation=
file
that it wouldn't be worth it unless you had a lot of different XML data=
records
and/or a lot of different languages to spit out representations for. Bu=
t the
ability to spit out a method automatically to pull out the data into/ou=
tof the
record would be nice in many cases.
Just a thought anyway...
----------------------------------------
Dean Roddey
Software Weenie
IBM Center for Java Technology - Silicon Valley
roddey@us.ibm.com
=