2011-02-03 20 views
29

के भीतर कक्षाओं के लिए एक्सएमएल एक्सएसडी स्कीमा जब भी मुझे एक एक्सएमएल एक्सएसडी स्कीमा से क्लास फ़ाइल बनाने की आवश्यकता होती है, तो मैं यह सुनिश्चित करने के लिए .NET xsd.exe टूल और प्रीबिल्ड इवेंट्स का उपयोग करता हूं, यह सुनिश्चित करने के लिए कि मेरा कक्षाओं और स्कीमा बिल्ड समय पर एक-दूसरे के साथ समन्वयित हैं। यह निश्चित रूप से ठीक काम करता है, हालांकि ...विजुअल स्टूडियो 2010: आईडीई

मैंने देखा है कि यदि एक्सएसडी और व्युत्पन्न वर्ग एक ही प्रोजेक्ट में हैं तो वीएस रिश्ते को समझता है और समाधान एक्सप्लोरर में एक्सएसडी फ़ाइल के बच्चे के रूप में सीएस को दृश्यमान रूप से प्रदर्शित करता है। तो मैं सोच रहा था कि प्रीबिल्ड स्क्रिप्ट पर भरोसा करने के बजाय आईडीई के भीतर कक्षा निर्माण करने के लिए विजुअल स्टूडियो 2010 में कोई कार्यक्षमता है या नहीं?

उदाहरण के लिए, मैं परियोजना में एक्सएसडी जोड़ता हूं, कहीं कुछ विकल्प सेट करता हूं और वीएस लेता है और मेरे लिए मेरी कक्षाएं बनाता है।

क्या वीएस 2010 इस तरह कुछ भी समर्थन करता है? या मुझे बस सोचना बंद करना चाहिए और xsd.exe और prebuild का उपयोग करना जारी रखना चाहिए।

संपादित मैं भी देखा है कि मैं एक Custom Tool को चुनने का विकल्प XSD फ़ाइल के गुणों, के तहत वर्णन पढ़ने यह है कि मैं क्या कर रहा हूँ के लिए लक्ष्य के करीब लगता है, लेकिन मैं के लिए सही उपयोग को लेकर अनिश्चित हूं यह संपत्ति

संपादित इसके अलावा, अगर वहाँ एक समाधान है कि मैं इस सुविधाओं/कार्यों कि VS2010 के साथ के रूप में मानक आ के आधार पर किया जाना चाहिए। मैं किसी तृतीय पक्ष एडन इत्यादि का उपयोग नहीं करना चाहूंगा

+1

यह VS2012 में दिखाई देता है, आप अपनी प्रोजेक्ट में xsd फ़ाइल जोड़ सकते हैं और यह स्वचालित रूप से कक्षाएं – msmucker0527

उत्तर

13

विजुअल स्टूडियो 2010 में सामान्य उपभोग के लिए ऐसी कोई कार्यक्षमता नहीं है।

विजुअल स्टूडियो के पास ADO.NET में टाइप किए गए डेटासेट के संदर्भ में इस एक्सएसडी-टू-कोड रूपांतरण के लिए कुछ सीमित समर्थन है - लेकिन वे सामान्य उद्देश्य समाधान नहीं हैं, उन्हें बिल्कुल एक उपयोग परिदृश्य पर लक्षित किया जाता है।

लेकिन की जाँच करते XSD2Code ऐड-इन है कि वास्तव में

enter image description here

+0

कक्षाएं उत्पन्न करेगा यदि समाधान के उपयोग से प्रत्येक मशीन पर एडन को स्थापित करना है तो मैं तृतीय पक्ष एडॉन्स से बचने के लिए उत्सुक हूं। Xsd2Code के मामले में केवल एक मशीन पर एडन होना संभव होगा? – MrEyes

+1

@MrEyes: आप ** केवल ** मशीन पर एडिन की आवश्यकता है जिसे एक्सएसडी से सी # में परिवर्तित करना है - बाकी प्रोग्रामर बस जेनरेट किए गए सी # का उपयोग कर सकते हैं - प्रत्येक मशीन पर एडिन की आवश्यकता नहीं है ... और जैसा कि मैंने कहा: ऐसा करने के लिए वीएस में ** कुछ भी नहीं ** सामान्य उद्देश्य है - इसलिए यह या तो ऐड-इन या कुछ भी नहीं है .... –

+0

मैंने Xsd2Code संस्करण 3.4 स्थापित किया है और मुझे "Xsd2Code जनरेशन रन नहीं दिख रहा है "मेनू विकल्प जब मैं अपने समाधान में एक xsd फ़ाइल पर राइट क्लिक करता हूं। मैंने यह भी देखने के लिए जांच की कि क्या यह मेरी वीएस -2008 स्थापना में काम करता है, कोई किस्मत नहीं। मैंने संस्करण 3.4 स्थापित किया और बीटा संस्करण की कोशिश की। क्या देता है? क्या मुझसे कुछ गलत हो रही है? – ChadD

3

वहाँ ऐसा करने के लिए दृश्य स्टूडियो में एक साधन हुआ करता था करता है। आप एक एक्सएमएल स्कीमा पर राइट क्लिक कर सकते हैं और संदर्भ मेनू में एक विकल्प था जो "डेटासेट जेनरेट" जैसा कुछ कहता था। मैं इसे अक्सर इस्तेमाल करता था और यह बहुत अच्छा काम करता था। कुछ रहस्यमय कारणों के लिए, माइक्रोसॉफ्ट ने उस समारोह को हटा दिया - शायद वीएस 2003 के बाद? मुझे यकीन नहीं है कि कमांड लाइन उपयोगिता का उपयोग करना ठीक क्यों है और मेनू से एक ही कोड निष्पादित करना ठीक नहीं है, लेकिन वहां है।

56

आप XSD.exe का उपयोग कर सकते हैं जो C:\program files\Microsoft\SDKs\Windows\v7.0A\Bin\xsd.exe में है। वी.एस. उपकरण मेनू

  1. बाहरी उपकरण के लिए दृश्य स्टूडियो उपकरण मेनू करने के लिए अपने वी.एस. परियोजना के लिए XSD फ़ाइल जोड़ें
  2. जाओ
  3. जाओ में एक मेनू आइटम के रूप में XSD जोड़ने के लिए चरणों का पालन करें
  4. जोड़े
  5. XSD
  6. कमांड के रूप में शीर्षक को अपने सिस्टम में xsd के पथ के रूप में दर्ज करें (normaly C:\program files\Microsoft SDKs\Windows\v7.0A\Bin\xsd.exe।साथ XSD क्लिक करें - )
  7. $(ItemPath) /c /l:cs
  8. प्रारंभिक निर्देशिका के रूप में $(ItemDir)
  9. जांच उपयोग उत्पादन खिड़की यह thats ठीक
  10. अपने समाधान एक्सप्लोरर में साथ XSD फ़ाइलों और फिर उपकरण

तो क्लिक करें प्रेस के रूप में तर्क , यह .XSD फ़ाइल के समान फ़ोल्डर पर कक्षा उत्पन्न करेगा। यदि आपने चरण 1 में फ़ाइल को पहले से नहीं जोड़ा है, तो आपको समाधान एक्सप्लोरर में प्रोजेक्ट पर राइट-क्लिक करके प्रोजेक्ट में परिणामी .cs फ़ाइल को जोड़ना होगा, जोड़ें -> मौजूदा आइटम और फिर .CS फ़ाइल चुनें .XSD से उत्पन्न होना चाहिए और इसमें शामिल किया जा सकता है।

+0

आपका उत्तर बंद हो जाता है ... "वही एफ", बाकी का जवाब क्या है? –

+3

धन्यवाद लेकिन जेनरेट क्लास के नामस्थान को सेट करने के लिए मुझे एक छोटा सा मोड बनाना पड़ा। संलग्न करें/n: तर्कों के लिए "यहां नामस्थान" और "अनुकरण के लिए संकेत" पर क्लिक करें। अब आपको नामस्थान को यहां अपने नेमस्पेस में बदलने की जरूरत है जब तत्काल संकेत मिलता है। मैंने शुरुआत में डिफ़ॉल्ट नामस्थान का उपयोग करने की कोशिश की लेकिन ऐसा करने का कोई तरीका नहीं दिख सका। अगर कोई बेहतर तरीका जानता है तो कृपया मुझे बताएं। धन्यवाद – nfplee

+1

बहुत बढ़िया। कभी नहीं पता था कि बाहरी उपकरण विकल्प क्या था। इसलिए कई नई गतिविधियां –

संबंधित मुद्दे