- From: Ian Hickson <ian@hixie.ch>
- Date: Tue, 24 Jan 2006 20:19:20 +0000 (UTC)
- To: Boris Zbarsky <bzbarsky@mit.edu>
- Cc: www-style Mailing List <www-style@w3.org>
On Sat, 21 Jan 2006, Boris Zbarsky wrote: > > 1) Paragraph 2 says: > > The namespace component may be left empty to indicate that the selector is > only to represent elements with no declared namespace. > > while paragraph 4 says: > > Element type selectors that have no namespace component (no namespace > separator), represent elements without regard to the element's namespace > (equivalent to "*|") unless a default namespace has been declared. If a > default namespace has been declared, the selector will represent only > elements in the default namespace. > > I assume that paragraph 2 is talking about type selectors that _do_ have > a namespace separator but _do_not_ have a "namespace component" (the > term "namespace component" is not defined; I assume it means the same > thing as "namespace prefix" in paragraph 1). This should probably be > made clear; as things stand it seems like paragraph 2 and paragraph 4 > are saying different things about the same selectors. Perhaps the > distinction between having an empty "namespace component" and having no > "namespace component" at all should be made clear somewhere in paragraph > 1, maybe as part of a definition of "namespace component"? It now reads: : Type selectors allow an optional namespace component: a namespace prefix : that has been previously declared may be prepended to the element name : separated by the namespace separator "vertical bar" (U+007C, |). (See, : e.g., [XMLNAMES] for the use of namespaces in XML.) : : The namespace component may be left empty (no prefix before the : namespace separator) to indicate that the selector is only to represent : elements with no declared namespace. > 2) I think it should be made clear that the default namespace talked about in > paragraph 4 is in the stylesheet, not the document. Paragraph 2 means > "declared in the document" when it uses "declared", and the difference in > meaning for the same term is rather confusing. Similarly, paragraph 5 means > "declared in the stylesheet" when it uses "declared"... It now reads: : Element type selectors that have no namespace component (no namespace : separator), represent elements without regard to the element's namespace : (equivalent to "*|") unless a default namespace has been declared for : namespaced selectors (e.g. in CSS, in the style sheet). If a default : namespace has been declared, such selectors will represent only elements : in the default namespace. : : A type selector containing a namespace prefix that has not been : previously declared for namespaced selectors is an invalid selector. The : mechanism for declaring a namespace prefix is left up to the language : implementing Selectors. In CSS, such a mechanism is defined in the : General Syntax module. > 3) Paragraph 6 makes it sound like the whole type selector should only match > against the local name, whereas it's just the part after the namespace > separator that this is true for. This is worth clarifying. Now reads: : In a namespace-aware client, the name part of element type selectors : (the part after the namespace separator, if it is present) will only : match against the local part of the element's qualified name. See below : for notes about matching behaviors in down-level clients. > 4) In paragraph 6, I would make "notes about matching behaviors in down-level > clients" the link, not "below" (since depending on styles applied to the > document it may not in fact be "below" .... ;) ) Done ("matching behaviors in down-level clients" is the link). > 5) The summary again uses the term "declared" to mean "declared in the > document" when talking about "*|E" and "|E". Then it uses "specified" > to mean "specified in the stylesheet"; compare this to the terminology > used in the paragraphs I reference in my comment #2. Please standardize > the terminology here to make it unambiguous. Now reads: : ns|E : elements with name E in namespace ns : *|E : elements with name E in any namespace, including those without a : namespace : |E : elements with name E without a namespace : E : if no default namespace has been declared for selectors, this is : equivalent to *|E. Otherwise it is equivalent to ns|E where ns is : the default namespace. > 6) In the CSS examples, the rule numbering (first, second, etc) assumes > that the @namespace rule is the "zeroth" rule. This seems a little odd > to me.... I've added "(not counting the <code>@namespace</code> at-rule)" after the "first rule", and added "/* first rule */" in the example. -- Ian Hickson U+1047E )\._.,--....,'``. fL http://ln.hixie.ch/ U+263A /, _.. \ _\ ;`._ ,. Things that are impossible just take longer. `._.-(,_..'--(,_..'`-.;.'
Received on Tuesday, 24 January 2006 20:19:28 UTC