0

基本ファミリの ecore ファイルを作成し、モデル、編集、およびエディタ コードを生成しました。アプリケーションを実行すると、実行時にファミリ モデル ファイルを作成できるようになりました。ファミリ モデル ファイルに保存されているシリアル化されたオブジェクトを取得します。

モデル ファイルのタイプは

?xml バージョン="1.0" エンコーディング="UTF-8"?

4

2 に答える 2

0

基本的なファミリ メタモデルがあり、そのモデル、編集、およびエディタ コードを生成し、そこから「.basicfamily」モデルを作成した場合、次のコードを使用してそれを読み取ることができます。

URI uri = URI.createURI(new File("path of your file").getAbsolutePath());
ResourceSet resourceSet = new ResourceSetImpl();
resourceSet.getPackageRegistry().put(BasicfamilyPackage.eNS_URI, BasicfamilyPackage.eINSTANCE);
resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("basicfamily", new XMIResourceFactoryImpl());
Resource resource = resourceSet.getResource(uri, true);
List<EObject> contents = resource.getContents();
// now you can iterate on the root objects of your model, use EObject#getContents() to
// retrieve the children of an EObject and thus navigate in your data

このコードがメタモデルがインストールされた Eclipse プラグインで実行されている場合、プラグインによって処理されるため、このコードの一部は必要ない場合があります (パッケージ レジストリへの基本ファミリ EPackage の追加とリソース ファクトリの登録)。生成されたプロジェクトの .xml。

于 2016-08-12T08:01:37.697 に答える
0

これは単純な EMF の質問です (つまり、シリウス関連ではありません)。EMF を初めて使用する場合、これはいくつかのドキュメントを参照しています。特に、この PDFは「EMF ブック」のサンプルの章であり、フレームワークの概要を説明しています。特に、 Object Persistenceというセクションがあなたの質問に答えるはずです (特に、リソース/モデルをメモリにロードする方法を示す 31 ページのコード スニペット)。

于 2016-08-12T08:00:24.957 に答える