2011-05-13 6 views
1

私はxsd.exe csxsd.exeとsvcutilで自分の尾を追いかけています。私は何か基本的なものを欠いているに違いない基本的なプロパティとリストまたは[]を持つ基本オブジェクトがほしいだけです。私は何が欠けていますか?シンプルなXMLから簡単なC#クラスを取得するには?

私が得るxsdはあまりにも複雑で、オブジェクトにはリストや配列は含まれていません。

おかげで、

+0

XMLファイルから始めるのは簡単ですか?そして、私はあなたのコンテンツに基づいてXSDを生成してから、xsd.exeを使ってC#クラスを生成していますか?もしそうなら、あなたはあなたが望むようにXSDをマークアップする時間を取ることができますか?複数レベルのコード生成により、興味深い結果が得られます。 – Yuck

+0

so ...私はxsdを生成するためにxsd.exeを使用しましたが、xmlのように子オブジェクトのコレクションを表すプロパティとプロパティを持つ単純なC#クラスからはるかに離れたクラス結果を生成する次のステップ – Roger

答えて

2

あなたはxsd.exe /classesで使用するの.xsd(スキーマファイル)が必要になります。 .xsdファイルがない場合は、ツールlike thisを使用してファイルを生成できます。ほとんどのツールはデータ型のための文字列を前提としています。あなたが好きではない場合は、生成されたスキーマを微調整するかもしれません。

0

XMLと一致するクラスを作成し、シリアル化を制御するXMLシリアル化属性でマークアップするのはなぜですか?

using System.IO; 
using System.Xml.Serialization; 

namespace AnXmlSample 
{ 

    class Program 
    { 
    static void Main(string[] args) 
    { 
     string xml = @"<document id='3'> 
         <name> 
         document name 
         </name> 
         <foo widget-id='12' > 
         The quick brown fox jumped over the lazy dog 
         </foo> 
        </document>" ; 
     StringReader sr = new StringReader(xml) ; 
     XmlSerializer serializer = new XmlSerializer(typeof(MyDataFromXml)) ; 
     MyDataFromXml instance = (MyDataFromXml) serializer.Deserialize(sr) ; 

     return ; 
    } 
    } 

    [XmlRoot("document")] 
    public class MyDataFromXml 
    { 
    [XmlAttribute("id")] 
    public int Id { get ; set ; } 

    [XmlElement("name")] 
    public string Name { get ; set ; } 

    [XmlElement("foo")] 
    public Widget Foo { get ; set ; } 

    } 

    public class Widget 
    { 
    [XmlAttribute("widget-id")] 
    public int id { get ; set ; } 

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

} 
+0

簡単なクラスを生成するために... – Roger

+0

私の経験では、 'xsd.exe'によって生成されたコードを見ると、"シンプル "は一般に思い浮かぶ形容詞ではありません。 –

関連する問題