[Home] [By Thread] [By Date] [Recent Entries]
unibase did this over 20 years ago and can walk the data table structures resolving rules over multiple tables etc. basically if you replace the rdbms table structures and associations with a dom you have what we already have (patents anyone?) it works but: 1. in a general sense we discovered there is no unique solution to some problems and the nature of the relationship between nodes is critical to a correct calculation (a full descending dom approach would probably avoid this problem, but it is not really general and when you factor in xquery you will run into very major problems) 2. to work well you need to build in a calculus, and then programmers tend to fail as the system takes over (ref perma thread on recursion etc) 3. depth of calculation becomes a real issue 4. and at any rate the original question was really about publishing the business rules, not using them. to work, the rules will need to exist in the context of a schema. personally i think an extension of xsd is probably the correct way to do this. rick David Lyon wrote: >Hi Waleed, > >Excellent idea... I really *really* like it..... > >On Thu, 10 Mar 2005 5:16 am, Waleed Abdulla wrote: > > >><xr:ruleset context="/PurchaseOrder/Item"> >> <xr:calculate target="ItemTotal" value="UnitPrice * Quantity" /> >> <xr:bind target="."> >> <xr:property name="OverLimit" dvalue="boolean(. > ../MaxPerItem)" /> >> </xr:bind> >></xr:ruleset> >> >>And, this is a sample purchase order: >> >><PurchaseOrder> >> <MaxPerItem>300</MaxPerItem> >> <Item> >> <Quantity>2</Quantity> >> <UnitPrice>30</UnitPrice> >> <ItemTotal>60</ItemTotal> >> </Item> >></PurchaseOrder> >> >> > >Maybe I could use it in my markup? > >I would embed the calculations directly in the xml.. Here I've >added an explanation mark to denote a formula, and keeping >the # to denote that the field return type will be a number or >a ? in the case of a boolean. This would give me something >a little more compact that would look like this: > > <PurchaseOrder> > MaxPerItem#=300 > <Item> > Quantity#=2 > UnitPrice#=30 > ItemTotal#!="UnitPrice# * Quantity#" > OverLimit?!="Quantity# > ../MaxPerItem" > </Item> > </PurchaseOrder> > >There are a number of applications in real life business >documents for this: > > - US sales tax calculations > - Intercountry tax/GST/VAT issues > - (the afformentioned) shipping costs > - the ability to incorporate events.. > >Actually this whole idea is not dissimilar to linking >and calculations within spreadsheets. Providing the >scope stays within the document... I think that it is >quite a good idea. > >It's definitely something worth pursuing further ! > >Best Regards > >David > > > begin:vcard fn:Rick Marshall n:Marshall;Rick email;internet:rjm@z... tel;cell:+61 411 287 530 x-mozilla-html:TRUE version:2.1 end:vcard
|

Cart



