2009-12-28 13 views
6

मैं सिर्फ दृश्य स्टूडियो के स्वचालित XSD स्कीमा पीढ़ी के सौंदर्य की खोज की। *विजुअल स्टूडियो में एक्सएमडी स्कीमा को एक्सएमएल फाइलों को स्वचालित रूप से संलग्न करें?

वहाँ एक आसान तरीका वी.एस. स्वचालित रूप से मौजूदा XSD स्कीमा के लिए विशेष नाम के साथ फ़ाइलों को संलग्न करने के लिए है? तो अगर मेरे पास myconfig.xml फ़ाइलों को एक परियोजना (या कई परियोजनाओं) में बिखरी हुई है, तो मैं चाहता हूं कि वे प्रत्येक XML फ़ाइल को खोलने और इसे मैन्युअल रूप से संबद्ध करने के बजाय हमेशा myconfig.xsd के विरुद्ध मान्य रहें। क्या यह संभव है?

* जो लोग परिचित नहीं हैं के लिए: ओपन एक्सएमएल फ़ाइल, एक्सएमएल/स्कीमा बनाएँ, और यह क्या यह अपने एक्सएमएल फ़ाइल में देखता है के आधार पर एक अच्छा स्कीमा फ़ाइल बनाता है। आप कर सकते हैं और उसी फ़ाइल को खोलकर एक्सएमएल फ़ाइल को उसी एक्सएसडी को संलग्न करें और एक्सएमएल/स्कीमा चुनें और अपनी परियोजना से उपयुक्त स्कीमा चुनें। इसके बाद आप अपने सभी तत्व पर IntelliSense और मान्यता प्राप्त और नाम, आवश्यक तत्वों और विशेषताओं का श्रेय, आदि


अद्यतन: मुझे लगता है मैं वास्तव में स्पष्ट नहीं था।

जब मैं किसी प्रोजेक्ट में कहीं भी web.config फ़ाइल बनाता हूं, तो मैं मैन्युअल रूप से स्कीमा असाइन नहीं करता हूं। एक्सएमएल के भीतर निर्दिष्ट कोई नामस्थान नहीं है। फिर भी दृश्य स्टूडियो स्वचालित रूप से DotNetConfig.xsd उपयोग करने के लिए जानता है:

XML Schemas dialog screenshot http://i46.tinypic.com/xarpfn.png

मुमकिन है दृश्य स्टूडियो एक मानचित्रण कहीं कि DotNetConfig.xsd को web.config नामित फ़ाइलों प्रदान करती है।

अब, मान लीजिए कि मैं DbSchema.xml नामक सभी फ़ाइलों को स्वचालित रूप से DbSchema.xsd नामक स्कीमा का उपयोग करने के लिए चाहता हूं। क्या ऐसा करने के लिए कोई रास्ता है?

+0

आप क्या कभी यह पता लगाओ? यदि ऐसा है तो कृपया साझा करें। –

उत्तर

1

किसी भी XML दस्तावेज़ के भीतर कोई भी टैग स्कीमा का संदर्भ दे सकता है।

उदाहरण के लिए देखें: http://msdn.microsoft.com/en-us/library/ms757863(VS.85).aspx

+0

मैं स्पष्ट नहीं था - कृपया अपडेट देखें। –

5

अपने स्कीमा (जरूरी नहीं परियोजना) एक ही कार्यक्षेत्र में हैं, तो अपने एक्सएमएल फाइल के रूप में, दृश्य स्टूडियो स्वचालित रूप से अपने फ़ाइलों के रूप में, स्वत: पूर्ण और सत्यापन के लिए उनका उपयोग नहीं करेगा जब तक एक नामस्थान घोषणा है।

आपको स्कीमालोकेशन विशेषता में भी डालने की आवश्यकता नहीं है।

निम्नलिखित का प्रयास करें:

  • डबल यह
  • मेनू आइटम "XML" अब गतिशील रूप से दिखाई देने वाली खोलने के लिए एक XML फ़ाइल क्लिक करें, क्लिक करें "स्कीमा ..."। यह आपको नेमस्पेस से स्कीमा तक वर्तमान मैपिंग दिखाएगा।

यह जांचने के लिए कि यह काम कर रहा है, कहीं भी एक खुला कोण ब्रैकेट डालने का प्रयास करें, इसे तत्व नामों का सुझाव देना चाहिए।

संपादित करें: यह भी नामस्थान बिना XML फ़ाइलों के साथ काम करेंगे, लेकिन तो आप शायद एक नया स्कीमा सूची में जोड़ने के लिए% स्थापित करने के लिए है% \ Xml \ स्कीमा, as described here। नीचे के पास, यह विस्तार से स्कीमा को जोड़ने के लिए "एसोसिएशन" तत्व का उपयोग करने का वर्णन करता है।

+0

स्पष्टीकरण के लिए उपरोक्त अद्यतन देखें। –

+0

"संपादन" के तहत कुछ और स्पष्टीकरण जोड़ा गया। – xcut

+0

वह लिंक था जिसे मैं ढूंढ रहा था, धन्यवाद! –

1

जब उपयोग, http //...../ xxx.xsd या ../Common/xxx.xsd इतना आसान

<configuration> 

    <configSections> 
    <section name="RouteConfigSection" type="RouteSection.RouteConfigSection,RouteSection" /> 
    </configSections> 

    <RouteConfigSection xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="RouteConfigSection.xsd"> 
    <routes>... 
इस बीच

की तरह नाम स्थान जोड़ें:

public class RouteConfigSection : ConfigurationSection 
{ 
    [ConfigurationProperty("routes", IsDefaultCollection = false)] 
    public RouteConfigElementCollection Routings { get { return (RouteConfigElementCollection)base["routes"]; } } 

    //https://github.com/bspell1/NLogEx/blob/master/NLogEx.Mvc/Config/Config.cs 
    [ConfigurationProperty("xmlns")] 
    private String Ns1 { get { return null; } } 

    [ConfigurationProperty("xmlns:xsi")] 
    private String Ns2 { get { return null; } } 

    [ConfigurationProperty("xsi:noNamespaceSchemaLocation")] 
    private String Ns3 { get { return null; } } 
} 
संबंधित मुद्दे

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