2

私は、RESPful Web サービス API のクライアント側開発をスピードアップするために、Web ベースの対話型 SDK を構築する任務を負っています。ソリューションの一部には、XSD を読み取り、編集可能な html フォームを動的に生成できるエンジンが必要です。これは、ユーザーがオンライン フォームにデータを入力して、有効な XML ドキュメントを生成することを目的としています。これをゼロから構築するのではなく、そこにたどり着くのに役立つ製品またはライブラリを見つけたいと思っています。これを tomcat/jsp/java 環境に統合することを検討しています。要件の一部を次に示します。

(1) XSD インクルード & グループ要素をサポート (100 以上のサービスがインクルードによってバインドされた 2 つの XSD ファイルに含まれています)
(2) フォーム (XSD のサブセット) を生成するための要素ノードの (構成による) 選択を許可します
(3) フォームはデータを許可する必要があります要素と属性のエントリ
(4) フォーム内の任意のタイプの 0 からアンバインドされたオカレンスをサポート (追加/削除/折りたたみ)
(5) フォーム ウィジェット:
   a.
   選択肢bのラジオ ボタン。ブール値のチェックボックス
   c. 列挙型のドロップダウン リスト
   d. 日付の日付ピッカー
(6) フォームにデフォルトのデータを追加できるようにする
(7) XSD 検証は、エラーのフィールドを強調表示するフォームに統合する必要があります
(8) オープンソースで拡張可能

*制約: 既存のサービスの上にレイヤーを構築していますが、XSD を変更するアクセス権がありません。

私は xsd-forms ( code.google.com/p/xsd-forms ) を見てきましたが、有望に見えますが、プレアルファの状態です。XSDForm ( www.ilerian.com/xsd-web-form-overview ) も検討していますが、テクノロジ スタックとの統合が難しく、必要なことの一部しか実行できません (ただし、まだ検討中です)。アイデアや推奨事項はありますか?

4

2 に答える 2

1

これが古い質問であることは知っていますが、私はこの問題に遭遇し、満足のいくオープンソースのソリューションを見つけることができませんでした. 私は自分の実装XSD2HTML2XMLを書くことになりました。私の知る限り、これは最も完全なツールです。トピックの開始者が要求した多くのことをサポートしています (さらに多くのこと:)):

  1. XSD からの HTML フォームの自動生成。インクルードとグループがサポートされています。
  2. XSD のサブセットの選択はサポートされていません。
  3. 要素と属性の両方がサポートされています。
  4. minOccurs と maxOccurs の両方がサポートされています。
  5. GUI 要素はタイプによって決定されるため、ラジオ ボタン、チェックボックス、ドロップダウン リスト、および日付ピッカーがすべてサポートされます。
  6. デフォルト (および固定) データがサポートされています。これには、外部 XML ドキュメントからのデータが含まれます。
  7. HTML5 属性 (パターン、最小、最大など) は検証に使用されます。検証がユーザーにどのように表示されるかは、ブラウザの実装によって異なります。
  8. MITライセンスの下でオープンソース。

独自のソリューションを作成するよりも、すぐに使用できるソリューションを好む場合は、私の実装であるXML Schema Form Generatorを参照してください。

于 2017-04-20T15:03:25.377 に答える
0

すべての Web ブラウザは、JavaScript からアクセスできる DOM ツリーに XML ドキュメントを解析できます。混乱している場合は、実際に表示されるページの DOM ツリーとはまったく異なる DOM ツリーになる可能性があります。

XSD を Web サーバーから直接ロードし、それに基づいてフォームを編集するカスタム アプリを JavaScript で作成し、JavaScript が XSD のページとフォーム要素を動的に作成します。

その後、アプリケーションは完成したフォーム用に別の DOM ツリーを作成し、これと表示されているフォーム要素の間で値をシャッフルできます。

最後に、ユーザーがフォームを完了すると、フォームの XML ドキュメントをサーバーにダンプできます。

長年にわたってさまざまな企業向けに CMS システムを開発してきましたが、これが最も簡単な方法であることがわかりました。また、ユーザー入力への応答性が非常に高く、非常に基本的なハードウェアで実行できます。

これに関して何か助けが必要な場合、または私が言ったことの明確化があれば教えてください. 私は実際、この種のシステムを書くことを本当に楽しんでいます!

于 2012-12-01T21:30:04.333 に答える