Property Set for CSS [Provisional]

Subject:      CSS Property Set
From: (Russell Steven Shawn O'Connor)
Date:         1998/04/14
Newsgroups:   comp.text.sgml,comp.infosystems.www.authoring.stylesheets

I mailed the following to the W3C's Style mailing list.

I believe that the W3C should make an official property set for CSS.  The
CSS format lends itself nicely to the grove data model.  To get the ball
rolling I wrote a draft property set this evening.  Comments are


     CSS1 Property Set DRAFT 
     By: Russell O'Connor

     This document is PUBLIC DOMAIN.

     Available at 

     This is my first stab at a Property Set for CSS1.  I'm sure that someone 
     who knows more about Property Sets than I do can improve upon this.  I 
     should also note that this is NOT a complete property set.  A complete 
     property set should be made for a final document.

     Modeled after the SGML property set document and based on Appendix B of 
     Cascading Style Sheets, level 1 

<!DOCTYPE propset
   PUBLIC "ISO/IEC 10744:1997//DTD Property Set//EN"

<!-- I don't know if this is right.  I don't know anything about notations. 
     The W3C probably should have a FPI for CSS.

<propset nsd=CSS>
Defines the classes and properties to be used in the construction of
groves from the parsing of CSS documents.

     Modules should be made to separate the important aspects of CSS from the 
     full information available to the parser.  For this draft I have no modules
     and have no classes for irrelevant information such as comments etc. 
     Because of this, this is NOT a complete property set.

<classdef rcsnm=cssdoc appnm="css document">
A CSS document.  The root of the grove.

<propdef subnode rcsnm=imports appnm="imported rules" nodelist ac=import>

<propdef subnode rcsnm=rules nodelist ac=rule>

<classdef rcsnm=import appnm="imported at-rule">

<propdef rcsnm=file appnm="file name" string>
The file name of the imported style sheet.
A string is used instead of a URL.

<propdef subnode rcsnm=cssurl node ac=cssurl>
The URL of the imported style sheet.
A URL is used instead of a string.

<classdef rcsnm=cssurl>

<propdef rcsnm=url string>
The URL string for the CSS style sheet.

<!-- is the AC attribute allowed and proper for urefnodes? -->
<propdef urefnode rcsnm=cssdoc appnm="css document" fullnm="imported css 
document" node ac=cssdoc>
The CSS document that is being imported.

<classdef rcsnm=rule>

<propdef subnode rcsnm=selects appnm=selectors nodelist ac=selector>

<propdef subnode rcsnm=decls appnm=declarations nmndlist ac=decl 

<classdef rcsnm=selector>

<propdef subnode rcsnm=smslcts appnm="simple selectors" nodelist ac=smslct>
I consider a pseudo element a simple selector.  I consider a pseudo element to
stand on it's own separate from it's parent element.  A pseudo element must
be the last element in the list of simple selectors if it is in the list at

<classdef rcsnm=smslct appnm="simple selector">

<propdef rcsnm=name string>
The name is the generic identifier of an element, or the name of a pseudo

<propdef rcsnm=id string>
The ID portion of the simple selector
An ID is given in the simple selector

<propdef rcsnm=class string>
The class portion of the simple selector
A class is given in the simple selector

<propdef rcsnm=psdclass appnm="pseudo class" string>
The pseudo class portion of the simple selector
An pseudo class is given in the simple selector

<classdef rcsnm=decl appnm=declaration>

<propdef rcsnm=prop appnm=property string>
The property being assigned a value

<!-- should this be divided into further nodes? -->
<propdef rcsnm=expr appnm=expression string>
the value being assigned to the property

<propdef rcsnm=prio appnm=priority boolean>
True if ``! important'' is given to this declaration

Russell O'Connor                 
"And truth irreversibly destroys the meaning of its own message"
-- Anindita Dutta, "The Paradox of Truth, the Truth of Entropy"