2012-11-30 94 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