2009-04-19 7 views
14

JAXBをJavaで使用すると、XML Schemaファイルから、そのスキーマに準拠したXMLがデシリアライズできるJavaクラスのセットを簡単に生成できます。C#のJaxbに相当する

JAXBに相当するC#はありますか?私は、LinqがXMLファイルとの間でクラスを直列化および逆直列化できることを知っています。しかし、どのように私はXMLスキーマファイルからC#のクラスを生成し、linqでこのクラスを使用できますか?

答えて

15

Visual Studioを使用している場合は、 XML Schema Definition Toolをお試しください。これはスキーマ定義を取り、C#クラスを生成します。あるいは、クラスからスキーマ定義を生成することもできます。また、その他のXML関連の変換も多数あります。

+0

実際には、XSDはC#、VB.NET、JScript、またはC++でクラスを生成できます。/languageスイッチを参照してください。 –

+0

申し訳ありませんが、私はそれができないことを暗示するつもりはありませんでした。彼の質問はC#クラスにしか関係しませんでした。しかし、はい、/言語の切り替えは便利です。 –

+3

Visual Studioを使用する必要はありません。 XSD.EXEは.NET SDKの一部です。 –

4

XSDオブジェクトコードジェネレータXsdObjectGenと呼ばれる優れたツールがMicrosoftから提供されています。それはxsd.exeのようですが、より良いです。また、無料ですが、.NET SDKの一部ではありませんが、別途ダウンロードしてください。

はまた、SOの質問を参照してください。XSDObjectGen vs Xsd.exe

1

は、DataSetを使用して調べてください。これは "Java Beans"の使用とは少し異なる概念です。 XML文書全体は、単一のクラス内のすべての階層的な表のセットで処理されます。良い部分は、OOPのカプセル化の理論が実際に強制されるということです。うわー、マイクロソフトは、サンがポーポドしたことを正しく知っていました。

とにかく。物事をより面白くしたい場合は、型付きのDataSetを見ることもできます。私はこれを大きなプロジェクトで大成功を収めて使用しました。