The tree structure introduced in the CSV example can be configured according to FlatTree's XML configuration schema http://flattree.sourceforge.net/schema/flattree-0.5.xsd :
<?xml version="1.0" encoding="UTF-8"?> <flattree xmlns="http://flattree.sourceforge.net/schema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://flattree.sourceforge.net/schema http://flattree.sourceforge.net/schema/flattree-0.5.xsd " > <delimited-node> <name>Header</name> <delimiter> </delimiter> <nodes> <delimited-node> <name>Row</name> <delimiter> </delimiter> <leaves> <delimited-leaf> <name>Version</name> <delimiter>,</delimiter> </delimited-leaf> <escaped-delimited-leaf> <name>Release date</name> <delimiter>,</delimiter> <escape>\</escape> </escaped-delimited-leaf> <quoted-delimited-leaf> <name>Codename</name> <delimiter>,</delimiter> <quote-required>true</quote-required> </quoted-delimited-leaf> </leaves> </delimited-node> <delimited-node> <name>Unknown</name> <delimiter> </delimiter> </delimited-node> </nodes> </delimited-node> </flattree>
Reading a tree configuration with flattree.config.FlatTree :
public Node readTree(InputStream input) throws IOException { return new FlatTree(input).getRoot(); }