Jens Erat's answer is correct as far as the XPath 2.0 standard goes.
In Saxon (You need EE for schema awareness) there's an extension function
saxon:type-annotation()
which gives you the type annotation of a value as a QName, and another
saxon:type
which gives you the type as a schema component, represented as a function item; you can get specific properties of the type (including its name) by supplying the required property name to this function. Details at
http://www.saxonica.com/documentation/#!functions/saxon
But I see this isn't quite what you asked for; if an element has been schema validated as an integer it will give the result as xs:integer, not as element(). It does what you want for atomic values, though.