Hi Jorge, That exception text is wrong in this case. From looking at the actual code generation, you'd get this error when the items in an ordered collection (like yours) are out of order.
From looking at your first email, you appear to have a repeating sequence rather than just repeating elements. If you try to put this repeating sequence into a simple <collection> it's not going to work, because you're telling JiBX to expect a collection where the individual elements may repeat, but the <e1>s will all occur before any <e2>, etc. You've got several ways of handling this in JiBX. One would be to just make the collection unordered (with an ordered="false" attribute). That would be sufficient to let you marshal and unmarshal valid documents, but would mean that you could create invalid documents, if you (for instance) added two Type1 values to the collection right after each other. You could also handle this with nested collections, which would allow you to use JiBX to enforce the schema ordering. But using an inner collection to represent the items in the sequence is both overkill and confusing from the user standpoint. Why not instead just create a class to represent an instance of the sequence: class TypeSequence { private Type1 type1; private Type2 type2; private Type3 type3; ... } Then you just use a simple <structure> inside a <collection> in the binding: <collection field="children" factory="SomeElement.listFactory" usage="optional"> <structure type="TypeSequence> <structure field="type1"/> <structure field="type2"/> <structure field="type3" usage="optional"/> </structure> </collection> Doing it this way gives you a data structure that matches the schema rules, so it's easier to work with. Going a little further, if you really only have a single text value for each of these items, you could eliminate the Type1...n classes completely and just use String fields within the TypeSequence. Hope this gives you some ideas for going forward, - Dennis Dennis M. Sosnoski SOA and Web Services in Java Training and Consulting http://www.sosnoski.com - http://www.sosnoski.co.nz Seattle, WA +1-425-939-0576 - Wellington, NZ +64-4-298-6117 Quecas wrote: > Ok, I've managed to jibx comiple my mapping definition. Marshaling is also > working, but only for 1 iteration of the collection. As soon as I iterate > more than once, an exception is thrown; "org.jibx.runtime.JiBXException: > Collection item of type Type1 has no binding defined". > > my binding now looks somthing like: > > </binding> > <mapping name="e1" class="Type1"> > <value field="value" style="text" usage="required"/> > </mapping> > <mapping name="e2" class="Type2"> > <value field="value" style="text" usage="required"/> > </mapping> > <mapping name="e3" class="Type3"> > <value field="value" style="text" usage="optional"/> > </mapping> > > <structure name="someElement" field="someElement" usage="optional" > type="SomeElement"> > <collection field="children" factory="SomeElement.listFactory" > usage="optional"> > <structure type="Type1" usage="required"/> > <structure type="Type2" usage="required"/> > <structure type="Type3" usage="optional"/> > </collection> > </structure> > </binding> > > P.S. One thing is confusing with this error, especially with more than two > iterations; it seems that the exception is only thrown on the first element > of the last iteration. > > Has anyone out there had the same problem? > > Thanks > Jorge > > > > > > Quecas wrote: > >> Hi all, >> >> I have just started using jibx since I would like to (possibly) change >> from >> jaxb. >> >> I am having difficulty defining a mapping to correspond to a customers >> schema, especially a collection to a sequence that houses repeating >> elements, e.g. >> <root> >> <someElement> >> <e1>aaa</e1> (required) >> <e2>bbb</e2> (required) >> <e3>ccc</e3> (optional) >> <e1>ddd</e1> (required) >> <e2>eee</e2> (required) >> <e1>fff</e1> (required) >> <e2>ggg</e2> (required) >> <e3>hhh</e3> (optional) >> </someElement> >> </root> >> >> I have spent hours trying to get a mapping definitions that works, but to >> no >> avail - could someone please point me in the right direction. >> >> Thanks >> >> ------------------------------------------------------------------------- >> This SF.Net email is sponsored by the Moblin Your Move Developer's >> challenge >> Build the coolest Linux based applications with Moblin SDK & win great >> prizes >> Grand prize is a trip for two to an Open Source event anywhere in the >> world >> http://moblin-contest.org/redirect.php?banner_id=100&url=/ >> _______________________________________________ >> jibx-users mailing list >> jibx-users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/jibx-users >> >> >> > > ------------------------------------------------------------------------- This SF.Net email is sponsored by the Moblin Your Move Developer's challenge Build the coolest Linux based applications with Moblin SDK & win great prizes Grand prize is a trip for two to an Open Source event anywhere in the world http://moblin-contest.org/redirect.php?banner_id=100&url=/ _______________________________________________ jibx-users mailing list jibx-users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/jibx-users