users@jaxb.java.net

Model Group Binding

From: Prashant <prashant_at_pramati.com>
Date: Fri, 12 Aug 2005 12:21:45 +0530

Hello:

I want to generate a "homogenous" lists of my xs:choice elements.

But, I am a little bit confused by JAXB 1.0.X's treatment of unnamed
xs:choice groups.

Consider following example which is a modified version of "bind-choice"
sample shipped with JAXB.

Custom binding:
<jxb:globalBindings bindingStyle="modelGroupBinding"/>

Schema :
 <xs:element name="FooBar">
    <xs:complexType>
      <xs:sequence>
        <xs:choice>
* <xs:element name="phoneNumber" type="xs:string"
minOccures="0" maxOcuurs="unbounded"/>
          <xs:element name="speedDial" type="xs:int" minOccures="0"
maxOcuurs="unbounded"/>
* </xs:choice>
    </xs:complexType>
  </xs:element>

Generated FooBar Bean contains

public List getPhoneNumberOrSpeedDial() - elements of list are of type
PhoneNumberOrSpeedDial

PhoneNumberOrSpeedDial{

getPhoneNumber();
isSetPhoneNumber();
isSetSeedDial();
getSpeedDial();

}

Instead is't it simpler for FooBar to contain methods

List getPhoneNumbers();
List getSpeedDials();

The lists would be empty when phone numbers/speeddials donot occur in a
XML instance.

What was the rational behind current behavior. Am i missing something here ?

Is the treatment better in JAX 2.0 ?

-Prashant