问题描述
我有一个来自外部供应商的提要:它是通过 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 (将#修改为@)