Как я могу построить поисковое приложение, используя XForms

Я работаю над поисковым приложением, используя стандарты XForms. приложения ищут небольшой XML-файл, который содержит данные об учениках. Я написал запросы с использованием XQuery и попробовал их. результаты запросов в порядке, очень хорошо. но когда я соединяю их, используя XForms с экземпляром и представлениями, уровень представления (таблица xf:repeat, каждый raw - студент) вообще не обновляется. Я знаю, что запросы действительны. презентация хорошая, но я не уверен. Мой вопрос может помочь мне сделать рабочую копию этого приложения.

Модель как следовать

        <xf:model>
        <xf:action ev:event="xforms-ready">
            <xf:send submission="load-data"/>
        </xf:action>
        <xf:instance xmlns="" id="studInstance">
            <students>
                <student>
                    <idStudent/>
                    <Name/>
                    <LastName/>
                    <Address/>
                </student>
            </students>
        </xf:instance>
        <xf:instance xmlns="" id="search">
            <parameters>
                <query/>
                <field>Name</field>
            </parameters>
        </xf:instance>
        <xf:submission id="load-data" method="get" serialization="none"               action="modules/load.xql" replace="instance" instance="studInstance">
            <xf:message ev:event="xforms-submit-error" level="ephemeral">Load operation failed </xf:message>
            <xf:message ev:event="xforms-submit-done" level="ephemeral">Load operation Succeeded </xf:message>
        </xf:submission>
        <xf:submission id="search" action="modules/search.xql" method="post" serialization="none" ref="instance('search')" targetref="instance('studInstance')" replace="instance">
            <xf:message ev:event="xforms-submit-error" level="ephemeral">Search operation failed </xf:message>
        </xf:submission>
        </xf:model>

результат будет привязан для повторения раздела здесь:

        <xf:group>
                <xf:repeat instance="studInstance" nodeset="/students/student">
                    <tr>
                        <td>
                            <xf:output ref="idStudent"/>
                        </td>
                        <td>
                            <xf:output ref="Name"/>
                        </td>
                        <td>
                            <xf:output ref="LastName"/>
                        </td>
                        <td>
                            <xf:output ref="Address"/>
                        </td>
                    </tr>
                </xf:repeat>
            </xf:group>

Так что не так с этим кодом!

1 ответ

Атрибут instance не имеет смысла в xf:repeat. Правильный способ сделать то, что вы хотите, это использовать instance функция внутри вашего XPath:

<xf:repeat nodeset="instance(studInstance)/student">
Другие вопросы по тегам