gpt4 book ai didi

xforms - 允许对可选 XML 元素进行 XForm 控件

转载 作者:行者123 更新时间:2023-12-02 09:28:40 26 4
gpt4 key购买 nike

在设计 XML 数据库的 XForm 接口(interface)(使用 eXist 和 XSLTForms)时,我希望包含一个可选元素的输入控件。 XML 数据记录已存在,其中一些包含可选元素,而另一些则不包含。为了更新记录,我使用现有的 XML 记录作为模型实例。问题是,当可选元素不存在时,表单控件不会显示,这是合乎逻辑的,但当用户想要向可选元素添加数据时,就会出现问题。

为了更明确,这里有一个示例数据记录 data.xml:

<a>
<b>content</b>
</a>

使用 RNC 架构:

start =
element a {
element b { text },
element notes { text }?
}

XForms 模型:

<xf:model>
<xf:instance xmlns="" src="data.xml"/>
<xf:submission id="save" method="post" action="update.xq" />
</xf:model>

和控制:

<xf:input ref="/a/notes">
<xf:label>Notes (optional): </xf:label>
</xf:input>

问题是“Notes”输入控件根本不显示。

一个明显的解决方案是添加一个触发按钮,以允许用户在需要时插入元素,但最好只显示输入控件,并且为空。

我的问题是:是否存在一些鲜为人知的属性/绑定(bind)/多个实例/xpath 表达式的微妙组合会导致控件始终显示?

最佳答案

说实话,XForms 不能很好地处理这种可选元素的情况。请参阅this related discussion在米迦的博客上。一个不太令人满意的解决方法是在从 eXist 检索数据后为这些可选元素添加空元素,并在将数据保存回 eXist 之前删除它们。

关于xforms - 允许对可选 XML 元素进行 XForm 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4603128/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com