2

我的任务是构建一个基于 Web 的交互式 SDK,以加快我们 RESPful Web 服务 API 的客户端开发。部分解决方案需要一个能够读取 XSD 并动态生成可编辑 html 表单的引擎。这个想法是让用户填写在线表单以生成有效的 XML 文档。我希望找到一个产品或库来帮助我们到达那里,而不是从头开始构建它。我们希望将其集成到 tomcat/jsp/java 环境中。以下是一些要求:

(1) 支持 XSD 包含和分组元素(100 多个服务在包含绑定的 2 个 XSD 文件中)
(2) 允许选择(通过配置)元素节点生成表单(XSD 的子集)
(3) 表单应该允许数据元素和属性的条目
(4)支持0到表单中任何类型的未绑定出现(添加/删除/折叠)
(5)表单小部件:
   a。选项 b的单选按钮
   。
   布尔值c的复选框。枚举的下拉列表
   d. Datepickers for Dates
(6) 允许在表单上添加默认数据
(7) XSD 验证应集成在表单中突出显示错误字段
(8) 开源和可扩展

*约束:我正在现有服务之上构建一个层,我无权修改 XSD。

我查看了 xsd-forms ( code.google.com/p/xsd-forms ),它看起来很有希望,但它处于 pre-alpha 状态。还查看 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 浏览器都可以将 XML 文档解析为 DOM 树,您可以从 JavaScript 访问该树。如果您感到困惑,这可能是与实际可见页面的 DOM 树完全不同的 DOM 树。

我会直接从 Web 服务器加载 XSD,并用 JavaScript 编写一个自定义应用程序来编辑基于它的表单,JavaScript 会为 XSD 动态创建页面和表单元素。

然后,应用程序可以为完成的表单创建另一个 DOM 树,并在此和可见表单元素之间打乱值。

最后,当用户完成表单时,它可以将表单的 XML 文档转储回服务器。

多年来为各种公司开发了 CMS 系统,我发现这是最简单的方法。它对用户输入也非常敏感,并允许您在非常基本的硬件上运行它。

让我知道您是否需要任何帮助,或者对我所说的内容进行任何澄清。我真的很喜欢编写这类系统!

于 2012-12-01T21:30:04.333 回答