3

xsd ファイルにスキーマがあります。たまに新しいバージョンのスキーマが作成され、.ecore (および .genmodel) を更新する必要があります。それらを削除せずに更新して再生成するにはどうすればよいですか。ecore に手動で変更を加えましたが、この変更を保持したいと考えています。

そうです。

4

4 に答える 4

3

*.genmodelでReload...アクションを使用して、*。xsdの新しいバージョンに基づいて*.ecoreを更新します。

于 2009-08-10T11:02:32.980 に答える
1

また、 .ecoreを直接変更しないでください。ecoreの使用:スキーマ内の注釈。http://www.eclipse.org/modeling/emf/docs/overviews/XMLSchemaToEcoreMapping.pdf

于 2009-08-10T11:08:21.037 に答える
0

私はこれを試したことがありませんが、XSDFAQには次のように書かれています。

JAXBは、XMLスキーマを指定して単純なJava APIを生成し、基本的にブラックボックス設計を使用して生成します。EMFは、XMLスキーマを指定してEcoreモデルを生成し、テンプレートベースのジェネレーターテクノロジを使用して、(手書き品質の)豊富なJavaAPIを生成します。XMLスキーマからEcoreへの変換を調整でき、Java APIの生成に使用されるテンプレートを調整でき、結果のJavaAPIを調整できます。ジェネレーターは、手書きの変更を保持するように、マージ再生をサポートします。言い換えると、EMFははるかに豊富で柔軟性があり、XMLスキーマのより広範なサブセットをサポートします(特に、ワイルドカードと混合コンテンツがサポートされる2.0では)。

私があなたなら、このプロセスがどれだけうまく機能するか、そして実際の制限が何であるかを確認するためにいくつかの実験を試みます。

于 2009-08-10T00:53:59.343 に答える
0

コンテキスト メニュー オプションを使用して再生成できます。変更を保存するには:

  • 名前に「Gen」が追加されたメソッド (setWhatever に加えて setWhateverGen など) がある場合、新しいコードが「Gen」メソッドに生成されます。したがって、「Gen」メソッドは上書きできるようにそのままにしておき、変更できる非 Gen メソッドから呼び出します。
  • 生成されたすべてのメソッドには、@ generatedの注釈が付けられます。「NOT」 -- @ generated NOT -- を追加すると、上書きされません。

他のすべてのコンテンツはマージする必要があります。さあ、実験してみてください。それがバージョン管理の目的です....

于 2009-08-10T07:42:56.440 に答える