Output valid XML
This commit is contained in:
parent
c78c9b2818
commit
c0121f7682
@ -21,9 +21,14 @@ tree.Definition.prototype.filter_symbolizer = function(symbolizer) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
tree.Definition.prototype.symbolizers = function() {
|
tree.Definition.prototype.symbolizers = function() {
|
||||||
return this.rules.map(function(rule) {
|
// reduce used to make the result of this
|
||||||
return rule.symbolizer;
|
// an array of unique values.
|
||||||
});
|
return this.rules.reduce(function(memo, rule) {
|
||||||
|
if (memo.indexOf(rule.symbolizer) == -1) {
|
||||||
|
memo.push(rule.symbolizer);
|
||||||
|
}
|
||||||
|
return memo;
|
||||||
|
}, []);
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -45,18 +50,31 @@ tree.Definition.prototype.inherit_from = function(definition) {
|
|||||||
};
|
};
|
||||||
|
|
||||||
tree.Definition.prototype.toXML = function() {
|
tree.Definition.prototype.toXML = function() {
|
||||||
var rules = this.rules.map(function(rule) {
|
var sym = this.symbolizers();
|
||||||
|
if (sym.length !== 1) {
|
||||||
|
throw {
|
||||||
|
message: 'A single symbolizer is expected'
|
||||||
|
+ 'in definition compilation'
|
||||||
|
}
|
||||||
|
} else { sym = sym[0]; }
|
||||||
|
|
||||||
|
var symname = sym.charAt(0).toUpperCase()
|
||||||
|
+ sym.slice(1).replace(/\-./, function(str) {
|
||||||
|
return str[1].toUpperCase();
|
||||||
|
}) + 'Symbolizer';
|
||||||
|
var rules = ' <' + symname + ' ' + this.rules.map(function(rule) {
|
||||||
return rule.toCSS();
|
return rule.toCSS();
|
||||||
});
|
}).join('\n ') + '/>';
|
||||||
|
|
||||||
|
|
||||||
var filters = this.selector.filters.map(function(filter) {
|
var filters = this.selector.filters.map(function(filter) {
|
||||||
return filter.toXML();
|
return filter.toXML();
|
||||||
});
|
});
|
||||||
|
|
||||||
return ' <Rule>\n' +
|
return ' <Rule>\n ' +
|
||||||
filters.join('\n ') + '\n' +
|
filters.join('\n ') + '\n' +
|
||||||
rules.join('\n') +
|
rules +
|
||||||
'\n </Rule>\n';
|
'\n </Rule>\n';
|
||||||
};
|
};
|
||||||
|
|
||||||
})(require('mess/tree'));
|
})(require('mess/tree'));
|
||||||
|
Loading…
Reference in New Issue
Block a user