XML प्रकार सुरक्षित क्यों है?


30

वे यह क्यों कहते हैं कि XML टाइप सुरक्षा प्रदान करता है और यह XML में कैसे व्यक्त किया जाता है?

यह JSON से अलग कैसे है (उदाहरण के लिए) जो (जैसा कि मैं समझता हूं) टाइप सुरक्षित नहीं है?

जवाबों:


36

की वजह से XML परिभाषा (XSD)।

XML के साथ, आपके पास एक अतिरिक्त फ़ाइल हो सकती है जो स्कीमा का वर्णन करती है। यह इंगित करता है, उदाहरण के लिए, कि तत्व /a/bएक सरणी है और इसमें 1 से 10 तत्व शामिल हैं, या यह कि तत्व /a/cएक पूर्णांक है। आप यहाँ एक एक्सएसडी का उदाहरण पा सकते हैं ।

एक XSD के माध्यम से किसी दिए गए XML फ़ाइल का सत्यापन कई भाषाओं द्वारा समर्थित है । उदाहरण के लिए, एक .NET अनुप्रयोग एक अविश्वसनीय स्रोत से XML फ़ाइल का अनुरोध कर सकता है और यह जांच सकता है कि यह XSD से मेल खाता है ; फिर, यह इसे Microsoft SQL सर्वर डेटाबेस में सहेज सकता है, जो बदले में XSD कर सकता है और फिर से चेक कर सकता है (यह सुनिश्चित करने के लिए कि कोई भी क्लाइंट जिसके पास डेटाबेस का अनुपालन है)।

XSD केवल भाषा नहीं है।

  • यदि आपने वेब विकास किया है, तो आपने निश्चित रूप से दस्तावेज़ प्रकार परिभाषा (DTD) - मार्कअप भाषा के बारे में सुना है जो XML की संरचना को परिभाषित करता है और विशेष रूप से HTML से संबंधित सामग्री के सत्यापन में उपयोग किया जाता है। हालांकि यह सभी चीजें एक्सएसडी नहीं कर सकता है, जैसे कि यह सुनिश्चित करना कि किसी तत्व या विशेषता में पूर्णांक संख्या शामिल है, यह अभी भी संरचना जांच का एक गुच्छा कर सकता है।

  • RELAX NG का अन्य भाषाओं की तुलना में अपेक्षाकृत सरल होने का लाभ है और इसे XML की तुलना में अधिक कॉम्पैक्ट रूप में लिखा जा सकता है।

  • स्कैमेट्रॉन एक और "नियम आधारित मान्यता भाषा है जो एक्सएमएल पेड़ों में पैटर्न की मौजूदगी या अनुपस्थिति के बारे में दावा करता है " ( विकिपीडिया ) और थोड़ा अलग दृष्टिकोण प्रस्तुत करता है, जो XPath के सिद्धांतों पर आधारित है।

JSON के लिए ऐसी ही पहल लोकप्रिय नहीं है (विशेषकर, मेरा मानना ​​है, Microsoft-केंद्रित कॉर्पोरेट जगत में)। कारणों में से एक यह है कि JSON उन स्थितियों के लिए अभिप्रेत है, जहां डेटा संरचना बुनियादी है (जैसे कि एक पेड़ के रूप में व्यक्त किया जा सकता है, उदाहरण के लिए, विशेषताओं की आवश्यकता के बिना) और जरूरी नहीं कि इसे मान्य किया जाए। एक उत्कृष्ट उदाहरण एक गतिशील प्रकार की भाषा द्वारा उपयोग किया गया REST API है:

  • क्लाइंट बहुत आसान है और इसे लागू करने के लिए तेज़ है,
  • एपीआई को बदलने का भरोसा दिया जाता है,
  • क्लाइंट आसानी से विशिष्ट लीफ़्स से निपट सकता है जहां सत्यापन आवश्यक है (उदाहरण के लिए जाँचें कि /something/percentageएक वास्तविक संख्या है और 0..100 रेंज में है)।

20

XML टाइप सुरक्षित हो सकता है, क्योंकि यह XSD स्कीमा के साथ डेटा प्रकार के तत्वों को घोषित करने के लिए संभव है। एक XSD स्कीमा के खिलाफ मान्य दस्तावेज की पुष्टि अपेक्षित प्रकारों के अनुरूप की जाती है। लेकिन एक XML प्रारूप में एक स्कीमा होने की आवश्यकता नहीं होती है, इसलिए एक दस्तावेज़ स्वचालित रूप से केवल XML होने से सुरक्षित नहीं है।

वास्तव में JSON के लिए एक स्कीमा भाषा मौजूद है , इसलिए JSON टाइप करना सुरक्षित है। लेकिन इसका उपयोग बहुत कम किया जाता है, इसलिए आमतौर पर JSON सुरक्षित नहीं है।


2
आपका उत्तर XSD के बराबर JSON के लिए एक नाम या लिंक के साथ बेहतर होगा।
डग

1
BTW: XML स्कीमा अब तक XML के लिए एकमात्र स्कीमा परिभाषा भाषा नहीं है। इसमें स्कैमेट्रॉन, रिलैक्सएनजी, और निश्चित रूप से अच्छे ऑल 'एसजीएमएल डीटीडी' भी हैं।
जोर्ग डब्ल्यू मित्तग

यह भी ध्यान रखें कि स्कीमा के साथ भी, XML प्रकार-सुरक्षित नहीं हो सकता है। कोई तत्व "किसी भी" प्रकार की सामग्री को निर्दिष्ट कर सकता है। हालांकि कोई यह तर्क दे सकता है कि एक प्रकार की सुरक्षा है (मुझे परवाह नहीं है, कुछ भी मान्य है) उसी समय कोई सत्यापन नहीं किया जा सकता है: यह अनिवार्य रूप से एक "भिन्न" प्रकार है।

3

कंप्यूटर विज्ञान में, टाइप सुरक्षा वह सीमा होती है, जिस पर एक प्रोग्रामिंग भाषा टाइप त्रुटियों को हतोत्साहित या रोकती है।

प्रकार सुरक्षा एक पूर्ण विशेषता नहीं है। यह बूलियन नहीं है। बोली (और XML और JSON हैं भाषाओं) की अनुमति है और त्रुटियों और गलतियों के विभिन्न प्रकार को रोकने के। उदाहरण के लिए आप तत्वों को गलत कर सकते हैं। लेकिन आप आवश्यक सिंटैक्टिक तत्वों को बंद नहीं कर सकते जैसे कि टैग और ब्रेसिज़ को बंद करना।

सादे XML और JSON बहुत समान रूप से सुरक्षित (या टाइप-असुरक्षित) हैं। एक वैध XML / JSON स्ट्रिंग में एक निश्चित वाक्यविन्यास और शब्दार्थ संरचना होती है, लेकिन इसके साथ काम करने के लिए यह लगभग कभी भी पर्याप्त नहीं होता है। आवेदन भी नहीं बस किसी भी एक संरचना लेकिन किसी एक को।

XML XML स्कीमा परिभाषा (XSD) के साथ चमकता है जो स्कीमा के खिलाफ दिए गए XML दस्तावेज़ को मान्य करने के लिए एक लचीला और शक्तिशाली तरीका है। यह ऊपर दी गई परिभाषा के तहत बहुत प्रकार की सुरक्षा प्रदान करता है।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.