Matías,

This is fairly easy using a mapping file, but with introspection it's a bit more difficult. Try configuring the Introspector to wrap collections by default:

import org.exolab.castor.xml.Marshaller;
import org.exolab.castor.xml.util.ClassDescriptorResolverImpl;

ClassDescriptorResolverImpl cdr = new ClassDescriptorResolverImpl();
cdr.getIntrospector().setWrapCollections(true);
Marshaller m = new Marshaller(...);
m.setResolver(cdr);

Hope that helps,

--Keith


Matías E. Bagini wrote:
I have a class called Client like this..

public class Client {

    private Long id;
private String firstName;
    private String lastName;
    private Collection<String> emails = new Vector<String>();

    /**
     * @return Returns the emails.
     */
    public Collection<String> getEmails() {
        return emails;
    }
    /**
     * @param emails The emails to set.
     */
    public void setEmails(Collection<String> emails) {
        this.emails = emails;
    }
/**
     * @param email The email to add.
     */
    public void addEmail(String email) {
        this.emails.add(email);
    }

    /** more methods... */
}

When I marshal a Client object I get something like

<client>
  <first-name>a</first-name>
  <last-name>b</last-name>
  <emails>[EMAIL PROTECTED]</emails>
  <emails>[EMAIL PROTECTED]</emails>
</client>

Although I'd prefer <email> instead of <emails> it's ok.. the problem is when I want to unmarshall it.. it fails ("cannot instantiate java.util.Collection") .. but it works if I write <email> .. like this:

<client>
  <first-name>a</first-name>
  <last-name>b</last-name>
  <email>[EMAIL PROTECTED]</email>
  <email>[EMAIL PROTECTED]</email>
</client>

The problem is that I want to work with the same XML when marshalling and unmarshalling, and WITHOUT ANY XML MAPPING FILE.

So, how can I use the same XML for marshalling/unmarshalling collections WITHOUT any XML mapping file?

Thanks,

Matias.


-------------------------------------------------
If you wish to unsubscribe from this list, please send an empty message to the following address:

[EMAIL PROTECTED]
-------------------------------------------------




-------------------------------------------------
If you wish to unsubscribe from this list, please send an empty message to the following address:

[EMAIL PROTECTED]
-------------------------------------------------

Reply via email to