2009-08-10 10 views
5

私は、xsdsから生成されたクラスを更新する仕事を探しています。私はこれがT4テンプレートを大いに活用すると思うが、私はこれをやる人の例は見ない。本質的には、私はLinq to XSDが行ったことをやりたいが、生産ソリューションにアルファビルドターゲットを含まない。誰かがxsdからクラスを生成するためのT4テンプレートを知っていますか?

関連するリンクはありますか?


今すぐウィキ。ここに関連する回答を保存してください。

答えて

3

私は現在xsd2code.netを使用しています。それはhttp://xsd2code.codeplex.com/です。 メリットがたくさん:

  • オープンソースなので、あなたはチューニング/それは

  • コマンドラインから

  • 実行リストで、あるいは独自のカスタムコレクション型配列を置き換えるハックとして、または実行することができますVisual Studioのアドイン

私はまた、あなたが単一のXSDファイルAでそれを実行できることを好きで(右XSDをクリックし、生成する伝えます)参照されたxsdが見つからない場合(xsd.exeの動作のように)、爆発することはありません。したがって、1つのファイルを素早く更新したい場合に備えて、個々のファイルで簡単に実行できます。

しかし、T4も同様にオプションでなければならない、私はT4 XSDをグーグルで見つけただけで、これについていくつかの解決策を見つけた。ここで

+0

これは現時点で最良の解決策だと思います。おそらくより良いソウルションは、状況が始まるのを避けることです。 – Will

+0

これについて更新するには:現在、このプロジェクトを見ています.- http://oxmlibrary.codeplex.com/ - ちょっとハックしているようですが、意味が分かれば、もっと「ハック可能」です。 –

+0

ウィル、私はこの正確なことをもう一度やり直しています。避けが最適かもしれませんが、業界標準がxsdで定義されている場合、スキーマからクラスを生成することは非常に有効な処理です。あまり楽しいことではありません。 –

1

コード生成のモデルとしてXSDを使用することは非常に困難であることがわかりました。私のニーズには実用的すぎるほど柔軟で複雑なものです。強く型付けされたDataSetデザイナ/ジェネレータは、コード生成モデルとしてXSDを使用する試みの素晴らしい例です。ほとんどの場合は問題なく動作しますが、スローできるすべてのスキーマをサポートしていません。一方、XSDはテーブルアダプタを直接生成するために必要な情報を表すことができないため、DataSet固有の拡張を作成する必要がありました。

XSDをモデルとして使用する場合は、生成する必要があるだけの単純なサブセットを選択することをお勧めします。 1つのアプローチは、XSDスキーマをDataSetオブジェクトにロードし、このDataSetオブジェクトをモデルとして使用することです。 DataSetメタデータは、汎用XSDよりもアクセスがずっと簡単です。これにより、Visual Studioで既存のDataSetデザイナを使用してモデルを編集することもできます。

+0

コード生成が非直列化されたXMLを保持するクラスです。私は自分のモデルを構築し、それらにxmlをパースするか、xmlから直接オブジェクトを逆シリアル化します。データセットよりも軽量なソリューションを探しています...デシリアライズされたデータの部分クラスを書くことができます。 – Will

関連する問題