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] -------------------------------------------------

