表单生成器中数据库实体的自定义表单元素

Custom form elements for database entities in form builder

我们考虑将 Orbeon PE 4.10 用于我们的一个项目。我知道您可以将自定义表单元素添加为 XBL 组件。因此,我阅读了 this 文档。

对于我们的项目,我们需要将数据模型元素添加到表单生成器(例如为现有的 Access 数据模型创建 Microsoft Access 表单)。假设我们有一个现有的数据库数据模型,其中包含一个实体 event。这个实体有例如15 个数据库属性,例如到达日期、预期参与者人数、主题、描述等。

当我在 Form Builder 中为事件创建新表单时,我想在树结构中查看上面提到的所有字段,以便用户可以将这些字段拖放到表单中(就像在 Access 中一样)。此外,表单元素和数据库实体之间应该有数据绑定。

我的问题是,在不改变orbeon forms PE源代码的情况下是否可以实现?

Orbeon Forms 不做 "relational database mapping",而是专注于数据捕获。因此,该方法可能与您在 Access 中执行的方法略有不同。不是从数据库模式开始,然后设计映射到该模式的表单,而是从表单开始,Form Builder 会自动为您创建一个 XML 文档来保存用户输入的数据,并且XML 文档通常按原样存储在您的数据库中。然后,当您需要 access the data 时,您可以让 Orbeon Forms 将 XML 发送到您的应用程序,通过 REST API,或直接在数据库中访问 XML。

现在,关于您描述的 事件 用例,如果这是以多种形式发生的事情,您可以为该事件创建一个 section template,并在需要时重复使用它。对于需要更多自定义内容的情况,例如特殊日期字段、地图字段或需要自定义验证的特殊类型的数字,您可以创建自己的 XBL 组件,这可以让您有更多控制权,但需要做更多工作与部分模板相比到位。