code: private void processStartTag(final StartElement paramElem) throws IOException, XMLStreamException,
          TTException {
          assert paramElem != null;
  
          // Initialize variables.
          initializeVars();
  
          // Main algorithm to determine if same, insert or a delete has to be
          // made.
          algorithm(paramElem);
  
          if (mFound && mIsRightSibling) {
              mDelete = EDelete.ATSTARTMIDDLE;
              deleteNode();
          } else if (!mFound) {
              // Increment levels.
              mLevelInToShredder++;
  
              insertElementNode(paramElem);
          } else if (mFound) {
              // Increment levels.
              mLevelInToShredder++;
  
              sameElementNode();
          }
      }
docs: Process start tag.
  
  @param paramElem
  {@link StartElement} currently parsed.
  @throws XMLStreamException
  In case of any StAX parsing error.
  @throws IOException
  In case of any I/O error.
  @throws TTException
  In case of any Treetank error.