<>说明: I m the EclipseLink JAXB (MOXy) http://jcp.org/en/jsr/detail?id=222"rel=“nofollow noreferer”JAXB 2 (JSR-222) 专家组。
您的使用情况有两个有趣方面:
- ArrayList as the root object
- Bidirectional relationship between
ObjReal
and ObjStruc
1. ARRAYLIST AS ROOT OBJECT
宇宙航空研究开发机构(MOXy、Metro、JaxMe等)的实施不能直接支持处理<条码>、Collection作为根基物体的类型。 为了处理这一使用案例,你只是需要建立一个有希望的<条码>的包装类别。
@XmlRootElement(name="root-element-name")
@XmlAccessorType(XmlAccessType.FIELD)
public class ListWrapper {
private ArrayList<ObjReal> objReals;
}
2.BIDIRECTIONAL RelatIOHIP
您可使用<代码>@Xml InverseReference,将日本宇宙航空研究开发机构的EclipseLink付诸实施,处理你模式中的双向关系。 我举了一个完整的例子。 我略去了大部分用于节省空间的通道。
www.un.org/Depts/DGACM/index_spanish.htm ObjReal
import java.util.ArrayList;
import javax.xml.bind.annotation.*;
@XmlRootElement
@XmlAccessorType(XmlAccessType.FIELD)
class ObjReal {
private String id;
private String data;
ArrayList<ObjStruc> objStrucs=new ArrayList<ObjStruc>();
public ArrayList<ObjStruc> getObjStrucs() {
return objStrucs;
}
}
<><>ObjStruc>
The Xml InverseReference
annotation is used on this category. 在这项说明中,你具体说明了关系的其他方向的假名/财产名称:
import javax.xml.bind.annotation.*;
import org.eclipse.persistence.oxm.annotations.XmlInverseReference;
@XmlAccessorType(XmlAccessType.FIELD)
class ObjStruc {
@XmlInverseReference(mappedBy="objStrucs")
private ObjReal objReal;
public ObjReal getObjReal() {
return objReal;
}
}
<>strong>jaxb.properties
• 指定MOXy为您的日本宇宙航空研究开发机构提供商,需要将一份名为jaxb.properties的档案列入与贵领域类别相同的成套材料:
javax.xml.bind.context.factory=org.eclipse.persistence.jaxb.JAXBContextFactory
Demo
你们可以操作以下法典,以核实地图:
import java.io.File;
import javax.xml.bind.*;
public class Demo {
public static void main(String[] args) throws Exception {
JAXBContext jc = JAXBContext.newInstance(ObjReal.class);
Unmarshaller unmarshaller = jc.createUnmarshaller();
File xml = new File("src/forum8868303/input.xml");
ObjReal objReal = (ObjReal) unmarshaller.unmarshal(xml);
for(ObjStruc objStruc : objReal.getObjStrucs()) {
System.out.println(objStruc.getObjReal());
}
Marshaller marshaller = jc.createMarshaller();
marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, true);
marshaller.marshal(objReal, System.out);
}
}
Input (input.xml)
<?xml version="1.0" encoding="UTF-8"?>
<objReal>
<id>123</id>
<data>some data</data>
<objStrucs/>
<objStrucs/>
</objReal>
Output
下面是代号法典的输出。 参看<代码>objReal,每份<代码>上的财产 奥杰斯里特( 物体在非婚生期间有人居住:
forum8868303.ObjReal@7f712b3a
forum8868303.ObjReal@7f712b3a
<?xml version="1.0" encoding="UTF-8"?>
<objReal>
<id>123</id>
<data>some data</data>
<objStrucs/>
<objStrucs/>
</objReal>
<>更多信息>
<><>Download EclipseLink>
You can download EclipseLink at: