1

私は EMF を使用しており、XSD から ecore を作成しました。

エディターによって保存されている XML に、元の XSD の一部ではない要素 DocumentRoot があることに気付きました。どうにかしてそれを生成できないので、エディターの XML ファイルに含まれませんか?

そうです

4

1 に答える 1

0

スキーマにグローバル要素または属性がない場合、ドキュメントルートを取得できません。ただし、もちろん、この場合、スキーマはドキュメントを作成するための単一の方法を指定していません。別のスキーマで使用できるのは、定義されたタイプとものだけです。一部のスキーマでは、ドキュメントのルートを指定するためにグローバル要素を宣言する必要があります。

ソース:dev.eclipse.org

モデルにドキュメントルートがあり、ロード中に拡張メタデータオプションを使用している場合は、ドキュメントルートが作成されます。ドキュメントルートには、各グローバル要素に対応する機能があり、逆シリアル化時に実際に設定されるドキュメントルートの特定の機能は、シリアル化に表示されるルート要素に正確に対応します。ドキュメントルートインスタンスでEObject.eContents()。get(0)を使用すると、ドキュメントルートの子EObjectが返され、その子のeContainmentFeature()がグローバル要素に対応します。

要素は、そのタイプが分類子に対応する機能に対応することを覚えておくとよいでしょう。EClassは複合型に対応しているため、EClass(複合型)のインスタンスを持つことは、どの要素としてシリアル化する必要があるかを示すのに十分な情報ではありません。これはeContainmentFeature()によって決定されます。そのため、ルート要素を指定するにはドキュメントルートが必要です。これは、eContainerがないと意味のあるeContainmentFeature()が存在しないためです。

ソース:dev.eclipse.org

メーリングリストを試してください。

于 2009-11-10T06:26:31.290 に答える