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

Re: XPath and XPattern (was Re: More on tamingSAX)


bar events
Jeff Rafter wrote:

>> Then people could read up on it, rather than post messages like "I
>> heard through the grapevine that predicates generally don't work with
>> streaming". Then again, I suppose, it's fun to do analysis from
>> scratch. Ah well, whatever it is, it'll be good to see streaming
>> processors!
>
>
> I said what I said after reading the latest STX spec and only in the 
> context of this discussion (which is "taming SAX"). I have to agree 
> with Uche in saying that STXPath is very nice-- but may not be exactly 
> what we are shooting for. Surely predicates are viable in many cases 
> in partial scans such as:
>
> <foo>
>   <bar>
>     <baz/>
>   </bar>
>   <bar test="foo">
>     <baz/>
>   </bar>
> </foo>
>
> /foo/bar[@test="foo"]/baz
>
> But when considering /foo/bar[baz3="test"]/baz1
>
> <foo>
>   <bar>
>     <baz1/>
>     <baz2/>
>     <baz3>test</baz3>
>   </bar>
> </foo>
>
> This predicate's value cannot be ascertained at the point of the baz1 
> startElement event in a single event look ahead model. At least that 
> is what I heard through the grapevine.


Ooh.  Thanks, Jeff.  You clarified a bit of my thinking for me.  In a 
previous post I was talking about looking at restrictions on axes, but I 
was only thinking of

/foo/bar[baz3]/baz1

Which *does* work for one event look-ahead, not

/foo/bar[baz3="test"]/baz1

Which, of course, as you say, doesn't.

So I started thinking of some more complex formula, say "namespace, 
prefix, local name and attributes available for child node with 
position() = 1, but no other properties (e.g. no string value)".  But 
that all gets too gnarly.

So can we actually express what we want as an actual XPath subset?  
Let's say we define:

1)  an operation on an XML object that converts it to a sequence of 
abstract events as specified in SAX 2
2) an operation to define an XPath context in terms of all SAX event 
from the start of the sequence to a current event

Is there a way from this to formally specify a subset of XPath so that 
in order to evaluate an expression at any current event, you never need 
more than N lookahead from the current event ?

I think it's possible, and if so, this is exactly what we need.  And I 
agree, of course, that STXPath is not quite it.

I think it would be nice to define such a spec so that N was indeed a 
true variable, and that an implementation could say "we support XPattern 
fully with N=3" or whatever, but that might be more difficult than just 
giving one or two choices for N in the spec (probably [0, 1]).


-- 
Uche Ogbuji                                    Fourthought, Inc.
http://uche.ogbuji.net    http://4Suite.org    http://fourthought.com
Use CSS to display XML - http://www.ibm.com/developerworks/edu/x-dw-x-xmlcss-i.html
Full XML Indexes with Gnosis - http://www.xml.com/pub/a/2004/12/08/py-xml.html
Be humble, not imperial (in design) - http://www.adtmag.com/article.asp?id=10286
UBL 1.0 - http://www-106.ibm.com/developerworks/xml/library/x-think28.html
Use Universal Feed Parser to tame RSS - http://www.ibm.com/developerworks/xml/library/x-tipufp.html
Default and error handling in XSLT lookup tables - http://www.ibm.com/developerworks/xml/library/x-tiplook.html
A survey of XML standards - http://www-106.ibm.com/developerworks/xml/library/x-stand4/
The State of Python-XML in 2004 - http://www.xml.com/pub/a/2004/10/13/py-xml.html


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
 

Stylus Studio has published XML-DEV in RSS and ATOM formats, enabling users to easily subcribe to the list from their preferred news reader application.


Stylus Studio Sponsored Links are added links designed to provide related and additional information to the visitors of this website. they were not included by the author in the initial post. To view the content without the Sponsor Links please click here.

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-2013 All Rights Reserved.