2010-11-14 14 views
8

मुझे वेब सेवा (.NET) बनाने की आवश्यकता है जिसका उपयोग अन्य सिस्टम द्वारा किया जाएगा। उनके लिए तर्क लागू करने के लिए जो मेरी वेब सेवा का उपयोग करेगा, मुझे अपनी वेब सेवा के लिए उन्हें wsdl और XSD फ़ाइलों को भेजने की आवश्यकता है।वेब सेवा के लिए एक्सएसडी फाइलें कैसे उत्पन्न करें

डब्ल्यूएसडीएल फ़ाइल कोई समस्या नहीं है, मैं इसे wsdl पैरामीटर पास करके .asmx पृष्ठ से प्राप्त करूंगा। लेकिन मैं अपनी वेब सेवा के लिए उचित एक्सएसडी फाइल कैसे उत्पन्न कर सकता हूं? क्या मैं XSD.exe उपकरण का उपयोग कर सकता हूं और इसे .wsdl फ़ाइल पैरामीटर के रूप में पास कर सकता हूं, या कोई और तरीका है?

अग्रिम धन्यवाद।

उत्तर

10

आप disco.exe उपयोगिता का उपयोग कर सकते हैं जो आपको डिस्क पर wsdl और xsd फ़ाइलों को सहेजने की अनुमति देता है ताकि उन फ़ाइलों को WSDL वेब पते तक पहुंच के बिना क्लाइंट प्रॉक्सी उत्पन्न करने के लिए उपयोग किया जा सके।

+0

मैं इस उपकरण, चीयर्स के साथ एक्सएसडी फाइलें उत्पन्न करने में सफल रहा हूं। – buhtla

+0

मैं wsdl वेब पते से xsd उत्पन्न करने में सक्षम नहीं हूं। – arjun

2

यदि आप एक्सएमएल फ़ाइल खोलते समय विजुअल स्टूडियो (और ऊपर) के प्रो संस्करण का उपयोग कर रहे हैं तो आपको एक एक्सएमएल मेनू मिलेगा, जिसमें एक आइटम होगा जो से एक्सएसडी उत्पन्न करेगा (स्कीमा बनाएं)। मेरा मानना ​​है कि यह हुड के तहत xsd.exe का उपयोग करता है।

MSDN देखें।

+0

जब मैं इसे आज़माता हूं तो मुझे निम्न त्रुटि मिलती है: "आपूर्ति की गई एक्सएमएल आवृत्ति एक स्कीमा है या इसमें एक इनलाइन स्कीमा है। यह वर्ग स्कीमा के लिए स्कीमा का अनुमान नहीं लगा सकता है।" – buhtla

+0

@buhtla - जाहिर है, एक स्कीमा पहले ही परिभाषित है। एक्सएमएल को देखें और देखें कि यह स्कीमा से जुड़ा हुआ है या नहीं। – Oded

+0

मैं डब्लूएसडीएल फ़ाइल से एक्सएसडी उत्पन्न करने की कोशिश कर रहा हूं। WSDL स्वचालित रूप से विजुअल स्टूडियो में बनाई गई वेब सेवा से उत्पन्न होता है - इसलिए ईथर वेब सेवा अमान्य एक्सएमएल उत्पन्न करती है (जो मुझे संदेह है) या मुझे इस त्रुटि के लिए कुछ और कारण है। – buhtla

0

आप स्कीमा प्राप्त करने के लिए सेवा यूआरएल के अंत में "? Xsd = 1" जोड़ सकते हैं।

यानी अपने वेब सेवा URL है : // my_ws_service: 9080/सेवा/नाम तो आप प्राप्त कर सकते हैं का उपयोग कर डबल्यूएसडीएल: // my_ws_service: 9080/सेवा/नाम डबल्यूएसडीएल और आप का उपयोग कर स्कीमा प्राप्त कर सकते हैं : // my_ws_service: 9080/service/name? xsd = 1 (नोट xsd केस संवेदनशील है)

उम्मीद है कि यह मदद करता है।

0

सोचा कि मैं अपना समाधान साझा करूंगा, मेरे मामले में मुझे एक वास्तविक सी # कक्षा बनाने की आवश्यकता है, इसलिए मैं इसे दिए गए एंडपॉइंट के लिए प्रतिक्रिया एक्सएमएल को deserialize करने के लिए उपयोग कर सकता हूं जिसका डब्ल्यूएसडीएल मैंने अपने देव पीसी पर सहेजा था।

मैं दृश्य स्टूडियो कमांड प्रॉम्प्ट को खोल दिया और निम्न टाइप किया:

wsdl "name-of-your-file" 

कहाँ नाम के- अपने-फ़ाइल अपने सहेजे गए WSDL फ़ाइल का नाम है। कमांड को चलाने से सी # क्लास उत्पन्न होनी चाहिए जिसे आप अपने क्लाइंट आवेदकॉन में अपने दिए गए एंडपॉइंट के लिए एक्सएमएल एसओएपी प्रतिक्रिया को deserialize करने के लिए उपयोग कर सकते हैं।

उम्मीद है कि इससे मदद मिलती है।

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