Non-equivalence of ref and bind

I just stumbled on this (to my embarrassment that it hadn't occurred to me  
earlier) but I consider it as a bad bug:

If you replace

       <label  
ref="instance('q')/lang[@code=instance('default')/lang]/q[@n='language']"  
/>

with what at first sight is the equivalent

       <bind id="language"  
nodeset="instance('q')/lang[@code=instance('default')/lang]/q[@n='language']"  
/>
	...
       <label bind="language" />

it doesn't behave equivalently, because the second case needs an explicit  
rebuild, and apparently the first doesn't.
How can this be? A bind ought to be equivalent to the use of a ref; and  
any constraint-based system should be able to tell what needs updating. Is  
this really hard to fix?

Steven

Received on Wednesday, 11 July 2007 12:03:52 UTC