Hi Scott,

Have you tried 0.9.5.3 RC1?

An xsi:type bug affecting root elements was fixed in that release and it
may solve the problem you face.

Thanks,

--Keith

"Liu, Scott" wrote:
> 
> Hi, all,
> 
> I am using castor framework in a web service project. I have built a
> prototype involving Axis, castor and .NET, which worked pretty well.
> Thanks to all, who has contributed to the success of the castor project.
> 
> I have moved from prototyping to the actual project recently and
> generated server side code using Castor. But I encountered a problem in
> unmarshalling an inherited xml element on the server side when I ran my
> application.
> 
> Basically there is a base element with type of "Record" and several
> elements with types extending the base type of "Record" (see below for
> the schema section). I have a .NET client which marshaled it
> successfully as below in the soap request.
> 
>          <soap:Body>
>             <addRequest xmlns="urn:webservices">
>                <record xmlns:q1="urn:crm" xsi:type="q1:Event">
>                   <q1:title>A test event</q1:title>
> 
> <q1:startDate>2004-02-21T01:01:01.008:00</q1:startDate>
>               </record>
>             </addRequest>
>          </soap:Body>
> 
> Notice that the body contains an element "record" with instance type of
> "Event".
> 
> The soap request then was posted to the server and I was expecting
> Castor would recognize the "record" element with schema instance
> "q1:Event" and unmarshal it using "EventDescriptor" class instead of the
> "RecordDescriptor" class. Since "Record" descriptor does not have
> elements defined in the "event" descriptor and it failed with the
> following message as indicated in the soap response.
> 
>          <soapenv:Body>
>             <soapenv:Fault>
>                <faultcode>soapenv:Server.userException</faultcode>
>                <faultstring>org.xml.sax.SAXException: Unable to marshall
> between XML and Castor Objects :unable to find FieldDescriptor for
> &apos;title&apos; in ClassDescriptor of Record</faultstring>
>                <detail>
>                   <ns1:stackTrace ................. />
>                </detail>
>             </soapenv:Fault>
>          </soapenv:Body>
> 
> Can anyone tell me how to solve this inheritance issue in castor
> marshalling/unmarshalling process?
> 
> Any hint or suggestion is extremely welcome.
> 
> Thanks,
> 
> Scott
> 
> P.S. the schema involving the base record and the elements inherited
> from the it.
> 
>         <complexType name="Record" abstract="true">
>                 <attribute name="key" type="xsd:string"/>
>         </complexType>
>         <element name="record" type="dto:Record"/>
> 
>         <xsd:element name="Event" type="act:Event"/>
>         <xsd:complexType name="Event">
>                 <xsd:complexContent>
>                         <xsd:extension base="dto:Record">
>                                 <xsd:sequence>
>                                         <xsd:element name="title"
> type="xsd:string"/>
>                                         <xsd:element name="startDate"
> type="xsd:dateTime" minOccurs="0"/>
>                                 </xsd:sequence>
>                         </xsd:extension>
>                 </xsd:complexContent>
>         </xsd:complexType>
> 
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
>         unsubscribe castor-dev

----------------------------------------------------------- 
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
        unsubscribe castor-dev

Reply via email to