2008-09-26 14 views
5

हम एक परियोजना के लिए माइक्रोसॉफ्ट एसक्यूएल सर्वर 2005 में एक्सएमएल डेटा प्रकार का उपयोग कर रहे हैं। टीम के कुछ सदस्यों और मुझे लगता है कि हमें एक्सएसडी का भी उपयोग करना चाहिए जबकि अन्य शिविर के सदस्यों को लगता है कि हमें एक्सएमएल को विज्ञापन देना चाहिए और उन्हें "प्रकार" के रूप में नहीं मानना ​​चाहिए।एक्सएमएल स्कीमा का उपयोग करने के फायदे और नुकसान क्या हैं?

एक्सएमएल एक रखरखाव दुःस्वप्न हैं जो कई टेक्स्ट कॉन्फ़िगरेशन फ़ाइलों को संरचना और केंद्रीयता लाने का प्रयास है।

हम .NET 3.5/C# का उपयोग कर रहे हैं और हमारी टेबल उपयुक्त डेटा प्रकारों के साथ डिज़ाइन की गई हैं। मेरा तर्क यह है कि हम पहले से ही "सोच उन्मुख" हैं, हमारी सोच में क्यों उस दृष्टिकोण को तोड़ना क्योंकि यह एक्सएमएल है। यह उन पाठ फ़ाइलों के साथ प्रकारों की कमी के कारण है जो मूल समस्या उत्पन्न हुई थीं। "प्रकार" दृष्टिकोण का उपयोग न करने से हमें एक ही समस्या के लिए खुल जाता है।

एक्सएमएल स्कीमा के लाभों की मेरी समझ गलत हो सकती है। तो एक्सएमएल स्कीमा का उपयोग करने के फायदे और नुकसान क्या हैं?

उत्तर

2

दुर्भाग्यवश एक्सएसडी (डब्ल्यू 3 सी) के संलेखन निकाय भी समझते हैं कि एक्सएसडी एक बहुत खराब तकनीक है। उस ने कहा, इसका इरादा जरूरी नहीं है। सी # के प्रमुख लाभों में से एक यह है कि यह स्थिर रूप से टाइप किया गया है। अपने एक्सएमएल दस्तावेजों को स्थिर रूप से टाइप करने से उन्हें वही लाभ मिलते हैं। एक्सएमएल सीरियलाइजेशन विशेषताओं का उपयोग करके स्कीमा का उत्पादन करने के लिए यहां संभवतः सबसे अच्छा क्या है। जब आप ऐसा करते हैं तो यह आपकी XML फ़ाइल के लिए एक कस्टम डेटा रीडर बनाएगा जो प्रदर्शन में नाटकीय रूप से सुधार करेगा।

एक्सएमएल की सबसे बड़ी लागत में से एक यह है कि इसे स्ट्रिंग पार्स किया जाना चाहिए। जितनी अधिक धारणाएं आप अपनी एक्सएमएल फाइलों (जैसे उनकी संरचना) के बारे में कर सकते हैं, उतना बेहतर आपका प्रदर्शन होने की संभावना है।

तो आखिरकार कई चीजों की तरह, डेवलपर समय में लागत को उचित ठहराने के लिए प्रदर्शन लाभों की पर्याप्त आवश्यकता है। या एक्सएसडी लिखने की लागत को न्यायसंगत बनाने के लिए स्थिर रूप से टाइप की गई प्रणाली का उपयोग करने की पर्याप्त इच्छा है।

आखिरकार आपकी परियोजना की ज़रूरतें आपको बताएंगी कि आपको क्या करना चाहिए, लेकिन स्थिर-टाइपिंग और प्रदर्शन पर विचार करने के लिए प्रमुख लाभ हैं।

2

एक्सएसडी के बिना एक्सएमएल के भंडार को रखना एक डेटाबेस (मेरे विचार में) डेटाबेस है जहां सभी प्रकार VARCHAR (n) के रूप में घोषित किए जाते हैं। आपको परवाह नहीं है कि आपको किस प्रकार का इनपुट मिलता है, आप बस इनपुट चाहते हैं।

एक्सएसडी आश्वासन देता है कि आपके एक्सएमएल में आपके द्वारा अपेक्षित इनपुट प्रकार है। वे आपके मॉडल को ढांचा देते हैं, जो चीज आप खोज रहे हैं।

+2

यदि आपने यह नहीं कहा, तो मैं जा रहा था। स्कीमा के बिना एक्सएमएल, सिर्फ सादा पाठ है! – leppie

1

स्कीमा का उपयोग करने का एक बड़ा फायदा यह है कि यह सुनिश्चित करने में सहायता करता है कि परियोजना पर हर कोई इस बात से सहमत है कि एक XML दस्तावेज़ कैसे निर्धारित किया जाना चाहिए। साथ ही, स्कीमा का उपयोग करके, आप अपने एक्सएमएल पार्सर में सत्यापन सक्षम कर सकते हैं, जिससे यह बताना आसान हो जाता है कि कोड का कुछ टुकड़ा विफल रहता है क्योंकि इसे कुछ खराब एक्सएमएल दिया जाता है।

डाउनसाइड पर, स्कीमा बनाए रखना दर्द हो सकता है, और यह आपके प्रोजेक्ट के आधार पर प्रयास के लायक नहीं हो सकता है।

1

यदि आपके पास स्कीमा नहीं है, तो आप अपने सभी सत्यापन को फिर से कार्यान्वित कर देंगे (या बिल्कुल मान्य नहीं हैं और अमान्य इनपुट पर क्रैशिंग नहीं कर रहे हैं)। एक्सएसडी पार्सर/वैधकर्ता आपके लिए यह सब काम करते हैं, और उनके डोमेन में विशेषज्ञों द्वारा अनुकूलित और डिबग किए जाते हैं। आप अपने सभी काम को फिर से क्यों दोबारा शुरू करेंगे?

2

ठीक है, जैसा कि अन्य पदों और प्रश्न में कहा गया है, एक्सएसडी यह सुनिश्चित करेगा कि आप अपने एक्सएमएल में सही जगह पर सही प्रकार का उपयोग कर रहे हैं और आपको इसकी संरचना बदलने से पहले दो बार सोचना होगा।

लेकिन एक्सएसडी वास्तव में अधिक वर्बोज़ है, अगर मैं ऐसा कह सकता हूं। और कभी-कभी वास्तव में एक मैस टी सशर्त सामग्री के साथ एक जटिल संरचना का वर्णन करता है।

उम्मीद है कि एक्सएसडी एक एक्सएमएल को प्रमाणित करने का एकमात्र तरीका नहीं है, RelaxNG का उपयोग करने के लिए एक और अधिक सरल दृष्टिकोण है, और विशेष रूप से इसके कॉम्पैक्ट सिंटैक्स जो वास्तव में एक्सएसडी के साथ कल्पना कर सकते हैं उससे कहीं ज्यादा पठनीय है।

1

एक्सएसडी एकमात्र एक्सएमएल स्कीमा उपलब्ध नहीं है। इसके बजाए http://relaxng.org/ का प्रयोग करें। RelaxNG आपको XSD के रूप में अभी तक एक और डेटा "भाषा" सीखने की आवश्यकता के बजाय एक्सएमएल में स्कीमा व्यक्त करने देता है।

0

एक्सएमएल के विकास के लिए महत्वपूर्ण कारण यह है कि यह अधिक स्रोतों से डेटा के उपयोग की अनुमति देता है और अधिक तरीकों से यह किसी भी कंप्यूटर सिस्टम के बीच डेटा का आदान-प्रदान करने के लिए व्यापक रूप से स्वीकार्य मानक बन गया है।

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