I played with it a bit and it looks like it doesn't work for all cases: should be just `choice` with `maxOccurs="3"`. 
In this case we can have these configurations:
````xml
<request-handler-advice-chain/>
<uri-variable name="foo" expression="headers.bar"/>
<uri-variable name="foo" expression="headers.bar"/>
<si:poller/>

<uri-variable name="foo" expression="headers.bar"/>
<uri-variable name="foo" expression="headers.bar"/>
<request-handler-advice-chain/>
<si:poller/>

<si:poller/>
<uri-variable name="foo" expression="headers.bar"/>
<uri-variable name="foo" expression="headers.bar"/>
<request-handler-advice-chain/>

<si:poller/>
<request-handler-advice-chain/>
<uri-variable name="foo" expression="headers.bar"/>
<uri-variable name="foo" expression="headers.bar"/>

````
I mean any combinations of allowed sub-elements. Of course `<uri-variable>`s have to be together: you can't place `<si:poller/>` between them.