Class XMLProfiler

  • All Implemented Interfaces:
    java.io.Serializable, Parser

    public class XMLProfiler
    extends AbstractParser

    This parser enables profiling of XML. It captures the root entity as well as entity uris/namespaces and entity local names in parallel arrays.

    This parser is not part of the default set of parsers and must be "turned on" via a tika config: <properties> <parsers> <parser class="org.apache.tika.parser.DefaultParser"/> <parser class="org.apache.tika.parser.xml.XMLProfiler"/> </parsers> </properties>

    This was initially designed to profile xmp and xfa in PDFs. Further work would need to be done to extract other types of xml and/or xmp in other file formats. Please open a ticket.

    See Also:
    Serialized Form
    • Field Detail

      • ROOT_ENTITY

        public static Property ROOT_ENTITY
      • ENTITY_URIS

        public static Property ENTITY_URIS
      • ENTITY_LOCAL_NAMES

        public static Property ENTITY_LOCAL_NAMES
    • Constructor Detail

      • XMLProfiler

        public XMLProfiler()
    • Method Detail

      • getSupportedTypes

        public java.util.Set<MediaType> getSupportedTypes​(ParseContext context)
        Description copied from interface: Parser
        Returns the set of media types supported by this parser when used with the given parse context.
        Parameters:
        context - parse context
        Returns:
        immutable set of media types
      • parse

        public void parse​(java.io.InputStream stream,
                          org.xml.sax.ContentHandler handler,
                          Metadata metadata,
                          ParseContext context)
                   throws java.io.IOException,
                          org.xml.sax.SAXException,
                          TikaException
        Description copied from interface: Parser
        Parses a document stream into a sequence of XHTML SAX events. Fills in related document metadata in the given metadata object.

        The given document stream is consumed but not closed by this method. The responsibility to close the stream remains on the caller.

        Information about the parsing context can be passed in the context parameter. See the parser implementations for the kinds of context information they expect.

        Parameters:
        stream - the document stream (input)
        handler - handler for the XHTML SAX events (output)
        metadata - document metadata (input and output)
        context - parse context
        Throws:
        java.io.IOException - if the document stream could not be read
        org.xml.sax.SAXException - if the SAX events could not be processed
        TikaException - if the document could not be parsed