[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)


Re:  XPath and XPattern (was Re:  More on tamingSAX)
>>    Say the test was /foo/bar/[baz2="test"]/baz1
>>
>>    <foo>
>>      <bar>
>>        <baz1/>
>>        <baz2>test</baz2>
>>        <baz3/>
>>      </bar>
>>    </foo>
>>
>>    If your schema stated that the children were (baz1,baz2,baz3)
>>    wouldn't you have enough information to know to surrender when
>>    you reached baz3?

Essentially in order to make a useful case of this (surrendering at 
baz3) you would need to cache all previous events so that they could be 
replayed when the predicate's boolean value was determined. 
Unfortunately that solution doesn't win much against the DOM or other 
tree based models.

The *trick* is to know when you reach baz1 so that you can begin doing 
interesting things with the chain of events as they happen. Now, the 
Schema Assisted Sipping that you mention might broaden the cases that 
predicates would be useful but they are still limited. For example if 
your schema asserted (as you say) that the content model of bar be 
(baz1, baz2, baz3) and that baz2="test" always-- then you could 
"surrender" at the point of baz1 by starting with the assumption of 
validity. If the document turns out to not be valid you could raise some 
special error that says essentially-- hey we assumed this was valid and 
it isn't so we don't know if we reported the right thing or not.

There is still a group of solvable predicates too, like:

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

Here the predicate's boolean value will be known before the startElement 
for baz3 is reached. The question is: is it worth defining a constraint 
for this in plain language or in grammar, or should predicates be nixed 
entirely? If we aim for defining the constraint then I would suspect 
that we will find a wealth of information on this exact subject on the 
STX list (as Christian mentioned)-- but ultimately it appears that they 
decided no such constraint would appear in their language. In XML 
Schema's stripped down XPath, predicates are not permitted.

All the best,
Jeff Rafter


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.