我们可以在Orbeon Xforms中为属性'id'应用AVT

时间:2012-03-05 13:49:39

标签: orbeon xforms

感谢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(.) &lt;= 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未被解释。

AVT not interpreted for id attribute

我知道表单运行器会将一个动态名称附加到id值,但这对我来说很好。

如果与Orbeon Xforms一起使用,请有人告诉我。

1 个答案:

答案 0 :(得分:1)

简单回答:AVT不适用于XForms元素的id属性。你必须静态选择一个id。

相关问题