1. A method for processing extensible markup language (XML) 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 XML constructs identified by the sequences of characters; operating a character provider in a character processor to provide characters from the character stream to the set of state machines; operating a primary state machine to control to control invocation of the respective construct state machines to process different types of XML constructs encountered during reception of the character stream of XML data; 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 having encoded items including type, length, value representations of the XML constructs and representative of the original stream of XML data.