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 内でこれを定義できる場所がわかりません。実際にこれを制御しているのはジャージー フレームワークですか?
コレクション用に生成された要素名を制御できますか?
どうもありがとう、
ジェームズ