JAXB, как пропустить тег класса, когда включен - PullRequest
2 голосов
/ 11 мая 2011

Я пытаюсь получить этот XML:

<person>
    <foo>thing</foo>
    <bar>other</bar>
</person>

из этого кода

public class Person {
    private InnerThing in;
}

public class InnerThing {
    private String foo;
    private String bar;
}

с Java-аннотациями JAXB.

По умолчанию я получаю

<person>
    <innerThing>
        <foo>thing</foo>
        <bar>other</bar>
    </innerThing>
</person>

Как я могу пропустить тег InnerThing только с аннотациями?

1 Ответ

2 голосов
/ 11 мая 2011

Вы можете использовать EclipseLink JAXB (MOXy) аннотация @XmlPath для решения этой проблемы (я технический руководитель MOXy):

import javax.xml.bind.annotation.XmlAccessType;
import javax.xml.bind.annotation.XmlAccessorType;
import javax.xml.bind.annotation.XmlRootElement;

import org.eclipse.persistence.oxm.annotations.XmlPath;

@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
public class Person {

    @XmlPath(".")
    private InnerThing in;

}

ПодробнееИнформация:

...