xsl-list
[Top] [All Lists]

Re: [xsl] XPath 1.0 challenge: select all XML Schema element declarations with type string

2015-07-24 11:27:50
Hi,

Here is an XPath 1.0 expression that does something other than what
was requested (return all element declarations of type string):

//xs:element[@type= concat(substring-before(name(),'element'),'string')]

(where 'xs' indicates "http://www.w3.org/2001/XMLSchema";)

(I design solutions for a living. I think up hacks for fun.)

Cheers, Wendell

On Mon, Jul 20, 2015 at 2:28 PM, Michael Kay mike(_at_)saxonica(_dot_)com
<xsl-list-service(_at_)lists(_dot_)mulberrytech(_dot_)com> wrote:

I believe that in its most general form this problem doesn't have a
pure XPath 1.0 solution (though it is easy if we are allowed to use
XSLT 1.0).

We either need the feature of range variables, or the feature of being
able to specify a function call as the last location step in a path
expression.


I came to the same conclusion, though I’m always reluctant to say that 
something’s impossible. Essentially you need to examine the namespace nodes 
to map the prefix to a URI, and that involves a join, and joins are 
restricted in XPath 1.0 by the absence of range variables - XPath 1.0 is not 
“relationally complete” in Codd’s sense.

Michael Kay
Saxonica




-- 
Wendell Piez | http://www.wendellpiez.com
XML | XSLT | electronic publishing
Eat Your Vegetables
_____oo_________o_o___ooooo____ooooooo_^
--~----------------------------------------------------------------
XSL-List info and archive: http://www.mulberrytech.com/xsl/xsl-list
EasyUnsubscribe: http://lists.mulberrytech.com/unsub/xsl-list/1167547
or by email: xsl-list-unsub(_at_)lists(_dot_)mulberrytech(_dot_)com
--~--

<Prev in Thread] Current Thread [Next in Thread>