2012-11-30 131 views
1

我的任務是構建一個基於Web的交互式SDK,以加速我們的RESPful Web服務API的客戶端開發。部分解決方案需要一個可以讀取XSD並動態生成可編輯的html表單的引擎。這個想法是讓用戶填充在線表單來生成一個有效的XML文檔。我希望能找到一個產品或圖書館來幫助我們,而不是從零開始構建。我們正在考慮將它集成到一個tomcat/jsp/java環境中。這裏有一些要求:將XSD轉換爲HTML表格

(1)支持XSD包括元素節點的&族元素(100+服務是通過結合2個XSD文件包括)
(2)允許選擇(經由配置)生成表單(XSD的子集)
(3)表單應允許元素和屬性的數據輸入
(4)支持0表單中任何類型的未綁定事件(添加/刪除/摺疊)
(5)表單小工具:
      a。選擇單選按鈕
      b。布爾的複選框
      c。枚舉的下拉列表
      d。 Datepickers爲日期
(6)允許在窗體上添加默認數據
(7)XSD驗證應當被集成在表格突出字段錯誤
(8)開源和可擴展

*約束:我在現有服務之上構建一個圖層,並且我無權修改XSD。

我看過xsd-forms(code.google.com/p/xsd-forms),它看起來很有前途,但它處於alpha前狀態。也看XSDForm(www.ilerian.com/xsd-web-form-overview),但它可能很難與我們的技術堆棧集成,並且只是我們需要的一部分(但仍然在看它)。任何想法或建議?

回答

0

所有Web瀏覽器都可以將XML文檔解析爲可從JavaScript訪問的DOM樹。如果你感到困惑,這可能是一個完全不同的DOM樹到實際可見頁面的DOM樹。

我會直接從Web服務器加載XSD,然後在JavaScript中編寫一個自定義應用程序以基於它編輯表單,其中JavaScript爲XSD動態創建頁面和表單元素。

然後,應用程序可以爲完成的表單創建另一個DOM樹,並在這個表單和可見表單元素之間隨機播放值。

最後,它可以在用戶完成表單時將表單的XML文檔轉儲回服務器。

多年來爲多家公司開發了CMS系統,我發現這是最簡單的方法。它對用戶輸入也非常敏感,並允許您在非常基本的硬件上運行它。

讓我知道是否有任何幫助,你需要這個,或任何澄清我所說的。我其實很喜歡寫這些系統!

1

我知道這是一個老問題,但我自己遇到了這個問題,無法找到令人滿意的開源解決方案。我結束了寫我自己的實現,XSD2HTML2XML。據我所知,它是那裏最完整的工具。它支持很多主題起始者所要求的(以及更多:) :):

  1. 從XSD自動生成HTML表單;包括和組都受支持。
  2. 不支持選擇XSD的子集。
  3. 元素和屬性都支持。
  4. minOccurs和maxOccurs都支持。
  5. GUI元素由類型決定,所以支持單選按鈕,複選框,下拉列表和日期選擇器。
  6. 支持默認(和固定)數據。這包括來自外部XML文檔的數據。
  7. HTML5屬性(模式,最小值,最大值等)用於驗證。如何向用戶顯示驗證取決於瀏覽器的實現。
  8. 在MIT許可下開源。

如果您更喜歡開箱即用的解決方案而不是自己寫,請參閱我的實施,XML Schema Form Generator