Hi ,
I have tried to write a simple test program which reads the data in XML
format which i am getting from third party and convert into the Object model
defined in our company.I am pasting all the components ... but after
marshalling i am not getting desired result i.e populated
BusinessMsgIdentification with Account Object.With the program and mapping
below i am getting fields which are defined in
BusinessMsgIdentification.java alone populated and account inside
BusinessMsgIdentification.java remains null .
BusinessMsgIdentificationMappings.xml
=====================================
<?xml version="1.0" encoding="UTF-8"?>
<mapping>
<class
name="com.ebw.mas.common.datatypes.BusinessMsgIdentificationImpl"
auto-complete="true">
<description>Default mapping for class
com.common.datatypes.BusinessMsgIdentificationImpl</description>
<map-to xml="BusinessMsgIdentification"/>
<field name="receipientMsgId" type="string" required="false"
direct="false" transient="false">
<bind-xml name="RecipMsgID" node="element" reference="false"/>
</field>
<field name="origMsgID" type="string" required="false"
direct="false" transient="false">
<bind-xml name="OrigMsgID" node="element" reference="false"/>
</field>
</class>
<class name="com.ebw.mas.common.datatypes.Account" auto-complete="true">
<description>Default mapping for class
com.common.datatypes.AccountImpl</description>
<map-to xml="BusinessMsgIdentification"/>
<field name="MID" type="string" required="false" direct="false"
transient="false">
<bind-xml name="MID" node="element" reference="false"/>
</field>
<field name="SID" type="string" required="false" direct="false"
transient="false">
<bind-xml name="SID" node="element" reference="false"/>
</field>
<field name="acctNum" type="string" required="false"
direct="false" transient="false">
<bind-xml name="AcctNum" node="element" reference="false"/>
</field>
<field name="SPProg" type="string" required="false"
direct="false" transient="false">
<bind-xml name="SPProg" node="element" reference="false"/>
</field>
<field name="Style" type="string" required="false"
direct="false" transient="false">
<bind-xml name="Style" node="element" reference="false"/>
</field>
</class>
</mapping>
public class MappingTest {
public static void main(String args[]) {
Mapping mapping = new Mapping();
try {
// 1. Load the mapping information from the file
mapping.loadMapping(
"resource\\BusinessMsgIdentificationMappings.xml" );
// 2. Unmarshal the data
Unmarshaller unmar = new Unmarshaller(mapping);
BusinessMsgIdentification businessMsgIdentification =
(BusinessMsgIdentification)unmar.unmarshal(new InputSource(new
FileReader("resource\\BusinessMsgIdentification.xml")));
} catch (Exception e) {
System.out.println(e);
return;
}
}
}
BusinessMsgIdentification.xml
=============================
<BusinessMsgIdentification>
<SPID>009963</SPID>
<SPProg>a</SPProg>
<IMID>009959</IMID>
<IMStyle>a</IMStyle>
<AcctNum>21245 </AcctNum>
<OrigMsgID>a</OrigMsgID>
<RecipMsgID>a</RecipMsgID>
</BusinessMsgIdentification>
Please help me with this.
Regards,
Pramod
ptyagi108 wrote:
>
> We are using castor mappings to convert from xml to Objects , i am having
> following problem which i do not know how to proceed.
> I have an object model where a class named BusinessMsgIdentification holds
> the reference of Account object.But in the XML which i am getting from
> other source (web service) is as given below.The problem is that some of
> the elements under the TAG BusinessMsgIdentification in XML actually map
> to fields in Account Object in the object model.
>
> <BusinessMsgIdentification>
> <SID>009733</SPID>
> <SPProg>Abcd12345</SPProg>
> <MID>009656</IMID>
> <Style> </IMStyle>
> <AcctNum>0 </AcctNum>
> <OrigMsgID>21628755</OrigMsgID>
> <RecipMsgID>21618752</RecipMsgID>
> </BusinessMsgIdentification>
>
>
>
> BusinessMsgIdentification.java has following method and fields like,
>
>
> protected Account mAccount;
> protected String mOrigMsgID;
> protected String mReceipientMsgId;
>
> public String getOrigMsgID(){
> return mOrigMsgID;
> }
> public void setOrigMsgID(String origMsgID){
> mOrigMsgID=origMsgID;
> }
> public String getReceipientMsgId(){
> return mReceipientMsgId;
> }
> public void setReceipientMsgId(String receipientMsgId){
> mReceipientMsgId=receipientMsgId;
> }
>
>
> public Account getAccount(){
> return mAccount;
> }
> public void setAccount(Account account){
> mAccount=account;
> }
>
>
>
> The problem for me is that the elements like SID,MID ,SPProg in xml
> etc are defined in Account class in my object model, but in XML they
> falls within BusinessMsgIdentification TAG.BusinessMsgIdentification holds
> a reference of Account class.
>
> Please help me with this as it is very urgent.
>
> Regards,
> Pramod
>
--
View this message in context:
http://old.nabble.com/Problem-Mapping-object-model-with-castor-tp27636855p27637826.html
Sent from the Castor - User mailing list archive at Nabble.com.
---------------------------------------------------------------------
To unsubscribe from this list, please visit:
http://xircles.codehaus.org/manage_email