2.2.1 Query Strings
The query string in the protocol is used for querying for subscriptions, querying for events, and specifying filtering criteria. The following is the Augmented Backus-Naur Form (ABNF) [RFC4234] syntax for the protocol query string.
-
QUERY = "ALL" / (OREXPRESSION) OREXPRESSION = (ANDEXPRESSION OREXPRTAIL) / (ANDEXPRESSION) OREXPRTAIL = (OROPERATOR ANDEXPRESSION OREXPRTAIL) / (OROPERATOR ANDEXPRESSION) ANDEXPRESSION = (UNARYEXPRESSION ANDEXPRTAIL) / (UNARYEXPRESSION) ANDEXPRTAIL = (ANDOPERATOR UNARYEXPRESSION ANDEXPRTAIL) / (ANDOPERATOR UNARYEXPRESSION) ANDOPERATOR = "&" / "AND" OROPERATOR = "|" / "OR" UNARYEXPRESSION =(NOTOPERATOR UNARYEXPRESSION) / (COMPARISONEXPRESSION) NOTOPERATOR = "!" / "~" / "NOT" COMPARISONEXPRESSION = (COLUMNID COMPARISONOPERATOR COMPERAND) / ("("OREXPRESSION")") COMPARISONOPERATOR = "=" / "==" / "!=" / "~=" / "<>" COMPERAND = (CONSTANT) / (OPENPAREN CHOICE CLOSEPAREN) CHOICE = (CONSTANT MORECHOICES) / (CONSTANT) MORECHOICES = (ANDOROPERATOR CONSTANT MORECHOICES) / (ANDOROPERATOR CONSTANT) ANDOROPERATOR = (ANDOPERATOR) / (OROPERATOR) CONSTANT = (SINGLEQUOTE STRINGVALUE SINGLEQUOTE)/ (DQUOTE STRINGVALUE DQUOTE) / (OPENCURLY UUID CLOSECURLY) / (INTEGERVALUE) / "TRUE" / "FALSE" / "NULL" STRINGVALUE= 1*ALPHA INTEGERVALUE = ["-" / "+"] 1*DIGIT COLUMNID = KNOWNCOLUMNID / 1*ALPHA KNOWNCOLUMNID = "EVENTCLASSID" / "EVENTCLASSNAME" / "OWNERSID" / "FIRINGINTERFACEIID" / "CUSTOMCONFIGCLASSID" / "DESCRIPTION" / "TYPELIB" / "MULTIINTERFACEPUBLISHERFILTERCLSID" / "ALLOWINPROCACTIVATION" / "FIREINPARALLEL" / "EVENTCLASSPARTITIONID" / "EVENTCLASSAPPLICATIONID" / "SUBSCRIPTIONID" / "SUBSCRIPTIONNAME" / "PUBLISHERID" / "SUBSCRIBERCLSID" / "PERUSER" / "OWNERSID" / "ENABLED" / "MACHINENAME" / "INTERFACEID" / "FILTERCRITERIA" / "SUBSCRIBERMONIKER" / "SUBSCRIBERPARTITIONID" / SUBSCRIBERAPPLICATIONID" OPENPAREN = "(" CLOSEPAREN = ")" SINGLEQUOTE = "'" OPENCURLY = "{" CLOSECURLY = "}"
DIGIT, DQUOTE, and ALPHA are as specified in [RFC4234] appendix B.
UUID represents the string form of a UUID as specified in [RFC4122] section 3.
Each KNOWNCOLUMNID maps to a property of an event class or a subscription property.<1> These are specified in section 3.1.1.1 and section 3.1.1.2.