docs: protected void parseActivityInputOutput(Element activityElement, ActivityImpl activity) {
      Element extensionElements = activityElement.element("extensionElements");
      if (extensionElements != null) {
        IoMapping inputOutput = null;
        try {
          inputOutput = parseInputOutput(extensionElements);
        } catch (BpmnParseException e) {
          addError(e);
        }
  
        if (inputOutput != null) {
          if (checkActivityInputOutputSupported(activityElement, activity, inputOutput)) {
  
            activity.setIoMapping(inputOutput);
  
            if (getMultiInstanceScope(activity) == null) {
              // turn activity into a scope (->local, isolated scope for
              // variables) unless it is a multi instance activity, in that case
              // this
              // is not necessary because:
              // A scope is already created for the multi instance body which
              // isolates the local variables from other executions in the same
              // scope, and
              // * parallel: the individual concurrent executions are isolated
              // even if they are not scope themselves
              // * sequential: after each iteration local variables are purged
              activity.setScope(true);
            }
          }
        }
      }
    }