Re: Concerns about HTML+ complexity (example)

Steve Hiebert (steve@hpcvusc.cv.hp.com)
Fri, 17 Jun 1994 14:10:25 -0700


In <9406171842.AA20932@pt0204.pto.ford.com>, Ken Fox said:

> There are alternatives to the HTML example though:
>
> ------
> <vbox style="list">
> <hbox> <img style="bullet"> <p style="item"> first </p> </hbox>
> <hbox> <img style="bullet"> <p style="item"> second </p> </hbox>
> <hbox> <img style="bullet"> <p style="item"> third </p> </hbox>
> </vbox>
> ------

...

> It has an advantage over the first example in that it is building a
> list structure out of more general elements. ...

This is very close to the tack that we took in the COSE CDE Help
System. We have a DTD for markup specifically tuned to on-line
presentation called the Semantic Delivery Language or SDL. SDL by
design was not intended as an authoring language, rather, it was
intended to be translated into. The idea being that certain things
such as the location of IDs could be computed during the translation
process rather than at run-time to allow more rapid random access into
the document.

On of the (few) elements of SDL is <form>. The SDL <form> is not at
all like the HTML3.0 <form> but is more akin to the Motif form widget.
That is, the SDL form specifies layout of <block> or <form> elements
in a grid.

The definition of <form> in SDL is attached at the end of this note.
Two of the attributes of <form> are CLASS= and SSI=. The SSI=
attribute stands for "source semantic identifier" and is used to
indicate the function in the source DTD that this use of <form> is
filling - that is, it is very close to being a ROLE= attribute. The
CLASS=, SSI= and LEVEL= (whether explicit or computed as the recursive
nesting level of the <form>) are used to look up formatting
information in a style sheet known as the <toss> (table of semantics
and styles) that is also an element in the document.

The <form> element can be used, for example, to build both tables and
lists. Recursion of <form> elements allows for sub-tables, lists of
tables, etc.

Steve

========================= definition of <form> =========================

<!ELEMENT form - - (head*, ((fstyle, fdata) | (fdata, fstyle))) >
<!ATTLIST form id ID #IMPLIED

-- processor shld deflt level to nest of form --
level NUMBER #IMPLIED
version CDATA #IMPLIED
class (%format-class;) #IMPLIED
language CDATA #IMPLIED

-- prcessor shld deflt charset to "ISO8859-1" --
charset CDATA #IMPLIED
length NUMBER #IMPLIED

-- processor should default app to "all" --
app ( all |
help |
tutorial |
ref |
sys ) #IMPLIED
ssi CDATA #IMPLIED >

<!ELEMENT fstyle - - (frowvec+) >
<!ATTLIST fstyle -- The number of columns in this form, ncols, --
-- should be a number greater than zero. --
-- Unless overridden by a "colw" (column --
-- width) specification in a formstyle, the --
-- available space is divided evenly among --
-- the columns. Unless overriden by a "colj" --
-- specification in a formstyle, the columns --
-- are all left justified. --
-- processor should default ncols to 1 --
ncols NUMBER #IMPLIED >

<!ELEMENT frowvec - O EMPTY >
<!ATTLIST frowvec -- processor should default hdr to "NO" --
hdr (YES | NO) #IMPLIED

-- Ids of cell contents. One id per cell. --
-- Each id must refer to either a block or a --
-- form. --
cells IDREFS #REQUIRED >

<!ELEMENT fdata - - ((block | form)*) >

===================== end of definition of <form> ======================

Steven Hiebert
Software Design Engineer
Workstation Technology Division
Hewlett-Packard Company
Corvallis, OR 97330-4239