Werner,

I'm in the same boat as the others. I can't find the castor project
for adding a jira issue.

I do however have a sample project with a junit test case for
triggering the conditions that I'm noticing.


On 2/22/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
Great to see that you've made some progress, at least. But looking at
those questions, I think it's time to create a new Jira issue and attach
all relevant files. Let's hope Jira stops throwing NPEs at us really
soon.

Werner

> -----Original Message-----
> From: Drew Beechum [mailto:[EMAIL PROTECTED]
> Sent: Mittwoch, 21. Februar 2007 23:57
> To: [email protected]
> Subject: Re: [castor-user] Duplicate Attribute/Element and
> List size attribute
>
> Ok.
>
> Now I'm finding that if I use:
>
> <complexTypeBinding name="/complexType:itemType/availabilityStart">
>   <member name="availabilityStart"
>  handler="com.foo.domain.handler.GeneralizedDateHandler"/>
> </complexTypeBinding>
>
> I see the descriptor class now carries code in it for using
> the descriptor. It appears that if I don't have that
> availabilityStart specified in the top name attribute, the
> handler code doesn't get generated.
>
> I can see the handler being instantiated and the call to
> newInstance (returns null), but the unmarshaller still throws
> an error on a bad DateTime format without calling the handler
> to convert "01/26/2007 12:00:00 AM" to the appropriate date.
>
> Should the field be specified in the xsd as xs:dateTime or
> string? And I find that adding a java-type="java.util.Date"
> attribute to the member generates a
> "org.exolab.castor.types.Date" typed member instead.
>
>
> On 2/21/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
> > No, the XPATH for your complexType named 'itemType' needs to be
> >
> > /complexType:itemType
> >
> > as (incompletely) documented at
> >
> > http://www.castor.org/srcgen-binding.html
> >
> > Regards
> > Werner
> >
> > Drew Beechum wrote:
> > > So I've added to my binding file (which does have an
> effect since I
> > > can change from element to type object generation in the file)
> > >
> > > <complexTypeBinding name="itemType">
> > >   <member name="availabilityStart" java-type="java.util.Date"
> > > handler="com.foo.domain.handler.AvailabilityStartHandler"/>
> > > </complexTypeBinding>
> > >
> > > After running the ant script that generates the classes.
> Looking at
> > > the descriptor for ItemType, I still see the generic
> inner handler
> > > being assigned to availabilityStart. I assume I have a
> grammar issue
> > > with my specification, but I've been unable to find
> examples doing
> > > this. (The handler how-tos on the website give examples
> with mapping
> > > files.)
> > >
> > > I've also tried doing an element binding on /playlist and
> playlist
> > > and item/playlist, but still see no changes in the descriptors.
> > >
> > > Thanks
> > >
> > > On 2/21/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
> > >> On the first problem, using a mapping file to set your
> custom field
> > >> handler is not the solution recommended. Can you please use a
> > >> binding file to instruct the XML code generator to use
> your custom
> > >> field handler and set it onto the according class(es).
> > >>
> > >> Werner
> > >>
> > >> > -----Original Message-----
> > >> > From: Drew Beechum [mailto:[EMAIL PROTECTED]
> > >> > Sent: Mittwoch, 21. Februar 2007 00:54
> > >> > To: [email protected]
> > >> > Subject: Re: [castor-user] Duplicate Attribute/Element
> and List
> > >> > size attribute
> > >> >
> > >> > I have been just using castor-1.1with no mapping file
> and using
> > >> > the default source generated classes.
> > >> > But that doesn't seem to be sufficient so here's what
> I'm facing now.
> > >> >
> > >> > Problem number 1 - Mapping dates from a non-standard format
> > >> >
> > >> > I have a basic type:
> > >> >
> > >> >        <xs:complexType name="itemType">
> > >> >                <xs:complexContent>
> > >> >                        <xs:extension base="baseDomain">
> > >> >                        <xs:sequence>
> > >> >                                <xs:element
> ref="availabilityStart"/>
> > >> >                                <xs:element
> ref="availabilityEnd"/>
> > >> >                        </xs:sequence>
> > >> >                <xs:attribute name="title" type="xs:string"/>
> > >> >                </xs:extension>
> > >> >                </xs:complexContent>
> > >> >        </xs:complexType>
> > >> >
> > >> >        <xs:element name="availabilityStart"
> type="xs:dateTime"/>
> > >> >        <xs:element name="availabilityEnd" type="xs:dateTime"/>
> > >> >
> > >> > This is extended  to a playlist object
> > >> >
> > >> >        <xs:element name="playlist"> <xs:complexType>
> > >> >                <xs:complexContent>
> > >> >                        <xs:extension base="itemType">
> > >> >                                <xs:sequence>
> > >> >                                        <xs:element
> ref="items"/>
> > >> >                                        <xs:element
> > >> > ref="canSortPlaylist"/>
> > >> >                                        <xs:element
> > >> > ref="canSetLanguage"/>
> > >> >                                        <xs:element
> ref="canRepeat"/>
> > >> >                                </xs:sequence>
> > >> >                        </xs:extension>
> > >> >                </xs:complexContent>
> > >> >        </xs:complexType>
> > >> >        </xs:element>
> > >> >
> > >> > The availabilityStart and End dates come back as 01/01/2007 -
> > >> > 12:00:00 AM, which causes the unmarshalling to fail.
> > >> >
> > >> > I followed the example online for field handlers
> > >> > (http://www.castor.org/xml-fieldhandlers.html) and I
> can see it
> > >> > create the handlers, but never access the methods when I map
> > >> > using this file:
> > >> > (note AvailabilityStartHandler is a version of the
> first example,
> > >> > the ItemTypeDateHandler is the generic version)
> > >> >
> > >> > <?xml version="1.0"?>
> > >> > <mapping>
> > >> >
> > >> >  <class name="com.fool.domain.Playlist">
> > >> >     <field name="availabilityStart" type="string"
> > >> > handler="com.foo.domain.handler.AvailabilityStartHandler">
> > >> >        <bind-xml node="text"/>
> > >> >     </field>
> > >> >     <field name="availabilityEnd" type="string"
> > >> > handler="com.foo.domain.handler.ItemTypeDateHandler">
> > >> >        <bind-xml node="text"/>
> > >> >     </field>
> > >> >  </class>
> > >> >
> > >> >  <class name="com.foo.domain.ItemType">
> > >> >     <field name="availabilityStart" type="string"
> > >> > handler="com.disney.disl.domain.handler.ItemTypeDateHandler">
> > >> >        <bind-xml node="text"/>
> > >> >     </field>
> > >> >     <field name="availabilityEnd" type="string"
> > >> > handler="com.foo.domain.handler.ItemTypeDateHandler">
> > >> >        <bind-xml node="text"/>
> > >> >     </field>
> > >> >  </class>
> > >> >
> > >> > </mapping>
> > >> >
> > >> > I get errors still on the mapping since it doesn't
> like the date
> > >> > formats in the field by default. Is it possible to bind on the
> > >> > ItemType class and have the mapping picked up by
> children classes
> > >> > (e.g. Playlist) and others?
> > >> >
> > >> > 2nd problem - I don't know how to map this, but I have the
> > >> > complex type items that contains a series of arrays (videos,
> > >> > audios, playlists, games) and a set of attributes that are the
> > >> > array size. How do I map videos.size to the videos attribute?
> > >> >
> > >> > <xs:element name="items">
> > >> >                <xs:complexType>
> > >> >                        <xs:sequence>
> > >> >                                <xs:element name="video"
> > >> > type="videoType" minOccurs="0"
> > >> > maxOccurs="unbounded"/>
> > >> >                                <xs:element name="game"
> type="gameType"
> > >> > minOccurs="0"
> > >> > maxOccurs="unbounded"/>
> > >> >                                <xs:element name="audio"
> > >> > type="audioType" minOccurs="0"
> > >> > maxOccurs="unbounded"/>
> > >> >                                <xs:element name="playlist"
> > >> > type="playlistType" minOccurs="0"
> > >> > maxOccurs="unbounded"/>
> > >> >                        </xs:sequence>
> > >> >                        <xs:attribute name="games"
> type="xs:int"/>
> > >> >                        <xs:attribute name="audios"
> type="xs:int"/>
> > >> >                        <xs:attribute name="videos"
> type="xs:int"/>
> > >> >                        <xs:attribute name="playlists"
> type="xs:int"/>
> > >> >                </xs:complexType>
> > >> >        </xs:element>
> > >> >
> > >> >
> > >> > Thanks!
> > >> >
> > >> > On 2/16/07, Werner Guttmann <[EMAIL PROTECTED]> wrote:
> > >> > > Hi Drew,
> > >> > >
> > >> > > can you please provide us with a bit more
> information, such as
> > >> > > what the relevant XML schema (fragment) and the
> binding file looks like ?
> > >> > >
> > >> > > Regards
> > >> > > Werner
> > >> > >
> > >> > > Drew Beechum wrote:
> > >> > > > Hi,
> > >> > > >
> > >> > > > I've just been handed a project that needs to support
> > >> > pulling in and
> > >> > > > manipulating an xml response from a legacy
> service. I've got
> > >> > > > most everything bound in, but I'm running into a
> few problems
> > >> > and I don't
> > >> > > > know how to resolve them. For the record I'm using
> castor 1.1
> > >> > > > and the ant sourcegen tools to build the classes.
> > >> > > >
> > >> > > > sample xml looks like this
> > >> > > >
> > >> > > > <playlist id=123>
> > >> > > >   <id>123</id>
> > >> > > >    <items videos=1 playlists=1>
> > >> > > >       <video id=124>
> > >> > > >          <id>124</id>
> > >> > > >       </video>
> > >> > > >       <playlist id=125>
> > >> > > >          <id>125</id>
> > >> > > >       </playlist>
> > >> > > >    </items>
> > >> > > > </playlist>
> > >> > > >
> > >> > > > Do source generation with the id attribute in place in the
> > >> > > > schema causes a conflict error. Big surprise,
> right? Is there
> > >> > anyway to resolve this?
> > >> > > > Preferably I'd like to map to the same member in
> the class,
> > >> > > > but every time I try to do "/[EMAIL PROTECTED]" it fails.
> > >> > > >
> > >> > > > Is there a clean way to populate the
> videos/playlists count
> > >> > > > attributes with the ArrayList<video>.size()?
> > >> > > >
> > >> > > > Thanks
> > >> > >
> > >> > >
> > >> > >
> > >> >
> -----------------------------------------------------------------
> > >> > ----
> > >> > > To unsubscribe from this list please visit:
> > >> > >
> > >> > >     http://xircles.codehaus.org/manage_email
> > >> > >
> > >> > >
> > >> >
> > >> >
> -----------------------------------------------------------------
> > >> > ---- To unsubscribe from this list please visit:
> > >> >
> > >> >     http://xircles.codehaus.org/manage_email
> > >> >
> > >>
> > >>
> -------------------------------------------------------------------
> > >> -- To unsubscribe from this list please visit:
> > >>
> > >>     http://xircles.codehaus.org/manage_email
> > >>
> > >>
> > >
> > >
> --------------------------------------------------------------------
> > > - To unsubscribe from this list please visit:
> > >
> > >    http://xircles.codehaus.org/manage_email
> > >
> >
> >
> >
> ---------------------------------------------------------------------
> > To unsubscribe from this list please visit:
> >
> >     http://xircles.codehaus.org/manage_email
> >
> >
>
> ---------------------------------------------------------------------
> To unsubscribe from this list please visit:
>
>     http://xircles.codehaus.org/manage_email
>

---------------------------------------------------------------------
To unsubscribe from this list please visit:

    http://xircles.codehaus.org/manage_email



---------------------------------------------------------------------
To unsubscribe from this list please visit:

   http://xircles.codehaus.org/manage_email

Reply via email to