Description:
Splits an XML File into multiple separate FlowFiles, each comprising a child or descendant of the original root element
Tags:
xml, split
Properties:
In the list below, the names of required properties appear in bold. Any other properties (not in bold) are considered optional. The table also indicates any default values.
Display Name | API Name | Default Value | Allowable Values | Description |
---|
Split Depth | Split Depth | 1 | | Indicates the XML-nesting depth to start splitting XML fragments. A depth of 1 means split the root's children, whereas a depth of 2 means split the root's children's children and so forth. |
Relationships:
Name | Description |
---|
failure | If a FlowFile fails processing for any reason (for example, the FlowFile is not valid XML), it will be routed to this relationship |
original | The original FlowFile that was split into segments. If the FlowFile fails processing, nothing will be sent to this relationship |
split | All segments of the original FlowFile will be routed to this relationship |
Reads Attributes:
None specified.Writes Attributes:
Name | Description |
---|
fragment.identifier | All split FlowFiles produced from the same parent FlowFile will have the same randomly generated UUID added for this attribute |
fragment.index | A one-up number that indicates the ordering of the split FlowFiles that were created from a single parent FlowFile |
fragment.count | The number of split FlowFiles generated from the parent FlowFile |
segment.original.filename | The filename of the parent FlowFile |
State management:
This component does not store state.Restricted:
This component is not restricted.Input requirement:
This component requires an incoming relationship.System Resource Considerations:
Resource | Description |
---|
MEMORY | The entirety of the FlowFile's content (as a Document object) is read into memory, in addition to all of the generated FlowFiles representing the split XML. A Document object can take approximately 10 times as much memory as the size of the XML. For example, a 1 MB XML document may use 10 MB of memory. If many splits are generated due to the size of the XML, a two-phase approach may be necessary to avoid excessive use of memory. |