Wiki source for CommandXsplit


Show raw source

======Command xsplit======

====Name====
**xsplit** Splits an xml file into multiple files

====Synopsis====
xsplit [ [[SerializationOptions serialization options]] ] [options] [file]

====Description====
Splits a single xml file into multiple xml files.

====Options====
||-w,-wrap string||Wraps each xml file with an element named "string"||
||-w,-wrap element||Wraps each xml file with the specified element||
||-c,-children children||Number of child elements to put in each file (default=1)||
||-n,-nowrap||No not wrap a root element around each element||
||-p,-prefix prefix|| Prefix string to use for creating filename. (default="x")||
||-s,-suffix suffix|| Suffix string to use for creating filename. (default="")||
||-e,-ext ext|| Extension to use for creating filename. (default=".xml")||
||-o,output dir|| Output to direcotry (default=".")||
||-nopi||Do not output processing instructions in split files||
||-nodtd||Do not output DTD instructions in split files||
||-l,-list listfile||output each output filename to listfile as it is written||
||-stream port||Instead of writing files, stream each document to the specified port||


Supports the standard [ [[SerializationOptions serialization options]] ]


If no files are specified, then stdin is read.
If a -w argument is given the output files are wrapped with the supplied container element instead of the root element of the input.

Output files are created by reading up to the root element, and replicating that markup including either the root element,
the wrap element or no root element, then for each (n) child element(s) of the root creating a new xml file with the common header
elements.

If the -n flag is used (do not wrap children) then "-c 1" is presumed. Namespace nodes, if any, from the root element will be copied to each child element which will become the document root of each split file.

Implementation Note: xsplit is designed to work with large files. All processing is done in streaming mode on both input and output. This means xsplit can split up files with input *and output* exceed available memory. The side effect is that the options are limited. Arbitrary xpath expressions cannot be used to determine the split points or output files names. Consider combining with the [[CommandXQuery xquery]] or [[CommandXmove xmove]] command to further split files or rename once they are manageable size, and with [[CommandXmove xmove]] to rename the files to a more usable name based on information within the resulting file.

----
[[Commands]]
[[CategoryCommands]]
Valid XHTML :: Valid CSS: :: Powered by WikkaWiki