Hi, Arnaud and John,

I modified the code as John mentioned, but I still have the same problem
unfortunalely. 

Damien

Le mar 25/02/2003 � 22:18, Arnaud Blandin a �crit :
> Hi John,
> 
> Your fix is ok, I committed it in CVS.
> Thanks for providing it.
> Arnaud
> 
> > -----Original Message-----
> > From: John Weir [mailto:[EMAIL PROTECTED]
> > Sent: Sunday, February 23, 2003 11:10 PM
> > To: [EMAIL PROTECTED]
> > Subject: Re: [castor-dev] Parsing exception of a xsd:Time
> > 
> > Damien / Keith,
> > 
> > I had a similar problem, specifically with Date processing. I had a
> type
> > that extended date to add an ID Attribute and it failed to unmarshall.
> > 
> > I have attached the diff -u output for your perusal. This worked for
> me.
> > 
> > Hope it helps
> > 
> > John
> > 
> > 
> > 
> > Index: DescriptorSourceFactory.java
> > ===================================================================
> > RCS file:
> > /cvs/castor/castor/src/main/org/exolab/castor/builder/DescriptorSource
> > Factory.java,v
> > retrieving revision 1.91
> > diff -u -r1.91 DescriptorSourceFactory.java
> > 
> > @@ -394,6 +394,9 @@
> >                 boolean isAttribute =
> >                         (member.getNodeType() ==
> FieldInfo.ATTRIBUTE_TYPE);
> > 
> > +        boolean isText =
> > +            (member.getNodeType() == FieldInfo.TEXT_TYPE);
> > +
> >                 if (xsType.getType() == XSType.CLASS)
> >                         isEnumerated = ((XSClass)
> xsType).isEnumerated();
> > 
> > @@ -485,7 +490,7 @@
> >                         //i.e add specific FieldHandler in
> > org.exolab.castor.xml
> > .handlers
> >                         //dateTime is not concerned by the following
> since
> > it is
> >  directly
> >                         //handle by DateFieldHandler
> > -                       if (isAttribute
> > +                       if ((isAttribute || isText)
> >                                 && xsType.isDateTime()
> >                                 && xsType.getType() !=
> xsType.DATETIME_TYPE)
> > {
> >                                 jsc.append(".parse");
> > 
> > > -----Original Message-----
> > > From: Keith Visco [mailto:[EMAIL PROTECTED]
> > > Sent: 21 February 2003 21:53
> > > To: [EMAIL PROTECTED]
> > > Subject: Re: [castor-dev] Parsing exception of a xsd:Time
> > >
> > >
> > >
> > > Hi Damien,
> > >
> > > Can you file this as a bug (http://bugzilla.exolab.org). Castor is
> > > probably not handling the extension correctly when simpleContent is
> > > involved. It's probably an issue with the default
> > > XMLClassDescriptorImpl.
> > >
> > > --Keith
> > >
> > >
> > >
> > > Damien GAUTIER-DE-LAHAUT wrote:
> > > >
> > > > Hello,
> > > >
> > > > When unmarshalling an xml file I get the following exception :
> > > > -------------------------------------------------------------
> > > > org.xml.sax.SAXException: unable to add text content to CTOT due
> to the
> > > > following error: java.lang.IllegalStateException:
> > > > java.lang.ClassCastException{file: ; line: 43; column: 98}
> > > >
> > > > The line in question is :
> > > > ------------------------
> > > >
> > > > <CTOT Source="Damien"
> > > > ModificationTime="14:20:00.456">11:08:06.123</CTOT>
> > > >
> > > > with column 98 is just after the last character of this line
> > > >
> > > > The type of this Element is complex :
> > > > -----------------------------------
> > > >
> > > > the content of the element is an xsd:time
> > > > and the element has 2 attributes, one is string and the other is
> of type
> > > > xsd:time.
> > > >
> > > > <xsd:element name="CTOT" type="CDMTimeType" minOccurs="0"/>
> > > >
> > > > <xsd:complexType name="CDMTimeType">
> > > >         <xsd:simpleContent>
> > > >                 <xsd:extension base="xsd:time">
> > > >                         <xsd:attribute name="Source"
> > > type="xsd:string" use="optional"/>
> > > >                         <xsd:attribute name="ModificationTime"
> > > type="xsd:time"
> > > > use="optional"/>
> > > >                 </xsd:extension>
> > > >         </xsd:simpleContent>
> > > > </xsd:complexType>
> > > >
> > > > Some comment :
> > > > ------------
> > > >
> > > > When I suppress the content, and consequently it remains
> > > >
> > > > <CTOT Source="Damien" ModificationTime="14:20:00.456"></CTOT>
> > > >
> > > > it unmarshalls correctly (and when I marshall and print the
> result, I
> > > > get exactly my original file, excellent)
> > > >
> > > > Then I set the value Programmally :
> > > >
> > > > org.exolab.castor.types.Time tm = new
> > > > org.exolab.castor.types.Time("11:08:06.123");
> > > > ....getCTOT().setContent(tm);
> > > >
> > > > It works and then, on the output I then get :
> > > >
> > > > <CTOT Source="Damien"
> > > > ModificationTime="14:20:00.456">11:08:06.123</CTOT>
> > > >
> > > > And this is precisely what I tried to parse at the begining but it
> > > > produced exception.
> > > >
> > > > Can someone help me to understand this problem.
> > > >
> > > > I thank you a lot
> > > >
> > > > Damien Gautier de Lahaut
> > > >
> > > > -----------------------------------------------------------
> > > > 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