Lists Home |
Date Index |
> Sure, and I've seen enormous problems come out of people
> "compiling" XML
> schemas into classes using the tools that are now available.
> I mean, one of the
> main reasons for using XML is to decouple applications, and
> then people compile
> the XML schemas into code so that they tightly couple their
> applications to this
> week's version of the XML. It can cause *huge* delays for
> projects. People
> don't seem to remember that if you tightly couple some of
> your code to the XML,
> you need to loosely couple those bits of code to the rest of
> your application.
How about instead of generating classes, these code generators generated
interfaces + implementations? Still not perfect, but at least you're coding
your app to an interface. You can then change the interface, either through
extension or dynamic proxies. The implementation classes can also be
extended, or rewritten altogether if needs be.
There are still versioning issues, but I think by coding to interfaces you
reduce the impact of minor version changes. For instance, you can sometimes
temporarily mask datatype changes by keeping the interface the same and
doing appropriate casting in an extended class of the generated
implementation; it allows the rest of the app code some time to catch up to
the latest schema change.