A Java/XML binding compiler takes as input a schema
description (in most cases an XML schema, but it may
be a DTD, a RelaxNG schema, a Java class inspected
via reflection, or a database schema). The output is
a set of Java classes:
* A Java bean class matching the schema description.
(If the schema was obtained via Java reflection,
the original Java bean class.)
* Read a conforming XML document and convert it into
the equivalent Java bean.
* Vice versa, marshal the Java bean back into the
original XML document.