I see some curious design choices in the PullPaser?. For example, localName and prefix are set to null in the doEndEmptyElement and yet rawValue is never set to null. It just gets carried along for the ride from the last node with data.
Shouldn't a great many things be set to null at the top of the next method? I understand that the element name on doEndEmptyElement was just seen on the previous StartElement?, but it might be nice to keep the name around until the next iteration so that higher level parsers based on PullParser? don't have to keep track of it. I also understand that no one should be looking at the rawValue on doEndEmptyElement but wouldn't it be nice to set it to null so that no one gets confused and considers the value of the previous node to be the value of the current empty element?
This same scenario plays out with attribute values and data values and I expect a few other situations.