Re: xpath processing brain dead - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: xpath processing brain dead
Date
Msg-id 49ABE145.4030908@dunslane.net
Whole thread Raw
In response to Re: xpath processing brain dead  (Hannu Krosing <hannu@2ndQuadrant.com>)
Responses Re: xpath processing brain dead  (Andrew Dunstan <andrew@dunslane.net>)
List pgsql-hackers

Hannu Krosing wrote:
> Is it just that in you _can't_ use Xpath on fragments, and you _need_ to
> pass full documents to Xpath ? 
>
> At least this is my reading of Xpath standard.
>
>   

I think that's possibly overstating it., unless I have missed something 
(W3 standards are sometimes not much more clear than the SQL standards ;-( )

For instance, there's this, that implies at least that the tree might 
not be a document:
   A "/" at the beginning of a path expression is an abbreviation for   the initial step fn:root(self::node()) treat as
document-node()/  (however, if the "/" is the entire path expression, the trailing "/"   is omitted from the
expansion.)The effect of this initial step is   to begin the path at the root node of the tree that contains the
contextnode. If the context item is not a node, a type error is   raised [err:XPTY0020]. At evaluation time, if the
rootnode above   the context node is not a document node, a dynamic error is raised   [err:XPDY0050].
 

The problem is that we certainly do have to provide a context node (the 
standard is clear about that), and unless we want to convert a 
non-document to a node-set as James suggested and then apply the xpath 
expression to each node in the node-set, we have no way of sanely 
specifying the context node.

cheers

andrew


pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: xpath processing brain dead
Next
From: Hannu Krosing
Date:
Subject: Re: xpath processing brain dead