感谢SO让我知道我previous question中的AVT。
我认为AVT可以应用于所有属性,但我发现它不适用于属性id
。我read W3C建议并且知道AVT不能应用于所有属性。
如果与Orbeon Xforms合作,请有人告诉我。
示例代码(在Sandbox中播放!):
<xhtml:html xmlns:xhtml="http://www.w3.org/1999/xhtml"
xmlns:odt="http://orbeon.org/oxf/xml/datatypes"
xmlns:xi="http://www.w3.org/2001/XInclude"
xmlns:sql="http://orbeon.org/oxf/xml/sql"
xmlns:xxi="http://orbeon.org/oxf/xml/xinclude"
xmlns:p="http://www.orbeon.com/oxf/pipeline"
xmlns:saxon="http://saxon.sf.net/"
xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:oxf="http://www.orbeon.com/oxf/processors"
xmlns:xs="http://www.w3.org/2001/XMLSchema"
xmlns:xxforms="http://orbeon.org/oxf/xml/xforms"
xmlns:exforms="http://www.exforms.org/exf/1-0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:fr="http://orbeon.org/oxf/xml/form-runner"
xmlns:ev="http://www.w3.org/2001/xml-events"
xmlns:pipeline="java:org.orbeon.oxf.processor.pipeline.PipelineFunctionLibrary"
xmlns:f="http://orbeon.org/oxf/xml/formatting"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
xmlns:exf="http://www.exforms.org/exf/1-0"
xmlns:xbl="http://www.w3.org/ns/xbl"
xmlns:date="http://exslt.org/dates-and-times">
<xhtml:head>
<xhtml:title>Address Details</xhtml:title>
<xforms:model>
<xforms:instance id="address-details" xmlns="">
<form>
<address>
<address-1></address-1>
</address>
</form>
</xforms:instance>
<xforms:bind id="address-1" nodeset="instance('address-details')/address/address-1"
readonly="false()"
constraint="string-length(.) <= 15"/>
<xxforms:variable name="id-name" select="CONTROL-ID" />
</xforms:model>
</xhtml:head>
<xhtml:body>
<table>
<tr>
<td>
Address 1:
</td>
<td>
<xforms:input bind="address-1" incremental="true" id="{$id-name}">
<xforms:alert>Maximum allowed characters are 15</xforms:alert>
</xforms:input>
</td>
</tr>
</table>
</xhtml:body>
</xhtml:html>
我们可以看到HTML源代码,它显示AVT未被解释。
我知道表单运行器会将一个动态名称附加到id值,但这对我来说很好。
如果与Orbeon Xforms一起使用,请有人告诉我。
答案 0 :(得分:1)
简单回答:AVT不适用于XForms元素的id
属性。你必须静态选择一个id。