首先,我对 Eclipse 的建模功能很陌生,所以这个问题可能是微不足道的,但我已经搜索了几天但没有找到答案。
我已经使用 ecore 建模项目创建了一个 ecore 元模型文件。URI 是这样的:/com.auth.dotnetPSM.PSMmodel/model/PSMMetamodel.ecore
我还生成了(通过 ATL 转换)一个 xmi 模型文件。第一个元素是这样的:
<?xml version="1.0" encoding="ISO-8859-1"?>
<RESTfulServicePSM
xmi:version="2.0"
xmlns:xmi="http://www.omg.org/XMI"
xmlns="/com.auth.dotnetPSM.PSMmodel/model/PSMMetamodel.ecore"
name="WSAT">
Run Code Online (Sandbox Code Playgroud)
在 ATL 项目中,一切都按预期进行。
现在我需要使用 Acceleo 创建 M2T 转换。因此,对于初学者来说,我创建了两个模块,一个是 main :
[comment encoding = UTF-8 /]
[module PsmToCode('/com.auth.dotnetPSM.PSMmodel/model/PSMMetamodel.ecore')]
[import org::eclipse::acceleo::psm2code::files::ResourceModelClasses/]
[template public PsmToCode(aRESTfulServicePSM : RESTfulServicePSM)]
[comment @main/]
[for ( aCSharpResourceModel : CSharpResourceModel | aRESTfulServicePSM.hasCSharpRModel)]
[aCSharpResourceModel.generateResourceModelClasses()/]
[/for]
[/template]
Run Code Online (Sandbox Code Playgroud)
和另一个:
[comment encoding = UTF-8 /]
[module ResourceModelClasses('/com.auth.dotnetPSM.PSMmodel/model/PSMMetamodel.ecore')]
[template public generateResourceModelClasses(aCSharpResourceModel : CSharpResourceModel)]
[file (aCSharpResourceModel.parentName.toUpperFirst().concat('.cs'), false, 'UTF-8')]
[/file]
[/template]
Run Code Online (Sandbox Code Playgroud)
当我运行这个时,我得到一个Package …