2

jaxB クラスの生成でいくつかのオブジェクトの衝突がありました。カスタム バインディング ファイルを使用して競合を整理するなどのことができることはわかっていますが、この競合は、異なる名前空間を使用する別のファイル内の同じ名前の 2 つの要素間で発生します。それらが異なる名前空間を持っているという事実で十分ではないでしょうか?

parsing a schema...
compiling a schema...
[ERROR] A class/interface with the same name "code.NameType" is already in use. Use a class customization to resolve this conflict.
  line 215 of file:/C:/Workspace/schemaGen/SchemaGen/src/schemas/Core.xsd

[ERROR] (Relevant to above error) another "NameType" is generated from here.
  line 47 of file:/C:/Workspace/schemaGen/SchemaGen/src/schemas/SearchCore.xsd
4

1 に答える 1

1

衝突は名前空間の問題ではなく、QName 生成の問題です。それが彼らが衝突するところです。

この問題を解決するために私が見つけた3つのオプションがあります:

  1. この問題を回避するには、XSD 内のクラスの名前を別の名前に変更します。
  2. 生成時にクラスを再マップするバインディング ファイルの作成
  3. オブジェクトが同じパッケージ内で衝突しないように、エピソード ファイルを作成し、毎回新しいパッケージを指定して、ボトムアップからクラスを生成します。
于 2012-12-05T00:11:02.103 に答える