Bindings

Bindings are parsed as integers, floats or strings in that order (ie., the first type that matches will be used). Thus the following pairs of expressions are equivalent:

<func x="+01 "/>

<func>
  <define name="x"><integer>1</integer></define>
</func>

<func x=" 14.0e-1"/>

<func>
  <define name="x"><float>1.4</float></define>
</func>

<func x="Hello "/>

<func>
  <define name="x"><string>Hello </string></define>
</func>

Rationale

This seems to satisfy the doctrine of least-surpise.