Thanks a lot for your quick response! I didn't realize that the mapping file was not needed as the descriptors were already generated. So only if there are changes to the schema at a later date, would I need to use a mapping file because I would not want to regenerate the source again (because of the changes for the marshalling code that I wrote) Thanks for developing such a useful product - I'm discovering that it really makes my task easier.
-----Original Message-----
From: Keith Visco [mailto:[EMAIL PROTECTED]
Sent: Mon 6/7/2004 12:07 PM
To: [EMAIL PROTECTED]
Cc:
Subject: Re: [castor-user] RE: how do I use mapping and a java.util.Date?
Nischala,
The xs:date type is handled by org.exolab.castor.types.Date. It has a
built in descriptor class, org.exolab.castor.types.DateDescriptor. It
can't be mapped very well with the mapping file, which is why we
provided the built-in descriptor.
If you really want to use a mapping file and not the built-in
descriptors, you can write your own custom FieldHandler that handles the
conversion to and from a string (by simply deferring to the Date.parse()
and Date.toString() methods).
--Keith
Nischala Kale wrote:
>
> Thanks a lot for your response!
> I am trying to do a java-xml mapping - so no RDBMS involved here.
> I have a schema, and I generated classes using the SourceGenerator.
Incidentally, the schema has a xd:date type.
>
> Then, I tried to generate the mapping file automatically using the
MappingTool and the generated classes. The tool generated the mapping as previously
posted.
> <class cst:name="com.ccmc.cure.xml.procClaims.Claim">
>
> <field cst:name="loss_date" cst:type="org.exolab.castor.types.Date"
cst:required="true">
>
> <bind-xml name="loss_date" node="element"/>
>
> </field>
>
> </class>
>
> <class cst:name="org.exolab.castor.types.Date">
>
> <description>Default mapping for class
org.exolab.castor.types.Date</description>
>
> <map-to cst:xml="date"/>
>
> <field cst:name="content" cst:type="java.lang.String">
>
> <bind-xml name="content" node="text"/>
>
> </field>
>
> </class>
>
> The problem is that there is no getContent() method on
org.exolab.castor.types.Date.
>
> Plus, I wanted to be able to output the value of a java.util.Date as the
loss_date. So in the java code I created the loss_date field using the
org.exolab.castor.types.Date constructor that accepts a java.util.Date.
>
> So the question now is, since there is no getContent method on
org.exolab.castor.types.Date, do I have to modify the mapping file to use a different
method instead? If so, is it the toString method?
>
>
> Thanks
> Nischala
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> -----Original Message-----
> From: Werner Guttmann [mailto:[EMAIL PROTECTED]
> Sent: Sat 6/5/2004 4:01 AM
> To: [EMAIL PROTECTED]
> Cc:
> Subject: Re: [castor-user] RE: how do I use mapping and a java.util.Date?
>
> Nischala,
>
> if you asking about how to use the type org.exolab.castor.types.Date
when mapping classes to a RDBMS schema, I am afraid this won't work out of
> the box .. ;-). Let me know what your (real) intention is, and we'll
take care of your problem. It has just happened that we (the committers) discussed this
> very issue a couple of weeks ago, and the fix should be
straightforward.
>
> Regards
> Werner
>
> . On Fri, 4 Jun 2004 16:30:19 -0700, Nischala Kale wrote:
>
> >Looks like the link I posted contained an email address, and so was
blocked.
> >Here is the question that was posted on castor-dev mailing list,
message number msg05772
> >==
> >Hi,
> >
> >I have a schema that defines an xsd:date element. When I generate
my objects from my
> >xml file, the representative object for xsd:date is
org.exolab.castor.types.Date.
> >
> >Next, I using the MappingTool utility to generate a mapping.xml
file, as I eventually
> >want to map these objects to an RDBMS. A snippet of the nicely
formatted mapping.xml
> >file follows:
> >
> ><?xml version="1.0"?>
> ><mapping xmlns="http://castor.exolab.org/";>
> > <description>Castor generated mapping file</description>
> >
> > <class name="org.exolab.castor.types.Date" identity=""
access="shared">
> > <description>Default mapping for class
org.exolab.castor.types.Date</des
> >cription>
> > <map-to xml="date"/>
> > <field name="content" type="java.lang.String">
> > <bind-xml name="content" node="text"/>
> > </field>
> > </class>
> >
> >This looks ok to me. Anyhow, I then run my program and it fails on
the setMapping()
> >method as follows:
> >
> >
> >org.exolab.castor.mapping.MappingException: The method getContent
in class org.e
> >xolab.castor.types.Date accepting/returning object of type class
java.lang.Strin
> >g was not found
> > at
org.exolab.castor.mapping.loader.MappingLoader.createFieldDesc(Mappin
> >gLoader.java:719)
> > at
org.exolab.castor.xml.XMLMappingLoader.createFieldDesc(XMLMappingLoad
> >er.java:260)
> > at
org.exolab.castor.mapping.loader.MappingLoader.createFieldDescs(Mappi
> >ngLoader.java:519)
> > at
org.exolab.castor.mapping.loader.MappingLoader.createDescriptor(Mappi
> >ngLoader.java:343)
> > at
org.exolab.castor.xml.XMLMappingLoader.createDescriptor(XMLMappingLoa
> >der.java:157)
> > at
org.exolab.castor.mapping.loader.MappingLoader.loadMapping(MappingLoa
> >der.java:212)
> > at
org.exolab.castor.mapping.Mapping.getResolver(Mapping.java:278)
> > at
org.exolab.castor.mapping.Mapping.getResolver(Mapping.java:234)
> > at
org.exolab.castor.xml.Unmarshaller.setMapping(Unmarshaller.java:224)
> > at Test.<init>(Test.java:53)
> > at Test.main(Test.java:34)
> >
> >The basic question is, how does one supply the appropriate mapping
for an xsd:date?
> >I'm lost here. Thank you for your help.
> >
> >
> >-Doug
> >=======
> >
> >
> > -----Original Message-----
> > From: Nischala Kale
> > Sent: Fri 6/4/2004 4:17 PM
> > To: [EMAIL PROTECTED]
> > Cc:
> > Subject: how do I use mapping and a java.util.Date?
> >
> >
> >
> > Hi,
> >
> > I came across the same problem as the person in this
Thread. As I did not see any replies about the solution, I'm posting it again. Here is
the
> link to the original question -
> >
> > http://www.mail-archive.com/[EMAIL PROTECTED]/msg05772.html
> >
> > Can someone help?
> >
> > Thanks
> >
> >
> >
>
>
>
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
> unsubscribe castor-user
>
>
> ------------------------------------------------------------------------
> -----------------------------------------------------------
> If you wish to unsubscribe from this mailing, send mail to
> [EMAIL PROTECTED] with a subject of:
> unsubscribe castor-user
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user
<<winmail.dat>>
-----------------------------------------------------------
If you wish to unsubscribe from this mailing, send mail to
[EMAIL PROTECTED] with a subject of:
unsubscribe castor-user
