The SoapBridge makes rather extensive use of several other packages (Xerces-C, Orbacus and MySQL). For as far as feasible the use of these is put in isolated libraries to minimalize the impact of having to switch to a new version or another package with similar functionality.
For instance, to substitute another Database package for MySQL, one would only have to rewrite the DBObj code.
Substituting another CORBA ORB or XML Parser would start in IRplus or Parser respectively. Note that these packages are rather extensively used by the SoapBridge core code as well.
Finally, having the code split up in multiple parts also isolates the use of header files while compiling various bits and pieces, a considerable time saving while doing the development.
Source codes notes on handling unions
Whatever element follows the union's outer element is taken to be the value of the discriminator for the union.