web-dev-qa-db-ja.com

複数のXSDスキーマファイルからC#クラスへ

複数のXSDスキーマファイルからC#クラスを生成する最良の方法は何ですか?

一部のXSDスキーマファイルは他のファイルに依存している可能性があります。重複するC#クラスが生成されないようにしています。

39
Ray Lu

XSD.EXEプログラムを使用しますが、同じコマンドラインでプログラムにスキーマのallを渡します。

例えば:

> xsd /c qbxmltypes130.xsd QBUqbxmlops130.xsd QBUqbxmlso130.xsd QBUqbxml130.xsd

次の名前のクラスを発行します:

qbxmltypes130_QBUqbxmlops130_QBUqbxmlso130_QBUqbxml130.cs

この場合、これらはQuickbooksデスクトップSDKのxsdファイルであり、最終的なファイルには、最初の3つのファイルで依存するタイプがあります。それ自体は発生しませんが、依存関係があるため、必要に応じて機能します。

コマンドラインパラメータのファイルを指定できる/parameters:<file>スイッチがあることに注意してください。同様の理由で、あるプロジェクトで使用したことを覚えています。

XSD.EXE docにはパラメーター形式があります。

51
John Saunders

私は、MSDNドキュメントの例に少し欠けていることに気づきました。以下は、説明された問題codemeitのパラメータファイルの例です。

<xsd xmlns='http://Microsoft.com/dotnet/tools/xsd/'>
<generateClasses language='CS' namespace='Namespace.subnamespace'>
    <schema>FirstSchema.xsd</schema>
    <schema>AnotherSchema.xsd</schema>
    <schema>LastSchema.xsd</schema>
</generateClasses>
</xsd>
33
anony mouse