moddle-xml
Advanced tools
Comparing version 0.9.2 to 0.9.3
@@ -209,2 +209,10 @@ 'use strict'; | ||
/** | ||
* Get the actual ns attribute name for the given element. | ||
* | ||
* @param {Object} element | ||
* @param {Boolean} [inherited=false] | ||
* | ||
* @return {Object} nsName | ||
*/ | ||
ElementSerializer.prototype.nsAttributeName = function(element) { | ||
@@ -216,7 +224,12 @@ | ||
ns = parseNameNs(element); | ||
} else | ||
if (element.ns) { | ||
} else { | ||
ns = element.ns; | ||
} | ||
// return just local name for inherited attributes | ||
if (element.inherited) { | ||
return { localName: ns.localName }; | ||
} | ||
// parse + log effective ns | ||
var effectiveNs = this.logNamespaceUsed(ns); | ||
@@ -425,3 +438,2 @@ | ||
forEach(properties, function(p) { | ||
self.logNamespaceUsed(p.ns); | ||
@@ -428,0 +440,0 @@ var value = element.get(p.name); |
{ | ||
"name": "moddle-xml", | ||
"version": "0.9.2", | ||
"version": "0.9.3", | ||
"description": "XML import/export for documents described with moddle", | ||
@@ -53,3 +53,3 @@ "directories": { | ||
"lodash": "^3.0.0", | ||
"moddle": "^0.6.0", | ||
"moddle": "^0.6.2", | ||
"sax": "~0.6.0", | ||
@@ -56,0 +56,0 @@ "tiny-stack": "^0.1.0" |
@@ -16,2 +16,9 @@ { | ||
{ | ||
"name": "SubRoot", | ||
"superClass": [ "Root" ], | ||
"properties": [ | ||
{ "name": "subAttr", "type": "String", "isAttr": true } | ||
] | ||
}, | ||
{ | ||
"name": "Own", | ||
@@ -18,0 +25,0 @@ "properties": [ |
@@ -146,2 +146,7 @@ { | ||
"isMany": true | ||
}, | ||
{ | ||
"name": "id", | ||
"type": "String", | ||
"isAttr": true | ||
} | ||
@@ -148,0 +153,0 @@ ] |
@@ -384,2 +384,20 @@ 'use strict'; | ||
it('inherited', function(done) { | ||
// given | ||
var reader = new Reader(extendedModel); | ||
var rootHandler = reader.handler('ext:Root'); | ||
// when | ||
reader.fromXML('<ext:root xmlns:ext="http://extended" id="FOO" />', rootHandler, function(err, result) { | ||
// then | ||
expect(result).to.jsonEqual({ $type: 'ext:Root', id: 'FOO' }); | ||
done(err); | ||
}); | ||
}); | ||
}); | ||
@@ -386,0 +404,0 @@ |
@@ -206,7 +206,7 @@ 'use strict'; | ||
var model = createModel([ 'properties' ]); | ||
it('with line breaks', function() { | ||
// given | ||
var model = createModel([ 'properties' ]); | ||
var writer = createWriter(model); | ||
@@ -225,2 +225,47 @@ | ||
it('inherited', function() { | ||
// given | ||
var extendedModel = createModel([ 'properties', 'properties-extended' ]); | ||
var writer = createWriter(extendedModel); | ||
var root = extendedModel.create('ext:Root', { | ||
id: 'FOO' | ||
}); | ||
// when | ||
var xml = writer.toXML(root); | ||
// then | ||
expect(xml).to.eql('<ext:root xmlns:ext="http://extended" id="FOO" />'); | ||
}); | ||
it('extended', function() { | ||
// given | ||
var extendedModel = createModel([ 'extension/base', 'extension/custom' ]); | ||
var writer = createWriter(extendedModel); | ||
var root = extendedModel.create('b:SubRoot', { | ||
customAttr: 1, | ||
subAttr: 'FOO', | ||
ownAttr: 'OWN' | ||
}); | ||
// when | ||
var xml = writer.toXML(root); | ||
// then | ||
expect(xml).to.eql( | ||
'<b:SubRoot xmlns:b="http://base" ' + | ||
'xmlns:c="http://custom" ' + | ||
'ownAttr="OWN" ' + | ||
'c:customAttr="1" ' + | ||
'subAttr="FOO" />'); | ||
}); | ||
}); | ||
@@ -227,0 +272,0 @@ |
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
121476
3475
Updatedmoddle@^0.6.2