The previous examples show properties that derive their value from a simple hierarchy. Property derivation expressions can also specify various unrelated properties. In the following example, a shipping address is derived from one of the following sources:

/* item descriptors address and company previously defined */

<item-descriptor name="user">
  <property name="shipToAddress" writable="false" item-type="address">
  <table name="user" >
    <property name="shippingAddress" item-type="address"/>
    <property name="billingAddress" item-type="address"/>
    <property name="homeAddress" item-type="address"/>
    <property name="company" item-type="company"/>

To determine the value of the user’s shipToAddress for a user, the expressions specified in the derivation are searched in order. Any expression may also refer to properties that are themselves derived.