Re: XHTML attributes and namespace, clarification needed

Robin Berjon wrote:
>> Hm, well, but I can't find anything in the XML Namespaces document 
>> that explicitly says it is in the 'null' namespace (or I must have 
>> missed it), and I also don't think it makes sense if that weren't the 
>> case.
> 
> "Default namespace declarations do not apply directly to attribute names".
> 
> Therefore, attribute with no prefix implies attribute with no namespace.

That's like saying 'this basket contains no apples, so it must contain 
pears'. Really, this 'therefore' makes no sense at all. Revive your 
predicate logic classes ;p.

Where in that sentence does it say namespaces are NULL (or: 'not in any 
namespace')? It says that DEFAULT namespace declarations (that is, the 
xmlns= somewhere higher in the tree) do not apply DIRECTLY to attribute 
names (in other words, they *can* apply INDIRECTLY).

Let's look at this statement, which directly follows from the line in 
the spec: "Default namespace declarations can apply indirectly to 
attribute names."

I do not see how they in any case can apply indirectly if you make them 
have a null namespace by default (like elements do if there's no default 
namespace set). If they were null by default, that phrase in the spec 
would be false - default namespace declarations do not apply to 
attribute names at all.

However when they inherit their namespace from their element, it makes 
sense. In that case, they indirectly inherit the default namespace if 
the element they're on does not have any specific namespace prefix 
specified.

I think this kind of proves that the namespace of attributes can not 
default to null, per spec.

Anyways, this is a line which only indirectly talks about the namespace 
of attributes. If this is the only occurrance where the spec talks about 
how namespaces apply to attributes (I couldn't find any other place), 
I'd say it's a pretty poorly written.


>> Hm, well, I guess you know what you're talking about :). To me they 
>> seemed to be discussing things which were evident (that is: obviously 
>> <span class="x" xhtml:class="x2"> is illegal because it has 2 
>> attributes with the same name in the same namespace).
> 
> Which clearly is not the case. You're only failing to understand 
> namespaces because you're making them more complicated than they are. 
> Namespaces are entirely, thoroughly, simple and stupid. They have no 
> behaviour whatsoever. They don't inherit. They don't mean anything. They 
> don't magically appear where they haven't been requested.

Hm, well, I think it makes a lot of sense how I described it, and that 
letting them have a null namespace makes exactly those confusing things 
like the class="x" xhtml:class="x" possible.

I really don't think this is complex, it's pretty obvious.


~Grauw

-- 
Ushiko-san! Kimi wa doushite, Ushiko-san!!

Received on Wednesday, 15 December 2004 14:08:42 UTC