docs: def parse(cls, resource, parent=None):
          """ Parse a textgroup resource
  
          :param resource: Element representing the textgroup
          :param parent: Parent of the textgroup
          :param _cls_dict: Dictionary of classes to generate subclasses
          """
          xml = xmlparser(resource)
          o = cls(urn=xml.get("urn"), parent=parent)
  
          for child in xml.xpath("ti:groupname", namespaces=XPATH_NAMESPACES):
              lg = child.get("{http://www.w3.org/XML/1998/namespace}lang")
              if lg is not None:
                  o.set_cts_property("groupname", child.text, lg)
  
          # Parse Works
          _xpathDict(xml=xml, xpath='ti:work', cls=cls.CLASS_WORK, parent=o)
  
          _parse_structured_metadata(o, xml)
          return o