A method for generating a data parser for parsing an input stream of data objects, the method including: receiving information representative of a hierarchical data format, the hierarchical data format defining a plurality of objects organized in a hierarchy, wherein the information representative of the hierarchical data format includes a tree representation of the hierarchical data format including a plurality of nodes interconnected by a plurality of edges with each of the plurality of nodes representing one of the plurality of objects defined by the hierarchical data format, the objects including: one or more schema objects representing data objects, a schema object being any element of a defined schema that is used to represent a group of related data objects; and one or more container objects, a container object being an object containing one or more objects; and the method further including processing the received information to form the data parser, the processing including: determining permissible transitions between successive data objects in the input stream, based on the structure of the hierarchy; associating one or more data operations with each of the determined permissible transitions, the one or more data operations being operable to process data values in data objects and store the results; and storing a specification for configuring a processor to execute the data parser to: recognize a permissible transition between a first data object and a second data object in the input stream, and perform a data operation associated with the recognized transition on a data value within the second data object; wherein: the data operation associated with the recognized transition on a data value within the second object is based at least in part on a context associated with one or more previously recognized transitions, wherein the context associated with one or more previously recognized transitions corresponds to a position in the tree representation of the hierarchical data format. receiving information representative of a hierarchical data format, the hierarchical data format defining a plurality of objects organized in a hierarchy, wherein the information representative of the hierarchical data format includes a tree representation of the hierarchical data format including a plurality of nodes interconnected by a plurality of edges with each of the plurality of nodes representing one of the plurality of objects defined by the hierarchical data format, the objects including: one or more schema objects representing data objects, a schema object being any element of a defined schema that is used to represent a group of related data objects; and one or more container objects, a container object being an object containing one or more objects; and one or more schema objects representing data objects, a schema object being any element of a defined schema that is used to represent a group of related data objects; and one or more container objects, a container object being an object containing one or more objects; and the method further including processing the received information to form the data parser, the processing including: determining permissible transitions between successive data objects in the input stream, based on the structure of the hierarchy; associating one or more data operations with each of the determined permissible transitions, the one or more data operations being operable to process data values in data objects and store the results; and storing a specification for configuring a processor to execute the data parser to: recognize a permissible transition between a first data object and a second data object in the input stream, and perform a data operation associated with the recognized transition on a data value within the second data object; wherein: the data operation associated with the recognized transition on a data value within the second object is based at least in part on a context associated with one or more previously recognized transitions, wherein the context associated with one or more previously recognized transitions corresponds to a position in the tree representation of the hierarchical data format. determining permissible transitions between successive data objects in the input stream, based on the structure of the hierarchy; associating one or more data operations with each of the determined permissible transitions, the one or more data operations being operable to process data values in data objects and store the results; and storing a specification for configuring a processor to execute the data parser to: recognize a permissible transition between a first data object and a second data object in the input stream, and perform a data operation associated with the recognized transition on a data value within the second data object;