2011-07-11 12 views
12

XSDツールでは不可能なことを試みている可能性がありますが、もっと簡単な解決策に移る前に質問したいと思います。XSDに基づいて複数のクラスファイルを作成する

1つのコードファイルに複数のクラスを生成する複数の要素(および複数の複合型)を持つXSDファイルがあります(これは気に入らない)。 XSDツールから生成されたきれいで読みやすいクラスファイルを作成するために、各要素を別々のクラスファイルとして1つのコードファイルに配置するのではなく、別々のコードファイルに配置したいと思います。

誰でもこれを行う方法を知っていますか?それとも、私の唯一の解決策は、XSDをスキーマのxml要素ごとに1つのスキーマに分割することですか?

MSDNの資料http://msdn.microsoft.com/en-us/library/x6c1kb0s(v=VS.100).aspxには、これを行うかどうかを指定する言語はありません。

ご回答いただきありがとうございます。

+0

私はあなたが服を着ているかもしれないと思うが、誰かが解決策を持っていると私はそれを見たいと思う。 –

+0

私は何かを見つけることができません、ごめんなさい。 –

答えて

12

これは直接あなたの質問に答えていないが、私はカップルの事を投げると思った:私は、一般的に、それは逆効果で生成されたコードを分離するために見つける

。私は常に "ファイルごとに1つのクラス"のルールに従うことを好むが、私は非常に大きなスキーマを扱うことが多いため、ここでは例外を作る。自分のディレクトリでも、新しいバージョンのコードを生成するときに、数十(〜数百)のファイルを比較する必要はありません。私は、生成されたすべてのコードを1つのファイルに反映させることが非常に便利であることを発見しました。

解決策を提供するために、Resharperには、すべてのクラスをファイルから取り出して、自分のファイルに入れる機能があります。ソリューションエクスプローラでファイルを右クリックすると、Refactor→Move types into matching files ...と言うことができます。もちろん、これはどこでもこのように生成するだけでは便利ではありませんが、私はそれを行うツールについてはわかりません。

+0

時間と答えをありがとう。あなたのコメントを使用して、自分のプロジェクトのニーズに対応します。 – AndHeCodedIt

+0

幸運。あなたが実際にこれを行うツールを見つけたら、ポストバックしてください:) – womp

3

私が解決しようとしている問題は、複数のクラスを含む同じ名前空間ではなく、別々のクラスファイルまたは1つの特異なクラスです。その結果、私は同様の答えを探していたので、この参照が見つかりました。Getting xsd.exe To Not Create Duplicate Classes

これは簡単な修正ですが、理解するまでには時間がかかりました。 2つの別々のコマンドを実行するのではなく、xsd.exeを使用してすべてのクラスを同時にコンパイルする必要があります。 C:¥Solution¥Project> xsd.exe Types.xsd Request.xsd Response。 xsd/c これで3つのクラスがすべて1つのResponse.xsdというファイルが作成されました。

関連する問題