Экземпляр сортировки XSLTForms

Я использую XSLTforms на сервере существующей базы данных и пытаюсь отсортировать экземпляр. Вот пример модели:

<html xmlns="http://www.w3.org/1999/xhtml" xmlns:ev="http://www.w3.org/2001/xml-events" xmlns:xf="http://www.w3.org/2002/xforms">
<head>
    <xf:model>
        <xf:instance xmlns="" id="default">
            <data>
                <x>
                    <a>B</a>
                    <a>C</a>
                    <a>A</a>
                </x>
            </data>
        </xf:instance>
    </xf:model>
</head>

Можно ли как-то отсортировать элементы в xf:repeat, чтобы получить такой результат:

  • A
  • B
  • C

Я пытался использовать эти примеры, но, к сожалению, они не работают, когда я копирую их в свой проект:

https://github.com/AlainCouthures/xsltforms/blob/master/testsuite/xforms-examples/03-output/sorting/sort.xhtml

https://github.com/AlainCouthures/xsltforms/blob/master/testsuite/xforms-examples/13-javascript/xslt-sort.xhtml

Я новичок в xforms и не могу понять, почему эти примеры не работают, поэтому я был бы очень признателен, если бы кто-нибудь мог дать мне рабочий пример или указать мне правильный способ сортировки данных в xsltforms.

Заранее спасибо!


person nassoo    schedule 20.07.2016    source источник


Ответы (1)


К сожалению, в спецификациях XForms ничего не говорится о сортировке данных, и эти примеры, использующие XSLT в качестве обходного пути, на самом деле не полностью поддерживаются XSLTForms на уровне JSON API.

To run this with XSLTForms, you should replace:

instanceElement.parentNode.rebuild();
instanceElement.parentNode.recalculate();
instanceElement.parentNode.revalidate();
instanceElement.parentNode.refresh();

by:

XsltForms_globals.addChange(instanceElement.parentNode.id);
XsltForms_xmlevents.dispatch(instanceElement.parentNode, "xforms-rebuild");
XsltForms_globals.refresh();

person Alain Couthures    schedule 23.07.2016