W3C home > Mailing lists > Public > www-style@w3.org > June 2007

Re: [css3-selectors] Namespace name lookup mechanisms

From: Lachlan Hunt <lachlan.hunt@lachy.id.au>
Date: Sat, 30 Jun 2007 12:36:55 +1000
Message-ID: <4685C1C7.2040406@lachy.id.au>
To: Bjoern Hoehrmann <derhoermi@gmx.net>
CC: fantasai <fantasai.lists@inkedblade.net>, www-style@w3.org

Bjoern Hoehrmann wrote:
> * fantasai wrote:
>> If there are multiple mechanisms, then the namespace prefix declared by
>> a given mechanism is case-sensitive or case-insensitive as defined by that
>> mechanism. If a case-sensitive mechanism declares FOO and a case-insensitive
>> mechanism declares foo, then foo can only match the second declaration, and
>> FOO will match the first or the second depending on which mechanism takes
>> precedence, which is outside the scope of the Selectors spec since it does
>> not specify a namespace declaration mechanism. Basically, a case-insensitive
>> declaration declares all case variants of the prefix.
> 
> The text with the changes you announced would be "The case sensitivity
> of namespace prefixes in selectors is defined by the mechanism used to
> declare them".
> 
>   Mechanism A: Namespace prefixes in selectors are case-sensitive.
>   Mechanism B: Namespace prefixes in selectors are case-insensitive.
> 
> This is a conflict.

Ok, let's ignore the case sensitivity issue, and consider a general case 
where there are two mechanisms that can be used for declaring prefixes.

e.g. FooML makes use of selectors for something, and allows prefixes in 
selectors to be declared using either xmlns or @namespace (case 
sensitivity doesn't matter in this example).

<foo xmlns:a="http://example.org/a">
   <namespace>
   @namespace a "http://example.org/b";
   </namespace>
   <select value="a|x"/>
</foo>

Here, both mechanisms have declared the "a" prefix and there is a 
conflict.  The conflict has absolutely nothing to do with the case 
sensitivity issue.  Since they've both been declared using the lowercase 
'a', it makes no difference whatsoever if one is case sensitive and the 
other insensitive, nor if both were the same.

Since it is FooML that has allowed the use of both mechanisms to declare 
namespace prefixes for selectors, it is up to the FooML specification to 
define the conflict resolution algorithm.

> You are avoiding the problem by speaking of the case-sensitivity of
> the mechanism, while the draft text speaks of the  case-sensitivity of
> the prefix in the selector.

You are describing a hypothetical problem that has absolutely nothing to 
do with the case sensitivity of the prefix, but rather a general 
conflict between 2 mechanisms.

-- 
Lachlan Hunt
http://lachy.id.au/
Received on Saturday, 30 June 2007 02:37:05 GMT

This archive was generated by hypermail 2.2.0+W3C-0.50 : Monday, 27 April 2009 13:54:51 GMT