public void parse(InputStream file) throws IOException, TikaException {
        UnsynchronizedByteArrayOutputStream xmpraw = UnsynchronizedByteArrayOutputStream.builder().get();
        if (!scanner.parse(file, xmpraw)) {
            return;
        }

        XMPMetadata xmp = null;
        try (InputStream decoded = xmpraw.toInputStream()) {
            Document dom = XMLReaderUtils.buildDOM(decoded, EMPTY_PARSE_CONTEXT);
            if (dom != null) {
                xmp = new XMPMetadata(dom);
            }
        } catch (IOException | SAXException e) {
            //
        }
        extractDublinCore(xmp, metadata);
        extractXMPMM(xmp, metadata);
    }
@Test
    public void testModifiedTZ() throws Exception {
        Metadata m = new Metadata();
        JempboxExtractor ex = new JempboxExtractor(m);
        try (InputStream is = getResourceAsStream("/test-documents/testXMP.xmp")) {
            ex.parse(is);
        }
        assertEquals("2014-03-04T22:50:41Z", m.get(XMPMM.HISTORY_WHEN));
    }