Re: Architecture-based Processing with DSSSL and Jade

Subject: Re: Architecture-based Processing with DSSSL and Jade
From: Paul Prescod <papresco@xxxxxxxxxxxxxxxx>
Date: Thu, 04 Sep 1997 17:45:56 -0400
I do a simple form of architectural processing by hiding the element's
"real" GI in an attribute. If the attribute matches one of a list, then
I process it "specially", if it doesn't, I send it on to the
architectural version in another module unmolested:

<!doctype style-sheet PUBLIC "-//James Clark//DTD DSSSL Style
Sheet//EN"[
<!entity tei.lit.stylesheet SYSTEM "c:\tei\jade\tei-dsl\tei-lite.dsl"
NDATA DSSSL>
]>

<style-specification use="tei.lit.stylesheet">
<style-specification-body>

(define *visual-acuity* "presbyopic")

(element ROW
	 (case (attribute-string "role")
	      (("HEADING")
	          (make sequence font-weight: 'bold font-size: 14pt
(next-match)))
	      (("data")
	          (next-match))))

(element P
	(case (attribute-string "rend") 
	       (("CAUTION" "NOTE")
		    (sosofo-append
		         (make paragraph
			       font-size: 14pt
			       quadding: 'start
			       (literal (attribute-string "rend") ":"))
			 (make sequence font-weight: 'bold
			       (next-match))))
	       ((#f)
		     (next-match))))

This is okay for small changes to a stylesheet, but for more powerful
processing you would want to be able to do the opposite:

(element NOTE
	(make sequence font-weight: 'bold
		(process-as TEI.2 P)))

I haven't completely thought it through, but I think that it should
always be the derived element's construction rule's responsibility to
pass information to invoke the base element's rule explicitly. You can't
do it automatically because of multiple inheritance. How would the
processor reasonably choose which base class to invoke?

 Paul Prescod

 DSSSList info and archive:  http://www.mulberrytech.com/dsssl/dssslist


Current Thread