Subject: Re: some basic questions From: Chris Maden <crism@xxxxxxx> Date: Fri, 10 Apr 1998 19:26:44 -0400 |
[Gregg Reynolds] > I hadn't really looked into the query-construction-rule before your > note sent me scurrying to my copy of the standard. Now I can > categorically state: hmmmm. Very interesting. One could for > example emulate element-construction-rules using > query-construction-rules, no? Yes. (element FOO (empty-sosofo)) is equivalent to (query (node-list-filter (lambda (snl) (equal? (gi snl) "FOO")) (descendants (tree-root))) (empty-sosofo)) > I have always thought of DSSSL as providing two distinct models of > producing output, one based on queries (just like RDBMS processing) > and the other input-driven ("events" in the input text stream > "triggering" the "handlers" registered via construction-rules). But > the query-construction-rule really kinda sorta unifies these two > models. Again I say: hmmmm. What remains murky to me is how the > query-construction-rule is triggered. I'll quote here from Chris > Maden's response to your note: > > "The times I've wished for the query feature, it's been to match > non- element nodes, like processing instructions and sdata > entities." > > Though I understand how the query-expression of a > query-construction-rule might select such non-element nodes, I don't > see how the rule gets triggered in the first place. I think I've > made the assumption that element nodes (ie the tree? or is it the > grove?) drive the selection, but now looking in the standard I don't > see any language that necessarily implies that model. I'm looking > in 12.4.1, p 174. Can anybody shed some light on this? The DSSSL Standard leaves the actual processing model up to an individual application; one can imagine a processor transforming a grove into a flow object tree by randomly picking a node, finding the most specific applicable construction rule, and obeying it. I think that it would be possible to determine if a query expression would return the current node without actually processing the entire expression. For this example, every element is going to be part of the descendants of the tree-root, so only the procedure needs to be applied as a test. I don't know if the full query expression language could be implement back-asswards this way or not, though. So you can think of DSSSL's operational model as being driven either by the data or by the rules; it's not as binary as I think you think. -Chris -- <!NOTATION SGML.Geek PUBLIC "-//Anonymous//NOTATION SGML Geek//EN"> <!ENTITY crism PUBLIC "-//O'Reilly//NONSGML Christopher R. Maden//EN" "<URL>http://www.oreilly.com/people/staff/crism/ <TEL>+1.617.499.7487 <USMAIL>90 Sherman Street, Cambridge, MA 02140 USA" NDATA SGML.Geek> DSSSList info and archive: http://www.mulberrytech.com/dsssl/dssslist
Current Thread |
---|
|
<- Previous | Index | Next -> |
---|---|---|
RE: some basic questions, Reynolds, Gregg | Thread | dsldump - debug routine for jade; l, Gregg Reynolds |
RE: some basic questions, Reynolds, Gregg | Date | dsldump - debug routine for jade; l, Gregg Reynolds |
Month |