| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071 | syntax = "proto2";package protobuf_unittest_extra;option csharp_namespace = "Google.ProtocolBuffers.TestProtos";option optimize_for = CODE_SIZE;option java_package = "com.google.protobuf";message TestInteropPerson {  required string name = 1;  required int32 id = 2;  optional string email = 3;  repeated int32 codes = 10 [packed=true];  enum PhoneType {    MOBILE = 0;    HOME = 1;    WORK = 2;  }  message PhoneNumber {    required string number = 1;    optional PhoneType type = 2 [default = HOME];  }  repeated PhoneNumber phone = 4;    repeated group Addresses = 5 {    required string address = 1;    optional string address2 = 2;    required string city = 3;    required string state = 4;    required fixed32 zip = 5;  }  extensions 100 to 199;}message  TestInteropEmployeeId {  required string number = 1;}  extend TestInteropPerson {  // Note: changed from required to optional, as required fields are not  // permitted in extensions. (The fact that this was allowed in protogen  // before was almost certainly a bug.)  optional TestInteropEmployeeId employee_id = 126;}message TestMissingFieldsA {  required string name = 1;  required int32 id = 2;  optional string email = 3;    message SubA {    required int32 count = 5;    repeated string values = 6;  }  optional SubA testA = 11;}message TestMissingFieldsB {  required string name = 1;  required int32 id = 2;  optional string website = 4;    message SubB {    repeated string values = 7;  }  optional SubB testB = 12;}
 |