मेरे पास कई अलग-अलग स्कीमा हैं, हालांकि फ़ील्ड का एक सेट है जिसमें प्रत्येक स्कीमा शामिल है। मैं सोच रहा था कि क्या एक अलग स्कीमा एक मूल स्कीमा का विस्तार करने और अपने क्षेत्रों का वारिस करने का कोई तरीका था। उदाहरण के लिए इस मैं क्या चाहते है:विस्तार प्रोटोबफ संदेश
message Parent {
required string common1 = 0;
optional string common2 = 1;
}
message Child1 { // can we extend the Parent?
// I want common1, common2 to be fields here
required int c1 = 2;
required string c2 = 3;
}
message Child2 { // can we extend Parent?
// I want common1, common2 to be fields here
repeated int c3 = 2;
repeated string c4 = 3;
}
इस तरह की है कि Child1 और Child2 भी फ़ील्ड शामिल common1 और common2 (और संभवतः अधिक) जनक से।
क्या यह संभव है और यदि ऐसा है तो कैसे?
विरासत समर्थित नहीं है का उपयोग करने के लिए है, लेकिन एक गरीब आदमी का समाधान के रूप में, आप एक नेस्टेड निर्माण इस्तेमाल कर सकते हैं जहां 'Child1' और के पहले क्षेत्र' चाइल्ड 2 'प्रकार' माता-पिता का प्रकार है। "बेस-क्लास" में फ़ील्ड तक पहुंचने के लिए, आपको पहले उस 'पैरेंट' टाइप किए गए फ़ील्ड को स्पष्ट रूप से एक्सेस करना होगा। –
एक्सटेंशन भी हैं। https://developers.google.com/protocol-buffers/docs/proto#extensions – engineerC