是否有任何现代、稳定、当前的工具可以将 XSD 转换为 Protobuf?

问题描述

我有一个来自外部供应商的提要:它是通过 ActiveMQ 提要发送的 XML 文档。供应商为我可能会收到的所有文档类型提供 XSD。

在内部,我们宁愿使用协议缓冲区而不是 XML。如果我可以自动将供应商的 XSD 编译为 proto 对象,那就太好了。如果我有 proto 文件,我应该能够解码每条 XML 消息,然后将其重新编码为 protobuf。

我正在寻找一种可以从 .xsd 文件生成 .proto 文件的工具。我发现了一些声称能够做到这一点的开源工具:

xsd2thrift - 尽管名称如此,但该工具可以将 XSD 转换为照片文件。这个项目已经有五年没有动过了,所以我不太可能得到太多的支持。我会担心将一个很久以前放弃的项目合并到我自己的项目中。

当我运行这个工具时,我发现它在我的 .proto 文件中创建了冗余定义,例如:

message UnspecifiedType
{
    required string baSEObjectType = 1;
    required bytes object = 2;
}

不清楚“Unspecified”和“baSEObject”的来源。 XSD 中不存在此类标记。鉴于该项目已长期处于非活动状态,我不太可能从该项目的任何开发人员那里获得支持

schema2proto - 一个看起来很有前途的项目,然而,它似乎因莫名其妙的错误而崩溃。我检查了代码并运行了单元测试……它们似乎也没有通过。不完全是鼓舞人心的信心。

这些是完成此类工作的唯一工具吗?我很惊讶似乎没有成熟、稳定的工具将 XSD 转换为 Protos?

通常,当我看到工具中有明显的差距时,这可能意味着以下任何一种情况:

  • 我想做的事情很愚蠢或多余。人们不从 XSD 转换为 proto 可能有一个很好的理由,而我这样做的愿望是由于对这两种技术中的一种或两种的误解。

  • 或者,在这些模式表示之间进行转换的功能现在由其他一些更成熟或更流行的工具处理。不再需要这些小的开源工具

还有其他建议吗?

那么是否有工具可以帮助我解决这个问题,或者是否有其他方法解决这个问题,这意味着我不需要这种工具?

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)