Учебное пособие (1075724), страница 31
Текст из файла (страница 31)
Но здесь у них заданы атрибуты «ref»,которые выбирают код и отображаемое значение из элементов, выбранных спомощью атрибута «nodeset» элемента «xforms:itemset».Элементы списка могут читаться из одной модели данных, а результат можетсохраняться в другую модель данных.Пример:Модели данных:<xforms:model id="result_model"><xforms:instance><example xmlns=""><result>val1 val3</result></example></xforms:instance></xforms:model><xforms:model id="list_data"><xforms:instance><example xmlns=""><item><text>Значение из модели 1</text><data>val1</data></item>.
. .293</example></xforms:instance></xforms:model>Список:<xforms:select model="result_model" ref="result"><xforms:itemset model="list_data" nodeset="item"><xforms:label model="list_data" ref="text"/><xforms:value model="list_data" ref="data"/></xforms:itemset></xforms:select>Пример 5.3. Файл «select.xhtml».<?xml version="1.0" encoding="UTF-8"?><html xmlns="http://www.w3.org/1999/xhtml"xmlns:xforms="http://www.w3.org/2002/xforms"xmlns:ev="http://www.w3.org/2001/xml-events" ><head><title>Пример элемента select</title><!-- Пустой префикс пространства имен обязателен для корневогоэлемента xforms:instance --><xforms:model id="result_model"><xforms:instance><example xmlns=""><result>val1 val3</result></example></xforms:instance></xforms:model><xforms:model id="list_data"><xforms:instance><example xmlns=""><item><text>Значение из модели 1</text><data>val1</data>294</item><item><text>Значение из модели 2</text><data>val2</data></item><item><text>Значение из модели 3</text><data>val3</data></item></example></xforms:instance></xforms:model></head><body><xforms:group><h1>Список констант без возможности добавления(selection="closed")</h1><xforms:select model="result_model" ref="result"appearance="full"><xforms:label>appearance="full":</xforms:label><xforms:choices><xforms:item><xforms:label>Значение 1</xforms:label><xforms:value>val1</xforms:value></xforms:item><xforms:item><xforms:label>Значение 2</xforms:label><xforms:value>val2</xforms:value></xforms:item><xforms:item><xforms:label>Значение 3</xforms:label><xforms:value>val3</xforms:value>295</xforms:item></xforms:choices></xforms:select><xforms:select model="result_model" ref="result"appearance="compact"><xforms:label>appearance="compact":</xforms:label><xforms:choices><xforms:item><xforms:label>Значение 1</xforms:label><xforms:value>val1</xforms:value></xforms:item><xforms:item><xforms:label>Значение 2</xforms:label><xforms:value>val2</xforms:value></xforms:item><xforms:item><xforms:label>Значение 3</xforms:label><xforms:value>val3</xforms:value></xforms:item></xforms:choices></xforms:select><xforms:select model="result_model" ref="result"appearance="minimal"><xforms:label>appearance="minimal":</xforms:label><xforms:choices><xforms:item><xforms:label>Значение 1</xforms:label><xforms:value>val1</xforms:value></xforms:item><xforms:item><xforms:label>Значение 2</xforms:label><xforms:value>val2</xforms:value></xforms:item><xforms:item>296<xforms:label>Значение 3</xforms:label><xforms:value>val3</xforms:value></xforms:item></xforms:choices></xforms:select><h1>Список констант с возможностью добавления(selection="open")</h1><xforms:select model="result_model" ref="result"selection="open" appearance="full"><xforms:label>appearance="full":</xforms:label><xforms:choices><xforms:item><xforms:label>Значение 1</xforms:label><xforms:value>val1</xforms:value></xforms:item><xforms:item><xforms:label>Значение 2</xforms:label><xforms:value>val2</xforms:value></xforms:item><xforms:item><xforms:label>Значение 3</xforms:label><xforms:value>val3</xforms:value></xforms:item></xforms:choices></xforms:select><xforms:select model="result_model" ref="result"selection="open" appearance="compact"><xforms:label>appearance="compact":</xforms:label><xforms:choices><xforms:item><xforms:label>Значение 1</xforms:label><xforms:value>val1</xforms:value></xforms:item>297<xforms:item><xforms:label>Значение 2</xforms:label><xforms:value>val2</xforms:value></xforms:item><xforms:item><xforms:label>Значение 3</xforms:label><xforms:value>val3</xforms:value></xforms:item></xforms:choices></xforms:select><xforms:select model="result_model" ref="result"selection="open" appearance="minimal"><xforms:label>appearance="minimal":</xforms:label><xforms:choices><xforms:item><xforms:label>Значение 1</xforms:label><xforms:value>val1</xforms:value></xforms:item><xforms:item><xforms:label>Значение 2</xforms:label><xforms:value>val2</xforms:value></xforms:item><xforms:item><xforms:label>Значение 3</xforms:label><xforms:value>val3</xforms:value></xforms:item></xforms:choices></xforms:select><h1>Список с привязкой данных без возможности добавления(selection="closed")</h1><xforms:select model="result_model" ref="result"appearance="full"><xforms:label>appearance="full":</xforms:label>298<xforms:itemset model="list_data" nodeset="item"><xforms:label model="list_data" ref="text"/><!-- Вместо элемента value здесь может быть использованэлемент copy --><xforms:value model="list_data" ref="data"/></xforms:itemset></xforms:select><xforms:select model="result_model" ref="result"appearance="compact"><xforms:label>appearance="compact":</xforms:label><xforms:itemset model="list_data" nodeset="item"><xforms:label model="list_data" ref="text"/><!-- Вместо элемента value здесь может быть использованэлемент copy --><xforms:value model="list_data" ref="data"/></xforms:itemset></xforms:select><xforms:select model="result_model" ref="result"appearance="minimal"><xforms:label>appearance="minimal":</xforms:label><xforms:itemset model="list_data" nodeset="item"><xforms:label model="list_data" ref="text"/><!-- Вместо элемента value здесь может быть использованэлемент copy --><xforms:value model="list_data" ref="data"/></xforms:itemset></xforms:select><h1>Список с привязкой данных с возможностью добавления(selection="open")</h1><xforms:select model="result_model" ref="result"selection="open" appearance="full"><xforms:label>appearance="full":</xforms:label>299<xforms:itemset model="list_data" nodeset="item"><xforms:label model="list_data" ref="text"/><!-- Вместо элемента value здесь может быть использованэлемент copy --><xforms:value model="list_data" ref="data"/></xforms:itemset></xforms:select><xforms:select model="result_model" ref="result"selection="open" appearance="compact"><xforms:label>appearance="compact":</xforms:label><xforms:itemset model="list_data" nodeset="item"><xforms:label model="list_data" ref="text"/><!-- Вместо элемента value здесь может быть использованэлемент copy --><xforms:value model="list_data" ref="data"/></xforms:itemset></xforms:select><xforms:select model="result_model" ref="result"selection="open" appearance="minimal"><xforms:label>appearance="minimal":</xforms:label><xforms:itemset model="list_data" nodeset="item"><xforms:label model="list_data" ref="text"/><!-- Вместо элемента value здесь может быть использованэлемент copy --><xforms:value model="list_data" ref="data"/></xforms:itemset></xforms:select></xforms:group></body></html>Результат выполнения примера:300Рис.
5.16. Результат выполнения примера 5.3. Файл «select.xhtml».В случае использования элементов «xforms:itemset» и «xforms:value»существует проблема, связанная с тем, что элемент «xforms:value» позволяетвыбирать только простые значения данных, но не позволяет выбрать поддерево.Для выбора поддерева вместо элемента «xforms:value» используется элемент«xforms:copy».В следующем примере в результат помещается XML-элемент с вложеннымиданными, который копируется с помощью «xforms:copy».Пример 5.3.















