W3C home > Mailing lists > Public > public-webapps@w3.org > January to March 2015

Are web components *seriously* not namespaced?

From: Glen <glen.84@gmail.com>
Date: Wed, 04 Feb 2015 23:31:11 +0200
Message-ID: <54D28F9F.1000406@gmail.com>
To: public-webapps@w3.org
I know I'm rather late to the party, but I've been doing a lot of 
reading lately about web components and related technologies, and the 
one thing that confounds me is the fact that web components appear not 
to have any "real" namespacing.

Can someone explain why this is so, and what the justification is? Or is 
it just a case of "it was too complicated, this is good enough"?

I see this has been brought up once before @ 
http://lists.w3.org/Archives/Public/public-webapps/2013AprJun/0964.html, 
but nothing changed.

It's not going to be long before <x-tabs> has been defined by 1,000,000 
people (slight exaggeration), and you have no idea what it is or where 
it came from without looking through imports/scripts etc. Also you want 
to keep things short, so you call your element <ms-panel> (you work for 
Monkey Solutions LLC), but then someone else on the team is importing 
<ms-panel> from Microsoft, and BAM!, you have another problem.

Why can't we do something like this?

<!-- /scripts/monkey-solutions/panel.js -->
<script>
     var panel = document.registerElement("panel", {
         namespace: "ms https://monkey-solutions.com/namespace"
     });
</script>

<!-- /scripts/microsoft/panel.js -->
<script>
     var panel = document.registerElement("panel", {
         namespace: "ms https://microsoft.com/namespace"
     });
</script>

<!-- Uses last defined element, as it currently works. -->
<ms-panel>

<!-- Redefine the namespace prefix for one of the custom elements. -->
<element name="panel" namespace="https://microsoft.com/namespace" 
prefix="msft" />

<ms-panel>
<msft-panel>

You could also assign a prefix to all elements within a namespace like this:

<element name="*" namespace="https://microsoft.com/namespace" 
prefix="msft" />

You can override the prefix multiple times and the closest <element> 
definition is used.

Please note that the above syntax is just an example of what could be used.

Another BIG pro here is that IDEs can pull in information about the 
elements by sending an HTTP request to the namespace URI so that a 
tooltip could be displayed with an element description, author, sample 
usage, etc.

I really do hope that it's not too late to make such a change.

Regards,

Glen.
Received on Wednesday, 4 February 2015 21:31:44 UTC

This archive was generated by hypermail 2.3.1 : Friday, 27 October 2017 07:27:25 UTC