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

Subject: Re: [xsl] How would you like a new axis? time::
From: ac <ac@xxxxxxxxxxxxx>
Date: Mon, 15 Mar 2010 05:36:45 -0400
Hi,

The paper looks fine, yet still sketchy.

Managing node history implicitly seems more appropriate for XQuery Update than for an immutable model like XSLT is currently using. That is also how it is presented in the paper, a feature built for/with XQuery Update. As for XSLT, at least currently, the explicit approach seems more appropriate. Of course, unless XSLT starts supporting mutable nodes, trees, forests ... What would be the WGs' views on this?

Thanks,
ac



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