Можем ли мы применить AVT для атрибута 'id' в Orbeon Xforms - PullRequest
0 голосов
/ 05 марта 2012

Спасибо, что сообщили мне об AVT в моем предыдущем вопросе .

Я думал, что AVT может применяться ко всем атрибутам, но я обнаружил, что он не работает для атрибута id прочитал рекомендации W3C и узнал, что AVT нельзя применять ко всем атрибутам.

Пожалуйста, кто-нибудь может сообщить мне, если это работает с Orbeon Xforms.

Пример кода (Воспроизвести его в песочнице!):

<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 Ответ

1 голос
/ 05 марта 2012

Простой ответ: AVT не работают с атрибутом id элементов XForms.Вы должны выбрать идентификатор статически.

...