One first describes the set of acceptable
XML messages using an ad hoc formalism. This formalism,
hereafter referred to as the meta-definition, can,
in first approximation, be seen as a DTD extended
to describe a data structure that will receive the various
parts of the message in addition to the structure describing
of the message itself.
Using this meta-definition as input, XMLBooster produces
an XML parser as a module in one of the programming languages it supports.
This module is generated in source form, and can be used on any platform
where a working compiler for the target language is available.
The application programmer can then call this module, which will
return an error message if the input does not comply with the
message format described in the meta-definition, or a fully
initialized data structure in the host language if the input
has been analyzed successfully.
This approach delivers better performance, by not having to take
the full generality of XML into account and by only recognizing the
set of constructs required by the application at hand.
The performance of the server application
(assuming of course that an application that must be able to receive
XML messages and react upon them can somehow be seen as a server)
is also greatly improved by not requiring dynamic lookups to extract
information any longer: that part of the job is taken care of by the
parser on the fly while processing the incoming XML message.
Building a usable data structure in the host language goes far
beyond the sole performance issues : accessing the XML generic tree
using dynamic searches based on string comparisons is cumbersome
and error prone. Most errors are not caught at compile-time
and systems must be debugged extensively before a decent level
of quality can be guaranteed.
Replacing these dynamic lookups by statically defined data structures
makes such dynamic mistakes totally impossible, making the task of the
programmer much easier and improving the overall quality of her (or his) work.
This approach is much faster than the generic XML parser
approach (see our
benchmarks).
"We use XMLBooster as a fast prototyping tool. The data model is turned
into a working GUI in less than a minute, and the final user can validate
the resulting application and provide feedback instantly."
Laurent R., Financial markets, France
"Using these strongly typed interface is so productive when compared with
DOM parsers, I can't believe anyone still contemplates Xerxes for
serious work."
John F., Financial markets, Canada
"The scripting facility has allowed us to automate the entire compilation chain,
from schemas to optimized parsers."
Michel M., Insurance, France
"We now generate GUIs for every XML schema we have, just in case."
Nicholas P., System integration, USA
"XMLBooster-generated GUI's have slashed our development
times. And they can be customized to better suit the
needs and tastes of our customers. A great product!"
Chris C., Document management, USA
"It works like magic. I just don't have to worry
about the XML issue any longer, I can concentrate
on my application"
John W., System integrator, Netherlands
"XMLBooster is so fast, it solved all our performance
problems"
Alain de N., Belgium
"As far as I know, XMLBooster is the only decent
solution to integrate XML in COBOL applications"