RE: [xsl] How would you like a new axis? time::

Subject: RE: [xsl] How would you like a new axis? time::
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Mon, 15 Mar 2010 08:11:28 -0000
Clearly one can always design a data model in which history is modelled
explicitly, but the idea with temporal database work has always been that
everything has history and the system should take care of it automatically
(rather in the way that CVS or SVN always allows you to find the state of a
file at a given time in the past). So Dana's proposal is essentially to
allow you to query the historical states of any given node, without you
having to do anything explicit in your XML design to keep the history as
part of the active document.

Her description of the model at the conference was very much a sketch, I
don't know how much detail is fleshed out in the paper.

Regards,

Michael Kay
http://www.saxonica.com/
http://twitter.com/michaelhkay  

> -----Original Message-----
> From: Mukul Gandhi [mailto:gandhi.mukul@xxxxxxxxx] 
> Sent: 14 March 2010 15:08
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re: [xsl] How would you like a new axis? time::
> 
> Hi Mike,
> 
> On Sun, Mar 14, 2010 at 7:04 PM, Michael Kay 
> <mike@xxxxxxxxxxxx> wrote:
> > So how would you find a product element whose price today 
> is less than 
> > its price a week ago?
> 
> I might, like to keep a sequence of "price" nodes for a 
> product, instead of only one price for a product. Each price 
> information can have an "effective" date.
> 
> Therefore, I might have a schema like following:
> <xs:complexType name="Product">
>   <xs:sequence>
>     <xs:element name="name" type="xs:string" />
>     <xs:element name="price" maxOccurs="unbounded">
>       <xs:simpleType>
>         <xs:extension base="xs:double">
>           <xs:attribute name="effective" type="xs:dateTime" />
>         </xs:extension>
>       </xs:simpleType>
>     </xs:element>
>   </xs:sequence>
>   <xs:attribute name="ID" type="xs:string" /> </xs:complexType>
> 
> <xs:element name="product" type="Product" maxOccurs="unbounded" />
> 
> If the corresponding XML instance is like following:
> <product ID="100">
>   <name>kitchen sink</name>
>   <price effective="2010-03-07">15</price>
>   <price effective="2010-03-14">10</price> </product>
> 
> I can get the products as you suggested, as follows:
> //product[price[last()] lt price[last() - 1]]
> 
> This technique, doesn't use the creation & modification 
> dateTime's as I suggested initially, but this uses a custom schema.
> 
> 
> --
> Regards,
> Mukul Gandhi

Current Thread