// element definitions site((Category | Person)*) Category(id, inclusion*, relate*) relate(categoryref) inclusion(Item) Item(id, open?, closed?) open(OpenAuction) OpenAuction(id, sell, bid*) sell(personref) bid(personref, stamp) stamp(date, time, increase) closed(ClosedAuction) ClosedAuction(id, buy, sell) buy(personref) sell(personref) Person(id, interest*, watch*) interest(categoryref) watch(openauctionref) // key constraints KEY(Category.id) KEY(Item.id) KEY(OpenAuction.id) KEY(ClosedAuction.id) KEY(Person.id) // foreign key constraints KEYREF(OpenAuction.sell.personref --> Person.id) KEYREF(bid.personref --> Person.id) KEYREF(buy.personref --> Person.id) KEYREF(ClosedAuction.sell.personref --> Person.id) KEYREF(interest.categoryref --> Category.id) KEYREF(watch.openauctionref --> OpenAuction.id) KEYREF(relate.categoryref --> Category.id)