groovy – 域模型的文本语法
我们有一些以xml格式描述的域模型.鉴于域模型,我想生成工具,帮助测试人员/域专家在文本中表达数据(以及稍后的域特定测试框架). IDE支持是强制性的(IDEA或
eclipse).
说,我有这个伪模型 User fn string 120 chars mandatory ln string 120 chars mandatory address not-mandatory Address street mandatory city mandatory 典型的使用场景: user opens the IDE creates a new file when content assist invoked,should give options 'user','address' etc If I choose user,furthur ctrl-space should give 'fn','ln','address' as options. 我知道这可以通过xtext或jetbrains mps等来完成.但是,我想了解哪种技术可以满足以下要求. >模型在运行时被提供给系统(新的,更新的,删除的等). 对于前者, user { fn : Tom ln : Jill hobby : movies } 但是,当我针对不知道’业余爱好’属性的服务器验证此文件时,我希望编辑器在该属性上标记错误. 我计划为这个dsl?? / toolkit添加更多功能. 谢谢 解决方法
我认为在您拥有(或可以创建)XML域模型的XML模式的条件下,Xtext可以满足您的要求.
如果我理解正确,您实际上并不需要针对每个XML数据模型的特定语法规则,而只需要交叉引用数据模型. EMF支持从XSD文件生成EMF Java类,如果使用自定义索引器(Xtext接口IDefaultResourceDescriptionStrategy)将Xxt索引添加到Xtext索引,Xtext可以引用符合XSD架构的XML文件.
EMF使用URI来识别资源,所以如果你生成像我描述的Ecore模型,应该可以使用http://或file://(或者其他任何,它是可扩展的)URI或者你的东西来导入XML域模型内部解析为URI.
在这里,你可以选择制作一个解释器,一个Xbase推理器或一个生成器(每个都可以使用Xtend很好地实现),具体取决于你的要求. (免责声明:我是itemis的员工,这是Xtext的主要贡献者之一) (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |