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:
Shipping address
Billing address
Home address
Company address
/* item descriptors address and company previously defined */ <item-descriptor name="user"> <property name="shipToAddress" writable="false" item-type="address"> <derivation> <expression>shippingAddress</expression> <expression>billingAddress</expression> <expression>homeAddress</expression> <expression>company.address</expression> </derivation> </property> <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"/> </table> </item-descriptor>
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.