ASP.NETのフォームへのXSD要素
質問
XSDを入力フォーム(ASP.NET C#)に変換する標準的な方法があります。これにより、後で新しいフィールドがXSDに追加/削除されるたびに、ページ上のフィールドが自動的に表示または消えます。これは社内で開発する必要があるものですか?フォームをシリアル化/逆シリアル化して生成する方法があるはずだと思いますか?どんなヘルでも大歓迎です。.
解決
これを完全に自動化するために組み込まれているものはないと思います。ただし、かなり接近することができます。 Visual Studioには、xsdドキュメントからクラス定義を自動的に作成するために使用できるxsd.exeというコマンドラインプログラムが含まれています。そのクラス定義を取得したら、ObjectDataSourceコンポーネントおよびDetailsViewコントロールを介してフォームに接続できます。
他のヒント
仮定:現時点ではXMLがより簡単であるため、XMLを使用しています。
アイデア:データを操作するためのフォームを作成したいので、XMLではなくSQLに対して開かれているのではないかと思います。これは当てはまらないかもしれませんが、XML / XSDバックエンドの代わりにデータベースバックエンドを使用している場合に役立つツールがさらに見つかるでしょう。 (さらに、データを相互に変換する方法があります)。
ASP.NETのデータベースからフォームを作成するツールがあります。たとえば、SubSonicには自動スキャフォールディングモジュールがあり、スキーマのみを知っているデータベースマネージャーを作成できます。スキーマが変更された場合、SubSonicにそのファイルを再生成させるだけで、フォームが変更されます。それは完璧ではありませんが、あなたのニーズに応じて、長い道のりを行くかもしれません。
オプション1)XSDからデータベーススキーマを作成できます( XSDファイルからデータベーステーブルを作成するにはどうすればよいですか)、その時点からSubSonicを使用します。これは、元の質問よりもさらに苦痛かもしれません...あなただけが知っています。
オプション2)SubSonic scaffoldをハックして、データベースの代わりに基礎となるXSD / XMLをサポートします。 XSDからフォームを生成するために、おそらく多くのインフラストラクチャ(SubSonicはオープンソース)を再利用できます。
がんばって!
さて、ObjectDataSourceは悪い考えではありませんが、ネストされた要素がある場合、これは機能しません。さらに、ネストされた要素の場合、すべての" .. FieldSpecified" DetailsViewのブールフィールドも同様です。
すべてを入力することなく、XSDファイルを使用してASP.NETフォームを生成する方法を探しているところです。
誰もがすでにその問題に遭遇しましたか?
PS:他のアプローチはInfoPathを使用することですが、これにはライセンスされたソフトウェアがWebフォームとして実行する必要があります...