private String deserialise(final FastInfosetValue fastInfosetValue) {
        TestSAXEventFilter testSAXEventFilter = new TestSAXEventFilter();
        TestFilter testFilter = new TestFilter(new ErrorReceiverProxy(), new LocationFactoryProxy());
        testFilter.setContentHandler(new MyContentHandler());

        SAXDocumentParser saxDocumentParser = new SAXDocumentParser();
        // it may be possible to only deal with fragments but can't seem to serialise without calling startDocument
//        saxDocumentParser.setParseFragments(true);
        saxDocumentParser.setContentHandler(testSAXEventFilter);
        try {
            saxDocumentParser.parse(new ByteBufferInputStream(fastInfosetValue.getByteBuffer()));
        } catch (IOException | FastInfosetException | SAXException e) {
            throw new RuntimeException(e);
        }
        // flip the buffer now we have read it so it can be read again if required
        fastInfosetValue.getByteBuffer().flip();

        return testSAXEventFilter.getOutput();
    }
Consume the fastInfosetValue using the various classes used in ref data lookup
stroom-pipeline/src/test/java/stroom/pipeline/refdata/TestReferenceDataFilter.java