2016-10-19 9 views
0

XMLファイルがあり、その型を書き込もうとしています。 ある時点で私の脳は凍りついています。属性付きXML CDATAを逆シリアル化する

このxmlは、私が書くことができる限り、最小です。

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

私はクラスを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

「選択選択」が可能であることを知っていると良いです。 – Johannes

関連する問題