XSD फ़ाइलों का उद्देश्य क्या है?


90

चूंकि हम C # (.NET) से XML फ़ाइल पर क्वेरी कर सकते हैं, हमें XSD फ़ाइल की आवश्यकता क्यों है? मुझे पता है कि यह विशेष रूप से XML फ़ाइल का मेटाडेटा फ़ाइल है। हम एक्सएसडी में रिश्तों को निर्दिष्ट कर सकते हैं, लेकिन फिर इसका क्या कार्य है?

एक्सएमएल

<?xml version="1.0" encoding="utf-8" ?>
<Root>
  <Customers>
    <Customer CustomerID="GREAL">
      <CompanyName>Great Lakes Food Market</CompanyName>
      <ContactName>Howard Snyder</ContactName>
      <ContactTitle>Marketing Manager</ContactTitle>
      <Phone>(503) 555-7555</Phone>
      <FullAddress>
        <Address>2732 Baker Blvd.</Address>
        <City>Eugene</City>
        <Region>OR</Region>
        <PostalCode>97403</PostalCode>
        <Country>USA</Country>
      </FullAddress>
    </Customer>
  </Customers>
  <Orders>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>6</EmployeeID>
      <OrderDate>1997-05-06T00:00:00</OrderDate>
      <RequiredDate>1997-05-20T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-05-09T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>3.35</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
    <Order>
      <CustomerID>GREAL</CustomerID>
      <EmployeeID>8</EmployeeID>
      <OrderDate>1997-07-04T00:00:00</OrderDate>
      <RequiredDate>1997-08-01T00:00:00</RequiredDate>
      <ShipInfo ShippedDate="1997-07-14T00:00:00">
        <ShipVia>2</ShipVia>
        <Freight>4.42</Freight>
        <ShipName>Great Lakes Food Market</ShipName>
        <ShipAddress>2732 Baker Blvd.</ShipAddress>
        <ShipCity>Eugene</ShipCity>
        <ShipRegion>OR</ShipRegion>
        <ShipPostalCode>97403</ShipPostalCode>
        <ShipCountry>USA</ShipCountry>
      </ShipInfo>
    </Order>
  </Orders>
</Root>

मैं Orderप्रदत्त तत्वों के अनुसार डेटा प्राप्त करना चाहता हूं CustomerID

भी : XSD में रिश्तों को देने का क्या उद्देश्य है?


stackoverflow.com/questions/2333998/… , भी संदर्भित किया जा सकता है!
एवीए

जवाबों:


106

एक्सएसडी फाइलें यह प्रमाणित करने के लिए उपयोग की जाती हैं कि एक्सएमएल फाइलें एक निश्चित प्रारूप के अनुरूप होती हैं।

उस संबंध में वे डीटीडी के समान हैं जो उनके सामने मौजूद थे।

XSD और DTD के बीच मुख्य अंतर यह है कि XSD को XML में लिखा गया है और इसे पढ़ना और समझना आसान माना जाता है।


धन्यवाद, इसलिए मैं xml फ़ाइल से डेटा प्राप्त करने के लिए Linq का उपयोग करके c3.net से xsd फ़ाइलों पर क्वेरी कर सकता हूं? कैसे?
लाल स्वान

@ ललित - रेखा का इससे कोई लेना-देना नहीं है।
Oded

एक और महत्वपूर्ण अंतर यह है कि आप एक्सडीएस में बहुत सारे सामान आसानी से डीटीडी में नहीं कर सकते हैं।
मोर्ट

तो डेटा प्राप्त करने के लिए, मैं केवल xml फ़ाइल का सही उपयोग कर सकता हूं? मुझे इसकी स्कीमा फ़ाइल बनाने की कोई आवश्यकता नहीं है। (मैं इसे अभी के लिए मान्य नहीं करना चाहता) मैं सिर्फ xml का डेटा प्राप्त करना चाहता हूं जिनके पास प्रत्येक तत्व में आईडी मानचित्रों पर निर्भर विभिन्न रिकॉर्ड हैं।
लाल हंस

4
@ ललित - यदि आप इस तरह के रिश्तों की परवाह नहीं करते हैं और यह जांचने की आवश्यकता नहीं है कि वे किसी प्रकार के नियम (एक एक्सएसडी में कोडित) के अनुरूप हैं, तो एक एक्सएसडी का उपयोग न करें और सीधे एक्सएमएल को क्वेरी करें।
Oded

48

XML स्कीमा (XSD फ़ाइल) के बिना एक XML फ़ाइल तत्वों और विशेषताओं का एक अपेक्षाकृत मुफ्त सेट है। XSD फ़ाइल परिभाषित करता है कि कौन से तत्व और विशेषताएँ अनुमत हैं और किस क्रम में हैं।

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


18

आप अपने प्रश्न में C # का उल्लेख करते हैं, इसलिए यह XSD के बारे में सोचने में मदद कर सकता है क्योंकि C # इंटरफ़ेस के समान भूमिका निभा सकता है।

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


4
यदि आप एक क्लास लेते हैं और एक इंटरफ़ेस जिसे लागू करना चाहिए, तो आप बता सकते हैं कि क्या क्लास सही है। उसी तरह, यदि आप xml फ़ाइल लेते हैं और यह xsd है, तो आप बता सकते हैं कि क्या xml सही है।
गैरी

16

एक्सएसडी एक्सएमएल दस्तावेजों की शब्दावली और संरचना को बाधित करता है।

  • एक XSD के बिना , एक XML दस्तावेज़ केवल होने के लिए नियमों का पालन की जरूरत है अच्छी तरह से गठित रूप में दी W3C XML सिफारिश
  • XSD के साथ , XML दस्तावेज़ को W3C XML स्कीमा अनुशंसा के अनुसार XSD के विरुद्ध वैध माने जाने के लिए उसके तत्वों और विशेषताओं के नामों और मूल्यों पर रखे गए अतिरिक्त अवरोधों का पालन करना होगा ।

XML सभी समझौते के बारे में है , और XSDs XML की मूल परिभाषा से परे समझौते को संरचित और संप्रेषित करने के लिए साधन प्रदान करते हैं।


12

प्रश्न यह भी है: xsd में रिश्तों को देने का उद्देश्य क्या है।

मान लीजिए कि आप किसी बाहरी पार्टी के उपकरण के लिए कुछ XML उत्पन्न करना चाहते हैं, या समान - आप कैसे जानेंगे कि किस उपकरण को उसके टूल के लिए सही तरीके से उपयोग करने की अनुमति है? आप एक स्कीमा को लिखते हैं। इसी तरह यदि आप चाहते हैं कि अन्य लोग आपके उपकरण का उपयोग करें, तो आप उनका अनुसरण करने के लिए एक स्कीमा लिखेंगे। यह आपके अपने XML को मान्य करने के लिए भी उपयोगी हो सकता है।


8

एक्सएसडी (एक्सएमएल स्कीमा परिभाषा) को समझने से पहले मुझे समझाएं;

स्कीमा क्या है?

उदाहरण के लिए; emailid: पीटर # जीमेल

आप पहचान सकते हैं कि उपरोक्त ईमेलआईडी मान्य नहीं है क्योंकि कोई @, .com या .net या .org नहीं है।

हमें पता है कि यह ईमेल स्कीमा peter@gmail.com जैसा दिखता है।

निष्कर्ष: स्कीमा डेटा को मान्य नहीं करता है, यह संरचना का सत्यापन करता है।

XSD वास्तव में XML स्कीमा के कार्यान्वयन में से एक है। दूसरे हमारे पास हैं

XML डेटा को मान्य करने के लिए हम XSD का उपयोग करते हैं।


7

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


5

एक एक्सएसडी फ़ाइल एक एक्सएमएल स्कीमा परिभाषा है और यह एक मानक विधि प्रदान करने के लिए उपयोग की जाती है जो किसी दिए गए एक्सएमएल दस्तावेज़ की अपेक्षा करती है।


5

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


4

Xsd फ़ाइल xml फ़ाइल का स्कीमा है - यह परिभाषित करता है कि कौन से तत्व हो सकते हैं और उनके प्रतिबंध (जैसे राशि, आदेश, सीमाएं, रिश्ते, ...)

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