|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] parsing datesMichael Blakeley michael.blakeley at marklogic.comTue Oct 6 10:39:32 PDT 2009
On 2009-10-06 06:44, David Sewell wrote: > On Mon, 5 Oct 2009, Joe Wicentowski wrote: > >> As far as your specific question, you could run a series of "if ($date >> castable as ...) then ... else" statements on the following datatypes: > > [...] > >> As an alternative to conditional expressions, I'm not sure if >> typeswitch would work for this? > > typeswitch tests for node kinds, not data types, so the "if castable" > approach is probably the way to go (barring the custom data type > solution that Michael mentioned). I think that's not quite correct. Typeswitch case clauses expect a SequenceType, which includes ItemType. So the tests can be any node type or any schema type (see http://www.w3.org/TR/xquery/#id-typeswitch and http://www.w3.org/TR/xquery/#doc-xquery-SequenceType). Here's an example: note that the order of the 'case' clauses is important. Since xs:ID is derived from xs:string, it must be tested before any xs:string test case. xquery version "1.0-ml"; let $i := "test" return typeswitch ($i) case xs:integer return "integer" case xs:ID return "id" case xs:string return "string" default return error((), "UNEXPECTED", $i) -- Mike
|
PURCHASE STYLUS STUDIO ONLINE TODAY!Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced! Download The World's Best XML IDE!Accelerate XML development with our award-winning XML IDE - Download a free trial today! Subscribe in XML format
|






