code: def load(filename):
          
          # parse a zipped file
          if zipfile.is_zipfile(filename):
              zfile = zipfile.ZipFile(filename, 'r')
              try:
                  xml = ElementTree.fromstring(zfile.read('scaffold.xml'))
              except StandardError:
                  logger.exception('Failed to load scaffold: {0}'.format(filename))
                  zfile.close()
                  return None
              zfile.close()
  
          # parse a standard xml file
          else:
              try:
                  xml = ElementTree.parse(filename).getroot()
              except StandardError:
                  logger.exception('Failed to load scaffold: {0}'.format(filename))
                  return None
  
          # generate a scaffold
          scaffold = Scaffold()
          scaffold.setSource(filename)
          scaffold.setName(xml.get('name', 'Missing'))
          scaffold.setGroup(xml.get('group', 'Default'))
          scaffold.setLanguage(xml.get('lang', 'Python'))
          scaffold.setIcon(xml.get('icon', ''))
  
          # define properties
          xprops = xml.find('properties')
          if xprops is not None:
              for xprop in xprops:
                  scaffold.addProperty(Property.fromXml(xprop))
  
          return scaffold
docs: Loads the scaffold from the given XML file.
          
          :param      filename | <str>
          
          :return     <Scaffold> || None