2010-12-02 15 views
5

से एक धारावाहिक सी # कक्षा कैसे बनाएं Inet में XML के लिए बिल्कुल नया है। मेरे कार्य के हिस्से के रूप में मुझे कक्षा बनाने की आवश्यकता है जिसे एक्सएमएल में क्रमबद्ध किया जा सकता है। मेरे पास सभी टैग्स के साथ एक नमूना एक्सएमएल फ़ाइल है (कक्षा को नमूना एक्सएमएल फ़ाइल के समान एक्सएमएल उत्पन्न करना चाहिए)। एक्सएमएल फ़ाइल से वर्ग बनाने के लिए सबसे अच्छा तरीका क्या होगा?एक्सएमएल फ़ाइल

अग्रिम धन्यवाद !!

+0

क्या आपके पास सुझाए गए किसी भी दृष्टिकोण के साथ कोई भाग्य है? –

+0

हां! कक्षा को उत्पन्न करने के लिए मैंने सफलतापूर्वक एक्सएसडी उपकरण का उपयोग किया (मुझे अपनी आवश्यकताओं को पूरा करने के लिए उन्हें कुछ बदलाव करना पड़ा)। – Grasshopper

+0

http://msdn.microsoft.com/en-us/library/system.xml.serialization.xmlserializer.aspx – Mou

उत्तर

10

आप एक्सएसडी.एक्सई का उपयोग .xml से .cs फ़ाइल बनाने के लिए कर सकते हैं। http://msdn.microsoft.com/en-us/library/x6c1kb0s%28VS.71%29.aspx

कमांड लाइन पर:

xsd myFile.xml 
xsd myFile.xsd 

पहली पंक्ति एक स्कीमा परिभाषा फ़ाइल (XSD) उत्पन्न होगा, दूसरी फ़ाइल एक .cs फाइल उत्पन्न करना चाहिए। मुझे यकीन नहीं है कि वाक्यविन्यास सही है, लेकिन यह आपको शुरू करना चाहिए।

+2

47 सेकंड मेरे लिए बहुत तेज है। +1। क्या मैं जोड़ सकता हूं कि '/ c' सही आउटपुट प्रारूप होगा? सबसे तेज़ दृष्टिकोण के लिए –

+0

+1 :) –

-1

यहां एक अच्छा उदाहरण है कि ऑब्जेक्ट को क्रमबद्ध/deserialize कैसे करें। http://sharpertutorials.com/serialization/

+1

@Grasshopper क्लास पीढ़ी के बारे में पूछ रहा है, क्रमिकरण नहीं। यह सवाल का समाधान नहीं करता है। –

+0

मुझे लगता है कि आप वहां गलत हो सकते हैं - "कक्षा बनाएं जिसे एक्सएमएल में क्रमबद्ध किया जा सके"। वास्तविक आवश्यकता थोड़ा अस्पष्ट है। –

+0

मेरी गलती, मैंने बिस्तर पर जाने से पहले 3 बजे उत्तर पोस्ट किया :) – Davita

4

पीछे की ओर काम करने से आपकी कक्षा पहले बन सकती है, फिर क्रमबद्ध करें और देखें कि आपको क्या मिलता है।

सबसे सरल वर्गों के लिए यह वास्तव में काफी आसान है। आप क्रमानुसार करने XmlSerializer उपयोग कर सकते हैं, जैसे: ": \ अस्थायी \ class.xml ग"

 
namespace ConsoleApplication1 
{ 
    public class MyClass 
    { 
     public string SomeProperty 
     { 
      get; 
      set; 
     } 
    } 

    class Program 
    { 
     static void Main(string[] args) 
     { 
      XmlSerializer serializer = new XmlSerializer(typeof(MyClass)); 
      TextWriter writer = new StreamWriter(@"c:\temp\class.xml"); 

      MyClass firstInstance = new MyClass(); 
      firstInstance.SomeProperty = "foo"; // etc 

      serializer.Serialize(writer, firstInstance); 
      writer.Close(); 

      FileStream reader = new FileStream(@"c:\temp\class.xml", FileMode.Open); 

      MyClass secondInstance = (MyClass)serializer.Deserialize(reader); 

      reader.Close(); 
     } 
    } 
} 

यह XML करने के लिए अपने वर्ग के एक धारावाहिक प्रतिनिधित्व लिखेंगे। आप एक नज़र डाल सकते हैं और देख सकते हैं कि आपको क्या मिलता है। विपरीत में, आप serializer का उपयोग कर सकते हैं। वर्ग को "c: \ temp \ class.xml" से तुरंत चालू करने के लिए।

आप उसे क्रमबद्धता के व्यवहार को संशोधित कर सकते हैं, और अप्रत्याशित नोड्स के साथ सौदा कर सकते हैं - उदाहरण के लिए the XmlSerializer MSDN page पर एक नज़र डालें।

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