Re: [XBL] Attributes Containing Selectors

On Thu, 7 Dec 2006, Cameron McCormack wrote:
> 
> 1.2.1 Attributes Containing Selectors
>   
>   The default namespace in selectors in XBL attributes is always unbound
>   ("*").
> 
> What does the “("*")” mean?  Does it mean that selectors for 
> elements that no prefix will match an element with that name in any 
> namespace, and that the default XML namespace as given by an xmlns 
> attribute is not used?  If so, please say so here.

Removed the confusing parenthetical.


>   The “xmlns” prefix is also defined to always be declared (and bound to
>   http://www.w3.org/2000/xmlns/), but there really is no good reason to
>   use that prefix in selectors, so authors are encouraged to avoid doing
>   so.
> 
> I could imagine a reason: an binding that facilitates the inspection of
> a DOM.  Such a binding might have processing dependent on xmlns:*
> attributes.

The odds of this working reliably are pretty slim. :-) I'm not even sure 
that xmlns:* attributes end up in the DOM.


> Is there really a need for this note?  It is, after all, what Namespaces 
> in XML says.

It's mentioned here because implementors may not have realised the 
implications of what [XMLNS] says.


> How is case insensitive matching performed on namespace prefixes?  Does 
> it use UAX#21 full case folding?

UAX21 was incorporated into the main Unicode text long ago. But yes, 
Unicode case folding is what is used here. I've added a ref to Unicode 5.


> For example, would a selector
> 
>   ß|*
> 
> with the following prefixes in scope
> 
>   xmlns:ß="http://example.org/1"
>   xmlns:ss="http://example.org/2"
> 
> use the "http://example.org/2" namespace URI?

Yes.


>   If it is known that the binding document is only ever going to be used
>   from documents that use one namespace, for example if the bindings are
>   always to be imported into HTML documents, then it is easier to just
>   specify the tag name (as in this example) and ignore the namespaces.
> 
> But it’s not the tag name that you are specifying, but the node’s local
> name.  It might be that the element’s tag name is h:blockquote, but the
> “blockquote” selector will still match it.

Fixed both mentions of tag name to say local name.


>   A space-separated attribute whole value is either the empty string or
>   that consists of only U+0020, U+000A, and U+000D characters has no
>   values.
> 
> s/is/that is/, if I understand the intent of the sentence correctly.

I don't understand what it would mean if you had "that is". It looks 
correct as is to me...

-- 
Ian Hickson               U+1047E                )\._.,--....,'``.    fL
http://ln.hixie.ch/       U+263A                /,   _.. \   _\  ;`._ ,.
Things that are impossible just take longer.   `._.-(,_..'--(,_..'`-.;.'

Received on Monday, 8 January 2007 23:18:17 UTC