docs: function hasValidTypes(methodSpec, methodName, parent) {
    var valid = true;
    var msg = (xml2js.opts.strict ? ' is omitted from JS documentation.' : ' has invalid type(s).');
    var printIgnoredMethodOnce = _.once(function() { console.log(methodName + msg); });
    _.each(methodSpec.params, function(paramSpec, paramName) {
      if (!isValidType(paramSpec.type, parent)) {
        valid = false;
        printIgnoredMethodOnce();
        console.log('  Error: parameter ' + paramName + ' has invalid type ' + typeToString(paramSpec.type));
      }
    });
    if (!_.isEmpty(methodSpec.return) && !isValidType(methodSpec.return.type, parent)) {
      valid = false;
      printIgnoredMethodOnce();
      console.log('  Error: returns invalid type ' + typeToString(methodSpec.return.type));
    }
    return valid;
  }