Sure.

In the past couple of days trying to evaulate, compare and use the two
XML binding frameworks Jibx & Castor has taught me quite a lot about
them. I can share this knowledge too.

Regards,
Sandeep Khanna

On Fri, 2006-01-13 at 17:48 +0100, Werner Guttmann wrote:
> Sandeep,
> 
> how would you feel to provide us with a short HOW-TO on this very
> subject ?  If I provided you with a stub document, would you be willing
> to fill in the details ... as a kind of nice feedback to the ones who
> helped you and the community in general ?
> 
> Werner
> 
> Sandeep Khanna wrote:
> > Thank you guys. I did find that discussion thread
> > http://www.mail-archive.com/[email protected]/msg01937.html
> > 
> > The way I got it to work is:
> > 1. Removing the type="com.adminserver.dcl.ClientFieldDcl" from the
> > <field> element. Wonder how that really matters for printing the 'key'
> > as an attribute or an element!
> > 
> > Before:
> > <field name="fields" type="com.adminserver.dcl.ClientFieldDcl"
> > get-method="getFields" set-method="setFields" collection="map">
> >     <bind-xml name="entry" node="element" location="Fields">
> >         <class name="org.exolab.castor.mapping.MapItem">
> >             <field name="key" type="java.lang.String">
> >                 <bind-xml name="key" node="attribute"/>
> >             </field>
> >             <field name="value"
> > type="com.adminserver.dcl.ClientFieldDcl">
> >                 <bind-xml name="AsClientField"/>
> >             </field>
> >         </class>
> >     </bind-xml>
> > </field>
> > 
> > After:
> > <field name="fields" get-method="getFields" set-method="setFields"
> > collection="map">
> >     <bind-xml name="entry" node="element" location="Fields">
> >         <class name="org.exolab.castor.mapping.MapItem">
> >             <field name="key" type="java.lang.String">
> >                 <bind-xml name="key" node="attribute"/>
> >             </field>
> >             <field name="value"
> > type="com.adminserver.dcl.ClientFieldDcl">
> >                 <bind-xml name="AsClientField"/>
> >             </field>
> >         </class>
> >     </bind-xml>
> > </field>
> > 
> > --Sandeep Khanna
> > 
> > On Fri, 2006-01-13 at 14:18 +0100, Ralf Joachim wrote:
> > 
> >>Hi Sandeep,
> >>
> >>I suggest you to search the mail archive as I am sure we had a similare
> >>discussion (key as attribute) during the last month on user mailing list.
> >>
> >>Regards
> >>Ralf
> >>Castor JDO, committer
> >>
> >>
> >>Sandeep Khanna schrieb:
> >>
> >>>Adam,
> >>>
> >>>Thank you for your prompt reply.
> >>>
> >>>Kindly read inline comments.
> >>>
> >>>On Fri, 2006-01-13 at 02:02 -0500, Adam Kramer wrote:
> >>>
> >>>
> >>>>Hi Sandeep,
> >>>>
> >>>>Read Below...
> >>>>
> >>>>Sandeep Khanna wrote:
> >>>>
> >>>>
> >>>>
> >>>>>Castor is not putting HashMap 'key' information as attribute as
> >>>>>configured in the mapping file.
> >>>>>
> >>>>
> >>>>I'm not positive this will work, but try taking the type attribute off 
> >>>>the Map collection field. For instance, without the type attribute in 
> >>>>the 'fields' field:
> >>>><field name="fields" collection="map">
> >>>
> >>>
> >>>This is what I have now:
> >>>
> >>><Fields>
> >>>    <entry>
> >>>        <key>AgentNumber</key>
> >>>        <value>
> >>>            <FieldTypeCode>02</FieldTypeCode>
> >>>
> >>><ClientGUID>08250B8D-2F22-4834-A995-F414194EA8D4</ClientGUID>
> >>>            <FieldName>AgentNumber</FieldName>
> >>>        </value>
> >>>    </entry>
> >>>    <entry>
> >>>        <key>MaritalStatus</key>
> >>>        <value>
> >>>            <TextValue>00</TextValue>
> >>>            <FieldTypeCode>02</FieldTypeCode>
> >>>
> >>><ClientGUID>08250B8D-2F22-4834-A995-F414194EA8D4</ClientGUID>
> >>>            <FieldName>MaritalStatus</FieldName>
> >>>        </value>
> >>>    </entry>
> >>></Fields>
> >>>
> >>>
> >>>And, this is what I want it to be:
> >>>
> >>><Fields size="2">
> >>>    <entry key="AgentNumber">
> >>>        <AsClientField>
> >>>
> >>><ClientGUID>08250B8D-2F22-4834-A995-F414194EA8D4</ClientGUID>
> >>>            <FieldName>AgentNumber</FieldName>
> >>>            <FieldTypeCode>02</FieldTypeCode>
> >>>        </AsClientField>
> >>>    </entry>
> >>>    <entry key="MaritalStatus">
> >>>        <AsClientField>
> >>>
> >>><ClientGUID>08250B8D-2F22-4834-A995-F414194EA8D4</ClientGUID>
> >>>            <FieldName>MaritalStatus</FieldName>
> >>>            <TextValue>00</TextValue>
> >>>            <FieldTypeCode>02</FieldTypeCode>
> >>>        </AsClientField>
> >>>    </entry>
> >>></Fields>
> >>>
> >>>>>In order for the generated XML to be Jibx compliant (this is for
> >>>>>comparing Castor & Jibx marshall/unmarshall similar documents)
> >>>>>
> >>>>>Also, the following code was generated with:
> >>>>>Marshaller marshaller = new Marshaller( new
> >>>>>FileWriter( "AsXml-Castor.xml", false ) );
> >>>>>marshaller.setMapping( mapping );
> >>>>>marshaller.setSuppressNamespaces( false );
> >>>>>marshaller.setSuppressXSIType( false );
> >>>>>marshaller.marshal( clientDcl );
> >>>>
> >>>>If you are trying to suppress XSI types and namespaces, you should be 
> >>>>setting those to true, not false, so:
> >>>>marshaller.setSuppressNamespaces( true );
> >>>>marshaller.setSuppressXSIType( true );
> >>>
> >>>
> >>>I haven't tried that yet. But, it makes more sense than what I had.
> >>>
> >>>All that staring at the screen all day just got to me.
> >>>
> >>>
> >>>
> >>>>>Mapping file:
> >>>>>
> >>>>><?xml version="1.0" encoding="UTF-8"?>
> >>>>><mapping>
> >>>>><!--
> >>>>>=================================================================== -->
> >>>>><!-- Mapping for class com.adminserver.dcl.ClientDcl
> >>>>>-->
> >>>>><!--
> >>>>>=================================================================== -->
> >>>>><class name="com.adminserver.dcl.ClientDcl" identity="clientGuid"
> >>>>>access="shared"
> >>>>>auto-complete="false">
> >>>>><field name="lastName" type="string" get-method="getLastName"
> >>>>>set-method="setLastName">
> >>>>><bind-xml name="LastName" node="element"/>
> >>>>></field>
> >>>>><field name="fields" type="com.adminserver.dcl.ClientFieldDcl"
> >>>>>get-method="getFields"
> >>>>>set-method="setFields" collection="map">
> >>>>><bind-xml name="entry" node="element" location="Fields">
> >>>>><class name="org.exolab.castor.mapping.MapItem">
> >>>>><field name="key" type="java.lang.String">
> >>>>><bind-xml name="key" node="attribute"/>
> >>>>></field>
> >>>>><field name="value"
> >>>>>type="com.adminserver.dcl.ClientFieldDcl">
> >>>>><bind-xml name="value"/>
> >>>>></field>
> >>>>></class>
> >>>>></bind-xml>
> >>>>></field>
> >>>>></class>
> >>>>><!--
> >>>>>=================================================================== -->
> >>>>><!-- Mapping for class com.adminserver.dcl.ClientFieldDcl
> >>>>>-->
> >>>>><!--
> >>>>>=================================================================== -->
> >>>>><class name="com.adminserver.dcl.ClientFieldDcl"
> >>>>>identity="clientGuid fieldName" access="shared"
> >>>>>auto-complete="false">
> >>>>><description>AsClientField</description>
> >>>>><cache-type type="count-limited"/>
> >>>>><map-to table="AsClientField" xml="AsClientField"/>
> >>>>><field name="clientGuid" type="string"
> >>>>>get-method="getClientGuid" set-method="setClientGuid">
> >>>>><bind-xml name="ClientGUID" node="element"/>
> >>>>></field>
> >>>>><field name="fieldName" type="string" get-method="getFieldName"
> >>>>>set-method="setFieldName">
> >>>>><bind-xml name="FieldName" node="element"/>
> >>>>></field>
> >>>>><field name="textValue" type="string" get-method="getTextValue"
> >>>>>set-method="setTextValue">
> >>>>><bind-xml name="TextValue" node="element"/>
> >>>>></field>
> >>>>><field name="fieldTypeCode" type="string"
> >>>>>get-method="getFieldTypeCode"
> >>>>>set-method="setFieldTypeCode">
> >>>>><bind-xml name="FieldTypeCode" node="element"/>
> >>>>></field>
> >>>>></class>
> >>>>></mapping>
> >>>>>
> >>>>>Any ideas?
> >>>>>
> >>>>>--Sandeep Khanna
> >>>>>
> >>>>
> >>>>Best,
> >>>>Adam
> >>>
> >>>
> >>>--Sandeep Khanna
> >>>
> >>>
> >>>
> >>>>-------------------------------------------------
> >>>>If you wish to unsubscribe from this list, please 
> >>>>send an empty message to the following address:
> >>>>
> >>>>[EMAIL PROTECTED]
> >>>>-------------------------------------------------
> >>>>
> >>>
> >>>
> >>>
> >>>-------------------------------------------------
> >>>If you wish to unsubscribe from this list, please 
> >>>send an empty message to the following address:
> >>>
> >>>[EMAIL PROTECTED]
> >>>-------------------------------------------------
> >>>
> >>
> >>-------------------------------------------------
> >>If you wish to unsubscribe from this list, please 
> >>send an empty message to the following address:
> >>
> >>[EMAIL PROTECTED]
> >>-------------------------------------------------
> >>
> > 
> > 
> > 
> > -------------------------------------------------
> > If you wish to unsubscribe from this list, please 
> > send an empty message to the following address:
> > 
> > [EMAIL PROTECTED]
> > -------------------------------------------------
> > 
> > 
> 
> 
> -------------------------------------------------
> If you wish to unsubscribe from this list, please 
> send an empty message to the following address:
> 
> [EMAIL PROTECTED]
> -------------------------------------------------
> 


-------------------------------------------------
If you wish to unsubscribe from this list, please 
send an empty message to the following address:

[EMAIL PROTECTED]
-------------------------------------------------

Reply via email to