Skip to content

Commit

Permalink
Browse files Browse the repository at this point in the history
Infer namespaces for root element.
Now if you add an "svg" element, we automatically infer the namespace because
there is an "svg" namespace prefix. In conjunction with inheriting the namespace
from the parent element, this means that namespaces are almost optional!
  • Loading branch information
mbostock committed Nov 23, 2011
1 parent cc3f5da commit 11c1e7a
Show file tree
Hide file tree
Showing 4 changed files with 31 additions and 30 deletions.
26 changes: 12 additions & 14 deletions d3.js
Expand Up @@ -464,24 +464,22 @@ d3.xml = function(url, mime, callback) {
} }
d3.xhr(url, mime, ready); d3.xhr(url, mime, ready);
}; };
d3.ns = { var d3_nsPrefix = {

svg: "http://www.w3.org/2000/svg",
prefix: { xhtml: "http://www.w3.org/1999/xhtml",
svg: "http://www.w3.org/2000/svg", xlink: "http://www.w3.org/1999/xlink",
xhtml: "http://www.w3.org/1999/xhtml", xml: "http://www.w3.org/XML/1998/namespace",
xlink: "http://www.w3.org/1999/xlink", xmlns: "http://www.w3.org/2000/xmlns/"
xml: "http://www.w3.org/XML/1998/namespace", };
xmlns: "http://www.w3.org/2000/xmlns/"
},


d3.ns = {
prefix: d3_nsPrefix,
qualify: function(name) { qualify: function(name) {
var i = name.indexOf(":"); var i = name.indexOf(":");
return i < 0 ? name : { return i < 0 ? (name in d3_nsPrefix
space: d3.ns.prefix[name.substring(0, i)], ? {space: d3_nsPrefix[name], local: name} : name)
local: name.substring(i + 1) : {space: d3_nsPrefix[name.substring(0, i)], local: name.substring(i + 1)};
};
} }

}; };
d3.dispatch = function() { d3.dispatch = function() {
var dispatch = new d3_dispatch(), var dispatch = new d3_dispatch(),
Expand Down
4 changes: 2 additions & 2 deletions d3.min.js

Large diffs are not rendered by default.

26 changes: 12 additions & 14 deletions src/core/ns.js
@@ -1,19 +1,17 @@
d3.ns = { var d3_nsPrefix = {

svg: "http://www.w3.org/2000/svg",
prefix: { xhtml: "http://www.w3.org/1999/xhtml",
svg: "http://www.w3.org/2000/svg", xlink: "http://www.w3.org/1999/xlink",
xhtml: "http://www.w3.org/1999/xhtml", xml: "http://www.w3.org/XML/1998/namespace",
xlink: "http://www.w3.org/1999/xlink", xmlns: "http://www.w3.org/2000/xmlns/"
xml: "http://www.w3.org/XML/1998/namespace", };
xmlns: "http://www.w3.org/2000/xmlns/"
},


d3.ns = {
prefix: d3_nsPrefix,
qualify: function(name) { qualify: function(name) {
var i = name.indexOf(":"); var i = name.indexOf(":");
return i < 0 ? name : { return i < 0 ? (name in d3_nsPrefix
space: d3.ns.prefix[name.substring(0, i)], ? {space: d3_nsPrefix[name], local: name} : name)
local: name.substring(i + 1) : {space: d3_nsPrefix[name.substring(0, i)], local: name.substring(i + 1)};
};
} }

}; };
5 changes: 5 additions & 0 deletions test/core/ns-test.js
Expand Up @@ -46,6 +46,11 @@ suite.addBatch({
var name = d3.ns.qualify("foo:bar"); var name = d3.ns.qualify("foo:bar");
assert.isUndefined(name.space); assert.isUndefined(name.space);
assert.equal(name.local, "bar"); assert.equal(name.local, "bar");
},
"known local name returns space and local": function() {
var name = d3.ns.qualify("svg");
assert.equal(name.space, "http://www.w3.org/2000/svg");
assert.equal(name.local, "svg");
} }
} }
}); });
Expand Down

0 comments on commit 11c1e7a

Please sign in to comment.