Hello Micheal,

have you already had a look at:
http://www.castor.org/how-to-map-a-hashtable.html

Regards
Ralf

[email protected] schrieb:
Hello Folks!

I managed to get Castor 1.3.1 running with Spring 3.0.1.RELEASE-A. So far so good. Finally I tried to rewrite my running very simple example to fulfill my needs.

There is a game (still in Beta) called Heroes of Newerth witch offers a simple XML interface to gain statistics via a http-request. For my first tests I simplified the structure:

<?xml version="1.0" encoding="UTF-8" ?>
<stats>
<player_stats aid='123456'>
    <stat name='nickname'>Tester1</stat>
    <stat name='acc_pub_skill'>1500</stat>
</player_stats>
<player_stats aid='654321'>
    <stat name='nickname'>Tester2</stat>
    <stat name='acc_pub_skill'>1600</stat>
</player_stats>
</stats>

In the full version there are at least 40 more statistic values available.

So I set up 2 classes representing the content of this XML:

public class PlayerList {

    private Player[] players;

    public PlayerList() {
    }
}

import java.util.HashMap;

public class Player {

    private int id;
    private String name;
    private int pubSkill;
    private HashMap<String, String> stats;

    public Player() {
    }
}

There I want to keep it simple I removed the setter and getter methods in this mail (not in the code :))

I really tried nearly everything to get this working, spent hours on the net to find a hint or something to help me out.

I also tried to fill the tons of <stat> tags to the HashMap with the result that I had a map like the following:

playerList:
[ id: 123456, stats: [ {Tester1/Tester1}, {1500:1500} ] ]
[ id: 654321, stats: [ {Tester2/Tester2}, {1600:1600} ] ]

So that was also not very helpful at all, at least I need to have the name of the stat and the value in the map, would not be the best solution, but it would work for me.

I deleted the mapping.xml for this result, my bad :(

Then I tried to get the data directly to the attribute name:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapping PUBLIC "-//EXOLAB/Castor Mapping DTD Version 1.0//EN"
                         "http://castor.org/mapping.dtd";>

<mapping>
    <class name="PlayerList">
        <map-to xml="stats" />
        <field name="players" type="Player" collection="array">
            <bind-xml name="player_stats" />
        </field>
    </class>

    <class name="org.fadev.oms.hons.dl.player.dao.Player">
        <field name="id" type="int">
            <bind-xml name="aid" node="attribute" />
        </field>
        <field name="name" type="java.lang.String">
            <bind-xml name="nickname" node="attribute"/>
        </field>
        <field name="pubSkill" type="int">
            <bind-xml name="acc_pub_skill" node="element"/>
        </field>
    </class>
</mapping>

There I get the following result:

playerList:
[ id: 123456, name: null, pubSkill: 0, stats: null ]
[ id: 654321, name: null, pubSkill: 0, stats: null ]

Has anyone an idea how to get that XML format settled to Objects with Castor?

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


Reply via email to