4

我已经定义了一个小型 DSL,它主要以不同类型的 XML 文件和一些属性文件的形式编写。这很好用,但我希望创建一个 Eclipse 编辑器,让初学者更容易编辑这些文件(我已经有一个可以工作的解析器)。

主 XML 文件可以引用 .properties 文件中的某些项目,反之亦然。主 xml 文件还可以引用其他 XML 文件。根据 .properties 文件的内容和可以添加到 DSL 项目的一些 osgi 插件,某些选项应该仅在主 xml 文件中可用(语法是动态的,取决于上下文)。语言的结构是固定的,但每个属性中可用的选项或属性本身的选择会根据插件 .jar 文件中包含的元数据而变化。

问题:

XText 是否支持动态语法(验证取决于外部因素)?
XText 是否支持 XML 文件/.properties 文件?

非常感谢您提前提供的帮助。

4

3 回答 3

3

请阅读Xtext 文档

XText 是否支持动态语法(验证取决于外部因素)?

Xtext 使用语法定义自动验证语法。此外,您可以使用 Java 或 Check 编写任意验证。

XText 是否支持 XML 文件/.properties 文件?

当然,如果您为它们定义语法。;) 他们都不太难。

于 2010-03-10T11:55:15.930 回答
2

我不完全理解您的目标,但是如果您有 XSD,您是否考虑将其转换为 Ecore 模型,然后为此构建 Xtext 语法?或者,如果您从头开始,请先构建您的 DSL 语法,然后将 ecore 导出为 XSD,并使用我刚刚在http://blog2.vorburger.ch/2012/07/xtext-xml 中发布的帮助程序。 html ? HTH。

于 2012-07-14T02:58:39.417 回答
1

如果您不必拥有 XML / XSD,那么您所追求的本质上实际上是更多具有可读性(比如 JSON,但强类型?)“通用”DSL,用于受某种“元数据”约束的数据结构模型”(比如用 XCore 表示,它是 EMF Ecore 模型的 DSL,您可以从 XSD 导入它。),然后可能是我在https://github.com上的 EMF 简单对象表示法 ESON(ex-EFactory)您对/vorburger/efactory感兴趣吗?

于 2014-02-08T19:54:50.307 回答