|
[XQuery Talk Mailing List Archive Home] [By Date] [By Thread] [By Subject] [By Author] [Recent Entries] [Reply To This Message] parsing datesMichael Kay mike at saxonica.comTue Oct 6 21:21:03 PDT 2009
> > 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) > But we aren't starting with an xs:date or xs:gYearMonth; we are starting with a string that is capable of being converted to an xs:date or xs:gYearMonth. So "castable as" is indeed the right solution. Except that matches() would be more flexible, because it can also test for formats that don't happen to correspond to any known schema-defined type. >Is that because xs:integer is considered an AtomicType? xs:integer is most definitely an AtomicType, there's no "considered to be" about it. Regards, Michael Kay http://www.saxonica.com/ http://twitter.com/michaelhkay
|
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
|






