Java 在protobuff中,什么是表示列表的最佳方式?

Java 在protobuff中,什么是表示列表的最佳方式?,java,protocol-buffers,Java,Protocol Buffers,我正在将基于XML的服务转换为基于Protobuff的服务。我陷入了无法决定如何在原型消息中表示列表的境地。例如,我有这样的消息 message Person{ string name=1; repeated Address address =2; } 当我从上面的消息usignprotobuff java格式生成xml时,我得到 <Person> <name>Nathan Drake</name> <address>1234

我正在将基于XML的服务转换为基于Protobuff的服务。我陷入了无法决定如何在原型消息中表示列表的境地。例如,我有这样的消息

message Person{
 string name=1;
 repeated Address address =2;
}
当我从上面的消息usignprotobuff java格式生成xml时,我得到

<Person>
    <name>Nathan Drake</name>
    <address>1234L, XXX, YY - 1234</address>
    <address>7896B, XXX, YY - 1234</address>
</Person>

这样做没有必要也没有好处,除非列表本身可以有自己的属性。因为你想要一个
,这不是不可能的,所以:如果你想要的话,可以随意添加一个额外的层。请注意,这不是必需的,除非您以后需要存储:

<address-list someExtraInfo="abc">

如果这是您想要的数据结构,那么这是一种完全合理的做法。此外,我在java中向person对象添加地址时感觉有点奇怪,比如person.newuider.addAddress(address.newBuilder.build()).build()。我应该在地址列表中添加地址的位置。
message Person{
 string name=1;
 AddreeList addressList=2
}

message AddressList{
 repeated Address address =1;
}
<address-list someExtraInfo="abc">
message AddressList{
   optional someExtraInfo string = 2;
   repeated Address address = 1;
}