code: def fromXML(self, name, attrs, content, ttFont):
      if name in ["ppem", "resolution"]:
          setattr(self, name, safeEval(attrs["value"]))
      elif name == "glyph":
          if "graphicType" in attrs:
              myFormat = safeEval("'''" + attrs["graphicType"] + "'''")
          else:
              myFormat = None
          if "glyphname" in attrs:
              myGlyphName = safeEval("'''" + attrs["glyphname"] + "'''")
          elif "name" in attrs:
              myGlyphName = safeEval("'''" + attrs["name"] + "'''")
          else:
              from fontTools import ttLib
  
              raise ttLib.TTLibError("Glyph must have a glyph name.")
          if "originOffsetX" in attrs:
              myOffsetX = safeEval(attrs["originOffsetX"])
          else:
              myOffsetX = 0
          if "originOffsetY" in attrs:
              myOffsetY = safeEval(attrs["originOffsetY"])
          else:
              myOffsetY = 0
          current_glyph = Glyph(
              glyphName=myGlyphName,
              graphicType=myFormat,
              originOffsetX=myOffsetX,
              originOffsetY=myOffsetY,
          )
          for element in content:
              if isinstance(element, tuple):
                  name, attrs, content = element
                  current_glyph.fromXML(name, attrs, content, ttFont)
                  current_glyph.compile(ttFont)
          self.glyphs[current_glyph.glyphName] = current_glyph
      else:
          from fontTools import ttLib
  
          raise ttLib.TTLibError("can't handle '%s' element" % name)
  
file_path: catboost/contrib/python/fonttools/fontTools/ttLib/tables/sbixStrike.py
imports: from fontTools.misc import sstruct
  from fontTools.misc.textTools import safeEval
  from .sbixGlyph import Glyph
  import struct
label_desc: Use image node_id 5 for calling the Strike obj's underlying member method code with example usage: obj.fromXML(name, attrs, content, ttFont) without return types