diff options
| author | Michael Williamson <mike@zwobble.org> | 2015-08-16 15:52:29 +0100 |
|---|---|---|
| committer | Michael Williamson <mike@zwobble.org> | 2015-08-16 15:52:29 +0100 |
| commit | 0363f064b05698eed9826570aad6985ef47a6322 (patch) | |
| tree | 61bb0b72a3e8dbc68380ed11a5aa8d49eedbc6d3 /lib/xml | |
| parent | 79fc6da75e6bf8e64601bf6832293842fd701d31 (diff) | |
Support default namespace
Diffstat (limited to 'lib/xml')
| -rw-r--r-- | lib/xml/writer.js | 10 |
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) { |
