【问题标题】:Convert from Proto to XSD从 Proto 转换为 XSD
【发布时间】:2014-07-17 17:18:50
【问题描述】:

我需要能够从proto转换到xsd,我知道有一些工具可以从XSD转换到PROTO,但是我需要反对。

可以在 .NET 或 Java 中

谢谢

【问题讨论】:

  • 如果你愿意,我可能分两步完成 - 不理想,但可行...通过 c# (protogen) 然后 xsd.exe 在编译的 DTO 模型上

标签: java protocol-buffers protobuf-net


【解决方案1】:

您最终没有指定要接收的 XSD 示例。实际上,有多种方式可以在 XSD 中表示 Protobuf 消息。

可能会出现一些问题:

  • 您希望如何存储 PROTO 字段:作为属性或元素(对于像 string/bool/int 这样的简单类型)?
  • 您是否希望有固定的 XML 元素顺序? (换句话说,您想在您的xs:complexType 定义中使用xs:sequencexs:all 吗?)

到目前为止,我也遇到了同样的问题。我解决了我的任务并描述了它in blog post

我的任务的解决方案是:

  • 使用protogen.exe 将PROTO 序列化为XML 表示
  • 然后运行自定义编写的 XSLT 以生成 XSD 架构

其实I wrote XSLTprotogen.exe生成XSD。使用它,this PROTO 将转换为this XSD

您可以根据需要自定义此 XSLT。希望这会有所帮助!

【讨论】:

  • 我关注了您的博文,这对我很有帮助。不幸的是,我对 XSLT 不太熟悉,需要 1) 将 proto 字段编写为元素,以及 2) 使用 xs:sequence 而不是 xs:all。请问您能帮忙吗?
  • @hshah,试试这个 xslt,希望它能做你想做的事:github.com/halex2005/protobuf-to-xsd/blob/master/xsd.xslt
【解决方案2】:

我不得不分别使用Proto to JSON 转换工具和JSON to XSD 转换工具来解决不同的问题。可能对你的情况有所帮助..

【讨论】:

  • Protomak 不是用其他东西制作 .proto 吗?
猜你喜欢
  • 1970-01-01
  • 2011-09-20
  • 1970-01-01
  • 1970-01-01
  • 2010-12-03
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 2014-02-22
相关资源
最近更新 更多