I added code to detect unknown tags and throw an exception. I also provided a default implementation so tags are in the global scope by default.
This is the code almost verbatim from the NList project. This project is due for a major overhaul, but I don't know the order I will be breaking out NList in the upcoming weeks.