Some dataset items must be held in memory as context to read future tags/values properly. But, we can have an option where only the essential tags are held in memory, and if you're using incremental parsing (Parser.Next()) you can process things 1 element at a time if appropriate for your use case.