2013-02-19 69 views
6

के आधार पर एक्सएमएल फाइलें उत्पन्न करता है मेरे पास xml फ़ाइल है जिसे मुझे नई ग्राहक आवश्यकता के अनुसार हर बार अद्यतन करने की आवश्यकता है। अधिकांश समय xml फ़ाइल के मैन्युअल अद्यतन के कारण xml उचित नहीं है। मैं एक प्रोग्राम (वेब ​​/ विंडोज) लिखने के बारे में सोच रहा हूं जहां उचित सत्यापन प्रदान किया जाता है। और ui से इनपुट के आधार पर मैं xml फ़ाइल बनाने जा रहा हूं। नीचे मेरा नमूना xml फ़ाइल है।मेरी सी # कक्षा

<community> 
    <author>xxx xxx</author> 
    <communityid>000</communityid> 
    <name>name of the community</name> 

<addresses> 
     <registeredaddress> 
      <addressline1>xxx</addressline1> 
      <addressline2>xxx</addressline2> 
      <addressline3>xxx</addressline3> 
      <city>xxx</city> 
      <county>xx</county> 
      <postcode>0000-000</postcode> 
      <country>xxx</country> 
     </registeredaddress> 
     <tradingaddress> 
      <addressline1>xxx</addressline1> 
      <addressline2>xxx</addressline2> 
      <addressline3>xxx</addressline3> 
      <city>xxx</city> 
      <county>xx</county> 
      <postcode>0000-000</postcode> 
      <country>xxx</country> 
     </tradingaddress> 
     </addresses> 


<community> 

किसी भी एक मेरी मदद कर सकते है कि इस के लिए सबसे अच्छा तरीका क्या होगा?

+1

आप किस प्रकार की सत्यापन के बारे में बात कर रहे हैं? –

+0

पोस्ट कोड फ़ील्ड के लिए नियमित अभिव्यक्ति – Prashant

+0

@Prashant xml टैग को लोअरकेस के लिए महत्वपूर्ण है? –

उत्तर

11

बनाएं निम्नलिखित वर्गों अपने डेटा पकड़ और यह प्रमाणित करने के लिए: एक्सएमएल के लिए समुदाय वर्ग की कि उदाहरण

public class Community 
{ 
    public string Author { get; set; } 
    public int CommunityId { get; set; } 
    public string Name { get; set; } 
    [XmlArray] 
    [XmlArrayItem(typeof(RegisteredAddress))] 
    [XmlArrayItem(typeof(TradingAddress))] 
    public List<Address> Addresses { get; set; } 
} 

public class Address 
{ 
    private string _postCode; 

    public string AddressLine1 { get; set; } 
    public string AddressLine2 { get; set; } 
    public string AddressLine3 { get; set; } 
    public string City { get; set; } 
    public string Country { get; set; } 

    public string PostCode 
    { 
     get { return _postCode; } 
     set { 
      // validate post code e.g. with RegEx 
      _postCode = value; 
     } 
    } 
} 

public class RegisteredAddress : Address { } 
public class TradingAddress : Address { } 

और क्रमानुसार:

Community community = new Community { 
    Author = "xxx xxx", 
    CommunityId = 0, 
    Name = "name of community", 
    Addresses = new List<Address> { 
     new RegisteredAddress { 
      AddressLine1 = "xxx", 
      AddressLine2 = "xxx", 
      AddressLine3 = "xxx", 
      City = "xx", 
      Country = "xxxx", 
      PostCode = "0000-00" 
     }, 
     new TradingAddress { 
      AddressLine1 = "zz", 
      AddressLine2 = "xxx" 
     } 
    } 
}; 

XmlSerializer serializer = new XmlSerializer(typeof(Community)); 
serializer.Serialize(File.Create("file.xml"), community); 

मुझे लगता है कि एक छोटे से Googling में मदद मिलेगी आप कैसे को समझने के लिए फ़ाइल से वापस समुदाय ऑब्जेक्ट deserialize करने के लिए।

+0

एक्सएमएल में एक्सएमएल टैग सीएस फाइलों के समान हैं। मैं अपनी मूल xml फ़ाइल में छोटे मामले को कैसे बना सकता हूं। – Prashant

+0

आपके त्वरित soln के लिए धन्यवाद। – Prashant

+1

@Prashant 'XmlElement' विशेषताओं का उपयोग करें। इस तरह की [XmlElement ("name")] सार्वजनिक स्ट्रिंग नाम {प्राप्त करें; सेट; } 'आपको समुदाय वर्ग के लिए' XmlRoot' विशेषता की भी आवश्यकता होगी। –