code: private void readTag() throws XMLException, IOException {
  		try {
  			char c;
  			if ((c = stream.read()) == '!') {
  				readTagExclamation();
  			} else if (c == '?') {
  				readProcessingInstruction();
  			} else if (c == '/') {
  				readEndTag();
  			} else if (isNameStartChar(c)) {
  				readStartTag(c);
  			} else {
  				throw new XMLException(getPosition(), "Unexpected character", Character.valueOf(c));
  			}
  		} catch (EOFException e) {
  			throw new XMLException(getPosition(), new LocalizableString("lc.xml.error", "Unexpected end"),
  					new LocalizableString("lc.xml.error", "in XML document"));
  		}
  	}
docs: /* Private methods