Ivan Malets
Ivan Malets

Reputation: 25

jaxb marshal included class without root tag

I need marshal class with included class fields, but without included class root tag. For example I have class Person and Address:

@XmlRootElement(name="address")
class Address {
    ...

    @XmlElement
    String street;
}

@XmlRootElement(name="person")
class Person {
    ...

    @XmlElement
    Address address;
}

If I marshal it i get:

<person>
  ...
  <address>
    <street>...<street>
  <address>
</person>

But I need:

<person>
  ...
  <street>...<street>
</person>

Upvotes: 0

Views: 238

Answers (1)

Xstian
Xstian

Reputation: 8272

A possible solution could be ..

@XmlRootElement(name="address")
class Address {
    ...

    @XmlElement
    String street;
}

@XmlRootElement(name="person")
class Person {
    ...

    @XmlTransient
    Address address;

    @XmlElement
    public String getStreet() {
       return (address!= null) ? address.getStreet() : null;
    }
}

Upvotes: 0

Related Questions