XML DOcument を .NET オブジェクトにマップするために、Linq To XML を使用しています。
XMLドキュメント(文字列)を渡すことができ、Type .NET OBjectを強く返す場所が存在するかどうかを教えてください。
私は XSD2Code を見てきましたが、XML 全体を渡す際に問題が発生しました。これは、要素ごとに個別のクラスを作成しているように見えるためです。
とても簡単:
XML を取得し、xsd.exe
コマンド ライン ツールを使用して実行します。
c:\> xsd.exe yourfile.xml
これにより、対応する XML スキーマ ファイルが生成されます ( yourfile.xsd
)
xsd.exe
今度は XSD ファイルに対してツールを再度実行し、C# クラスを取得します。
c:\> xsd.exe /c yourfile.xsd
yourfile.cs
これにより、XML コンテンツを表すC# クラスが生成されます
プロジェクトでそのクラスを使用して、XML を C# オブジェクトに逆シリアル化します。
XmlSerializer ser = new XmlSerializer(typeof(YourClass));
var result = ser.Deserialize(new FileStream(@"D:\temp\yourfile.xml", FileMode.Open));
すべてが正常に機能していれば、result
XML ファイルのコンテンツを 1 対 1 で表す C# クラス インスタンスが含まれています。
それでおしまい!
xsd
ユーティリティを使用するだけです。
IIRC、あなたはそれを呼んでいxsd /c yourschema.xsd > classes.cs
ます。
スキーマのない XML がたくさんある場合は、 を使用xsd
してスキーマを推測することもできます。とにかく、それは良い出発点になるはずです:)