在设计XML数据库的XForm接口(使用eXist和XSLTForms)时,我想为可选元素包含一个输入控件.XML数据记录已经存在,有些包含可选元素,有些则不包含.要更新记录,我使用现有的XML记录作为模型实例.问题是当可选元素不存在时不显示表单控件,这是合乎逻辑的,但是当用户想要将数据添加到可选元素时会出现问题.
更明确一点,这是一个示例数据记录data.xml:
<a>
<b>content</b>
</a>
Run Code Online (Sandbox Code Playgroud)
使用RNC架构:
start =
element a {
element b { text },
element notes { text }?
}
Run Code Online (Sandbox Code Playgroud)
XForms模型:
<xf:model>
<xf:instance xmlns="" src="data.xml"/>
<xf:submission id="save" method="post" action="update.xq" />
</xf:model>
Run Code Online (Sandbox Code Playgroud)
并控制:
<xf:input ref="/a/notes">
<xf:label>Notes (optional): </xf:label>
</xf:input>
Run Code Online (Sandbox Code Playgroud)
问题是"Notes"输入控件根本不显示.
一个明显的解决方案是添加一个触发按钮,允许用户在需要时插入元素,但最好只显示输入控件,并为空.
我的问题是:是否存在一些不太知名的属性/绑定/多个实例/ xpath表达式的微妙组合会导致控件始终显示?
我已经知道,从IE 5中,有一种奇怪的行为,当按两次转义字符时,所有表单字段都会自动重置.这在Mozilla中没有出现.所以作为一种补救措施,我已经放了一个简单的javascript,当值重置时会提醒用户.下面是它的代码.
<html>
<body>
<form action="Enroll" method="post" onreset="return confirm('Really reset all form fields?')">
<table>
<tr>
<td>Name </td>
<td><input type="text" id="name"/></td>
<td>Id </td>
<td><input type="text" id="id"/></td>
</tr>
<tr>
<td><input type="submit" value="Submit"></td>
</tr>
</table>
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud)
现在,请帮助我如何实现这是Orbeon Xforms,因为这也发生在Orbeon Xforms中.
目前我正在努力解决两个问题:
主要问题是:是否可以编写生成文件并符合标准(XML Schema和XForms)的两个转换器?您是否知道任何现有的库提供这两种格式之间的转换:XSD和XHTML?
值得一提的是,所有约束(非空,数值等)也需要进行转换.
我只有XML技术的基础知识(XLS,XPath,XQuery ......),所以任何建议都会有所帮助.
XRX意味着一个应用程序,其中前端完全用XML方言编写,后端完全用XML方言编写,数据在它们之间作为XML通过REST传递.
这是唯一一个仅由W3C维护的技术组成的Web应用程序堆栈是否正确?
我有许多表格都引用了'标题'部分模板.我想从表单中的另一个控件引用此部分模板中的控件.(使用此处显示的方法:写入约束以根据在Orbeon Form Builder中的另一个字段中输入的值验证字段)
当我尝试在节模板中引用名为"section"的控件时,出现以下错误:
独立表达式中的未声明变量:$ section
这是我正在使用的XPath表达式:
if($section = 'PKP' or $section = '') then true() else false()
Run Code Online (Sandbox Code Playgroud)
部分模板中有一个名为"section"的控件,但似乎无法从表单的其余部分访问它.
有没有人知道是否可以引用Orbeon表单构建器中"Section Template"中的控件?
有没有人在EPiServer中使用Recaptcha和XForms?
我不知道在哪里放置Recaptcha控件以及如何使其工作.ASP.NET的示例代码是以下代码.我应该把它放在哪里.我猜是在FormControl_BeforeSubmitPostedData?
<%@ Page Language="VB" %>
<%@ Register TagPrefix="recaptcha" Namespace="Recaptcha" Assembly="Recaptcha" %>
<script runat=server%gt;
Sub btnSubmit_Click(ByVal sender As Object, ByVal e As EventArgs)
If Page.IsValid Then
lblResult.Text = "You Got It!"
lblResult.ForeColor = Drawing.Color.Green
Else
lblResult.Text = "Incorrect"
lblResult.ForeColor = Drawing.Color.Red
End If
End Sub
</script>
<html>
<body>
<form runat="server">
<asp:Label Visible=false ID="lblResult" runat="server" />
<recaptcha:RecaptchaControl ID="recaptcha" runat="server" Theme="red"
PublicKey="your_public_key" PrivateKey="your_private_key" />
<asp:Button ID="btnSubmit" runat="server" Text="Submit" OnClick="btnSubmit_Click" />
</form>
</body>
</html>
Run Code Online (Sandbox Code Playgroud) 我正在研究POC(概念证明),我正在评估Orbeon表单构建器/运行器.我正在使用社区版,以防万一,我需要更改代码,否则专业版将为POC做.
我正在将FormRunner与我在不同Web服务器上运行的Web应用程序集成,后者将使用一些自定义查询参数调用FormRunner URL.
我想从FormRunner中删除Summary,PDF和Review按钮,只是希望保存按钮作为提交按钮,所以点击它会将POST数据提交到我的自定义Java代码,该代码将与我的Web应用程序对话,可能通过REST API.然后,提交按钮会将我重定向到另一个页面,上面写着"您的数据已被提交".
我发现很难理解我可以更改预期行为代码的区域.你可以在这方面给我一些指示吗?
谢谢和问候,Mayuresh.