我有许多使用 Jersey 直接编组和解组的 JAXB bean。
例如
@XmlAccessorType(XmlAccessType.FIELD)
@XmlType(name = "Artifact", propOrder = {
"artifactId",
"artifactType",
"contentHash"
})
@XmlSeeAlso({
EmailArtifact.class,
ManagedDocArtifact.class
})
@XmlRootElement(name ="Artifact")
public class Artifact {
protected String artifactId;
protected String artifactType;
protected String contentHash;
...
...
...
}
如果我创建一个返回单个工件对象的 GET 方法。它正确地生成 XML:
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
在这里,我已经能够成功控制 Artifact 元素的名称以大写“A”开头。
但是,我创建了一个返回工件对象集合的 GET 方法,我最终得到:
<artifacts>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
</artifacts>
如您所见,集合的外部元素有一个小写“A”。为了符合我们自己的内部标准,我希望这是一个大写的“A”——Artifacts。
我看不到可以在 JAXB 中定义的位置,实际上是由 Jersey 框架控制它吗?
我们可以控制为集合生成的元素名称吗?
非常感谢,
詹姆士