2016-10-19 6 views
0

У меня есть xml-файл, и я пытаюсь написать для него тип. В какой-то момент мой мозг замерзает.Deserialize XML CData с атрибутом

Этот xml является минимальным, так как я могу его написать.

<Level ID="SomeID"> 
    <Selection Name="AnotherID"> 
     <Content><![CDATA[SomeData]]></Content> 
    </Selection> 
</Level> 

В cs Я хочу написать класс как тип для xmlserializer.

public class Level 
{ 
    [XmlAttribute] 
    public string ID {get; set;} 
    public ??? Selection {get; set;} 
    //What is the type of CDATA 
    //Where would the Name Attribute go? 
} 

Какой-то выбор должен быть классом с атрибутом, а также типом выбора является CData. Какими бы ни были CData, это был бы стандартный тип, поэтому я не мог установить атрибут Name.

Как это разрешить в классе cs? - xml является устаревшим и не может быть изменен.

ответ

1

У вас есть хорошее начало там .. это должно помочь вам до конца.

public class Level 
{ 
    [XmlAttribute] 
    public string ID {get; set;} 
    public Selection Selection {get; set;} 
} 

public class Selection { 
    [XmlAttribute] 
    public string Name {get;set;} 
    public Content Content {get;set;} 
} 

public class Content { 
    [XmlText] 
    public string Data {get;set;} 
} 

Так, чтобы получить доступ, что CDATA текст с помощью объектной модели доступа будет Level.Selection.Content.Data.

+0

Ah 'Selection Selection * Полезно знать, что это возможно. – Johannes