У меня есть несколько бобов JAXB, которые непосредственно маршалируются и распаковываются с использованием Джерси.
* 1003 Е.Г. *
@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>
Здесь я смог успешно контролировать имя элемента Артефакта, чтобы в начале он имел заглавную букву "А".
Однако я создаю метод 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>
Как видите, внешний элемент для коллекции имеет строчную букву "А". Чтобы соответствовать нашему собственному внутреннему стандарту, я бы хотел, чтобы это была заглавная буква «А» - Артефакты.
Я не могу понять, где это можно определить в JAXB, действительно ли это контролируется инфраструктурой Джерси?
Можем ли мы контролировать имя элемента, сгенерированное для коллекций?
Большое спасибо,
Джеймс