[xquery-talk] count all the distinct timezones in an XML document
using XPath
Matthew Rawlings
matthew at stickledown.com
Fri Dec 12 11:27:27 PST 2008
How can I count all the distinct timezones in a single XML document using
XPath?
I have an XML document with many elements and attributes with the type
xs:date or xs:datetime. One of the rules of the system receiving my document
is that all timezones must be the same in the document. Ideally I would like
to express this constraint purely in XPath 2 rather than XQuery so I can put
the constraint in a xs:assert statement.
If there was a map function in XPath I would write something like this:
count(distinct-values(map(fn:date-from-timezone(), //(element(*,
xs:date)|attribute(*, xs:date)|element(*, xs:datetime)|attribute(*,
xs:datetime))))) eq 1
This XPath would return true if all timezones were the same, and false
otherwise.
However there is no map function in XPath, so how can I achieve the same
thing without it? What is the nearest I could get.
- Matthew
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://x-query.com/pipermail/talk/attachments/20081212/bb43b052/attachment.htm
More information about the talk
mailing list