W3C home > Mailing lists > Public > www-style@w3.org > September 2010

Re: Extend use of namespaces

From: Paul Duffin <pduffin@volantis.com>
Date: Fri, 17 Sep 2010 14:38:06 -0600 (MDT)
To: Bjoern Hoehrmann <derhoermi@gmx.net>
Cc: Peter Linss <peter.linss@hp.com>, www-style <www-style@w3.org>
Message-ID: <1289683860.18444.1284755886519.JavaMail.root@zimbra.volantis.com>


----- Original Message -----
> * Paul Duffin wrote:
> >I don't dispute the initial motivation for adding it but it seems to
> >me
> >that the language used in the specification indicates that
> >considerable
> >thought went into making it suitable for use as a general mechanism
> >for
> >namespacing CSS identifiers in general.
> 
> The character `|` is not allowed as an (unescaped) part of
> identifiers;
> something like `example { example|example: example }` is not parsable
> as
> style sheet under the supposedly set-in-stone core language syntax.

That is a good point. I guess that you are basing that on CSS 2 syntax http://www.w3.org/TR/CSS2/syndata.html#tokenization.

ruleset     : selector? '{' S* declaration? [ ';' S* declaration? ]* '}' S*;
selector    : any+;
declaration : property S* ':' S* value;
property    : IDENT;
value       : [ any | block | ATKEYWORD S* ]+;
any         : [ IDENT | NUMBER | PERCENTAGE | DIMENSION | STRING
              | DELIM | URI | HASH | UNICODE-RANGE | INCLUDES
              | DASHMATCH | ':' | FUNCTION S* any* ')' 
              | '(' S* any* ')' | '[' S* any* ']' ] S*;

I guess the | used in selectors must be matched by DELIM.

Ok, so based on that syntax we can identify the places where they could be used:
* at-rule name        - not allowed because the name is an IDENT
* property name       - not allowed because the name is an IDENT
* pseudo class name   - allowed as it is a selector and selectors can contain |.
* pseudo element name - allowed as it is a selector and selectors can contain |.
* property value      - allowed because a value can contain DELIM

However, I think that a conforming CSS parser that implements the http://www.w3.org/TR/CSS2/syndata.html#parsing-errors rules properly should simply ignore a | in a property name or at-rule and skip over to the end of the declaration / at-rule respectively. So from that perspective a "CSS qualified name" could be used as a property name or at-rule name.
Received on Friday, 17 September 2010 20:38:39 GMT

This archive was generated by hypermail 2.3.1 : Tuesday, 26 March 2013 17:20:31 GMT