のためのキャメルケースは、私が直接整列化、ジャージーを使用してアンマーシャルしているJAXB豆の数を持っています。JAXBコレクション(リスト<T>)使用パスカルケースの代わりに、要素名
など。
@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>
ここで私が正常に先頭に大文字の「A」を持っているアーティファクト要素の名前を制御することができました。あなたは、コレクションのために、外側の要素が小文字の「A」を持って見ることができるように
<artifacts>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
<Artifact>
<artifactId>293289392839283</artifactId>
<artifactType>EMAIL</artifactType>
<contentHash>2837873827322</contentHash>
</Artifact>
</artifacts>
:
はしかし、私はアーティファクトオブジェクトのコレクションを返すGETメソッドを作成し、私はで終わります。私たち自身の内部標準に準拠するためには、これを資本 "A" - アーティファクトにしたいと思います。これはJAXB内で定義することが可能であるところ、私は見ることができない
、それは実際にこれを制御しているジャージーフレームワークとは?
は、我々は、コレクションのために生成された要素名で制御することはできますか?
多くのおかげで、
ジェームズ
1.私の知る限りJAXBは、次のようなマーシャルにコレクション(例えば 'ArrayListのを')あなたを許可していません。しかし、コレクションとしてプロパティを持つオブジェクトを直列化することができます。 2。私はジャージーに慣れていませんが、各アーティファクトを別々にシリアライズするJAXBと、チャンクの全ドキュメントを構築する他のレイヤー(ジャージー)か、またはコレクションのXMLをプロジェクトするJAXBかどうかを知る必要があります。 3.コードを投稿する(またはどこかに公開する)ことができますか - 呼び出す方法は?私は単純なJAXBで試していましたが、これはあなたの設定を模倣しません。 –
私はあなたが正しいと思っています.Jerseyです。これは、JAXB Beanのコレクションをマーシャリング/アンマーシャルすることを可能にしています(私はJerseyユーザーグループと同様にこれを作成しました)。したがって、コレクションのXML要素名の背後にある名前やルールを設定できるような設定がいくつかあることを期待しています...私たちは待っています。あなたが指摘しているように、回避策は、新しいJAXB beanを作成することです。例えば、 "Artifacts"と言うと、1つのコレクションメンバーがあります。リスト人工物 - これは私が感じることは、多くの価値を追加しないクラスの全体の束を紹介します。手伝ってくれてありがとう。 James –
jallch