Hi,
I am using the attached structure of XML to unmarshal to a java object.
The overall structure is
ReceiptStack Class --> Collection of Receipts
Has
Receipt Class --> Collection of ReceiptItems
Has
The mapping xml for the same is also attached.
When I run my standalone class to unmarshal the ReceiptStack.xml file, I
get the correct values for the receipts . However, when I try to print
ReceiptItems, it gives me null.
So the collection which is inside another collection is coming null. Is
there something wrong with my approach?
Following is my standalone class:
Mapping mapping = new Mapping();
mapping.loadMapping( "mapping.xml" );
Unmarshaller unmar = new Unmarshaller(mapping);
ReceiptStack stack = (ReceiptStack)unmar.unmarshal(new
InputSource(new FileReader("ReceiptStack.xml")));
ArrayList <Receipt>receipts=(ArrayList)stack.getReceipts();
for(Receipt receipt:receipts)
{
System.out.println("custno:"+receipt.getCustomerNumber());
System.out.println("firstletter
name"+receipt.getFirstLetterName());
System.out.println(receipt.getItems());
}
Output is:
custno:1
firstletter name A
null
This message is for the designated recipient only and may contain privileged,
proprietary, or otherwise private information. If you have received it in
error, please notify the sender immediately and delete the original. Any other
use of the email by you is prohibited.
<?xml version="1.0" encoding="UTF-8"?>
<ReceiptStack>
<StackNumber>1</StackNumber>
<ReceiptType>10</ReceiptType>
<Receipt>
<CustomerNumber>1</CustomerNumber>
<FirstLetterName>A</FirstLetterName>
<ReceiptItem>
<ItemNumber>90</ItemNumber>
<Promotion>A</Promotion>
<Size>32</Size>
<Quantity>1</Quantity>
</ReceiptItem>
<ReceiptItem>
<ItemNumber>90</ItemNumber>
<Promotion>A</Promotion>
<Size>32</Size>
<Quantity>1</Quantity>
</ReceiptItem>
<Image>1100110</Image>
</Receipt>
<Receipt>
<CustomerNumber>1</CustomerNumber>
<FirstLetterName>A</FirstLetterName>
<ReceiptItem>
<ItemNumber>90</ItemNumber>
<Promotion>A</Promotion>
<Size>32</Size>
<Quantity>1</Quantity>
</ReceiptItem>
<Image>1100110</Image>
</Receipt>
</ReceiptStack>
<?xml version="1.0"?>
<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
"http://castor.org/mapping.dtd">
<mapping>
<class name="ReceiptStack">
<map-to xml="ReceiptStack" />
<field name="StackNumber" type="java.lang.String">
<bind-xml name="StackNumber"/>
</field>
<field name="ReceiptType" type="java.lang.String">
<bind-xml name="ReceiptType"/>
</field>
<field name="Receipts"
type="Receipt"
collection="arraylist">
<bind-xml name="Receipt" />
</field>
</class>
<class name="Receipt">
<field name="CustomerNumber" type="java.lang.String">
<bind-xml name="CustomerNumber"/>
</field>
<field name="FirstLetterName" type="java.lang.String">
<bind-xml name="FirstLetterName"/>
</field>
<field name="Image" type="java.lang.String">
<bind-xml name="Image"/>
</field>
<field name="Items"
type="ReceiptItem"
collection="arraylist">
<bind-xml name="ReceiptItem" />
</field>
</class>
<class name="ReceiptItem">
<field name="ItemNumber" type="java.lang.String">
<bind-xml name="ItemNumber" />
</field>
<field name="Promotion" type="java.lang.String">
<bind-xml name="Promotion" />
</field>
<field name="Size" type="java.lang.String">
<bind-xml name="Size" />
</field>
<field name="Quantity" type="java.lang.String">
<bind-xml name="Quantity" />
</field>
</class>
</mapping>
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email