moddle-xml
XML import/export for documents described with moddle.
Usage
Get the libray via npm
npm install --save moddle-xml
Bootstrap
Instantiate a moddle instance
var Moddle = require('moddle'),
ModdleXML = require('moddle-xml');
var model = new Moddle([ myPackage ]);
Read XML
Use the reader to parse XML into an object tree that represents your model descriptor:
var model;
var xml =
'<my:root xmlns:props="http://mypackage">' +
'<my:car id="Car_1">' +
'<my:engine power="121" fuelConsumption="10" />' +
'</my:car>
'</my:root>';
var reader = new Reader(model);
var rootHandler = reader.handler('my:Root');
// when
reader.fromXML(xml, rootHandler, function(err, cars, context) {
if (err) {
console.log('import error', err);
} else {
if (context.warnings.length) {
console.log('import warnings', context.warnings);
}
console.log(cars);
// {
// $type: 'my:Root',
// cars: [
// {
// $type: 'my:Car',
// id: 'Car_1',
// engine: [
// { $type: 'my:Engine', powser: 121, fuelConsumption: 10 }
// ]
// }
// ]
// }
}
});
Write XML
Use the writer to serialize the object tree back to XML:
var model;
var cars = model.create('my:Root');
cars.get('cars').push(model.create('my:Car', { power: 10 }));
var options = { format: false, preamble: false };
var writer = new ModdleXML.Writer(options);
var xml = writer.toXML(bar);
console.log(xml);
License
MIT