John,
the schema with 0/unboudned compiles without a hitch with any regular
xjc from JAXB v 2.1.8 up to 2.1.11 and the one distributed with JDK
"1.6.0_0". It fails with xjc JAXB 2.2 "Early Access". I'll submit an
issue.
-W
On Tue, Nov 24, 2009 at 7:45 PM, John Leonard <jleonard.20081_at_gmx.com> wrote:
> Wolfgang Laun wrote:
>>
>> This does not depend on <choice...> alone. Can you post a full .xsd
>> producing the exception?
>> -W
>>
>> On 11/22/09, John Leonard <jleonard.20081_at_gmx.com> wrote:
>>
>>>
>>> Does JAXB understand the following use of the "choice" element?
>>>
>>> <choice minOccurs="0" maxOccurs="unbounded">
>>> <element...
>>> <element...
>>> ...
>>> </choice>
>>>
>>> Here is the output of XJC when I run it from the command line on a file
>>> containing such code:
>>> parsing a schema...
>>> compiling a schema...
>>> [INFO] generating code
>>> unknown location
>>>
>>> Exception in thread "main" java.lang.reflect.UndeclaredThrowableException
>>> at $Proxy7.required(Unknown Source)
>>> at
>>> com.sun.tools.xjc.generator.bean.field.AbstractField.annotateReferenc
>>> e(AbstractField.java:197)
>>> at
>>> com.sun.tools.xjc.generator.bean.field.AbstractField.annotate(Abstrac
>>> tField.java:156)
>>> at
>>> com.sun.tools.xjc.generator.bean.field.AbstractListField.generate(Abs
>>> tractListField.java:124)
>>> at
>>> com.sun.tools.xjc.generator.bean.field.UntypedListField.<init>(Untype
>>> dListField.java:107)
>>> at
>>> com.sun.tools.xjc.generator.bean.field.UntypedListFieldRenderer.gener
>>> ate(UntypedListFieldRenderer.java:72)
>>> at
>>> com.sun.tools.xjc.generator.bean.field.DefaultFieldRenderer.generate(
>>> DefaultFieldRenderer.java:79)
>>> at
>>> com.sun.tools.xjc.generator.bean.BeanGenerator.generateFieldDecl(Bean
>>> Generator.java:747)
>>> at
>>> com.sun.tools.xjc.generator.bean.BeanGenerator.generateClassBody(Bean
>>> Generator.java:535)
>>> at
>>> com.sun.tools.xjc.generator.bean.BeanGenerator.<init>(BeanGenerator.j
>>> ava:235)
>>> at
>>> com.sun.tools.xjc.generator.bean.BeanGenerator.generate(BeanGenerator
>>> .java:175)
>>> at com.sun.tools.xjc.model.Model.generateCode(Model.java:286)
>>> at com.sun.tools.xjc.Driver.run(Driver.java:343)
>>> at com.sun.tools.xjc.Driver.run(Driver.java:191)
>>> at com.sun.tools.xjc.Driver._main(Driver.java:116)
>>> at com.sun.tools.xjc.Driver.access$000(Driver.java:74)
>>> at com.sun.tools.xjc.Driver$1.run(Driver.java:96)
>>> Caused by: java.lang.NoSuchMethodException:
>>> javax.xml.bind.annotation.XmlElement
>>> Ref.required()
>>> at java.lang.Class.getDeclaredMethod(Unknown Source)
>>> at
>>> com.sun.codemodel.TypedAnnotationWriter.invoke(TypedAnnotationWriter.
>>> java:107)
>>> ... 17 more
>>>
>>> Thanks,
>>> John L.
>>>
>>> ---------------------------------------------------------------------
>>> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>>> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>>
>>>
>>>
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
>> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>>
>
> File "xjc_compiles.xsd":
> <?xml version="1.0" encoding="UTF-8"?>
> <schema
> xmlns="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.sudokucaptain.com/CommandString111609"
> xmlns:cs="http://www.sudokucaptain.com/CommandString111609">
>
> <element name="TestElement">
> <complexType>
> <choice>
> <element name="element1" />
> <element name="element2" />
> </choice>
> </complexType>
> </element>
>
> </schema>
>
> File "xjc_doesnt_compile.xsd":
> <?xml version="1.0" encoding="UTF-8"?>
> <schema
> xmlns="http://www.w3.org/2001/XMLSchema"
> targetNamespace="http://www.sudokucaptain.com/CommandString111609"
> xmlns:cs="http://www.sudokucaptain.com/CommandString111609">
>
> <element name="TestElement">
> <complexType>
> <choice minOccurs="0" maxOccurs="unbounded">
> <element name="element1" />
> <element name="element2" />
> </choice>
> </complexType>
> </element>
>
> </schema>
>
> The only difference between these two files is this line:
> <choice minOccurs="0" maxOccurs="unbounded">
>
> I think JAXB would have a hard time working with a List containing unrelated
> types. Their only common ancestor would be "Object". It would still be nice,
> however, if this could be done as it would offer an alternative to creating
> large groups of related types and substitution groups.
>
> John L.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_jaxb.dev.java.net
> For additional commands, e-mail: users-help_at_jaxb.dev.java.net
>
>