Keith,

I made sure that I had elementFormDefault="qualified" and then I regenerated
and I still get the same problem. However, to test what you had said I tried
to umarshall a String of

<Person xmlns="http://www.fineos.com/XMLSchema/ta/garage";>
         <oid>PE:3003:34456</oid>
</Person>

This would work ok. However this is not what is output by Castors own
marhsaller. Is there anyway of changing that ?

Thanks,

Brian

-----Original Message-----
From: Keith Visco [mailto:[EMAIL PROTECTED]
Sent: 03 November 2003 15:37
To: [EMAIL PROTECTED]
Subject: Re: [castor-dev] Marshalled Object Not Unmarshalled correclty



Hi Brian,

Since you are using a namespace prefix on the oid element, it may be a
namespace issue. Since the oid element definition is not top-level, then
it does not automatically inherit the targetNamespace. Make sure you
have elementFormDefault="qualified" on the <schema> element. Otherwise
the oid element does not belong to the "ta" namespace. This would
explain why Castor is having trouble matching "ta:oid" with "oid", since
they belong to different namespaces.

--Keith

"Brian Dillon (ext. 944)" wrote:
> 
> Hi,
> 
> This is still a problem for me, it may mean not being able to use the
latest
> version of Castor. For clarity  I have re-stated my problem here;
> 
> I have a Person which extends BusinessEntity the XSD extracts are;
> 
>         <xsd:complexType name="Person">
>                 <xsd:complexContent>
>                         <xsd:extension base="ta:BusinessEntity">
>                                 <xsd:sequence>
>                                         <xsd:element name="dateOfBirth"
> type="xsd:dateTime" minOccurs="0"/>
>                                         <xsd:element name="firstName"
> type="xsd:string" minOccurs="0"/>
>                                 </xsd:sequence>
>                         </xsd:extension>
>                 </xsd:complexContent>
>         </xsd:complexType>
> 
> And
> 
>         <xsd:complexType name="BusinessEntity" abstract="true">
>                 <xsd:sequence>
>                         <xsd:element name="oid" type="ta:Oid"/>
>                 </xsd:sequence>
>         </xsd:complexType>
> 
> If I marshall this (using Castor 0.9.5.2) I get;
> 
> <Person xmlns:ta="http://www.fineos.com/XMLSchema/ta";
> xmlns="http://www.fineos.com/XMLSchema/ta/garage";>
>         <ta:oid>PE:3003:34456</ta:oid>
>         ...other tags
> </Person>
> 
> However When I try to unmarshall I get a validation exception;
> 
>  Error:
> 
>
com.fineos.ta.test.driver.OTestCases.XMLToJavaBindingTests.XMLToJavaBindingT
>  ests_CastorBusinessEntityValidationException: oid is a required field.;
> 
> I have regenerated the classes and they look ok, PersonDescriptor extends
> BusinessEntityDescriptor and the Namespaces look ok.
> 
>         public class PersonDescriptor extends
> com.fineos.ta.xmlTypes.castor.BusinessEntityDescriptor {
> 
> and
> 
>         public class BusinessEntityDescriptor extends
> org.exolab.castor.xml.util.XMLClassDescriptorImpl {
> 
> The generated constructor for PersonDescriptor is;
> 
>     public PersonDescriptor() {
>         super();
>         setExtendsWithoutFlatten(new
> com.fineos.ta.xmlTypes.castor.BusinessEntityDescriptor());
>         nsURI = "http://www.fineos.com/XMLSchema/ta/garage";;
>         xmlName = "Person";
> 
> 
> and for BusinessEntityDescriptor is;
> 
>     public BusinessEntityDescriptor() {
>         super();
>         nsURI = "http://www.fineos.com/XMLSchema/ta";;
>         xmlName = "BusinessEntity";
> 
> 
> The definition of the OID is defined in BusinessEntityDescriptor as;
> 
>         //-- _oid
>         desc = new
>
org.exolab.castor.xml.util.XMLFieldDescriptorImpl(com.fineos.ta.xmlTypes.cas
> tor.Oid.class, "_oid", "oid", org.exolab.castor.xml.NodeType.Element);
> 
> Anyone got any Ideas ? Has this happened before ?
> 
> Thanks for you're help,
> 
> Brian
> 
> -----Original Message-----
> From: Keith Visco [mailto:[EMAIL PROTECTED]
> Sent: 17 October 2003 20:17
> To: [EMAIL PROTECTED]
> Subject: Re: [castor-dev] Marshalled Object Not Unmarshalled correclty
> 
> Brian,
> 
> The class descriptors generated with Castor 0.9.3 may not have been
> generated properly, with the correct namespaces for you instances. You
> might want to try re-generating the source code with Castor 0.9.5.2.
> 
> --Keith
> 
> "Brian Dillon (ext. 944)" wrote:
> >
> > Hi,
> >
> > Looking into this further it seems that if you unmarshall like;
> >
> >        Unmarshaller unmar = new
> > Unmarshaller(com.fineos.ta.test.garage.bo.xmlTypes.castor.Person.class);
> >         unmar.setIgnoreExtraElements(true);
> >
> > Where the PersonDescriptor extends BusinessEntityDescriptor then the OID
> > (which is defined in the BusinessEntity) is ignored and therefore we get
a
> > ValidationException like;
> >
> > Error:
> >
>
com.fineos.ta.test.driver.OTestCases.XMLToJavaBindingTests.XMLToJavaBindingT
> > ests_CastorBusinessEntityValidationException: oid is a required field.;
> >
> >
> > If 'unmar.setIgnoreExtraElements(true);' is commented out then we get
the
> > exception';
> >
> > Error:
> >
>
com.fineos.ta.test.driver.OTestCases.XMLToJavaBindingTests.XMLToJavaBindingT
> > ests_CastorBusinessEntityorg.xml.sax.SAXException: unable to find
> > FieldDescriptor for 'oid' in ClassDescriptor of Person
> >
> > Does anyone know whether there was a bug introduced in version 0.9.5.2
to
> do
> > with inheritance or is there someting else I should be trying.
> >
> > thanks,
> >
> > Brian
> > -----Original Message-----
> > From: Brian Dillon (ext. 944) [mailto:[EMAIL PROTECTED]
> > Sent: 17 October 2003 14:38
> > To: [EMAIL PROTECTED]
> > Subject: [castor-dev] Marshalled Object Not Unmarshalled correclty
> >
> > Hi,
> >
> > I have recently (in the past couple of days) moved from Castor 0.9.3.21
to
> > 0.9.5.2. I am now seeing an issue were an object marhsalled by castor
as;
> >
> > <Person xmlns="http://www.fineos.com/XMLSchema/ta/garage";>
> > <ns1:oid
> > xmlns:ns1="http://www.fineos.com/XMLSchema/ta";>PE:3003:34456</ns1:oid>
> > </Person>
> >
> > Where Person extends an Object called BusinessEntity;
> >
> > If I try to unmarshall this as a Person I get a validation exception;
> >
> > Error:
> >
>
com.fineos.ta.test.driver.OTestCases.XMLToJavaBindingTests.XMLToJavaBindingT
> > ests_CastorBusinessEntityValidationException: oid is a required field.;
> >
> > Is there some new issue to do with namespaces (for extended types) and
> > unmarshalling that I should know about ?
> >
> > Thanks,
> >
> > Brian
> >
> > **********************************************************************
> > The information contained in this e-mail is confidential, may be
> privileged
> > and is intended only for the user of the recipient named above.  If you
> are
> > not the intended recipient or a representative of the intended
recipient,
> > you have received this e-mail in error and must not copy, use or
disclose
> > the contents of this e-mail to anybody else.  If you have received this
> > e-mail in error, please notify the sender immediately by return e-mail
and
> > permanently delete the copy you received.  This e-mail has been swept
for
> > computer viruses.  However, you should carry out your own virus checks.
> > Registered in Ireland, No. 205721.  http://www.FINEOS.com
> > **********************************************************************
> >
> > -----------------------------------------------------------
> > 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
> 
> -----------------------------------------------------------
> 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
> 
> -----------------------------------------------------------
> 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

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

Reply via email to