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

Reply via email to