xsl-list
[Top] [All Lists]

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

2010-03-14 10:08:30
Hi Mike,

On Sun, Mar 14, 2010 at 7:04 PM, Michael Kay <mike(_at_)saxonica(_dot_)com> 
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

--~------------------------------------------------------------------
XSL-List info and archive:  http://www.mulberrytech.com/xsl/xsl-list
To unsubscribe, go to: http://lists.mulberrytech.com/xsl-list/
or e-mail: <mailto:xsl-list-unsubscribe(_at_)lists(_dot_)mulberrytech(_dot_)com>
--~--