private void recordHavingSeenXmlContent() throws SAXException {
        // This is an xml element inside the <value></value> element so we need to treat it as XML content
        // and delegate to the fastinfoset content handler to serialise it.
        if (insideValueElement && !haveSeenXmlInValueElement) {
            // This is the first startElement inside the value element so we are dealing with XML refdata
            haveSeenXmlInValueElement = true;
            if (LOGGER.isTraceEnabled()) {
                LOGGER.trace("================================================");
                LOGGER.trace("Start of value XML fragment");
                LOGGER.trace("saxDocumentSerializer - reset()");
            }
            fastInfoSetStartDocumentIfNeeded();
        }
    }
This method looks for a post processing function. If it finds one it does
not output the element. Instead it stores data about the function and
sets a flag so that the function can be performed when the corresponding
end element is reached.

@param uri       The element's Namespace URI, or the empty string.
@param localName The element's local name, or the empty string.
@param qName     The element's qualified (prefixed) name, or the empty string.
@param atts      The element's attributes.
@throws SAXException The client may throw an exception during processing.
@see stroom.pipeline.filter.AbstractXMLFilter#startElement(String,
String, String, Attributes)
stroom-state/stroom-state-impl/src/main/java/stroom/state/impl/pipeline/StateFilter.java