問題タブ [xsd2code]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - Visual Studio で、あるファイルで別のカスタム ツールを実行することはできますか? (この場合は Xsd2Code を使用)
Visual Studio でカスタム ツールを使用しているときに、あるファイルの内容を変更して、別のファイルのカスタム ツールをトリガーできるかどうかを調べようとしています。
私のシナリオはこれです:
Visual Studio C# プロジェクトには、他のいくつかの xsd ファイルを含む "master.xsd" xml スキーマがあります。Xsd2Code Visual Studio カスタム ツールを使用して、スキーマから .cs を生成しています。master.xsd 自体が変更された場合、これは正常に機能しますが、他の xsds の 1 つが変更された場合に、カスタム ツールをファイル master.xsd で実行したいと考えています。
あるファイルが別のカスタム ツールをトリガーする方法はありますか?
[編集 - カスタム ツールの使用を検討している理由の詳細]
現在、コマンド ラインから Xsd2Code を呼び出してスキーマからコード フィールドを生成する GenerateFiles.bat ファイルがあります (以下の MattDavey の提案に従って)。これは機能しますが、遅すぎます。
問題は、すべてのビルドで Xsd2Code が実行されることですが、他の多くのプロジェクトがこのプロジェクトとスキーマに依存しているため、おそらく何も変更されていないにもかかわらず、それらもすべて再コンパイルされます。実際の結論としては、単体テストの小さな変更でさえ、プロジェクトの半分が再コンパイルされるということです。これが、スキーマが変更された場合にのみコード ファイルを生成するカスタム ツール アプローチを検討してきた理由です。
.net - 複数のスキーマファイルでのXSD2CODEの使用
Visual Studio 2010で使用しています。スキーマ( )ファイルを右クリックして、そこからc#クラスを生成XSD2CODE
できることを知っています。XSD
私が知りたいのは、1つのXMLファイルに対して2つのスキーマファイルがある場合にC#クラスを生成するにはどうすればよいですか?
詳しくは:
おそらく、元の質問で十分な詳細を提供していませんでした。
質問を参照するXSD.EXEが2つの.XSDファイルを作成する理由とその使用方法 XSD2CODE
、私は基本的にの代わりに同じ質問をしていXSD
ます。
XSDでは、次のコマンドを使用します。
D:\>xsd response.xsd response_app1.xsd /classes
XSD2CODE
VS 2010 GUIおよび/またはコマンドラインの両方でこれを行うにはどうすればよいですか?
c# - XSDで生成されたクラスへのアクセス
生成されたクラスのプロパティへのアクセスに問題があります。
これは私のxmlです:
これは私の生成されたxsd(3つのうちの1つ)です:
そして最後に、これはxsd2codeから生成されたクラスです。
デシリアライズに問題はありません。適切なクラスが作成されましたが、プロパティにアクセスする方法がわかりません。 私はそのようなことを試みていました:
しかし、それは間違っています。
(エラー33'object'には'MessageID'の定義が含まれておらず、タイプ'object'の最初の引数を受け入れる拡張メソッド'MessageID'が見つかりませんでした(usingディレクティブまたはアセンブリ参照がありませんか?))
クラス構造をよりよく理解するために、画像へのリンクを含めています。アドバイスをいただければ幸いです。ありがとうございます。
c# - C# コードの生成時に、xsd2code の xsd 定義内で既定以外の型を使用する
私たちのプロジェクトでは、Xsd2Code を使用して c# コードを生成しています。
調整しようとしている XSD は次のようになります。
プロジェクト内で、抽象クラス Version を定義しました。Xsd 内の要素 Version の型として文字列の代わりに独自のクラス Version を使用することは可能ですか?
Xsd2Code を使用して、できるだけ多くのクラスを生成したいと考えています。そのため、File クラスを手動で作成する必要も避けたいと考えています。
助けてくれてありがとう。
c# - XSDスキーマから生成されたコードの変更
C#で実装するXML呼び出しが5つあります。Xsd2Codeを使用してコードを自動生成しましたが、結果には非常に満足しています。ただし、私の問題は、次のように、すべてのXML呼び出しに同じ要求応答TypeNameがあることです。
XML呼び出し-1:
XML呼び出し-2:
したがって、5つのXML呼び出しすべてが10のクラスを生成しました。5つは「Request」という名前で、5つは「Response」という名前です。これで、XmlTypeのTypeNameをいつでもRequestとして指定し、クラスの名前を変更できることがわかりました。私はすでにそれをしました。私の質問は、自動生成されたコードを変更するのが良いかどうかです。クラスの名前を変更するだけです。他に何も変更する必要はありません。私が考えたもう1つの解決策は、各Request-Responseペアに異なるC#名前空間を与えることです。しかし、私はそれについて悪い気持ちを持っており、回避策のように見えます。
あなたによると、理想的な解決策は何ですか?
もう1つの疑問は、内部XMLノードにも同じ問題があることです。それらは同じ名前ですが、すべてのXML呼び出しで機能性が異なり、したがって構造も異なります。例えば、
XML呼び出し-1
XML呼び出し-2
今のところ、コードの冗長性を減らすためだけに、一般的なクラスを削除しようとしないことにしました。XSDスキーマを自動生成されたクラスにマップしたままにし、競合を避けるためにクラスの名前を変更することをお勧めします。たとえば、上記の例に類似したRoomクラスは次のようになります。
XML呼び出し-1
XML呼び出し-2
私はその中で間違っていますか?
c# - "System.InvalidOperationException"-xsdXSD2CodeスタイルシートXMLC#Visual Studio
Visual Studioツール(現在はWin 7 SDKツール)のXSD.Exeを使用して、xmlファイルから.xsdを作成しました。私の.xsdファイル:
(長すぎます)次に、XSD2Code(VSのアドイン)を使用して.Designer.csファイルを作成しました。
(カットされたsicneそれは長すぎます)
次に、C#コードで「シーン」(ルートxmlタグ)を作成します。
これまでのところすべてが機能していますが、次のように保存またはシリアル化(または逆シリアル化)したい場合:
そして今、実行すると、ラインでエラーが発生します(SceneFiles.designer.cs内)
そして、私のエラーは次のようになります。
//
Eine nicht behandelte Ausnahme des Typs "System.InvalidOperationException" ist inSystem.Xml.dllaufgetreten。
ZusätzlicheInformationen:Fehler beim Reflektieren desTyps'VNEngine.Scene'。
//
私の大まかな英語の翻訳:
処理されない例外:System.InvalidOperationExceptionがSystem.Xml.dllに表示されました追加情報:タイプ「VNEngine.Scene」の反映でエラーが発生しました
//
誰かが私が間違ったことを知っていますか?
同じことが、それほど複雑ではなく、xsd.exegeneratet.xsdスタイルシートでは機能しませんでした。
c# - xsd2Code と c# を使用して配列を作成する
このような .xsd スキーマを使用しています
これは、Visual Studio の xsd.exe によって自動生成されました。次に、xsd2code を使用して .designer.cs ファイルにします。xsd2code を設定して、シリアライザーを作成し、複雑な型構造を配列に作成します。
ここで、xml をデシリアライズしてシーンファイルを作成します。maxoccurence=1 および minoccurence=0 に設定されている限り、サブオブジェクトがあっても、playername などのサブオブジェクトはすべて正しいです。上記の例のボタンのような配列を除いて、次のような配列を取得すると思いました: scene.Button[i].Buttontext. まあ、私にはわかりません。ここにスクリーンショットがある理由がわからないだけです。
彼は IndoexoutofRange エラーをスローします。それで、私は何を間違えましたか?
ここで私のexample.xml
c# - Xsd2Code を使用して PMML XML スキーマ (xsd) を C# オブジェクトに変換する際のエラー
Xsd2Code ( Xsd2Code ) を使用して PMML 3.0 スキーマ ( PMML 3.0 Schema )から C# オブジェクトを作成しようとしましたが、次のエラーしか表示されませんでした:
エラー: 要素 'http://www.dmg.org/PMML-3_0:Array' の複数の定義により、コンテンツ モデルがあいまいになります。コンテンツ モデルは、要素情報アイテム シーケンスの検証中に、シーケンス内の各アイテムを順番に検証しようとする直接的、間接的、または暗示的に含まれる粒子が、コンテンツまたは属性を調べることなく一意に決定できるように形成する必要があります。そのアイテム、およびシーケンスの残りのアイテムに関する情報なし。
この仕様は正しいと確信しています。VS から xsd.exe も試しましたが、成功しませんでした。
そのような変換を行う他の方法はありますか?
助けてくれてありがとう!
xsd - ファイルに相互参照がある場合、複数要素の生成時に XSD.EXE がエラーを返す
orbitz (グローバル ホテル ディストリビューション システム) の xsd スキーマがあり、これらの xsd ファイルから c#.Net クラスを生成したいと考えています。
Xsd.Exe や XSD2Code などを使用すると、生成されたクラスは、インポートされたファイルから複雑な型を内部にコピーするため、複数のファイルに同じクラスが含まれます。
困った、どうしよう。
以下のリンクから xsd スキーマ ファイルをダウンロードできます。「ホテル」フォルダーにあるxsdファイルのC#クラスが必要です。
xsd ファイルの生成後、これらの .cs ファイルをプロジェクトに追加し、エラーを確認してください。
ありがとう
XSD ファイル =>http://rapidshare.com/files/1062702005/orbitz-pws-schemas-1.42.zip