如果这个问题太模糊,我们深表歉意。 我参与开发一个系统,主要将数据从一种格式转换为另一种格式。
这些几乎都是 XML --> XML、XML <--> JSON、JSON --> XML 转换。 转换逻辑的范围可以从简单(意味着一对一映射)到复杂(循环、条件、值争论等)。
目前,我们的转换组件支持 XSLT 和 Velocity 作为转换模板语言/技术。
看起来效果不错。
我们遇到的问题是,开发人员每次处理新需求时都需要手动编码。这就是瓶颈所在。这需要时间。
我想探索是否有一种更简单的方法,由非技术用户(或半技术用户)通过工具或 DSL 以不可知的方式定义数据映射。
然后这个 DSL 会自动生成到 XSLT 或 Velocity 模板中。
我想要一个轻量级的解决方案(最好是开源的)。
遇到 Altova Mapforce studio(商业桌面工具)来开发数据映射并生成代码。不幸的是,它只是 Windows 且是商业的。
如果它是基于网络的工具(可以在浏览器上运行),那就更理想了。
或者,是否有可用于数据映射(不可知)的通用 DSL 标准,然后使用不同的技术从中生成特定模板?
定义一种可以处理一系列常见转换的简单转换语言并不困难,并且通过将其翻译成 XSLT 来实现这一点也不困难。您将遇到的问题是,语言的简单性是通过限制它的功能来实现的。随着它变得更加强大并且被更多的人用于更广泛的目的,您会发现自己正在重新发明 XSLT(或 Velocity)。问题是知道何时停止以达到 80:20 的最佳点。
除了 MapForce 之外,您还可以从 Biztalk 中寻找灵感。就我个人而言,我发现这些图形工具令人恼火;我不擅长猜测这些图标的含义。但这只是我。