code: def fromFile(filename):
          
          xdata = None
          ydata = None
  
          # try parsing an XML file
          try:
              xdata = ElementTree.parse(filename).getroot()
          except StandardError:
              xdata = None
  
          if xdata is None:
              # try parsing a yaml file
              if yaml:
                  with open(filename, 'r') as f:
                      text = f.read()
  
                  try:
                      ydata = yaml.load(text)
                  except StandardError:
                      return None
              else:
                  log.warning('Could not process yaml builder!')
  
          # load a yaml definition
          if type(ydata) == dict:
              typ = ydata.get('type')
              module = ydata.get('module')
              builder = Builder.plugin(typ, module)
              if builder:
                  return builder.fromYaml(ydata, os.path.dirname(filename))
              else:
                  log.warning('Could not find builder: {0}'.format(typ))
  
          # load an xml definition
          elif xdata is not None:
              typ = xdata.get('type')
              module = xdata.get('module')
              builder = Builder.plugin(typ, module)
              if builder:
                  return builder.fromXml(xdata, os.path.dirname(filename))
              else:
                  log.warning('Could not find builder: {0}'.format(typ))
  
          return None
docs: Parses the inputted xml file information and generates a builder
          for it.
          
          :param      filename | <str>
          
          :return     <Builder> || None