3

我们有一个系统,它的行为由许多 XML 文件定义。(大约 50 个不同的 XML 文件,每个文件控制子系统的行为。)

由于遗留原因,XML 文件采用自定义格式,便于系统中的各种组件使用。

自定义格式对人类来说不是很直观和可读。(这对我们来说也是一个重要的考虑因素)。

那么我们如何解决这个可读性问题呢?

我觉得在这些 XML 文件之上编写的直观 UI 应该可以完成这项工作。

然而,我的同事认为用 DSL 替换 XML 文件是一个更好的主意,因为它们既直观又机器可读。

这是个好主意还是矫枉过正?我觉得与说 UI 相比,正确地实现 DSL 是非常困难的。但我可能是错的。

任何帮助将不胜感激。谢谢。

4

2 回答 2

2

XML 到 XML 的转换是一种半途而废的解决方案,可能是我会使用的方法。

UI 必须非常完整,才能替代基于文本的行为描述,而常见的基于文本的惯用语(例如复制和粘贴、搜索和替换等)在 UI 中难以实现且具有良好的可用性。

但是,使用自定义解析器的成熟 DSL 可能有点过头了,特别是如果团队中的多个成员都没有解析器或编译器经验。不要误会我的意思——我认为人们不应该害怕解析器,我自己就是一名编译器工程师——但事实上有些人很害怕,如果解析器做得不对,它会得到很快就凌乱了。

因此,我提倡设计一种理想化的 XML 格式,并编写一个工具,使用 XSLT(如果它很容易——我不会深入研究 XSLT 函数等)或简单的翻译将该格式转换为您的真实 XML 格式应用程序。

为规范提供可读的文本格式有很多优点:即席编辑很容易(您只需要记事本),源代码管理的差异是可读的,可以通过电子邮件发送片段等。获得一个具有可用性和功能性的 UI与文本格式对等并不容易。

于 2009-06-07T08:45:21.970 回答
2

您应该查看http://www.eclipse.org/Xtext/ - 它非常适合您正在寻找的东西!

于 2011-12-10T09:53:34.263 回答