docs: def get_view_root(view_name: str) -> XmlNode:
      '''Parses xml file and return root XmlNode'''
      try:
          path = join(deps.views_folder, '{0}.{1}'.format(view_name, deps.view_ext))
          parser = Parser()
          if path not in _XML_CACHE:
              with open(path, 'rb') as xml_file:
                  _XML_CACHE[path] = parser.parse(xml_file, view_name)
          return _XML_CACHE[path]
      except FileNotFoundError as error:
          error = ViewError('View is not found')
          error.add_info('View name', view_name)
          error.add_info('Path', path)
          raise error
      except CoreError as error:
          error.add_view_info(ViewInfo(view_name, None))
          raise
      except:
          info = exc_info()
          error = ViewError('Unknown error occured during parsing xml', ViewInfo(view_name, None))
          error.add_cause(info[1])
          raise error from info[1]