@Override
    public void startElement(final String uri, final String localName, final String qName, final Attributes atts)
            throws SAXException {
        depth++;
        LOGGER.debug("Start Element: " + localName + ", Depth: " + depth + ": MergeStarted: " + mergeContainerStarted);

        if (depth == mergeDepth) {
            mergeContainerStarted = true;
            mergeContainerURI = uri;
            mergeContainerLocalName = localName;
            mergeContainerQName = qName;
            if (firstOccurrence) {
                super.startElement(uri, localName, qName, atts);
                firstOccurrence = false;
            }
        } else if (depth > mergeDepth && mergeContainerStarted) {
            LOGGER.debug("Merging Element: " + localName);
            super.startElement(uri, localName, qName, atts);
        } else {
            // there should be a case in here to handle when an Element == mergeDepth but != mergeContainerLocalName
            // TODO: Handle cases where there may be different elements at
            //  the same mergeDepth that we need to handle somehow
            super.startElement(uri, localName, qName, atts);
        }
    }
@param uri       the Namespace URI, or the empty string if the element has no
                 Namespace URI or if Namespace processing is not being
                 performed
@param localName the local name (without prefix), or the empty string if
                 Namespace processing is not being performed
@param qName     the qualified name (with prefix), or the empty string if
                 qualified names are not available
@param atts      the attributes attached to the element. If there are no
                 attributes, it shall be an empty Attributes object. The value
                 of this object after startElement returns is undefined
@throws org.xml.sax.SAXException any SAX exception, possibly wrapping another exception
@see #endElement
@see org.xml.sax.Attributes
@see org.xml.sax.helpers.AttributesImpl
@see stroom.pipeline.filter.AbstractXMLFilter#startElement(java.lang.String,
java.lang.String, java.lang.String, org.xml.sax.Attributes)
stroom-pipeline/src/main/java/stroom/pipeline/filter/MergeFilter.java