मैं इस स्कीमा को xsd.exe के साथ उत्पन्न करता हूँ
& lt;? Xml version = "1.0 "एन्कोडिंग =" यूटीएफ -8 "? & Gt; & LT; XSD: स्कीमा xmlns: xsi = "http://www.w3.org/2001/XMLSchema-instance" xmlns: SMP = "http://iso.org/abc" elementFormDefault = "योग्य" targetNamespace = "http : //iso.org/abc "version =" 1.0.0 "xmlns: xsd =" http://www.w3.org/2001/XMLSchema "& gt; & Lt; xsd: तत्व का नाम = "मूल" & gt; & LT; XSD: complexType & gt; & LT; XSD: अनुक्रम & gt; & Lt; xsd: तत्व का नाम = "आंतरिक पता" प्रकार = "एसएमपी: आंतरिक एडीटर टाइप" & gt; & lt; / xsd: तत्व & gt; & Lt; xsd: तत्व का नाम = "पत्र" प्रकार = "एसएमपी: लेटरटाइप" & gt; & lt; / xsd: तत्व & gt; & Lt; / XSD: अनुक्रम & gt; & Lt; / XSD: complexType & gt; & Lt; / XSD: तत्व & gt; & Lt; xsd: जटिल टाइप नाम = "पता प्रकार" & gt; & LT; XSD: अनुक्रम & gt; & Lt; xsd: तत्व का नाम = "रेखा 1" प्रकार = "xsd: स्ट्रिंग" / & gt; & Lt; xsd: तत्व का नाम = "रेखा 2" प्रकार = "xsd: स्ट्रिंग" minOccurs = "0" / & gt; & Lt; / XSD: अनुक्रम & gt; & Lt; / XSD: complexType & gt; & Lt; xsd: जटिल टाइप नाम = "आंतरिक विज्ञापन प्रकार" & gt; & LT; XSD: complexContent & gt; & Lt; xsd: प्रतिबंध आधार = "smp: पता प्रकार" & gt; & LT; XSD: अनुक्रम & gt; & Lt; xsd: तत्व का नाम = "रेखा 1" प्रकार = "xsd: स्ट्रिंग" / & gt; & Lt; / XSD: अनुक्रम & gt; & Lt; / XSD: प्रतिबंध & gt; & Lt; / XSD: complexContent & gt; & Lt; / XSD: complexType & gt; & Lt; xsd: सरल टाइप नाम = "लेटरटाइप" & gt; & Lt; xsd: प्रतिबंध आधार = "xsd: स्ट्रिंग" & gt; & Lt; xsd: पैटर्न मान = "[ए-जीएए-जेड]" / & gt; & Lt; / XSD: प्रतिबंध & gt; & Lt; / XSD: simpleType & gt; & Lt; / XSD: स्कीमा & gt; परिणाम:
[System.CodeDom.Compiler.GeneratedCodeAttribute ( "XSD", "4.0.30319.1")] [System.SerializableAttribute ()] [System.Diagnostics.DebuggerStepThroughAttribute ()] [System.ComponentModel.DesignerCategoryAttribute ("कोड")] [System.Xml.Serialization.XmlTypeAttribute (अनामित टाइप = सच, नामस्थान = "http://iso.org/abc")] [ System.Xml.Serialization.XmlRootAttribute (नामस्थान = "http://iso.org/abc", IsNullable = false)) सार्वजनिक आंशिक वर्ग रूट {निजी आंतरिक अभिलेख टाइप करें आंतरिकएडरफ़ेर; निजी स्ट्रिंग letterField; /// & lt; टिप्पणी / & gt; सार्वजनिक आंतरिक प्रविष्टि टाइप इंटरैक्टिव एड्रेस {प्राप्त करें {this.internalAddressField; } सेट {this.internalAddressField = मान; }} /// & lt; टिप्पणी / & gt; सार्वजनिक स्ट्रिंग लेटर {प्राप्त करें} this.letterField; } सेट {this.letterField = मान; }}} /// & lt; टिप्पणी / & gt; [System.CodeDom.Compiler.GeneratedCodeAttribute ( "XSD", "4.0.30319.1")] [System.SerializableAttribute ()] [System.Diagnostics.DebuggerStepThroughAttribute ()] [System.ComponentModel.DesignerCategoryAttribute ( "कोड")] [सिस्टम .Xml.Serialization.XmlTypeAttribute (नामस्थान = "http://iso.org/abc")] सार्वजनिक आंशिक वर्ग InternalAddressType: AddressType {} /// & LT; टिप्पणी / & gt; [System.Xml.Serialization.XmlIncludeAttribute (typeof (InternalAddressType))] [System.CodeDom.Compiler.GeneratedCodeAttribute ( "XSD", "4.0.30319.1")] [System.SerializableAttribute ()] [System.Diagnostics.DebuggerStepThroughAttribute () ] [System.ComponentModel.DesignerCategoryAttribute ( "कोड")] [System.Xml.Serialization.XmlTypeAttribute (नामस्थान = "http://iso.org/abc")] सार्वजनिक आंशिक वर्ग AddressType {निजी स्ट्रिंग line1Field; निजी स्ट्रिंग पंक्ति 2 फिल्ड; /// & lt; टिप्पणी / & gt; सार्वजनिक स्ट्रिंग रेखा 1 {प्राप्त करें this.line1Field; } सेट {this.line1Field = value; }} /// & lt; टिप्पणी / & gt; सार्वजनिक स्ट्रिंग लाइन 2 {प्राप्त करें {this.line2Field; } सेट {this.line2Field = value; }}} Csharp कोड में, InternalAddressType प्रकार बिना सभी प्रतिबंधों के पता प्रकार से सभी तत्व प्राप्त करता है, हालांकि मैं "Line2" दबाता हूं। क्या स्कीमा में प्रतिबंधों के साथ Csharp कोड उत्पन्न करने का कोई तरीका है?
नहीं, आपका XSD कुछ की अनुमति देता है उसको सी # के साथ अनुमत नहीं है वंशानुक्रम की मांग है कि आप हर कक्षाओं से सार्वजनिक सदस्य का उपयोग कर सकते हैं।
विरासत का उपयोग करते समय सदस्यों को ले जाने से छिपाने का कोई तरीका नहीं है।
No comments:
Post a Comment