2

XML DOcument を .NET オブジェクトにマップするために、Linq To XML を使用しています。

XMLドキュメント(文字列)を渡すことができ、Type .NET OBjectを強く返す場所が存在するかどうかを教えてください。

私は XSD2Code を見てきましたが、XML 全体を渡す際に問題が発生しました。これは、要素ごとに個別のクラスを作成しているように見えるためです。

4

2 に答える 2

3

とても簡単:

  1. XML を取得し、xsd.exeコマンド ライン ツールを使用して実行します。

    c:\> xsd.exe yourfile.xml
    

    これにより、対応する XML スキーマ ファイルが生成されます ( yourfile.xsd)

  2. xsd.exe今度は XSD ファイルに対してツールを再度実行し、C# クラスを取得します。

    c:\> xsd.exe /c yourfile.xsd
    

    yourfile.csこれにより、XML コンテンツを表すC# クラスが生成されます

  3. プロジェクトでそのクラスを使用して、XML を C# オブジェクトに逆シリアル化します。

    XmlSerializer ser = new XmlSerializer(typeof(YourClass));
    
    var result = ser.Deserialize(new FileStream(@"D:\temp\yourfile.xml", FileMode.Open));
    

    すべてが正常に機能していれば、resultXML ファイルのコンテンツを 1 対 1 で表す C# クラス インスタンスが含まれています。

それでおしまい!

于 2011-08-12T05:51:23.290 に答える
0

xsdユーティリティを使用するだけです。

IIRC、あなたはそれを呼んでいxsd /c yourschema.xsd > classes.csます。

スキーマのない XML がたくさんある場合は、 を使用xsdしてスキーマを推測することもできます。とにかく、それは良い出発点になるはずです:)

于 2011-08-12T05:49:46.010 に答える