|
[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
|






