private void scanSomeTag(boolean allowCDATA, String defaultNamespace, Properties namespaces) throws Exception {
    String str = XMLUtil.read(reader, '&');
    char ch = str.charAt(0);

    if (ch == '&') {
      XMLUtil.errorUnexpectedEntity(reader.getSystemID(), reader.getLineNr(), str);
    }

    switch (ch) {
      case '?':
        processPI();
        break;

      case '!':
        processSpecialTag(allowCDATA);
        break;

      default:
        reader.unread(ch);
        processElement(defaultNamespace, namespaces);
    }
  }
private void scanSomeTag(boolean allowCDATA, String defaultNamespace, Properties namespaces)