[XSL-LIST Mailing List Archive Home] [By Thread] [By Date] [Recent Entries] [Reply To This Message]

RE: XPath 2 sequence item type determination

Subject: RE: XPath 2 sequence item type determination
From: "Michael Kay" <mike@xxxxxxxxxxxx>
Date: Tue, 2 Sep 2008 18:00:28 +0100
RE:  XPath 2 sequence item type determination
Firstly, a sequence as such does not have its own type: the (dynamic) type
of a sequence is purely a function of the types of the items it contains.

Secondly, it's quite deliberate that there is no function to determine the
"most precise type" of an XPath value, only a function (or operator) to test
whether it conforms to a given type. If there were such a function, it would
enable you to determine and to become dependent on implementation details
that you should not be concerned with, for example that index-of() always
returns a sequence of xs:int values (or perhaps even jx:my17bitInt) whereas
the spec only requires xs:integer. Very often the type would be one that
you've never heard of, and have no way of asking questions about.

"instance of" is not a hack, it is the correct solution.

Michael Kay
http://www.saxonica.com/

> -----Original Message-----
> From: Justin Johansson [mailto:mail@xxxxxxxxxxxxxxxxxxx] 
> Sent: 02 September 2008 18:01
> To: xsl-list@xxxxxxxxxxxxxxxxxxxxxx
> Subject: Re:  XPath 2 sequence item type determination
> 
> David, many thanks for the insight, if not a "hack", and no 
> disrespect intended.
> 
> Though, say, if one wants to stick to standards and not 
> proprietary extensions, then surely the suggestion of using a 
> series of "if instance of" is problematic in that it is 
> relying on the external string representation of the type 
> (via xsd schema) to guess the type of the
> (internal) XDM item?
> 
> I may be missing something but the XPath et al specs clearly 
> spell out the concept of a sequence and it to be a list of 
> sorts and that which contains items, and said items of same 
> being of either an atomic or node type. 
> 
> However, having done that, the spec does not enlighten one as 
> to how to determine the type *precisely* other than allowing 
> one to resort to hacks of the type you suggested.
> 
> Am I missing something, or is your opinion that of mine which 
> is that the spec is lacking?
> 
> Thanks for your input, Justin J
> 
> 
> 
> 
> At 04:54 PM 2/09/2008 +0100, you wrote:
> >
> >if (instance of . xs:integer) then 'integer' else if (instance of . 
> >xs:boolean) then 'boolean' else ....
> >
> >
> >or, if you don't want to write a big nested set of tests and 
> are running
> >saxon, 
> >
> >http://www.saxonica.com/documentation/extensions/functions/ty
> peannotation.h
> tml
> >
> >
> >type-annotation(item as item()) ==> xs:QName
> >
> >This function takes an item as argument. If the argument is 
> a node, the
> >function returns the type annotation of the node, as a QName. If the
> >type is anonymous, this will be a system-generated internal 
> name. If the
> >argument is an atomic value, the function returns the type 
> label of the
> >atomic value, again as a QName.
> >
> >David
> >
> >
> >_____________________________________________________________
> ___________
> >The Numerical Algorithms Group Ltd is a company registered in England
> >and Wales with company number 1249803. The registered office is:
> >Wilkinson House, Jordan Hill Road, Oxford OX2 8DR, United Kingdom.
> >
> >This e-mail has been scanned for all viruses by Star. The service is
> >powered by MessageLabs. 
> >_____________________________________________________________
> ___________

Current Thread

PURCHASE STYLUS STUDIO ONLINE TODAY!

Purchasing Stylus Studio from our online shop is Easy, Secure and Value Priced!

Buy Stylus Studio Now

Download The World's Best XML IDE!

Accelerate XML development with our award-winning XML IDE - Download a free trial today!

Don't miss another message! Subscribe to this list today.
Email
First Name
Last Name
Company
Subscribe in XML format
RSS 2.0
Atom 0.3
Site Map | Privacy Policy | Terms of Use | Trademarks
Free Stylus Studio XML Training:
W3C Member
Stylus Studio® and DataDirect XQuery ™are products from DataDirect Technologies, is a registered trademark of Progress Software Corporation, in the U.S. and other countries. © 2004-2011 All Rights Reserved.