2011-07-13 14 views
40

xsd.exeツールを使用してxsdファイルからクラスを作成した後、このエラーが発生します。そこでネットを検索して解決策を見つけました。ここにリンクがあります:http://satov.blogspot.com/2006/12/xsdexe-generated-classes-causing.html一時クラス(結果= 1)を生成できません。エラーCS0030:タイプ 'タイプ'を 'タイプ'に変換できませんか?

問題は、これによってコードが実行されますが、何らかの理由で逆シリアル化されたデータが破損しているようです。私はサイトが示唆したことを行い、最終的に2番目の配列次元は常に空です(サイトのコメントを参照してください、誰かもこの問題を抱えていました)。問題は、今、この問題をどうやって解決するのですか? xsdファイルを作成する別のツールはありますか?私は成功せずにXsd2Codeを試しました。あなたはシリアル化されたクラスのメンバ変数の種類を変更する必要が

+0

ここでの説明をご覧ください:http://social.msdn.microsoft.com/forums/en-US/asmxandxml/thread/e33305c3-b5f6-4922-8a3f-df202088d25a/ダミーを追加できますかあなたのxsdに属性。これがあなたが直面している問題であるかどうかは確かではありません。 –

+0

私はsimular問題を抱えていますが、ダミー属性を追加しても修正されませんでした。ここに私の質問を参照してください:http://stackoverflow.com/q/10514817/198048 –

答えて

88

:-)

感謝。たとえば、次のようなエラーが発生した場合:

一時クラス(結果= 1)を生成できません。 エラーCS0030: 'データ'を 'データ'に変換できません。

私は、生成されたファイル内のデータ型の名前で検索を実行した、と私はこれが見つかりました:

[System.Xml.Serialization.XmlArrayItemAttribute("Data", typeof(Data), IsNullable=false)] 
public Data[][] Row 

Data[]で​​を交換 - に2D配列からのデータの種類を変更します1Dアレイ。それはあなたの問題を解決するでしょう。 :)

+1

ありがとう、それは私の問題を解決しました:) – techExplorer

+4

ありがとうヒント。しかし、なぜMicrosoft XSDツールは2D配列を生成しますか? – float

+6

私はMicrosoftのXSDを使ってTD Ameritradeの株式ブローカーAPIから返されたXML用のクラスを生成する際に同じ問題を抱えていました.XSD.EXEよりも優れたツールがあれば、手動でC#クラス?私は1つのXMLであまりにも多くのエラーを取得しており、私は多くの処理を...! –

9

同じ問題がありましたが、Xsd2CodeはVS2012と統合されませんでした。

は、[] [] 働いた[]

を交換して下さい:だから代わりに私は.csファイルのファイルを生成していた私のXsd.exeではに行ってきました。

0

私のケースでは、XmlArrayItemプロパティ属性の宣言が無効なために問題が発生しました。私は適切な型に変更

[XmlArrayItem("MyArray", typeof(string))] 
public List<ClassName> Items{ get; set; } 

から

:文字列からクラス名

[XmlArrayItem("MyArray", typeof(ClassName))] 
public List<ClassName> Items{ get; set; } 

は、この情報がお役に立てば幸い!

0

は、そのVB.netでなら、あなたはすべての
<xs:sequence maxOccurs="unbounded"> <xs:element ../> </xs:sequence>

<xs:sequence> <xs:element maxOccurs="unbounded"/> </xs:sequence><xs:attribute name="tmp" type="xs:string" /> を追加し、あなたのReference.vbに)()(を検索し、()

1

と交換するようになりました配列の寸法を緩めたくない場合は、
要素を使用してください。

+0

これを例に挙げてください。 – Najera

3

私は、これはreference.csファイルは「[] []」あなたが検索する必要がある、そのファイルであり、あなたがする必要がある後はそれに2つの結果..

があるでしょう、あなたのソリューションをerror.Inました両方の場所から[[] [] "から[[]"を削除してください。それは私の作品

..

おかげで...私にとっては

+0

すべての答えのうち、これは私のために働く人です。 Visual Studioにサービス参照を追加すると、これは間違いです。 – nivs1978

+0

はい。このエラーは5時間かかりました –

1

それがコードを生成するために使用されるXMLにパッチを適用するのに役立ちます。ある

<Names> 
    <Name></Name> 
    <Name></Name> 
</Names> 

が、これは私がやったdouble配列名エントリ

にXSDによって最適化されています:場合に発生する

<Names> 
    <Dummy></Dummy> 
    <Name></Name> 
    <Name></Name> 
</Names> 

XSDがそれを最適化しませんが、単一のアレイを残し名前

関連する問題