2

http://www.ibm.com/developerworks/library/os-eclipse-dynamicemf/の記事に従って、動的にメタモデルをロードしています。

これを使用して、モデルのインスタンス化されたドキュメントを読み込みます

ResourceSet load_resourceSet = new ResourceSetImpl();
// ResourceSet load_resourceSet2 = new ResourceSetImpl();

/*
 * Register XMI Factory impl ementation using DEFAULT_EXTENSION
 */
load_resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", //$NON-NLS-1$
            new XMIResourceFactoryImpl());

/*
 * Add bookStoreEPackage to package registry
 */
load_resourceSet.getPackageRegistry().put("http:///com.ibm.dynamic.example.bookstore.ecore",
        bookStoreEPackage);

//  load_resourceSet2.getResourceFactoryRegistry().getExtensionToFactoryMap().put("*", //$NON-NLS-1$
    // new XMIResourceFactoryImpl());

/*
 * Load the resources using the URI
 */
Resource modelo_esquerda = load_resourceSet
                .getResource(URI.createURI("./BookStore.xmi"), true);

しかし、私はこのエラーメッセージを受け取りました

Exception in thread "main" org.eclipse.emf.ecore.resource.impl.ResourceSetImpl$1DiagnosticWrappedException: org.eclipse.emf.ecore.xmi.ClassNotFoundException: Class 'BookStore' is not found or is abstract. (.\BookStore.xmi, 9, 34)

XMI ファイルはすでにディレクトリに存在します。

私は何ができますか?

ありがとうございました

4

1 に答える 1

2

あなたは次のことを試すことができます、それは私にとってはうまくいきました:

XMIResourceImpl resource = new XMIResourceImpl();
File source = new File(xmlName.xml);
resource.load(new FileInputStream(source), new HashMap<Object,Object>());
Data data = (Data) resource.getContents().get(0);

Dataモデルはどこですか。

于 2014-10-31T10:14:51.953 に答える