在Ruby中实现DSL以生成特定于域的XML

在Ruby中实现DSL以生成特定于域的XML,ruby,xml,dsl,builder,Ruby,Xml,Dsl,Builder,我想在Ruby中实现一个DSL,用于生成特定于域的XML文档(即符合特定模式的XML)。我可以使用例如Builder在Ruby中编写XML,这已经是手动编写XML的一大改进,但我还希望: 方便的方法可以为我生成一大堆XML 并且可能是一种将生成器限制为模式的方法(不一定是XSD或DTD,但实现可能只生成某些标记) 因此,我目前的计划是使用方便的方法扩展Builder,暂时忽略模式限制方面的内容 我向社区提出的问题是,这听起来是否是一个合理的计划,更重要的是,是否有任何DSL可以以某种方式扩展

我想在Ruby中实现一个DSL,用于生成特定于域的XML文档(即符合特定模式的XML)。我可以使用例如Builder在Ruby中编写XML,这已经是手动编写XML的一大改进,但我还希望:

  • 方便的方法可以为我生成一大堆XML
  • 并且可能是一种将生成器限制为模式的方法(不一定是XSD或DTD,但实现可能只生成某些标记)
因此,我目前的计划是使用方便的方法扩展Builder,暂时忽略模式限制方面的内容

我向社区提出的问题是,这听起来是否是一个合理的计划,更重要的是,是否有任何DSL可以以某种方式扩展Builder,我可以用它来获得灵感


不幸的是,谷歌搜索ruby、xml、builder、extend、dsl。。。不会返回非常有趣的结果。

我不知道它是否使用Builder,但肯定值得一看


我还发现wich提到了更多,其中可能最接近您的想法,但github上的最后一次提交是在2008年。当然,看看《为什么》的代码应该会很有趣。

谢谢krusty.ar,就像你说的,Markaby似乎很接近我想要做的事情!我不知道为什么我不认为所有的HTML生成器看起来都一样。。。