1. A method for processing markup language data, the method comprising: receiving a character stream of markup language data; applying sequences of characters of the character stream to a set of state machines, the set of state machines including a plurality of construct state machines responsible for processing respective markup language constructs identified by the sequences of characters; and producing, from application of the sequences of characters to the set of state machines, an intermediate representation of the markup language constructs identified by the sequence of characters of the character stream of markup language data, the intermediate representation containing encoded items representative of the original stream of markup language data.