users@jaxb.java.net

Re: Naming when creating a list of complex elements

From: Wolfgang Laun <wolfgang.laun_at_gmail.com>
Date: Thu, 16 Jul 2009 11:04:00 +0200

Full control over property names is possible with customization:

    <xs:element name="Field" type="Field"
                minOccurs="0" maxOccurs="unbounded">
      <xs:annotation>
        <xs:appinfo>
          <jxb:property name="FieldList"/>
        </xs:appinfo>
      </xs:annotation>
    </xs:element>

-W


On Thu, Jul 16, 2009 at 10:35 AM, ofira shaer<oshaer_at_gmail.com> wrote:
> Hi.
>
> I am trying to define a list of complex elements, specifically, an Action
> that contains some Fields.
>
> My schema definitions are as follows:
>
>
>
> <xs:complexType name="Field">
>
> <xs:sequence>
>
> <xs:element ref="FieldName"/>
>
> <xs:element name="FieldValue" type="xs:string"/>
>
> </xs:sequence>
>
> </xs:complexType>
>
> <xs:complexType name="Action">
>
> <xs:sequence>
>
> <xs:element name="ActionName" type="ActionName"/>
>
> <xs:element name="ActionCode" type="ActionCode"/>
>
> <xs:element name="FieldsList" type="Field" minOccurs="0"
> maxOccurs="unbounded"/>
>
> </xs:sequence>
>
> </xs:complexType>
>
> Jaxb maps this into an Action class that has a getFieldsList() method,
> returning a List<Field> , which is exactly what i want.
>
> The problem is that in the resulting XML, I get this:
>
> <Action>
>        <FieldsList>
>          <FieldName>
>          <FieldValue>
>
>     <FieldsList>
>         <FieldName>
>         <FieldValue>
>
>     <FieldsList>
>         <FieldName>
>         <FieldValue>
> </Action>
>
> While I expect:
>
> <Action>
>        <Field>
>         <FieldName>
>         <FieldValue>
>
>     <Field>
>         <FieldName>
>         <FieldValue>
>
>     <Field>
>         <FieldName>
>         <FieldValue>
> </Action>
>
> Of course if i change the Action definition to
>
> <xs:element name="Field" type="Field" minOccurs="0" maxOccurs="unbounded"/>
>
> I get a function getField() which returns a List<Field>, and this is not
> reasonable.
>
> Is there anyway to get this to work as I expect?
>
> Thanks.
> Ofira.
>