7. A method of parsing a plurality of portions of a hierarchically organized data document in parallel, comprising: providing a hierarchical skeleton of the data document, the hierarchical skeleton representing a hierarchical arrangement of data document elements, wherein at least one node of the hierarchical skeleton has a plurality of subtrees; providing a plurality of processors, each processor executing in parallel; automatically allocating to the plurality of processors respective tasks, each task representing a parsing operation on an element of the data document selected in dependence on the hierarchical skeleton; generating a set of tasks by iteratively removing a remaining branch of the hierarchical skeleton which represents a largest task, and elevating the root of the subtree represented by the largest task to a next higher level, wherein a sufficient number of tasks is generated to permit efficient balancing, wherein an assignment of tasks to respective processors is balanced; and automatically generating a data structure or procedural function calls representing the parsed data structure elements.
7. A method of parsing a plurality of portions of a hierarchically organized data document in parallel, comprising: providing a hierarchical skeleton of the data document, the hierarchical skeleton representing a hierarchical arrangement of data document elements, wherein at least one node of the hierarchical skeleton has a plurality of subtrees; providing a plurality of processors, each processor executing in parallel; automatically allocating to the plurality of processors respective tasks, each task representing a parsing operation on an element of the data document selected in dependence on the hierarchical skeleton; generating a set of tasks by iteratively removing a remaining branch of the hierarchical skeleton which represents a largest task, and elevating the root of the subtree represented by the largest task to a next higher level, wherein a sufficient number of tasks is generated to permit efficient balancing, wherein an assignment of tasks to respective processors is balanced; and automatically generating a data structure or procedural function calls representing the parsed data structure elements. 15. The method according to claim 7 , wherein said generating a data structure or procedural function calls comprises maintaining ordering, and eliminating race conditions by inserting placeholder nodes within an interim data structure, and thereafter removing the placeholder nodes when no longer required.