code: def parse(self):
      
      import xml.etree.ElementTree as ET
  
      root = ET.fromstring(self._xml_db_str)
      # The structure is something like this:
      # <Areas>
      #   <Area ...>
      #     <DeviceGroups ...>
      #     <Scenes ...>
      #     <ShadeGroups ...>
      #     <Outputs ...>
      #     <Areas ...>
      #       <Area ...>
  
      # First area is useless, it's the top-level project area that defines the
      # "house". It contains the real nested Areas tree, which is the one we want.
      top_area = root.find('Areas').find('Area')
      self.project_name = top_area.get('Name')
      areas = top_area.find('Areas')
      for area_xml in areas.getiterator('Area'):
        area = self._parse_area(area_xml)
        self.areas.append(area)      
      return True
docs: Main entrypoint into the parser. It interprets and creates all the
      relevant Lutron objects and stuffs them into the appropriate hierarchy.