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; }