for (Element child : ((ArrayValue)root.getValue()).getElements())
{
if (child.valueType == ValueType.ARRAY) {
innerT = new Table();
getFlatTable(child, innerT);
unionT.cartesianProductOrUnionIfSameHeaders(innerT);
}
}
if (unionT.getColumnsCount() > 0)
t.cartesianProductOrUnionIfSameHeaders(unionT);
}