我们有以某种 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 等来完成。但是,我想了解哪种技术可以满足以下要求。
- 模型在运行时馈送到系统(新建、更新、删除等)。所以,我不能有静态的语法集。如何构建它以便在运行时解析模型/属性辅助或至少生成语法(可能是其中的一部分)
- 当我使用一组“语法”时,如果我将目标服务器指向不同的版本(可能有不同的模型集),我希望编辑器验证我现有的文件并标记错误。
- 我以 xml、文本或通过服务器查找获取数据文件。
- 将模型转换为其他格式或在 java/groovy 中解释它们对我来说非常重要。
例如,我可能有以下数据文件
user {
fn : Tom
ln : Jill
hobby : movies
}
但是,当我针对不知道“爱好”属性的服务器验证此文件时,我希望编辑器在该属性上标记错误。
我计划向这个 dsl/toolkit 添加更多功能。任何提示哪种技术更合适?
谢谢