Class XmlStreamSplitterConfig

All Implemented Interfaces:
Labelable

public class XmlStreamSplitterConfig extends BaseDocumentSplitterConfig

Splits XML document on a specific element.

This class is suited for large XML documents. It will read the XML as a stream and split as it is read, preserving memory during parsing. For this reason, element matching is not as flexible as DOM-based XML parsers, such as DomSplitter, but is more efficient on large documents.

Element matching

To identify the element to split on, you give the full path to it from the document root, where each element is separated by a forward slash. Let's take this XML as an example:

 <animals>
   <species name="mouse">
     <animal>
       <name>Itchy</name>
       <race>cartoon</race>
     </animal>
   </species>
   <species name="cat">
     <animal>
       <name>Scratchy</name>
       <race>cartoon</race>
     </animal>
   </species>
 </animals>
 

To split on <animal>, you would use this path:

 /animals/species/animal
 

Should be used as a pre-parse handler.

Content-types

By default, this filter is restricted to (applies only to) documents matching the restrictions returned by CommonRestrictions.xmlContentTypes(String). You can specify your own restrictions to further narrow, or loosen what documents this splitter applies to.

See Also: