- , XStream, EclipseLink JAXB (MOXy) @XmlInverseReference ( - MOXy).
:
import java.util.List;
import javax.xml.bind.annotation.XmlElement;
import javax.xml.bind.annotation.XmlRootElement;
@XmlRootElement
public class Parent {
private List<Child> children;
@XmlElement(name="child")
public List<Child> getChildren() {
return children;
}
public void setChildren(List<Child> children) {
this.children = children;
}
}
( @XmlInverseReference ):
import org.eclipse.persistence.oxm.annotations.XmlInverseReference;
public class Child {
private Parent parent;
@XmlInverseReference(mappedBy="children")
public Parent getParent() {
return parent;
}
public void setParent(Parent parent) {
this.parent = parent;
}
}
- : (input.xml XML ):
import java.io.File;
import javax.xml.bind.JAXBContext;
import javax.xml.bind.Unmarshaller;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(Parent.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
Parent parent = (Parent) unmarshaller.unmarshal(new File("input.xml"));
for(Child child : parent.getChildren()) {
System.out.println(child.getParent());
}
}
}
MOXy JAXB, jaxb.properties , , :
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
JAXB XStream:
source
share