【问题标题】:Can I use XText for a DSL involving an XML file type?我可以将 XText 用于涉及 XML 文件类型的 DSL 吗?
【发布时间】:2011-01-25 08:25:12
【问题描述】:

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

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

问题:

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

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

【问题讨论】:

    标签: java xml eclipse dsl xtext


    【解决方案1】:

    请阅读Xtext documentation

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

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

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

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

    【讨论】:

    • 我把这个开发推迟了一段时间,但是我仍然找不到任何用于 XML 类型语言的示例语法,并且在不知道如何定义 xml 语法的情况下开始和停止了好几次。我查看了 XText 文档,但我无法弄清楚如何使用其所有可选部分对像 xml 类型语法这样复杂的东西进行建模,同时专门只支持我选择的模型。如果 Spring XML 配置文件有 XText 语法,我想这将是最接近的比较。如果您能指出我正确的方向,将不胜感激。谢谢,克里斯
    【解决方案2】:

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

    【讨论】:

      【解决方案3】:

      如果您不必拥有 XML / XSD,那么您所追求的本质上实际上是更多地拥有一个可读的(比如 JSON,但强类型?)“通用”DSL,用于受某种约束的数据结构的“元模型”(比如用 XCore 表示,它是 EMF Ecore 模型的 DSL,您可以从 XSD 导入它。你感兴趣吗?

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-05
        • 2011-12-28
        • 2021-07-08
        • 1970-01-01
        • 1970-01-01
        • 2012-11-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多