I would be interested in the solution you provided where i can create XML file from HashMap.
I was using ibtaits and type=XML , but hit an issue when there are some German characters like umlaut in the database,
here is a email i had send, but did not got any reply for it

So i want to develop some code where in i can convert HashMap to XML String.

I am not sure how do i call the code you have specified,  for example i would do the following to get the HashMap,
But when do i call this code MapToXmlRowHandler?

Here is what i would do
in java
   List list = client.queryForList("getFooter4", new BigDecimal(33333));
in ibatis
<select id="getFooter4" resultClass=" java.util.HashMap" parameterClass="java.math.BigDecimal" >
        SELECT P704SPEC, P704LINE, P704DETL, P704USER, P704DATE, P704TIME
         FROM PU27041 WHERE P704SPEC = #value#                            

But where do i write this code to convert HashMap into XML

On 3/16/07, netsql <cekvenich@gmail.com> wrote:
No, I have not tried that yet.
I was doing something similar to what Larry showed.
But now I am switching to type=XML.

I did not like having to jack w/ Xstream re-mapping.
ps: and congrats on the book, I saw it at a bookstore. If anyone goes to SF for Javaone or otherwise, ping me at vic at pointcast dot com.

On 3/15/07, Clinton Begin <clinton.begin@gmail.com > wrote:

I'm assuming you've already tried <resultMap ... type="xml"> to get a list of XML documents back?


On 3/15/07, Larry Meadors <lmeadors@apache.org > wrote:

You could write a row handler to take the returned maps and a string
builder to create xml.

One class would handle all of your requirements.

Something like this is close - testing is an exercise left to the reader. ;-)

public class MapToXmlRowHandler
        implements RowHandler
    private String wrapper;
    private String item;
    private StringBuilder builder;

    public MapToXmlRowHandler(String wrapper, String item) {
        this.wrapper = wrapper;
        this.item = item;
        builder = new StringBuilder();

    public void handleRow(Object object) {
        Map<String, Object> m = (Map<String, Object>) object;


        for(String key : m.keySet()){
            // todo: make sure these values are xml friendly
            builder.append ("<").append(key).append(">")

        builder.append ("</").append(item).append(">");

    public String getResultsAsXml(){
        StringBuilder result = new StringBuilder("<" + wrapper + ">")
        return result.toString();



On 3/15/07, netsql < cekvenich@gmail.com> wrote:
> In the past I allways returned arraylist of hashmap and that works EXCLENT.
> I now want to return xml. I saw some notes on xstream and it works but not
> so well, I do not like the xml it makes.
> Is there snipets or more ideas to help me?
> tia,
> .V