Topic names and use of wildcard characters in topic expressions
Wildcard characters can be used in topic expressions to retrieve topics provided by the default messaging provider and service integration technologies.
Each subscribe request includes a topic expression that identifies one or more topics that the subscription is to be associated with, and that the request uses to match against incoming messages.
Subscription topic expressions for the default messaging provider and service integration technologies are based on a subset of the XPath location path syntax.
Identifying individual topics
Every topic in a topic space has a topic name consisting of one or more name parts, separated by / (forward slash) characters:
Topic name = name_part | (name_part '/' topic_name)
Use wildcards to identify multiple topics
To select one or more topics in a topic space, we can use a topic path, a location path containing wildcard characters. Topic spaces are evaluated using a subset of the XPath location path syntax with the <topicspace> element as the initial context node, so that non-wildcarded topic paths look exactly like topic names.
The syntax for topic paths can be summarized as follows:
- A topic path containing no * (asterisk), // (double forward slash), or . (dot) symbols is asking for an exact match with the topic name specified.
- A * (asterisk) can be used as a wild card and matches one level (regardless of the value of the name part at that level)
A * can be used anywhere in a topic path expression, but if it is not at the start it must be preceded by a /, and if it is not at the end it must be followed by a /
- // can be used as a wild card and matches 0 or more levels
A // can be used anywhere in the expression except at the end. To match 0 or more levels at the end of the expression you end the expression with the syntax //. (double-slash dot). To match one or more levels at the end use //* (double-slash asterisk)
A topic path must not contain more than two consecutive / symbols.