users@jaxb.java.net

Re: ComplexContent Extensions

From: Malachi de AElfweald <malachi_at_EOTI.ORG>
Date: Thu, 27 Mar 2003 12:43:15 -0700

On Thu, 27 Mar 2003 10:51:47 -0700, Malachi de AElfweald <malachi_at_EOTI.ORG> wrote:
>And what does this actually do (changed 'content' to 'data' due to the other change I made):
>
> <jaxb:bindings schemaLocation="dynarray.xsd" node="/xsd:schema">
> <jaxb:bindings node="./xsd:complexType[@name='data']">
> <jaxb:property name="base"/>
> </jaxb:bindings>
> </jaxb:bindings>
>
>
>I thought it changed all references from 'data' to 'base', but the javadocs don't appear to reflect that kind of change.

Ok, with a little more playing, I think I am starting to understand.
I moved the bindings inline:
 <xsd:complexType name="data" mixed="true">
  <xsd:annotation>
   <xsd:appinfo>
    <jaxb:property name="data"/>
   </xsd:appinfo>
  </xsd:annotation>
  <xsd:choice>
   <xsd:element name="text" type="xsd:string"/>
   <xsd:element name="hex" type="xsd:hexBinary"/>
   <xsd:element name="base64" type="xsd:base64Binary"/>
  </xsd:choice>
 </xsd:complexType>

and it now has the getData() method... which returns a List... which is because of the choice... Since we only allow it to contain one element, how do I have it return a single element, instead of a List? I think that is the reason removing the jaxb:property line causes the Content errors -- it is trying to remove two different lists, which automatically get the getContent() name... I think I could get rid of the property name if I managed to not return a list.

Malachi