एक्सटेंसिबल मार्कअप लैंग्वेज (XML) और XML स्कीमा (XSD) में क्या अंतर है?
एक्सटेंसिबल मार्कअप लैंग्वेज (XML) और XML स्कीमा (XSD) में क्या अंतर है?
जवाबों:
दरअसल XSD ही XML है। इसका उद्देश्य किसी अन्य XML दस्तावेज़ की संरचना को मान्य करना है। एक्सएसडी किसी भी एक्सएमएल के लिए अनिवार्य नहीं है, लेकिन यह आश्वासन देता है कि एक्सएमएल का उपयोग कुछ विशेष उद्देश्यों के लिए किया जा सकता है। एक्सएमएल केवल उपयुक्त प्रारूप और संरचना में डेटा युक्त है।
<?xml version="1.0" encoding="UTF-8"?> <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"> <xs:element name="QuoteRequestID" type="xs:unsignedLong" minOccurs="0" /> </xs:schema>
लेकिन त्रुटि मिलने पर समाप्त हो गई: Error!!! The 'minOccurs' attribute cannot be present.
एक उदाहरण लीजिए
<root>
<parent>
<child_one>Y</child_one>
<child_two>12</child_two>
</parent>
</root>
और उसके लिए एक xsd डिज़ाइन करें:
<xs:schema attributeFormDefault="unqualified" elementFormDefault="qualified"
xmlns:xs="http://www.w3.org/2001/XMLSchema">
<xs:element name="root">
<xs:complexType>
<xs:sequence>
<xs:element name="parent">
<xs:complexType>
<xs:sequence>
<xs:element name="child_one" type="xs:string" />
<xs:element name="child_two" type="xs:int" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
XSD के साथ क्या संभव नहीं है: इसे पहले लिखना पसंद करेंगे क्योंकि सूची बहुत छोटी है
1) आप एक नोड / विशेषता को दूसरे नोड / विशेषता के मूल्य का उपयोग करके मान्य नहीं कर सकते हैं।
2) यह एक प्रतिबंध है: एक्सएसडी फ़ाइल में परिभाषित एक तत्व को केवल एक डेटाटाइप के साथ परिभाषित किया जाना चाहिए। [उपरोक्त उदाहरण में, <child_two>
दूसरे <parent>
नोड में प्रदर्शित होने के लिए , डेटाटाइप को इंट के अलावा अन्य परिभाषित नहीं किया जा सकता है।
3) आप तत्वों और विशेषताओं के सत्यापन को अनदेखा नहीं कर सकते, अर्थात, यदि कोई तत्व / विशेषता XML में दिखाई देती है, तो उसे संबंधित XSD में अच्छी तरह से परिभाषित किया जाना चाहिए। हालाँकि इसके उपयोग की <xsd:any>
अनुमति है, लेकिन इसके अपने नियम हैं। वैधता त्रुटि की ओर जाता है। मैंने एक समान दृष्टिकोण के लिए प्रयास किया था, और निश्चित रूप से सफल नहीं था, यहाँ प्रश्नोत्तर है
XSD के साथ क्या संभव है:
1) आप XML नोड्स के उचित पदानुक्रम का परीक्षण कर सकते हैं। [xsd यह परिभाषित करता है कि किस बच्चे को किस माता-पिता के अधीन आना चाहिए, आदि, जो कि त्रुटि के रूप में गिना जाएगा, उदाहरण के लिए, child_two जड़ का तत्काल बच्चा नहीं हो सकता है, लेकिन यह "माता-पिता" टैग का बच्चा है, जो अंदर-बाहर है "रूट" नोड का बच्चा, एक पदानुक्रम है ..]
2) आप नोड्स के डेटा प्रकार को परिभाषित कर सकते हैं। [ऊपर के उदाहरण में child_two में संख्या के अलावा कोई अन्य डेटा नहीं हो सकता है]
3) आप कस्टम डेटा_टाइप्स को भी परिभाषित कर सकते हैं, [उदाहरण के लिए, नोड के लिए <month>
, संभव डेटा 12 महीनों में से एक हो सकता है .. इसलिए आपको सभी 12 महीनों को परिभाषित करने की आवश्यकता है एक नए डेटा प्रकार में सभी 12 महीने के नाम को मान मान के रूप में लिखना ।।
4) आप तत्वों की घटना पर प्रतिबंध लगा सकते हैं, minOccurs और maxOccurs का उपयोग करके, डिफ़ॉल्ट मान 1 और 1 हैं।
.. और बहुत सारे ...
<root> <A>A</A> <B/> <C/> </root>
और यदि नोड <A>
है <A>B</A>
, तो <B>
अनिवार्य करें, यदि आवश्यक हो <A>C</A>
तो <C>
।
XSD:
XSD (XML स्कीमा परिभाषा) निर्दिष्ट करता है कि कैसे एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) दस्तावेज़ में तत्वों का औपचारिक रूप से वर्णन किया जाए।
Xml:
XML को डेटा का वर्णन करने के लिए डिज़ाइन किया गया था । यह सॉफ़्टवेयर के साथ-साथ हार्डवेयर से भी स्वतंत्र है।
यह निम्नलिखित चीजों को बढ़ाता है।
-डेटा साझा करना।
-स्वतंत्र मंच।
-डेटा की उपलब्धता में वृद्धि।
अंतर:
एक्सएसडी एक्सएमएल पर आधारित और लिखा गया है।
XSD उन तत्वों और संरचनाओं को परिभाषित करता है जो दस्तावेज़ में प्रकट हो सकते हैं, जबकि XML नहीं करता है।
एक्सएसडी सुनिश्चित करता है कि डेटा की ठीक से व्याख्या की जाए, जबकि एक्सएमएल नहीं है।
एक एक्सएसडी दस्तावेज़ को एक्सएमएल के रूप में मान्य किया गया है, लेकिन विपरीत हमेशा सच नहीं हो सकता है।
एक्सएमडी एक्सएमएल की तुलना में त्रुटियों को पकड़ने में बेहतर है।
एक एक्सएसडी उन तत्वों को परिभाषित करता है जिनका उपयोग दस्तावेजों में किया जा सकता है, वास्तविक डेटा से संबंधित है जिसके साथ इसे एन्कोड किया जाना है।
उदाहरण के लिए:
1/12/2010 के रूप में व्यक्त की गई तारीख का अर्थ या तो 12 जनवरी या 1 दिसंबर को हो सकता है। XSD दस्तावेज़ में दिनांक डेटा प्रकार की घोषणा, यह सुनिश्चित करता है कि यह XSD द्वारा निर्धारित प्रारूप का अनुसरण करता है।
XML एक सुव्यवस्थित दस्तावेज़में डेटा को संरचित करने के लिए तत्वों और विशेषताओं के सिंटैक्स कोपरिभाषित करता है।
XSD (XML उर्फ) , DTD तरह से पहले, शक्तियों ई एक्स में tensibility एक्सएमएल परिभाषित करने के लिए उपयोगकर्ता को सक्षम करने से शब्दावली और व्याकरण के तत्वों और विशेषताओं एक में वैध एक्सएमएल दस्तावेज़।
<school>
<firstname>John</firstname>
<lastname>Smith</lastname>
</school>
<xs:element name="school">
<xs:complexType>
<xs:sequence>
<xs:element name="firstname" type="xs:string"/>
<xs:element name="lastname" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:element>
यहाँ:
xs: element : एक तत्व को परिभाषित करता है।
xs: क्रम : बाल तत्वों का उल्लेख केवल उस क्रम में दिखाई देता है।
xs: complexType : यह दर्शाता है कि इसमें अन्य तत्व शामिल हैं।
xs: simpleType : यह दर्शाता है कि उनमें अन्य तत्व नहीं हैं।
प्रकार: स्ट्रिंग, दशमलव, पूर्णांक, बूलियन, दिनांक, समय,
अतिरिक्त विशेषताओं की मदद से, हम कई ऑपरेशन कर सकते हैं।
Xsd पर किसी भी कार्य को करना xml की तुलना में सरल है।
मूल रूप से एक एक्सएसडी फ़ाइल परिभाषित करती है कि एक्सएमएल फ़ाइल कैसा दिखने वाला है। यह एक स्कीमा फ़ाइल है जो XML फ़ाइल की संरचना को परिभाषित करती है। इसलिए यह निर्दिष्ट करता है कि संभावित क्षेत्र क्या हैं और वे किस आकार के होने जा रहे हैं।
XML फ़ाइल XSD का एक उदाहरण है क्योंकि यह XSD में परिभाषित नियमों का उपयोग करता है।
XML में f.ex की तुलना में अधिक व्यापक अनुप्रयोग है। एचटीएमएल। इसमें आंतरिक या डिफ़ॉल्ट "एप्लिकेशन" नहीं है। इसलिए, जब आप वास्तव में इस बात की परवाह नहीं कर सकते हैं कि लेखक की तरफ से वेब पेजों को भी अनुमति दी गई है, तो आप संभवतः एक XML दस्तावेज़ क्या हो सकता है और इसमें शामिल नहीं हो सकते हैं।
यह एक डेटाबेस डिजाइन करने जैसा है।
XML प्रौद्योगिकियों के बारे में बात यह है कि वे प्रकृति में बनावट हैं। XSD के साथ, इसका मतलब है कि आपके पास एक डेटा संरचना परिभाषा ढांचा है जिसे PHP जैसे टेक्स्ट प्रोसेसिंग टूल में "प्लग इन" किया जा सकता है। इसलिए न केवल आप स्वयं डेटा में हेरफेर कर सकते हैं, बल्कि संरचना को आसानी से बदल सकते हैं और दस्तावेज कर सकते हैं, और यहां तक कि ऑटो-जेनरेट फ्रंट-एंड भी।
इस तरह से देखा गया, XSD डेटा (XML) और डेटा-प्रोसेसिंग टूल के बीच "ग्लू" या "मिडलवेयर" है।