Deserializacja XML

0

Witam,
Mam problem z deserializacją pliku XML który dostałem. Problem polega na tym, że elemety "table" można rozróżnić tylko po atrybucie name.
Poniżej plik XML oraz dwie niedziałające wersje rozwiązania.

<?xml version="1.0" encoding="UTF-8"?> <dbsync> </dbsync>
 
[Serializable()]
        [System.Xml.Serialization.XmlRoot("dbsync", Namespace = "", IsNullable = false)]        
        public class DepositCollections
        {
            [System.Xml.Serialization.XmlArrayItem("table")]
            [System.Xml.Serialization.XmlArray("items")]
            [System.Xml.Serialization.XmlArrayItem("bk", typeof(Deposit))]
            public List<Deposit> itemDeposit { get; set; }

            [System.Xml.Serialization.XmlArrayItem("table")]
            [System.Xml.Serialization.XmlArray("items")]
            [System.Xml.Serialization.XmlArrayItem("bkd", typeof(DepositDenomination))]
            public List<DepositDenomination> itemDepositDenomination { get; set; }            
        }
 

[Serializable()]
        [System.Xml.Serialization.XmlRoot("dbsync", Namespace = "", IsNullable = false)]        
        public class DepositCollections
        {
            [System.Xml.Serialization.XmlElement("table")]            
            public List<ElementTableDeposit> itemDeposit { get; set; }
        }
        
        [Serializable()]
        public class ElementTableDeposit
        {
            [System.Xml.Serialization.XmlAttribute("name")]
            public string name { get; set; }

            [System.Xml.Serialization.XmlArray("items")]            
            [System.Xml.Serialization.XmlArrayItem("bk", typeof(Deposit))]            
            public List<Deposit> deposit { get; set; }

            /*
            [System.Xml.Serialization.XmlArray("items")]
            [System.Xml.Serialization.XmlArrayItem("bkd", typeof(DepositDenomination))]            
            public List<DepositDenomination> depositDenomination { get; set; }
             */ 
        }

Pozdrawiam,
Zoritt

1

OK. Znalazłem rozwiązanie.

 
 [Serializable()]
        [System.Xml.Serialization.XmlRoot("dbsync", Namespace = "", IsNullable = false)]        
        public class DepositCollections
        {
            [System.Xml.Serialization.XmlElement("table")]            
            public List<ElementTableDeposit> itemDeposit { get; set; }
        }
        
        [Serializable()]
        public class ElementTableDeposit
        {
            [System.Xml.Serialization.XmlAttribute("name")]
            public string name { get; set; }
            [System.Xml.Serialization.XmlArray("items")]            
            [System.Xml.Serialization.XmlArrayItem("bk", typeof(Deposit))]
            [System.Xml.Serialization.XmlArrayItem("bkd", typeof(DepositDenomination))]            
            public List<Object> deposit { get; set; }
        }

Pozdrawiam,
Zoritt

1 użytkowników online, w tym zalogowanych: 0, gości: 1