我需要将家谱文件转换为OpenGen XML文件格式。很简单,我可以编写Java代码来解析特定文件并输出OpenGen文件。如果有人在他们的项目中使用Java,他们可以使用我们的库。如果某人不在他们的项目中使用Java,他们可以移植我们的翻译代码或从外部运行我们的Java应用程序。
由于这是一个非常普遍的需求,我希望有一种机制可以使这更容易。理想的解决方案是,我可以创建一个包含规则/映射的文件,以便在一种文件格式和我们的格式之间进行转换。然后分发此映射文件,以便其他任何人都可以使用许多可以使用此映射文件执行转换的库中的一个。通过这种方式,翻译变得更加容易,现在任何人都可以在他们选择的语言/平台内进行翻译。
我想在我们的情况下,映射文件有点复杂,因为至少要有层次结构来处理。我想进一步复杂化的是,一些家谱文件格式是二进制的......
这种机制存在吗?什么是最好的方法?
答案 0 :(得分:0)
如果您的源语言始终是XML,则可以使用XSLT或CDuce。
否则你需要像Antlr一样体面的解析和漂亮的打印框架,并准备好付出很多努力。对于一些微不足道的案例,实现自己的基于组合器的Packrat解析器更容易。