Well, it generates code OK, which compiles.
That choice is only ever going to get you a Transaction, Response and Request properties, there won't be any kind of enforced "choice" in the code.
You will be able to use all three and it just blindly generates bad non-conformant Xml.
Same as Linq2Xsd I guess, and that doesn't even generate sequence elements in the right order!
The following code:
Kronos_XMLAPI_6_22 doc = Kronos_XMLAPI_6_2.Kronos_XMLAPI_6_22.CreateDocument();
Kronos_WFCType root = doc.Kronos_WFC.Append();
var response = root.Response.Append();
response.Message.Append().Value = "Hello World!";
response.Sequence.Append().Value = "Sequence";
response.Status.Append().Value = "Status";
response.TransactionSequence.Append().Value = "Sequence";
Produces the following Xml:
<?xml version="1.0" encoding="utf-8"?>
Which is wrong becase the Version attribute is missing and Altova does not generate a strong typed property for Kronos_WFC.Version.
No idea why, maybe I juyst don't know how to use it properly. The code wrappers it produces are pretty eye watering compared to Linq2Xsd, so we stopped using one as soon as we found the other.
Recommend you grab the demo and try it for yourself. It's not cheap though :(
Hope that helps,