Re: CSS and SGML document formatting

Gavin Nicol writes:
 > >Answer 2: Assuming it is the reliance on the Reference Concrete Syntax
 > >that is the hidden meaning behind foo.bar, this, too, has been
 > >addressed in the CSS spec. It is actually possible to use *any* syntax
 > >(by using escapes), but only RCS will look nice.
 >   I saw no reference to this in CSS1. Can you please explain it, or
 >   point to the section containing it's specification. I assume that
 >   this is the "\\\." tacked onto the end of the nmchar rule in the lex 
 >   specification? 

That's right. Thanks for pointing it out, even if in such a
cryptic way.

Every new draft becomes a little more readable, but there may be more
gaps. Such gaps don't mean we haven't thought about it (I hope), but
it means that the distance from our whiteboard to the keyboard is
sometimes too large...

It is the escape mechanism that is present in most programming
languages and command shells. Every character looses its special
meaning if preceded by a backslash. (Although we haven't extended the
rule to strings: there we use SGML `literals').

 > >One remaining problem: neither answer is very `profound'...
 >   True, but I don't think you have correctly solved the puzzle
 >   either. 
 > In the reference concrete syntax, a period is legal in a name. So
 > something like
 >   <!ELEMENT foo.bar - - (#PCDATA)>
 >   <!ATTLIST foo.bar
 >             class  CDATA #IMPLIED
 >             foo    CDATA #IMPLIED
 >             bar    CDATA #IMPLIED>
 > is perfectly legal. I suppose that the lexical (but I could not find
 > actual text describing this) specification allows you to write 
 >     foo\.bar.foo
 > or
 >     foo\\\.bar.foo

The former. We have carefully balanced the pros and cons but decided
that elt.class looked so nice that the dot just had to go. And so far
HTML hasn't acquired dotted element names.

 > which the application would have to figure out the meaning of (the
 > latter would probably be illegal).
 > This could get very ugly, very quickly for variant concrete syntaxes.

True, but though we don't exclude variant syntaxes or different DTD's,
the primary target is still HTML.

 > Actually, the one part of CSS that I dislike very much is the selector
 > mechanism.

Really? I like it very much. It's like a regular expression. It
cleanly separates the properties from what they apply to. It allows
you to sort the rules in various ways. It shows you immediately that
an `OL LI' is a different thing from a `UL LI'. And so far it has
saved us from putting if-then rules on the rhs.

It makes a CSS file into a table with three columns: selectors,
properties, values. (Or four, if you count the `!important'.)

  Bert Bos                                ( W 3 C ) http://www.w3.org/
  http://www.w3.org/pub/WWW/People/Bos/                      INRIA/W3C
  bert@w3.org                             2004 Rt des Lucioles / BP 93
  +33 93 65 77 71                 06902 Sophia Antipolis Cedex, France

Follow-Ups: References: