def execute(argv=ARGV)
filenames = _parse_argv(argv)
if @options[:help] || @options[:version]
action = @options[:action]
s = ''
s << _version() << "\n" if @options[:version]
s << _usage() if @options[:help] && !action
s << _describe_properties(action) if @options[:help] && action
puts s
return
end
if @options[:meta2]
validate_schemafiles2(filenames)
elsif @options[:meta]
validate_schemafiles(filenames)
elsif @options[:action]
unless @options[:schema]
raise option_error(:command_option_actionnoschema, @options[:action])
end
perform_action(@options[:action], @options[:schema])
elsif @options[:schema]
if @options[:debug]
inspect_schema(@options[:schema])
else
validate_files(filenames, @options[:schema])
end
else
raise option_error(:command_option_noaction, @command)
end
return
end