在独立运行时,Acceleo无法解析代理

时间:2017-03-04 22:09:01

标签: java eclipse emf acceleo xmi

我正在尝试使用IFML模型对html代码执行模型到文本的转换。 我有这个mtl文件:

[comment encoding = UTF-8 /]
[module main('http://www.omg.org/spec/IFML', 'http://www.omg.org/spec/IFML/core', 'http://www.omg.org/spec/IFML/ext')]

[template public generateElement(anIFMLModel : IFMLModel)]
[comment @main/]
[for (e1: InteractionFlowModelElement | anIFMLModel.interactionFlowModel.eContents())]
    [if (e1.oclIsTypeOf(ViewContainer))]
        [file ('/Pages/' + e1.oclAsType(ViewContainer).name + '.html', false, 'UTF-8')]
        <!DOCTYPE html>
        <html xmlns="http://www.w3.org/1999/xhtml">
        <header>
            <title>[ e1.oclAsType(ViewContainer).name /]</title>
        </header>
        <body>
            <p>hello World</p>
        </body> 
        </html>
        [/file] 
    [/if]
[/for]
[/template] 

如果我使用Acceleo插件运行转换,代码正常工作,但当我尝试独立运行时,我收到错误:

  

名为generateElement的主模板的第一个参数的类型是代理。

我在同一工作区中的另一个项目中有元模型,但我尝试将项目导出到jar并导入加速项目但没有成功。

对于独立我注册像这样的包

resourceSet.getPackageRegistry().put(ifml.core.CorePackage.eINSTANCE.getNsURI(), ifml.core.CorePackage.eINSTANCE);
resourceSet.getPackageRegistry().put(ifml.extensions.ExtensionsPackage.eINSTANCE.getNsURI(), ifml.extensions.ExtensionsPackage.eINSTANCE);  

如果我将代码调试为java应用程序,它会在异常抛出时停止并检查参数类型并显示

org.eclipse.emf.ecore.impl.EClassImpl@2e554a3b (eProxyURI: http://www.omg.org/spec/IFML#/0/core/IFMLModel)

我不知道还有什么要检查。任何帮助表示赞赏

0 个答案:

没有答案