A simple implementation of an XML lexer. It handles most cases. It is not a validating lexer, meaning it will happily process invalid XML without complaining.
Initialize the lexer.
Step through a single iteration of the tokenization process. This will yield (potentially) many tokens, and possibly zero tokens.
[Validate]