Hi Roman,

I just got your sample working (against SVN trunk) by changing the code
to unmarshal things to:

XMLContext context = new XMLContext();
context.addPackage("your.package");

Unmarshaller unmarshaller = context.createUnmarshaller();

Reader source = new FileReader(exampleXml);
Object object = unmarshaller.unmarshal(source);

I hope this helps.

Regards
Werner

Roman Klaehne wrote:
> Hi Werner,
> 
> 
> before creating a Jira issue I want to be sure whether I did all correct
> and that it is really a bug. It is that I need the functionality as soon
> as possible and I think it will take a quite long time for resolving the
> issue.
> 
> For this reason I give you exactly the data of my simple test case,
> plain in this mail. It would be interesting whether you can reproduce
> the failure:
> 
> The data:
> 
> ########## XML-Schema #####################
> ###########################################
> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema";
> elementFormDefault="qualified" attributeFormDefault="unqualified">
>   <xs:element name="oneElement">
>     <xs:complexType/>
>   </xs:element>
>   <xs:element name="otherElement">
>     <xs:complexType/>
>   </xs:element>
> </xs:schema>
> ########################################
> ########################################
> 
> ########## Binding file ################
> ########################################
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <binding defaultBindingType="type">
>   <package>
>     <name>castorgen</name>
>     <namespace></namespace>
>   </package>
> 
>   <elementBinding name="oneElement">
>     <java-class name="OneElementXml"/>
>   </elementBinding>
>   <elementBinding name="otherElement">
>     <java-class name="OtherElementXml"/>
>   </elementBinding>
> </binding>
> ########################################
> ########################################
> 
> ########## exampleXml ##################
> ########################################
> <?xml version="1.0" encoding="ISO-8859-1"?>
> <oneElement>
> </oneElement>
> ########################################
> ########################################
> 
> The call to Unmarshaller producing the exception:
> 
> ########################################
> ########################################
> Reader source = new FileReader(exampleXml);
> Unmarshaller unm = new Unmarshaller();
> Object o = unm.unmarshal(source);
> ########################################
> ########################################
> 
> The used java libraries are listed below.
> 
> 
> Best Regards
> /Roman
> 
> Werner Guttmann schrieb:
>> Sorry, Roman, but no attachments to any of the mailing lists, as there's
>> no guarantee that they arrive at the other end.
>>
>> As already suggested, can you please create a new Jira issue and attach
>> your files ?
>>
>> Regards
>> Werner
>>
>> Roman Klaehne wrote:
>>> Hi Werner,
>>>
>>>
>>> in the attachment you will find a very simple Eclipse project, containing
>>>
>>> (i) a simple XML Schema (in xml-schema/)
>>>
>>> (ii) a binding file for the schema (in xml-schema/castor-bindings)
>>>
>>> (iii) the generated class files (in lib/castorgen.jar)
>>>
>>> (iv) a simple class castor.test.Test (in src/)
>>>
>>> (v) two xml instances in (xml-instances/)
>>>
>>> (vi) an ant build file containing the tasks for generating the java
>>> sources and for compiling the Test class.
>>>
>>> The following libraries has to be on the classpath (see .classpath) and
>>> are not included in the attached ZIP file:
>>>
>>> ant-contrib.jar
>>> castor-1.2-anttasks.jar
>>> castor-1.2-codegen.jar
>>> castor-1.2.jar
>>> castor-1.2-xml.jar
>>> castor-1.2-xml-schema.jar
>>> commons-logging.jar
>>> serializer.jar
>>> velocity-dep.jar
>>> xalan-2.7.0.jar
>>> xercesImpl.jar
>>> xml-apis.jar
>>>
>>> When running the test class (specifying an xml instance, e.g.,
>>> xml-instances/oneElement.xml) the following exception occurs:
>>>
>>> Exception in thread "main" org.exolab.castor.xml.MarshalException: The
>>> class for the root element 'oneElement' could not be found.{File: [not
>>> available]; line: 2; column: 13}
>>>     at
>>> org.exolab.castor.xml.Unmarshaller.convertSAXExceptionToMarshalException(Unmarshaller.java:761)
>>>     at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:727)
>>>     at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:616)
>>>     at castor.test.Test.main(Test.java:23)
>>> Caused by: org.xml.sax.SAXException: The class for the root element
>>> 'oneElement' could not be found.
>>>     at
>>> org.exolab.castor.xml.UnmarshalHandler.startElement(UnmarshalHandler.java:1589)
>>> .....................
>>>
>>> What is going wrong?
>>>
>>>
>>> Best Regards!
>>> /Roman
>>>
>>>
>>>
>>>
>>>
>>>
>>> Werner Guttmann schrieb:
>>>> Roman,
>>>>
>>>> a test case attached to a Jira issue. I don't see a reason why this does
>>>> not work. Can you as such please create an issue at
>>>>
>>>> http://jira.codehaus.org/browse/CASTOR
>>>>
>>>> and attach a fully working test case. If you are using Maven, there's an
>>>> archetype available to assist you with this (as documented at
>>>> http://castor.org/maven-archetypes.html).
>>>>
>>>> Regards
>>>> Werner
>>>>
>>>> Roman Klaehne wrote:
>>>>> 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
>>>>>
>>>>>
>>>> ---------------------------------------------------------------------
>>>> 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
>>
>>
> 
> 
> ---------------------------------------------------------------------
> 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