code: public static EnhancedMap initSettingsFromFile(String arg) throws Exception {
        if (arg != null) {
           if (new File(arg).canRead()) {
              try {
                 SettingsXMLHelper.validateXml(arg);
                 return new SettingsFromJAXB().fromJaxb(new FileReader(arg));
              } catch (SAXException sAXException) {
                 log.log(Level.WARNING, String.format("%s does not contain settings xml, trying to parse settings directly", arg), sAXException);
              }
              return new CachingProperties(new ParsingProperties(new Settings(), arg));
           }
        }
        return findSettings();
     }
docs: When the argument is null call {@link #findSettings() }. When the argument is a file that exists it is assumed to
  either be an xml file declaring settings or a file holding setting. Either {@link SettingsFromJAXB#fromJaxb(java.io.Reader)
  } or {@link ParsingProperties#ParsingProperties(com.vectorprint.configuration.EnhancedMap, java.lang.String...) }
  will be called.
  
  @see SettingsXMLHelper#XSD
  @param arg name of a file or null
  @return settings or null
  @throws Exception