JibX が提供する CodeGen ツールを使用して作成したファイルがいくつかあります。これらのクラスはすべて同じルート名を持つため、生成されたクラスはすべて同じ名前になります。
最初に、これらの生成されたすべてのクラスを独自のパッケージに配置して名前の競合を解決することで、この問題を解決しました。その後、新しいオブジェクトを宣言またはキャストするたびに、非常に長いパッケージ名全体を宣言する必要があるという問題に遭遇しました。
これを処理する最初のアイデアは、元の自動生成されたクラスを拡張した個別の名前を持つ空のサブクラスを作成することでした。そのような
public class AutoGen
{
//This class generated by CodeGen binds as expected
//No problems marshalling or unmarshalling documents
}
public class UniqueName extends com.CompanyName.ProductName.SDK.Events.HeartBeatEvent.AutoGen
{
//This class is empty
}
私が今直面している問題は、バインドがないために、JibX が文字列またはファイルをこのサブクラスにマーシャリングまたはアンマーシャリングしないことです。
CodeGen のドキュメントをもう一度読んだ後、生成されたクラス名を宣言できるコマンドが見つからないようです。CodeGen によって生成されたクラスに、ユーザーが宣言した一意の名前を効率的に作成する方法はありますか? そうでない場合、JibX がサブクラスを正しくマーシャリングおよびアンマーシャリングする方法はありますか? これらのソリューションのいずれかが機能します。
また、コードの生成元である xsd ファイルを変更することはできません。