aboutsummaryrefslogtreecommitdiff
path: root/lib/xml
diff options
context:
space:
mode:
authorMichael Williamson <mike@zwobble.org>2015-08-16 15:52:29 +0100
committerMichael Williamson <mike@zwobble.org>2015-08-16 15:52:29 +0100
commit0363f064b05698eed9826570aad6985ef47a6322 (patch)
tree61bb0b72a3e8dbc68380ed11a5aa8d49eedbc6d3 /lib/xml
parent79fc6da75e6bf8e64601bf6832293842fd701d31 (diff)
Support default namespace
Diffstat (limited to 'lib/xml')
-rw-r--r--lib/xml/writer.js10
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/xml/writer.js b/lib/xml/writer.js
index 66cc8de..9bf8c35 100644
--- a/lib/xml/writer.js
+++ b/lib/xml/writer.js
@@ -25,9 +25,10 @@ function writeString(root, namespaces) {
}
function mapElementName(name) {
- var longFormMatch = /^\{(.*)\}(.*)$/.exec(name);
+ var longFormMatch = /^\{(.*)\}:(.*)$/.exec(name);
if (longFormMatch) {
- return uriToPrefix[longFormMatch[1]] + ":" + longFormMatch[2];
+ var prefix = uriToPrefix[longFormMatch[1]];
+ return prefix + (prefix === "" ? "" : ":") + longFormMatch[2];
} else {
return name;
}
@@ -35,14 +36,15 @@ function writeString(root, namespaces) {
function writeDocument(root) {
var builder = xmlbuilder
- .create(root.name, {
+ .create(mapElementName(root.name), {
version: '1.0',
encoding: 'UTF-8',
standalone: true
});
_.forEach(namespaces, function(uri, prefix) {
- builder.attribute("xmlns:" + prefix, uri);
+ var key = "xmlns" + (prefix === "" ? "" : ":" + prefix);
+ builder.attribute(key, uri);
});
root.children.forEach(function(child) {