XML और XSD में क्या अंतर है?


जवाबों:


145

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


बस इसलिए मैं स्पष्ट हूं - यदि किसी तृतीय पक्ष ने मुझे पसंद के साथ एक .XSD दस्तावेज़ भेजा है: <xs: तत्व का नाम = "QuoteRequestID" प्रकार = "xs: अहस्ताक्षरित" minOccurs = "0" /> शामिल - यह सिर्फ है खेतों का विवरण यह नहीं है। क्या यह एक वाजिब नमूना अनुरोध के लिए उनसे पूछना उचित है जो कच्चे XML के साथ होगा <QuoteResultID> आदि आदि
जेम्स विल्सन

3
निश्चित रूप से, आप उनसे पूछ सकते हैं। आप कुछ ऑनलाइन टूल का भी उपयोग कर सकते हैं जो आपके लिए ऐसा कर सकते हैं, जैसे कि यह एक उदाहरण के लिए - xsd2xml । बस xsd पेस्ट करें और यह उसके आधार पर एक नमूना xml दस्तावेज़ उत्पन्न करेगा।
प्रतिहार

@anthares, मैंने इसके साथ लिंक की कोशिश की: <?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.
हेटोइनफिनिटी

यह एक मुद्दा क्यों होगा?
हर्टोइनफिनिटी

111


एक उदाहरण लीजिए

<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 हैं।

.. और बहुत सारे ...


1
@ शिशुप्रधान 'अरविंद' का क्या मतलब था "आप एक नोड / विशेषता को दूसरे नोड / विशेषता के मूल्य का उपयोग करके मान्य नहीं कर सकते।" कोई ऐसा क्यों करना चाहेगा?
गीक


"आप दूसरे नोड / विशेषता के मूल्य का उपयोग करके एक नोड / विशेषता को मान्य नहीं कर सकते हैं"। इसका क्या अर्थ है
GrowinMan

@ ग्रोइनमैन, सशर्त मान्यता (माता-पिता के संबंध नहीं) पूर्व: यदि यह आपका xml है: <root> <A>A</A> <B/> <C/> </root>और यदि नोड <A>है <A>B</A>, तो <B>अनिवार्य करें, यदि आवश्यक हो <A>C</A>तो <C>
शिशुप्रधान अरविंद '

उपरोक्त आवश्यकता अकेले XSD के
शिशुप्रो। अरविंद '

15

XSD:
XSD (XML स्कीमा परिभाषा) निर्दिष्ट करता है कि कैसे एक्स्टेंसिबल मार्कअप लैंग्वेज (XML) दस्तावेज़ में तत्वों का औपचारिक रूप से वर्णन किया जाए।
Xml:
XML को डेटा का वर्णन करने के लिए डिज़ाइन किया गया था । यह सॉफ़्टवेयर के साथ-साथ हार्डवेयर से भी स्वतंत्र है।
यह निम्नलिखित चीजों को बढ़ाता है।
-डेटा साझा करना।
-स्वतंत्र मंच।
-डेटा की उपलब्धता में वृद्धि।

अंतर:

  1. एक्सएसडी एक्सएमएल पर आधारित और लिखा गया है।

  2. XSD उन तत्वों और संरचनाओं को परिभाषित करता है जो दस्तावेज़ में प्रकट हो सकते हैं, जबकि XML नहीं करता है।

  3. एक्सएसडी सुनिश्चित करता है कि डेटा की ठीक से व्याख्या की जाए, जबकि एक्सएमएल नहीं है।

  4. एक एक्सएसडी दस्तावेज़ को एक्सएमएल के रूप में मान्य किया गया है, लेकिन विपरीत हमेशा सच नहीं हो सकता है।

  5. एक्सएमडी एक्सएमएल की तुलना में त्रुटियों को पकड़ने में बेहतर है।

एक एक्सएसडी उन तत्वों को परिभाषित करता है जिनका उपयोग दस्तावेजों में किया जा सकता है, वास्तविक डेटा से संबंधित है जिसके साथ इसे एन्कोड किया जाना है।
उदाहरण के लिए:
1/12/2010 के रूप में व्यक्त की गई तारीख का अर्थ या तो 12 जनवरी या 1 दिसंबर को हो सकता है। XSD दस्तावेज़ में दिनांक डेटा प्रकार की घोषणा, यह सुनिश्चित करता है कि यह XSD द्वारा निर्धारित प्रारूप का अनुसरण करता है।


पहले कथन में सब कुछ वर्णित है।
ओजोनुगवा जूड ओचलिफु

6

एक्सएमएल बनाम एक्सएसडी

XML एक सुव्यवस्थित दस्तावेज़में डेटा को संरचित करने के लिए तत्वों और विशेषताओं के सिंटैक्स कोपरिभाषित करता है।

XSD (XML उर्फ) , DTD तरह से पहले, शक्तियों ई एक्स में tensibility एक्सएमएल परिभाषित करने के लिए उपयोगकर्ता को सक्षम करने से शब्दावली और व्याकरण के तत्वों और विशेषताओं एक में वैध एक्सएमएल दस्तावेज़।


6

सरल XML उदाहरण:

<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 डेटा को दर्शाने और मान्य करने का एक और तरीका है।
  • अतिरिक्त विशेषताओं की मदद से, हम कई ऑपरेशन कर सकते हैं।

  • Xsd पर किसी भी कार्य को करना xml की तुलना में सरल है।


नमस्ते! XSD फ़ाइल बनाने के लिए मैं किस प्रोग्राम का उपयोग करूं?
जूडिथ

@ जूडिथ कार्यक्रम? क्या आप अपना प्रश्न बता सकते हैं संपादक या भाषा या उपकरण की तरह?
शुभम 1js

1

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

XML फ़ाइल XSD का एक उदाहरण है क्योंकि यह XSD में परिभाषित नियमों का उपयोग करता है।


0

XML में f.ex की तुलना में अधिक व्यापक अनुप्रयोग है। एचटीएमएल। इसमें आंतरिक या डिफ़ॉल्ट "एप्लिकेशन" नहीं है। इसलिए, जब आप वास्तव में इस बात की परवाह नहीं कर सकते हैं कि लेखक की तरफ से वेब पेजों को भी अनुमति दी गई है, तो आप संभवतः एक XML दस्तावेज़ क्या हो सकता है और इसमें शामिल नहीं हो सकते हैं।

यह एक डेटाबेस डिजाइन करने जैसा है।

XML प्रौद्योगिकियों के बारे में बात यह है कि वे प्रकृति में बनावट हैं। XSD के साथ, इसका मतलब है कि आपके पास एक डेटा संरचना परिभाषा ढांचा है जिसे PHP जैसे टेक्स्ट प्रोसेसिंग टूल में "प्लग इन" किया जा सकता है। इसलिए न केवल आप स्वयं डेटा में हेरफेर कर सकते हैं, बल्कि संरचना को आसानी से बदल सकते हैं और दस्तावेज कर सकते हैं, और यहां तक ​​कि ऑटो-जेनरेट फ्रंट-एंड भी।

इस तरह से देखा गया, XSD डेटा (XML) और डेटा-प्रोसेसिंग टूल के बीच "ग्लू" या "मिडलवेयर" है।

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