Kelly,
I used a similar approach to your XML idea, but I used a DataSet instead (which can be serialized to XML) ... the DataSet has one table that contains the following columns:
ColumnName
ColumnText
ColumnNumber
ColumnDate
AndOr
The ColumnName corresponds to the Database's column name. I have 3 columns for specifying the data ... string, numeric or date data ... it makes it easier to construct the SQL where clause that way. I use "=" in the SQL clause that I generate unless the data contains a wild-card and then I'll use a LIKE instead. I could have just as easily had another column containing the operator.
So, anyway, my approach is similar enough to yours that I'd say you're on the right track with that.
~~Bonnie