private void setPropertyValue(String s) throws SQLException {
    // find out if we are going to be dealing with a null
    boolean nullValue = getNullValue();

    switch (getTag()) {
      case CommandTag:
        if (nullValue) ; // rs.setCommand(null);
        else rs.setCommand(s);
        break;
      case ConcurrencyTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setConcurrency(getIntegerValue(s));
        break;
      case DatasourceTag:
        if (nullValue) rs.setDataSourceName(null);
        else rs.setDataSourceName(s);
        break;
      case EscapeProcessingTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setEscapeProcessing(getBooleanValue(s));
        break;
      case FetchDirectionTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setFetchDirection(getIntegerValue(s));
        break;
      case FetchSizeTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setFetchSize(getIntegerValue(s));
        break;
      case IsolationLevelTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setTransactionIsolation(getIntegerValue(s));
        break;
      case KeycolsTag:
        break;
      case PropColumnTag:
        if (keyCols == null) keyCols = new Vector<>();
        keyCols.add(s);
        break;
      case MapTag:
        break;
      case MaxFieldSizeTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setMaxFieldSize(getIntegerValue(s));
        break;
      case MaxRowsTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setMaxRows(getIntegerValue(s));
        break;
      case QueryTimeoutTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setQueryTimeout(getIntegerValue(s));
        break;
      case ReadOnlyTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setReadOnly(getBooleanValue(s));
        break;
      case RowsetTypeTag:
        if (nullValue) {
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        } else {
          // rs.setType(getIntegerValue(s));
          String strType = getStringValue(s);
          int iType = 0;

          if (strType.trim().equals("ResultSet.TYPE_SCROLL_INSENSITIVE")) {
            iType = 1004;
          } else if (strType.trim().equals("ResultSet.TYPE_SCROLL_SENSITIVE")) {
            iType = 1005;
          } else if (strType.trim().equals("ResultSet.TYPE_FORWARD_ONLY")) {
            iType = 1003;
          }
          rs.setType(iType);
        }
        break;
      case ShowDeletedTag:
        if (nullValue)
          throw new SQLException(resBundle.handleGetObject("xmlrch.badvalue").toString());
        else rs.setShowDeleted(getBooleanValue(s));
        break;
      case TableNameTag:
        if (nullValue)
          // rs.setTableName(null);
          ;
        else rs.setTableName(s);
        break;
      case UrlTag:
        if (nullValue) rs.setUrl(null);
        else rs.setUrl(s);
        break;
      case SyncProviderNameTag:
        if (nullValue) {
          rs.setSyncProvider(null);
        } else {
          String str = s.substring(0, s.indexOf("@") + 1);
          rs.setSyncProvider(str);
        }
        break;
      case SyncProviderVendorTag:
        // to be implemented
        break;
      case SyncProviderVersionTag:
        // to be implemented
        break;
      case SyncProviderGradeTag:
        // to be implemented
        break;
      case DataSourceLock:
        // to be implemented
        break;
      default:
        break;
    }
  }