2016-04-22 10 views
1

私は非直列化したい12の非常に複雑なスキーマを持っています。それらは、他の(複数の)定義のそれぞれを使用して、一種の階層を形成します。だから私は、デシリアライズするスキーマ以下の依存関係を持つ、このようなXMLスキーマ定義ツールを使用します。XSDの逆シリアル化は部分クラスの混乱を生成します

xsd.exe /c schema.xsd importedSchema1.xsd importedSchema2.xsd  importedSchema3.xsd importedSchema4.xsd 

と結果のようなものです:

schema.cs 
schema_importedSchema1.cs 
schema_importedSchema1_importedSchema2.cs 
schema_importedSchema1_importedSchema2_importedSchema3.cs 
schema_importedSchema1_importedSchema2_importedSchema3_importedSchema4.cs 

そして、彼らは部分クラスのフルです。これを避ける方法がありますか? 私はC#の初心者ですが、私がシリアライゼーションでプレイするのは初めてですから、何かが足りないと思っていました。私が見つけたすべての例は単純すぎるので、私はこのような複雑な状況を見つけることはできません。だから私はここで何が起こっているのか分かりません。それを作る良い方法がある場合、あるいはこのように分割されている場合、これらのクラスをどのように利用するのかについては分かりません。いくつかの提案?

+0

自分でSerializeクラスを生成するか、生成されたSerializeクラスを部分クラスを組み合わせて手動で編集します。 – jdweng

+0

手動でシリアライズするオプションはありません - 巨大な*階層です。あなたの第二の選択肢を考えてみることができますしかし、それは手動作業の日でもあり、スキーマは時間とともに変化する可能性があるので、このプロセスを自動化することは良いことです。私の各スキーマは、多くのクラスを持つパッケージを定義します。しかし、私は公の部分クラスClassA {20種類のファイルで宣言されています。これらのファイルのそれぞれには、異なるパッケージのクラスがあります。コンパイラがそのような混乱の中で事を見つけることができれば、私はコンマを変更しませんが、いくつかの宣言は異なるファイルで同じです。 – Heteroclito

+0

重複を削除するツールを作成します。 – jdweng

答えて

0

ここが私に何が起こっているかの非常に明確な説明は次のとおりです。

XSD Gen Classes That Reference a Common Type

しかし、私に最も適したこのだっ答え:

xsd.exe to generate classes as separate files?

が正確ではないです私が望んでいたもの(xsdで定義されているすべてのタイプを1つのファイルにまとめたかったのですが)とにかく、そのツールは大きな助けになりました!

関連する問題