Hi Roman,
Roman Klaehne wrote:
> Hi Werner
>
>
>>> But I have to define a global element as an unbounded sequence, so that
>>> there is no good workaround for this.
>> Why not ? What is the exact reason you have to set min-/maxOccurs on the
>> sequence rather than the enclosed element definitions ?
>
> Ok, in my special case, the sequence consists of one element only. So I
> can change
>
> element - sequence(0, n) - element
>
> to
> element - sequence(1, 1) - element(0, n)
>
> But if the sequence contains more than one element I cant do
>
> element - sequence(1, 1) -(element, element, ...) (0, n)
>
> A workaround would be
>
> element - sequence(1, 1) - sequence(1, n) (element, ....)
>
> Ok, for my project it works fine if a put the cardinalities to the
> element and not to the sequence.
If that's okay for you, please stay with this. Feel free to open a new
Jira issue, though, with a test case attached that allows us to replay
the problem.
> Another problem occurs when unmarshalling XMLs with more than one
> namespace. With Castor-Version 1.1.2 it works but with higher versions
> there are problems. It seems that order of namespace declarations at the
> root element is of importance. If I write the root element like
>
> <root xmlns="first/namespace" xmlns:other="other/namespace">
>
> the XML is read correctly. But if a write
>
> <root xmlns:other="other/namespace" xmlns="first/namespace">
>
> there are errors like
>
> The field '_element' (whose xml name is 'element') is a required field
> of class com.castorgen.ElementXml
>
> although the XML satisfies the schema.
>
> Do you know whether there are changes in higher version that handle
> namespace declaration in another way?
Not to my knowledge. Question: have you tried this with 1.2.x ? Or is
this really a regression problem introduced with 1.3 rc1 only ? If so,
please file a new Jira issue with a test case attached.
> My problem is, that for my first problem I need the newest version
> (1.3rc1), but my second problem is only solved by an earlier version
> (e.g. 1.1.2).
I am three issues away of making 1.3 GA available; in other words, this
is the time to make any regression issues known to us.
>
> Best regards
> /Roman
>
>
>
>
>
>>> Do you have any ideas regarding this strange behaviour?
>> No, not really. I am not sure whether this is a bug or not.
>>
>>> Thank you
>>> /roman
>>>
>>> Werner Guttmann schrieb:
>>>> 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
>>>>
>>>>
>>> ---------------------------------------------------------------------
>>> 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