docs: void processXmlRevision() throws XMLStreamException, MwDumpFormatException {
  
  		this.mwRevision.resetCurrentRevisionData();
  
  		this.xmlReader.next(); // skip current start tag
  		while (this.xmlReader.hasNext()) {
  			switch (this.xmlReader.getEventType()) {
  
  			case XMLStreamConstants.START_ELEMENT:
  				switch (this.xmlReader.getLocalName()) {
  				case MwRevisionDumpFileProcessor.E_REV_COMMENT:
  					this.mwRevision.comment = this.xmlReader.getElementText();
  					break;
  				case MwRevisionDumpFileProcessor.E_REV_TEXT:
  					this.mwRevision.text = this.xmlReader.getElementText();
  					break;
  				case MwRevisionDumpFileProcessor.E_REV_TIMESTAMP:
  					this.mwRevision.timeStamp = this.xmlReader.getElementText();
  					break;
  				case MwRevisionDumpFileProcessor.E_REV_FORMAT:
  					this.mwRevision.format = this.xmlReader.getElementText();
  					break;
  				case MwRevisionDumpFileProcessor.E_REV_MODEL:
  					this.mwRevision.model = this.xmlReader.getElementText();
  					break;
  				case MwRevisionDumpFileProcessor.E_REV_CONTRIBUTOR:
  					processXmlContributor();
  					break;
  				case MwRevisionDumpFileProcessor.E_REV_ID:
  					this.mwRevision.revisionId = Long.parseLong(this.xmlReader.getElementText());
  					break;
  				case MwRevisionDumpFileProcessor.E_REV_PARENT_ID:
  					this.mwRevision.parentRevisionId = Long.parseLong(this.xmlReader.getElementText());
  					break;
  				case MwRevisionDumpFileProcessor.E_REV_SHA1:
  				case MwRevisionDumpFileProcessor.E_REV_MINOR:
  					break;
  				default:
  					throw new MwDumpFormatException("Unexpected element \""
  							+ this.xmlReader.getLocalName() + "\" in revision.");
  				}
  
  				break;
  
  			case XMLStreamConstants.END_ELEMENT:
  				if (MwRevisionDumpFileProcessor.E_PAGE_REVISION
  						.equals(this.xmlReader.getLocalName())) {
  					this.mwRevisionProcessor.processRevision(this.mwRevision);
  					return;
  				}
  				break;
  			}
  
  			this.xmlReader.next();
  		}
  	}