2012-03-23 12 views
8

क्या ऐसा है कि xsd टूल पर svcutil उपकरण की अनुशंसा की जाती है? मैंने इसे एक निश्चित बयान के रूप में नहीं देखा, लेकिन ऐसा प्रतीत होता था। इस कारण मैं उलझन में हूं कि मैंने दोनों औजारों का उपयोग करके कक्षा उत्पन्न की है। लेकिन, मुझे xsd का उपयोग करके एक बेहतर कक्षा मिली। एक्सएसडी स्कीमा में केवल डाटाकंट्रैक्ट होते हैं।Xsd.exe या Svcutil.exe XSD स्कीमा को कक्षा में बदलने के लिए

मैं svcutil के लिए निम्न आदेश का प्रयोग किया:

svcutil path-to\xyz.xsd /language:C# /dataContractOnly /importxmltypes /out:path-to\class.cs 

यह वांछित कक्षाओं उत्पन्न। लेकिन, इसमें फ़ील्ड के लिए केवल XmlNode [] ऑब्जेक्ट्स शामिल थे।

xsd.exe /c path-to\xyz.xsd /out:path-to\class.cs 

यह काफी बेहतर वर्गों की तुलना में svcutil किया उत्पन्न:

फिर, मैं XSD के लिए निम्न आदेश का उपयोग किया। अधिकांश फ़ील्ड वांछित के रूप में परिवर्तित कर दिए गए थे।

क्या मुझे विश्वास करने का कोई कारण होना चाहिए कि मुझे xsd पर svcutil का उपयोग करना चाहिए?

उत्तर

5

जहां तक ​​मुझे पता है, XSD.exe के साथ कुछ सीमाएं हैं; उदाहरण के लिए जब कक्षा में Dictionary<,> है, तो XSD.exe उचित XSD उत्पन्न नहीं कर सकता है; DictionaryIXmlSerializable लागू नहीं करता है।

+0

ठीक है। मेरे पास कई अन्य स्कीमा हैं, जिन्हें मैं टूल का उपयोग करके परिवर्तित कर दूंगा, और देख सकता हूं कि मेरे उपयोग के लिए क्या बेहतर है। मैं तदनुसार उचित उपकरण का चयन करूंगा। –

2

svcutil xml विशेषताओं का समर्थन नहीं करता है। यदि आपको अपनी स्कीमा में उनका उपयोग करने की आवश्यकता है, तो आप शायद xsd.exe के साथ बेहतर हो सकते हैं।

मैं व्यक्तिगत रूप से xsd पर svcutil का उपयोग करना पसंद करता हूं और मैंने सीखा है कि कक्षा संरचना को आउटपुट करने के लिए मेरे स्कीमा कैसे बनाएं, लेकिन मैं मुख्य रूप से स्कीमा के साथ काम कर रहा हूं कि मैं खपत से विकास कर रहा हूं, उपभोग करने के विरोध में पूर्वनिर्धारित