Re: XMLNS in Inkscape and other editors

On Fri, 20 Nov 2009 15:13:52 -0800, Maciej Stachowiak wrote:
> On Nov 20, 2009, at 7:21 AM, Leif Halvard Silli wrote:
>> On Fri, 20 Nov 2009 15:05:11 +0100, Julian Reschke wrote:
>>> Leif Halvard Silli wrote:

>>>> <body xmlns="http://www.google.com/ns/jotspot" id="body" class=" en">

> Do you think it was intentional to make the body not be an HTML body? 
> Doesn't seem likely to me.

The Google Sites example pages[*] all show the same "feature", so it is 
no accident ... If they get something positive out of it, then I 
suppose it is on the editor side - not on the browsing side.

However, in plain English, what you claim is this: "If text/HTML 
supported namespaces, then how could this possibly be meaningful? A 
default namespace declaration inside *a* <body> would "steal" *the* 
<body> element." Julian's thought about forbidding namespaces on the 
<body> elements builds on the same idea.

However, here is another option that perhaps is just as logical:

Namespace enabled text/HTML user agents would generate a DOM with *two* 
body elements: A parent <body> in the HTML namespace and a child <body> 
in the "jotspot" namespace. After all, doesn't text/HTML UAs always 
generate a <body>, even if you omit it?

<body>
  <body xmlns="http://www.google.com/ns/jotspot" id="body" 
class="en"></body>
</body>

Old UAs would see one <body> element, while namespace enabled text/HTML 
UAs would see two.

To not cause Web breakage, <body> elements in a non-HTML namespace 
would have to be special cased whenever they would would be the first 
child of a <body> in the HTML namespace. That is: Special CSS rules and 
JavaScript/DOM rules for such cases. For example, it could be required 
that, for CSS, such a non-HTML body element would have to be selected 
like this, if you would like to write over the default special cased 
styling: 

	body>body{}

I don't say that two bodies is what Google Sites would expect, at 
first. (It would surprise them the same amount as it surprises others 
that user agents auto insert <body>.) But I would claim that it would 
be a logical expression of text/HTML's interpretation of Postel's "be 
conservative in what you do, be liberal in what you accept from others".

Because, fact is: The thing that text/HTML user agents auto-generates 
those bits of the DOM that an author "forgets" to insert himself, is 
text/HTML's way of being "draconian": If yo don't take control 
yourself, then the user agent takes control for you.

And that's the kind of soft punishment that Google Sites would need in 
order to start doing it right.

[*] http://www.google.com/sites/help/intl/en/overview.html
-- 
leif halvard silli

Received on Saturday, 21 November 2009 03:45:12 UTC