Hi Werner,

> that should work out of the box. 

This sounds good. I also thought that it should work.

>When you used the XML code generator to
> generate the Java classes from your XML schema, it produced (so-called)
> descriptor classes as well. Did you compile those as well, and are these
> available on your classpath as well ?

Yes, the descriptor classes are generated and all generated classes are
on the classpath.

As I said the following code works fine:

***************************************************
Unmarshaller u = new Unmarshaller(RootXml.class)
Object o = u.unmarshal(reader)
***************************************************

But if I instantiate the Unmarshaller without a "root class" argument
(using the empty constructor), the error message

"The class for the root element 'root' could not be found."

arises.

My XML-Schema also have a namespace. I don't know whether this is
important. But my XML sources have a the same namespace of course.

What more information you need to analyze this matter?


All the best
/roman






> Regards
> Werner Guttmann
> 
> Roman Klaehne wrote:
>> Hi,
>>
>>
>> I am using the Castor Source Code Generator together with Castor
>> Unmarshaller.
>>
>> For the simple XML schema:
>>
>> *******************************************************************
>> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
>> elementFormDefault="qualified" attributeFormDefault="unqualified">
>>  <xs:element name="root"/>
>>  <xs:element name="element"/>
>> </xs:schema>
>> *******************************************************************
>>
>> I have such a binding file:
>>
>> **************************************************
>> <binding defaultBindingType="type">
>>   <elementBinding name="root">
>>     <java-class name="RootXml"/>
>>   </elementBinding>
>>   <elementBinding name="element">
>>     <java-class name="ElementXml"/>
>>   </elementBinding>
>> </binding>
>> **************************************************
>>
>> After generating the source code for the schema using the binding file
>> above I want to unmarshall XML sources to the repective Java classes.
>>
>> When doing
>>
>> ***************************************************
>> Unmarshaller u = new Unmarshaller(RootXml.class)
>> Object o = u.unmarshal(reader)
>> ***************************************************
>>
>> the object o is correctly unmarshalled and is an instance of class
>> RootXml (as it should be).
>>
>> But when using the default constructor of Unmarshaller (without giving
>> the root class RootXml.class) I get the following error message:
>>
>> "The class for the root element 'root' could not be found."
>>
>> My intention is to have XML documents with root elements "<root>" or
>> "<element>" and when calling Unmarshaller.unmarshal() I don't know the
>> type of the XML source (root or element). That means I want to do the
>> following:
>>
>> ****************************************
>> Unmarshaller u = new Unmarshaller();
>> Object o = u.unmarshal();
>>
>> if(o instanceof RootXml) {
>>   doRoot();
>> }
>> else if(o instanceof ElementXml) {
>>   doElement();
>> }
>> ****************************************
>>
>> Do you have any ideas to get this working?
>>
>>
>> Thanks in advance and best regards
>> /Roman Klähne
>> (ZIB Berlin)
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> ---------------------------------------------------------------------
>> 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
> 
> 


---------------------------------------------------------------------
To unsubscribe from this list, please visit:

    http://xircles.codehaus.org/manage_email


Reply via email to