Hi Alex,
Here is the entire component,This is based off the dynamic-dropdown-select1
XBL, I am trying to modify it to insert the selected itemset tree (All the
XML rather than just the values) into the xbl-binding.
<?xml version="1.0" encoding="UTF-8"?>
<xbl:xbl xmlns:xh="
http://www.w3.org/1999/xhtml"
xmlns:xf="
http://www.w3.org/2002/xforms"
xmlns:xs="
http://www.w3.org/2001/XMLSchema"
xmlns:ev="
http://www.w3.org/2001/xml-events"
xmlns:xi="
http://www.w3.org/2001/XInclude"
xmlns:xxi="
http://orbeon.org/oxf/xml/xinclude"
xmlns:xxf="
http://orbeon.org/oxf/xml/xforms"
xmlns:exf="
http://www.exforms.org/exf/1-0"
xmlns:fr="
http://orbeon.org/oxf/xml/form-runner"
xmlns:fb="
http://orbeon.org/oxf/xml/form-builder"
xmlns:saxon="
http://saxon.sf.net/"
xmlns:workflow="
http://www.infomedix.com.au/workflow"
xmlns:xbl="
http://www.w3.org/ns/xbl"
xmlns:xxbl="
http://orbeon.org/oxf/xml/xbl"
xmlns:xsl="
http://www.w3.org/1999/XSL/Transform">
<fb:metadata>
<fb:display-name lang="en">CPF Experimental
Controls</fb:display-name>
</fb:metadata>
<xbl:binding id="workflow-rest-search" element="workflow|rest-search"
xxbl:mode="lhha binding">
<metadata xmlns="
http://orbeon.org/oxf/xml/form-builder" >
<display-name lang="en">Rest Search</display-name>
<icon lang="en">
</icon>
<template>
<workflow:rest-search ref="" resource="">
<xf:label ref="" />
<xf:hint ref="" />
<xf:help ref="" />
<xf:alert ref="" />
<xf:itemset ref="item">
<xf:label ref="label"/>
<xf:value ref="value"/>
</xf:itemset>
</workflow:rest-search>
</template>
<control-details>
<xf:model>
<xf:bind ref="@resource"/>
<xf:bind ref="xf:itemset">
<xf:bind ref="@ref | xf:label/@ref | xf:value/@ref"
type="xxf:xpath2"
required="true()"/>
</xf:bind>
</xf:model>
<fr:grid>
<xh:tr>
<xh:td colspan="2">
<xf:input ref="@resource">
<xf:label
ref="xxf:r('dialog-http-services.resource.label', '|fr-form-resources|')"/>
<xf:hint
ref="xxf:r('dialog-http-services.resource.hint', '|fr-form-resources|')"/>
</xf:input>
</xh:td>
</xh:tr>
<xh:tr>
<xh:td colspan="2">
<xf:input ref="xf:itemset/@ref">
<xf:label
ref="xxf:r('dialog-actions.items.label', '|fr-form-resources|')"/>
<xf:hint
ref="xxf:r('dialog-actions.items.hint', '|fr-form-resources|')"/>
</xf:input>
</xh:td>
</xh:tr>
<xh:tr>
<xh:td>
<xf:input ref="xf:itemset/xf:label/@ref">
<xf:label
ref="xxf:r('dialog-actions.item-label.label', '|fr-form-resources|')"/>
<xf:hint
ref="xxf:r('dialog-actions.item-label.hint', '|fr-form-resources|')"/>
</xf:input>
</xh:td>
<xh:td>
<xf:input ref="xf:itemset/xf:value/@ref">
<xf:label
ref="xxf:r('dialog-actions.item-value.label', '|fr-form-resources|')"/>
<xf:hint
ref="xxf:r('dialog-actions.item-value.hint', '|fr-form-resources|')"/>
</xf:input>
</xh:td>
</xh:tr>
</fr:grid>
</control-details>
</metadata>
<xbl:resources>
<xbl:style src="" />
</xbl:resources>
<xbl:implementation>
<xf:model id="xbl-model">
<xf:instance id="itemset"><dummy/></xf:instance>
<xf:instance id="choice"><index/></xf:instance>
<xf:instance
id="submission-ran"><count>0</count></xf:instance>
<xf:submission id="get-itemset" method="get"
resource="{event('resource')}" replace="instance" serialization="none">
<xf:setvalue ev:event="xforms-submit-done"
ref="instance('submission-ran')" value=". + 1"/>
<xf:action ev:event="xforms-submit-error">
<xf:insert ref="instance('itemset')"
origin="xf:element('dummy')"/>
</xf:action>
</xf:submission>
<xf:bind ref="instance('choice')" name="choice"
id="choice-bind"/>
<xf:bind ref="xf:itemset" name="itemset" id="itemset-bind"/>
</xf:model>
</xbl:implementation>
<xbl:template>
<xf:var name="binding"
value="xxf:binding('workflow-rest-search')"/>
<xf:var name="choice" value="bind('choice-bind')"/>
<xf:var name="resource-avt" xbl:attr="xbl:text=resource"
xxbl:scope="outer"/>
<xf:var name="resource">
<xxf:value value="xxf:evaluate-avt($resource-avt)"
xxbl:scope="outer"/>
<xf:action ev:event="xforms-enabled xforms-value-changed">
<xf:send if="xxf:non-blank($resource)"
submission="get-itemset">
<xf:property name="resource" value="$resource"/>
</xf:send>
</xf:action>
</xf:var>
<xf:select1 ref="$choice" id="select1"
xbl:attr="xxf:encrypt-item-values" >
<xf:item>
<xf:label/>
<xf:value/>
</xf:item>
<xf:choices context="instance()">
<xbl:content includes=":root > xf|itemset, :root >
xf|item, :root > xf|choices" xxbl:scope="inner"/>
</xf:choices>
</xf:select1>
<xf:var name="itemset-exp-avt" xxbl:attr="xf:itemset/@ref"
xxbl:scope="outer"/>
<xf:var name="itemset-exp">
<xxf:value value="xxf:evaluate-avt($itemset-exp-avt)"
xxbl:scope="outer"/>
</xf:var>
<xf:var name="ree-avt" xbl:attr="xbl:text=resource"
xxbl:scope="outer"/>
<xf:var name="ree">
<xxf:value value="xxf:evaluate-avt($ree-avt)"
xxbl:scope="outer"/>
</xf:var>
<xf:action event="xforms-submit-done" observer="get-itemset"
ref="instance('itemset')">
<xf:message ref="results/_">
</xf:message>
<xf:message ref=".">
</xf:message>
<xf:message ref="$ree">
</xf:message>
</xf:action>
<xf:action event="xforms-value-changed" observer="select1">
<xf:message ref="$choice"/>
</xf:action>
<xf:var name="submission-ran"
value="instance('submission-ran')/string()">
<xf:action ev:event="xforms-value-changed">
<xf:var name="new-values" value="xxf:itemset('select1',
'xml', false())//value/string()"/>
<xf:setvalue if="not($binding = ($new-values, ''))"
ref="$binding"/>
<xf:insert context="$binding" if="empty(@itemset-empty)"
origin="xf:attribute('itemset-empty')"/>
<xf:setvalue ref="$binding/@itemset-empty"
value="count($new-values) = 1"/>
</xf:action>
</xf:var>
</xbl:template>
</xbl:binding>
</xbl:xbl>
Thanks for the quick reply
Cheers,
Joel.