BaBowe, I usually start marshalling my objects as it is much easier to
tune your mapping at marshalling because you can see the XML what castor
creates with your mapping. In every case I had unmarshalling also worked
as expected thereafter.
Regards
Ralf
[EMAIL PROTECTED] schrieb:
Hi,
I still don't know how to get it right. Example for a collection of collections:
<collection-of-collections>
<collection>
<collection-item>foo</collection-item>
<collection-item>bar</collection-item>
</collection>
<collection>
<collection-item>baz</collection-item>
</collection>
</collection-of-collections>
My mapping so far:
<mapping>
<class name="CollectionItem">
<map-to xml="collection-of-collections" />
<field name="collection" collection="collection">
<bind-xml name="collection">
<class name="CollectionItem">
<field name="collection" collection="collection" type="string">
<bind-xml name="collection-item" />
</field>
</class>
</bind-xml>
</field>
</class>
</mapping>
The CollectionItem class:
import java.util.Collection;
public class CollectionItem {
private Collection collection;
public Collection getCollection() {
return collection;
}
public void setCollection(Collection collection) {
this.collection = collection;
}
}
Exception when unmarshalling XML:
java.lang.NullPointerException
at
org.exolab.castor.xml.util.XMLFieldDescriptorImpl.hashCode(XMLFieldDescriptorImpl.java:713)
at java.util.HashMap.hash(HashMap.java:261)
at java.util.HashMap.put(HashMap.java:379)
at java.util.HashSet.add(HashSet.java:192)
at
org.exolab.castor.xml.UnmarshalState.markAsUsed(UnmarshalState.java:204)
at
org.exolab.castor.xml.UnmarshalHandler.endElement(UnmarshalHandler.java:986)
at
org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:250)
at
org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:183)
at
org.exolab.castor.xml.util.DOMEventProducer.processChildren(DOMEventProducer.java:334)
at
org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:248)
at
org.exolab.castor.xml.util.DOMEventProducer.process(DOMEventProducer.java:183)
at
org.exolab.castor.xml.util.DOMEventProducer.start(DOMEventProducer.java:111)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:631)
at org.exolab.castor.xml.Unmarshaller.unmarshal(Unmarshaller.java:741)
-------- Original-Nachricht --------
Datum: Fri, 19 Oct 2007 12:40:04 +0200
Von: Werner Guttmann <[EMAIL PROTECTED]>
An: [email protected]
Betreff: Re: [castor-user] Collection of Collections
Hi
[EMAIL PROTECTED] wrote:
I couldn't find the example. I just found
castor-1.1.2.1\xmlctf\tests\MasterTestSuite\mapping\collections\Maps\NestedMaps\MapOfCollections.
I don't know how to transfer that example to work with collection of
collections.
Well, within the mapping for the Result class, you will have another
collection mapping for your nested collection. Nothing special, just a
plain field mapping.
Another question was regarded to collections: Is there a way to map a
collection containing different types. <root> <mycollection>
<string>test1</string> <integer>1</integer> <integer>2</integer>
<string>test2</string> </mycollection> </root>
Not to my knowledge.
I couldn't find a example for this and can't imagine how to do it as
I think that a type attribute for a <field collection="collection"/>
is required. -------- Original-Nachricht --------
Datum: Thu, 18 Oct 2007 13:47:21 +0200 Von: Werner Guttmann
<[EMAIL PROTECTED]> An: [email protected] Betreff: Re:
[castor-user] Collection of Collections
Yes, it does. Have a look at teh current CTF test suite that has
examples on how to map nested collections.
Werner
[EMAIL PROTECTED] wrote:
Hello,
I would like to map the following XML to Java:
<result> <bar>baz</bar> <rows> <row> <integer>123</integer>
<integer>321</integer> <string>foo</string> </row> <row>
<integer>123</integer> <integer isNull="true"/>
<string>foo</string> </row> </rows> </result>
In Java words this is a Result class with one String bar
attribute and a rows Collection. The Collection contains row
elements which are themself Collection (a row can a have
arbitrary number of cells). My question is: does Castor support
Collections of Collections (rows->row->cell)? How would the
mapping xml file look like? If there is a problem for castor with
the mixed types of the cells, the following xml would be okay
too:
<result> <bar>baz</bar> <rows> <row> <col
type="integer">123</col> <col type="integer">321</col> <col
type="string">foo</col> </row> <row> <col
type="integer">123</col> <col type="integer" isNull="true"/> <col
type="string">foo</col> </row> </rows> </result>
Kind regards
---------------------------------------------------------------------
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
--
Syscon Ingenieurbüro für Meß- und Datentechnik GmbH
Ralf Joachim
Raiffeisenstraße 11
72127 Kusterdingen
Germany
Tel. +49 7071 3690 52
Mobil: +49 173 9630135
Fax +49 7071 3690 98
Internet: www.syscon.eu
E-Mail: [EMAIL PROTECTED]
Sitz der Gesellschaft: D-72127 Kusterdingen
Registereintrag: Amtsgericht Stuttgart, HRB 382295
Geschäftsleitung: Jens Joachim, Ralf Joachim
---------------------------------------------------------------------
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email