我将表单定义存储在基于文件系统的存储库中。存储库中的每个表单定义都有一个file-id
。在Orbeon Forms中,表单定义由<app name, form name>
对确定。所以我使用file-id
作为form name
。我根据the persistence API编写了一个定制的持久层来桥接Orbeon表单和存储库。Orbeon Forms中表单定义的可移植性问题
我想复制/导出/导入表单定义从一个仓库到另一个,从而共享/重用/迁移的形式定义。当表单定义从存储库复制到另一个时,它的file-id
被更改,但是表单定义中的form name
保持旧的。就像将普通文件复制到另一个目录或重命名它一样,但文件内容不会更改。
在这种情况下,我将在持久性URL(API)中使用<app name, new file-id>
来访问其内容中带有<app name, old file-id>
的表单定义。我的第一个问题是,在表单构建器或表单运行器中哪个标识优先?
如果持久URL的<app name, new file-id>
(API)优先在这两个表单生成器或形式亚军,便携性将是完美的。我在表单构建器中进行测试,在保存或发布时,表单构建器将在其内容(XML)中使用<app name, old file-id>
。我的第二个问题是,我们可以更改或自定义优先级吗?
我不知道如何将数据保存在持久层的磁盘上。什么文件ID?使用从磁盘读取数据的捆绑资源持久层(并且是只读的),数据将保存在目录层次结构中,如下所示:http://wiki.orbeon.com/forms/doc/developer- guide/form-runner/persistence-api#TOC-Virtual-hierarchy-of-data – avernet
表单定义和表单数据保存在不同的地方。表格数据保存在数据库中。表单定义被保存为文件,每个文件都有相关的元数据,'file-id'就是这样的元数据之一。我觉得表单数据不是问题;关键是表单定义。 – bopomofu
请参阅下面的Erik的回答,并且还请注意,Form Builder使用的应用程序名称/表单名称来自表单定义元数据,它存储在表单定义文档中。所以如果你想改变应用程序名称/表单名称,你也应该改变表单定义。 – avernet