Re: Is DSSSL Hard?

Subject: Re: Is DSSSL Hard?
From: Dave Raggett <dsr@xxxxxx>
Date: Sat, 19 Apr 1997 19:07:20 -0400 ()

I would like to understand DSSSL better, and like most people
found the ISO spec too difficult to get anything beyond the
roughest of understanding. I would be most grateful if you
could help me with a few points.

> ; *** The actual rules *** 
> (element BR (make paragraph-break))  

Shouldn't this be a forced line break?  Is there a line-break
command in DSSSL for text flows?

> (element B (make sequence font-weight: 'bold))
> (element STRONG (make sequence font-weight: 'extra-bold ))
> (element I (make sequence font-posture: 'italic))
> (element EM (make sequence font-posture: 'italic))
> (element CITE (make sequence font-posture: 'italic))

How do font-postures work? I assume they combine together
but what happens if the combination is not available, how
does the font selection work?

> (element IMG
>   (make external-graphic
> 	entity-system-id: (attribute-string "src")
> 	display?: #t
> 	space-before: 1em
> 	space-after: 1em ))

I think this needs to deal with the presence of width/height
attributes, and the padding and other properties. How would
I specify that I want the browser to show content early
repainting it as image sizes are determined? Arena works this
way while Netscape defers painting until image extents have
been determined. This fine degree of control isn't possible
with CSS, but should be with a richer style sheet mechanism.

> (element table
>     (make table))
> (element tr
>     (make table-row))
> (element td
>     (make table-cell))

I am acutely aware of the problems involved in formatting
tables. Does DSSSL support the 2 pass mechanism for sizing
(possibly nested) tables according to the content?

There are hidden problems in specifying table style due to
that fact that its not a tree - cells have two parents a
row, and a column, then row groups and column groups. Some
tables even drop the requirement that all cell boundaries
are aligned on column boundaries. I have further found
problems with mixtures of fixed and proportional widths
for columns, especially when space is in very limited supply.

Perhaps the mess can be hidden in specialized flow objects.
How does DSSSL allow me to specify a non-standard flow
object?  I can envisage using Java to define a flow object
with an API for driving it from DSSSL, can you enlighten
me on how this works in practice?  Can you use a URL to
bind to the Java code implementing the flow object? How
does the object declare its properties?

I have in mind some very much more sophistocated kinds of
flow objects. What I would like is a means to declare a
declarative interface for these objects, which are then
realized in Java.

Finally has anyone done any work on an easier syntax for DSSSL?
I can imagine recasting it in a more familiar syntax e.g. using
expressions with operators perhaps closer to Java, or scripting
languages. I suspect that this can be done using a trivial front
end that maps to the scheme syntax.

Dave Raggett - <dsr@xxxxxx> tel +1 617 258 5741 fax +1 617 258 5999
World Wide Web Consortium 545 Technology Square, Cambridge MA 02139

Current Thread