4

抽象複合型を定義するスキーマを使用しています。

<xs:complexType name="MyComplexType" abstract="true">

このタイプは、スキーマ内の別の複合タイプによって参照されます。

<xs:complexType name="AnotherType">
  <xs:sequence>
    <xs:element name="Data" type="MyComplexType" maxOccurs="unbounded"/>
  </xs:sequence>
</xs:complexType>

「xsd.exe/d /l:CS MySchema.xsd」を実行すると、次のエラーが発生します。

エラー:MySchema.xsd'の処理中にエラーが発生しました。-DataSet''のコード生成エラー。-入力xmlファイルの内容をDataSetに変換できません。DataSetは、ノードDataの抽象ComplexTypeをインスタンス化できません。-DataSetは、ノードDataの抽象ComplexTypeをインスタンス化できません。

無効なスキーマではないようです。他の誰かがこの問題に遭遇しましたか?

ありがとう

ニック

4

3 に答える 3

3

いくつかの異なるスキーマからコードへのツールを評価した後、スキーマ(非常に大きく非常に複雑)を処理できたのはLiquid XML(http://www.liquid-technologies.com/)だけでした。

于 2008-12-15T14:55:18.413 に答える
2

この問題に遭遇したことはありませんが、xsd.exeには多くの欠点があることをすぐに知りました。私たちはずっと前にCodeXSを使い始めました。この製品はWebサービスですが、コードはコマンドラインツールとして利用できます。

独自の疣贅がありますが、生成されるコードははるかに優れており、無料です。さらに、それは拡張可能であり、それのためにあなた自身のプラグインを追加することは実際にはかなり簡単です。

おそらく、同じ制限はありませんか?

于 2008-11-20T16:06:43.643 に答える
-1

これは古い質問であることは承知していますが、今週、この質問に対する回答が必要でした。@ng5000 の提案に従って Liquid Studios を試してみたところ、ソフトウェアが非常に扱いにくいことがわかりました。さらに、cs の出力は非常に複雑で、12 の単純なプロパティを持つ 1 つのエンティティに対して 800 行を超えるコードが必要でした。

Xml2CSharpを強くお勧めします。これは、XML 属性デコレーターを使用してシンプルで優れた POCO を生成する Web ツールです。

于 2017-09-21T14:50:04.520 に答える