EClassifier=Boolean 未在当前环境中注册

Posted

技术标签:

【中文标题】EClassifier=Boolean 未在当前环境中注册【英文标题】:EClassifier=Boolean is not registered in the current environment 【发布时间】:2020-03-09 17:27:47 【问题描述】:

我想从我自己的 ecore 模型中生成一个 docx。大多数查询都可以正常工作,但我的新查询在 mygeneration.validation.docx 中显示以下错误消息:

<---EClassifier=Boolean is not registered in the current environment

我已经使用 Sirius Interpreter 和 aql 测试了查询。在解释器中,我得到了我想要的结果。

运行查询: aClass.Name(结果为字符串)

未运行查询: aClass.IsAbstract(结果为布尔值)

我在 Google 上搜索过,但似乎没有其他人有相同的错误消息。有谁知道我该如何解决这个问题?

谢谢

【问题讨论】:

【参考方案1】:

我猜你的元模型 (.ecore) 有 Class 的概念,而 aClass.IsAbstract 有一个 Boolean 的 eType,它也在你的元模型中定义。

首先,您应该使用模板中的 nsURI 注册您的元模型。您可以使用template property wizard 来执行此操作。

对于您的 EAttribute IsAbstract,您可能希望重用 EString、EBoolean、...

如果您选择创建自己的 Boolean,则应将其声明为 EDataType 并将其实例类名称设置为 boolean 或 java.lang.Boolean(Java 类型)。这样AQL 和M2Doc 可以在条件中将值评估为布尔值。

【讨论】:

以上是关于EClassifier=Boolean 未在当前环境中注册的主要内容,如果未能解决你的问题,请参考以下文章

当前 URL 未在 Laravel 中打印

实现约瑟夫环

由于缺少引号,布尔值未在 MERN 堆栈中更新

截图工具当前未在计算机运行

XML Parse 后未在 UITableView 中获取当前数据(使用 NSFetchedResultsController)

Redux 状态未在开发工具中更新,但当前状态正在反映在道具中