docs: def fromxml(node):
          """Static method returning an MetaField instance (any subclass of AbstractMetaField) from the given XML description. Node can be a string or an etree._Element."""
          if not isinstance(node,ElementTree._Element): #pylint: disable=protected-access
              node = parsexmlstring(node)
          if node.tag.lower() != 'meta':
              raise Exception("Expected meta tag but got '" + node.tag + "' instead")
  
          key = node.attrib['id']
          if node.text:
              value = node.text
          else:
              value = None
          operator = 'set'
          if 'operator' in node.attrib:
              operator= node.attrib['operator']
          if operator == 'set':
              cls = SetMetaField
          elif operator == 'unset':
              cls = UnsetMetaField
          elif operator == 'copy':
              cls = CopyMetaField
          elif operator == 'parameter':
              cls = ParameterMetaField
          return cls(key, value)