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 未在当前环境中注册的主要内容,如果未能解决你的问题,请参考以下文章
XML Parse 后未在 UITableView 中获取当前数据(使用 NSFetchedResultsController)