2011-01-07 13 views
0

フォームにはXSDまでインターネット上に多くのドキュメントがありますが、私の状況には十分なものがあります。.NETのXSDからの動的フォームの作成

私はWCF Webサービスを使用しています。このサービスは.xsd xml schemaをフェッチし、.xsd xmlスキーマに基づくフォームのHTMLを返す必要があります。これを手伝ってくれるサードパーティのツールはありますか?もしあれば、それは何ですか?そうでない場合、どのようにこれを行うことができるかについての提案、より良い方法などがありますか?

答えて

1

XSDを解析することは困難ですが、あなたは簡単にXsd.exeでは/クラスを呼び出すか、それはこの美しいサンプル以下のランタイム実行して、そこからクラスを取得することができます:あなたが使用することができ、あなたのxsdを表すクラスを持つので、 http://mikehadlow.blogspot.com/2007/01/writing-your-own-xsdexe.html リフレクションを使用してHTMLコードを作成します。

+0

この方法では、あなたはどのようにHTMLコードを作成するために反射を使用するかに関する提案がありますか?私はC#を知っていて、リフレクションを使った経験は一度もありませんでした。もしそうでなければ、正しい方向に私を向けることができますか? – TheJediCowboy

+1

xsdによって生成された型があれば、Type.GetProperties()を使用して単一のプロパティ名と型を取得し、これを使ってhtmlを生成することができます。 –

1

まず、XSD(includeimport、またはという要素はありません)を渡すだけでなく、ルートノードも伝える必要があります。

第2に、私はXmlSchema.ReadメソッドでXSDを読むことでこれにアプローチします。その後、必要な情報を引き出すオブジェクトモデルをループすることができます。

実際に必要なスキーマの部分を含むXML文書を書き出してから、XML変換を実行してHTMLを生成することさえできます。

また、マイクロソフトのMicrosoft Office InfoPath製品について考えてみましょう。製品自体を使用していなくても、XSDと他のメタデータに基づいてフォームを定義する方法を確認する試用版を入手してください。

2

私はXsdFormEditorという自分のプロジェクトに取り組んでいます。アプリケーションは、WinForms(95%完了)、Web(Asp.Net MVC、0%完了)、WPF(0%完了)でフォームとしてXSDを表示できます。アイデアは、XSDファイルをロードし、フォームとしてユーザーに表示し、ユーザーが一部のデータを入力し、XMLとしてデータを保存できるようにすることです。ユーザーはXMLファイルからフォームにデフォルト値をロードすることもできます。あなたはここにそれを見つけることができます:https://github.com/janstafa/XsdFormEditor

+0

ありがとう!これは、私が取り組んでいることに非常に便利です。それは私のために動作するようにいくつかの変更を加えなければならなかった。 –

+0

@TimGeertsそれがあなたを助けたと聞いてうれしいです。改善した場合は、リクエストを引き出してください – Simon

関連する問題