docs: function processXsd() {
  	console.log();
  	console.log('Processing XML schema...');
  	var src = x2j.xml2json(xsdStr,{"attributePrefix": "@","valueProperty": false, "coerceTypes": false});
  	var obj = xsd.getJsonSchema(src,'nitro-schema','',true);
  
  	console.log('Validating generated JSON schema...');
  	var validate = ajv.compile(jsonSchema);
  	validate(obj);
  	var errors = validate.errors;
  	if (errors) {
  		console.log(errors);
  		return false;
  	}
  	else {
  		fs.writeFileSync('./nitroApi/nitro-schema.yaml',yaml.safeDump(obj),'utf8');
  
  		var existing = openapi.components.schemas;
  		var root = obj.properties;
  		openapi.components.schemas = obj.definitions;
  		openapi.components.schemas.nitro = root.nitro;
  		openapi.components.schemas.nitro.additionalProperties = true; // cope with undefined 'items'
  		openapi.components.schemas.ErrorModel = existing.ErrorModel;
  		recurse(openapi.components.schemas,{},function(obj,key,state){
  			if ((key === '$ref') && (typeof obj.$ref === 'string') && (obj.$ref.startsWith('#/definitions/'))) {
  				obj.$ref = obj.$ref.replace('#/definitions/','#/components/schemas/');
  			}
  		});
  
  		return true;
  	}
  }