Doug, can you please create a new Jira issue for this your problem at
http://jira.codehaus.org/browse/CASTOR and attach all files. Can I take it that you followed the bug submission guidelines available at ... http://www.castor.org/how-to-submit-an-xml-bug.html Regards Werner Doug Palmer wrote: > I'm using subtitution groups to allow a configuration file to have a > list of different configuration elements. If I strip down the schema to > the attached schema (Ce and Be form a substitution group) and generate > the code, when I attempt to unmarshal something like > > <De xmlns="http://www.csiro.org/castorprob"> > <Be/> > </De> > > then all is OK. However, attempting to unmarshal something like > > <De xmlns="http://www.csiro.org/castorprob"> > <Be/> > <Ce/> > </De> > > causes the exception: > > Element with name Ce passed to type De in incorrect order; It is not > allowed to be the last element of this sequence!{File: [not available]; > line: 4; column: 8} > > Attached is a schema, ant build file, code and test cases to reproduce > this behavior. Put the .xsd/.xml files is an "xml" subdirectory, > Test.java in a src/org/csiro/castorprob subdirectory and add the castor, > commons-logging and xercesImpl jars to the lib subdirectory. Then do > "ant run" to reproduce the results. > > > > > ------------------------------------------------------------------------ > > package org.csiro.castorprob; > > import java.io.*; > import java.net.*; > import org.exolab.castor.xml.*; > import org.exolab.castor.xml.util.XMLClassDescriptorResolverImpl; > > /** > * Test reading an XML document. > * > * @author Doug Palmer > * > */ > public class Test { > private XMLClassDescriptorResolverImpl resolver; > > public Test() throws ResolverException { > this.resolver = new XMLClassDescriptorResolverImpl(); > this.resolver.addClass(Be.class.getName()); > this.resolver.addClass(Ce.class.getName()); > this.resolver.addClass(De.class.getName()); > } > > public Object read(URL url) throws IOException, ValidationException, > MarshalException { > Reader reader = new InputStreamReader(url.openStream()); > Unmarshaller unmarshaller = new Unmarshaller(); > unmarshaller.setResolver(this.resolver); > return unmarshaller.unmarshal(reader); > } > > public static void main(String[] args) { > try { > Test test = new Test(); > > for (String arg: args) { > try { > URL file = new URL(arg); > System.out.println(test.read(file)); > } catch (Exception ex) { > ex.printStackTrace(System.err); > } > } > } catch (Exception ex) { > ex.printStackTrace(System.err); > } > } > > } > > > > ------------------------------------------------------------------------ > > --------------------------------------------------------------------- > To unsubscribe from this list please visit: > > http://xircles.codehaus.org/manage_email --------------------------------------------------------------------- To unsubscribe from this list please visit: http://xircles.codehaus.org/manage_email

