1. A markup language parser that processes markup language data and provides processed data to an application, comprising: a reader configured to tokenize the markup language data and store resulting tokens in a buffer associated with the reader; a scanner configured to create string objects based on the tokens and to provide the created string objects to an application, wherein the scanner is further configured to determine a need by the application for the string objects; and for each at least some of the string objects created by the scanner, the scanner is configured to selectively create those string objects based on a determination of the need by the application for the string objects.