我想将我的Google协议对象转换为XML格式。在那里我想保留一些字段作为属性。 而不是:
<field>
<name>ApiFieldHeaderName</name>
<maxLength>50</maxLength>
</field>
我想要关注:
<field name="ApiFieldHeaderName" maxLength="50" ></field>
我的协议是
string name = 1;
int32 maxLength = 2;
然后我通过了一些论坛并使用了 xml_disposition
[(xml_disposition) = ATTRIBUTE]
但是,我收到错误:
选项“(xml_disposition)”未知。
我使用的是proto3,语言是Java。
syntax = "proto3";
option optimize_for = SPEED;
答案 0 :(得分:1)
我相信你从2009年的protobuf新闻组的侧面讨论中找到了xml_disposition
。然而,提到的选项纯粹是假设的。据我所知:没有这样的xml_disposition
自定义选项 - 至少,不是标准选项 - 并且没有代码生成器查找它。 Google protobuf源中不存在xml_disposition
,并且当前版本的protoc
(3.5.1)无法识别它并且是内置选项。
所以:
附注:自定义选项必须在&#34; proto2&#34;中定义。语法文件,但是&#34; proto3&#34;文件仍然可以导入并使用&#34; proto2&#34;中的那些自定义选项。文件。