微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

如何解决是否有任何现代、稳定、当前的工具可以将 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 举报,一经查实,本站将立刻删除。