एक्सएमएल स्कीमा प्रमाणीकरण मैं अपनी लाइब्रेरी में कई ऑब्जेक्ट्स के लिए कुछ उपयोगकर्ता निर्दिष्ट डेटा प्रदान करने के लिए एकाधिक XElement
ऑब्जेक्ट्स के साथ काम कर रहा हूं। मैं पूरी एक्सएमएल फ़ाइल की संरचना को निर्दिष्ट करने से बचने की कोशिश कर रहा हूं क्योंकि लाइब्रेरी को इस बात की परवाह नहीं करनी चाहिए कि पूरे एक्सएमएल कैसा दिखता है जब तक कि इसे आवश्यक विशिष्ट तत्वों को सही ढंग से संरचित किया जाता है।XElement
उस अंत में, मेरे पास 3 अलग XSD
फ़ाइलें हैं जो मेरी कक्षा की आवश्यकताओं में से प्रत्येक 3 XElements
के लिए स्कीमा परिभाषित करती हैं, हालांकि मैं स्कीमा के खिलाफ XElement को सत्यापित करने में कुछ समस्याएं चला रहा हूं। कामकाज के बिना ऐसा करने के लिए एक तरीका प्रतीत नहीं होता है।
एमएसडीएन पृष्ठ से, XElement.Validate()
विस्तार विधि को बड़ी फ़ाइल के उप-तत्वों को फिर से सत्यापित करने के लिए तैयार किया गया प्रतीत होता है। XmlSchemaObject
तर्क मेरी समस्याओं का कारण बन रहा है क्योंकि मुझे लगता है कि यह XElements
में से किसी एक में मौजूद नहीं होगा। मुझे लगता है कि तर्क के रूप में पास करने के लिए से XmlSchemaElement
से XmlSchemaElement
को पकड़कर मैं इस मुद्दे के आसपास काम कर सकता हूं, लेकिन XmlSchemaSet
पहले से ही सब कुछ परिभाषित करता है, ऐसा करना अजीब लगता है।
क्या XElement
को स्कीमा के साथ पूरे XDocument
को सत्यापित किए बिना एक बेहतर विकल्प है?
या मुझे सिर्फ व्यापार परत को एप्लिकेशन में स्कीमा सत्यापन को संभालने देना चाहिए और लाइब्रेरी को XElement
सही ढंग से गठित करने दें (मुझे यह विकल्प माना जाता है, लेकिन एक व्यक्तिगत वरीयता के रूप में अपवाद फेंकने से बचने के लिए पसंद करते हैं और बस कॉलिंग विधि पता है कि XElement
वापसी पैरामीटर के माध्यम से अमान्य है)।
मुझे नहीं पता कि मैंने अपने 'XElement.Validate() 'एक्सटेंशन विधि में कोड को लपेटने के बारे में क्यों नहीं सोचा था। अब आप इतने तार्किक लगते हैं कि आप इसे कहते हैं। 'एक्सडॉक्यूमेंट' बनाना एक और अच्छा विचार है जो मुझे भी होना चाहिए था (मैंने इसे बदलने के तरीके को जानने का प्रयास करने में बहुत अधिक समय बिताया, और मुझे स्पष्ट समाधान याद आया)। मैं दोनों के साथ प्रयोग करूँगा और देखें कि मैं कौन सा पसंद करता हूं। – psubsee2003