Hi Heikki, I had a similar problem: http://www.mail-archive.com/[email protected]/msg03316.html
... which we solved like this: http://www.mail-archive.com/[email protected]/msg03319.html So basically, we don't have the schema resources in the context classloader and load them explicitly. Write me a private mail, if you want to have the source code of our XmlBeanFactory. Best wishes, Andreas -----Urspr?ngliche Nachricht----- Von: haddati [mailto:[email protected]] Gesendet: Donnerstag, 13. August 2009 18:51 An: [email protected] Betreff: RE: ClassCastException when parsing using SchemaTypeLoader Hi folks, Hope this topic will be read. I'm getting a similar problem but using newIstance instead of parse. Here is my code: <code> SchemaTypeLoader stl = XmlBeans.typeLoaderUnion( new SchemaTypeLoader[] { x.y.MyPrefixEventNameDocument.type.getTypeSystem(), XmlBeans.getContextTypeLoader()} ) ; SchemaType st = stl.findDocumentType(new QName("","EventName","MyPrefix")); //I don't use namespace EventName evt = (MyPrefixEventNameDocument)stl.newInstance(st, null); </code> The problem is that I have another class a.b.AnotherPrefixEventNameDocument (same root element in 2 XML buffers), so I'm getting this exception: java.lang.ClassCastException: a.b.impl.AnotherPrefixEventNameDocumentImpl Can you help please?? (I'd like to avoid using namespaces if possible :) ) Said Radu Preotiuc-Pietro wrote: > > Heikki, > You seem to have a good understanding of the issue. The problem here is > that XmlBeans tries to load the Java classes from the same classloader > as the Schema types, so if you load the Schema types without a > classloader, then the Java types cannot be loaded, so you get basically > XmlObject with runtime type "D=topLevel". > > Try replacing > stl = XmlBeans.typeLoaderUnion ( new SchemaTypeLoader [ ] { > XmlBeans.getBuiltinTypeSystem ( ), stl } ) ; > > > with > stl = XmlBeans.typeLoaderUnion( new SchemaTypeLoader [] { > TopLevelElementDocumentPostFix.type.getTypeSystem(), > XmlBeans.getContextTypeLoader()} ) ; > > Radu > ________________________________ > > From: Heikki Doeleman [mailto:[email protected]] > Sent: Wednesday, November 15, 2006 2:49 AM > To: [email protected] > Subject: ClassCastException when parsing using SchemaTypeLoader > > > > Hi there, > > I have 2 jars generated with scomp. In one of them, all the class names > are postfixed to avoid clashing with class names from the other one > (because their respective schemas have the same names for top level > elements, and no namespace). > > Now, trying to parse in the usual way leads to a ClassCastException, as > is described in earlier threads in this newsgroup : > > TopLevelElementDocumentPostFix toplevel = TopLevelElementDocumentPostFix > .Factory.parse ( xml ); > > > OK, so to avoid this exception I tried using a SchemaTypeLoader telling > it which jar to use, as follows : > > File[ ] schemaPath = { new File ( > "the-path-to-the-jar/xmltypes-postfixed.jar" ) } ; > > SchemaTypeLoader stl = XmlBeans.typeLoaderForResource ( > XmlBeans.resourceLoaderForPath ( schemaPath ) ) ; > stl = XmlBeans.typeLoaderUnion ( new SchemaTypeLoader [ ] { > XmlBeans.getBuiltinTypeSystem ( ), stl } ) ; > > System.out.println ( > TopLevelElementDocumentPostFix.type.toString ( ) ) ; > TopLevelElementDocumentPostFix toplevel = ( > TopLevelElementDocumentPostFix )stl.parse ( xml , > TopLevelElementDocumentPostFix.type , null ) ; > > This last line gives a ClassCastException. > The output from the System.out is the string "D=topLevel" (i.e. the name > of the top level element in my xml document). > > Does anyone see what I am doing wrong ? > > thank you very much, > Heikki Doeleman > > _______________________________________________________________________ > Notice: This email message, together with any attachments, may contain > information of BEA Systems, Inc., its subsidiaries and affiliated > entities, that may be confidential, proprietary, copyrighted and/or > legally privileged, and is intended solely for the use of the individual > or entity named in this message. If you are not the intended recipient, > and have received this message in error, please immediately return this > by email and then delete it. > > -- --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

