主题名称和通配符在主题表达式中的用法
可在主题表达式中使用通配符来检索缺省消息传递提供程序和服务集成技术提供的主题。
每个预订请求包括一个主题表达式,该主题表达式标识要与预订关联的一个或多个主题以及哪个请求用于匹配入局消息。
用于缺省消息传递提供程序和服务集成技术的预订主题表达式基于 XPath 位置路径语法的子集。
标识各个主题
主题空间中的每个主题都具有一个主题名称,该主题名称由一个或多个用 /(正斜杠)字符分隔的名称部分组成:
Topic name = name_part | (name_part '/' topic_name)
使用通配符标识多个主题
要在主题空间中选择一个或多个主题,可以使用主题路径,它是一个包含通配符的位置路径。通过将带有 <topicspace> 元素的 XPath 位置路径语法子集用作初始上下文节点对主题空间进行求值,使未使用通配符的主题路径看起来与主题名称完全相同。
可以将主题路径的语法概述为以下内容:
- 未包含 *(星号)、//(双正斜杠)或 .(句点)符号的主题路径正在请求与指定的主题名的完全匹配。
- *(星号)可用作通配符并与一个级别匹配(无论在该级别的名称部分的值是什么)
可在主题路径表达式中的任何部分使用 * 号,但是,如果它不在表达式的开头,那么在它前面必须使用一个 / 符号,如果它不在表达式的末尾,那么必须在其后加一个 /
- // 可用作通配符并且匹配 0 个级别或多个级别
除了表达式的末尾之外,// 可用于表达式中的任何位置。要匹配 0 个或多个级别,在表达式的末尾输入语法 //.(双斜杠点)来结束表达式。要匹配一个或多个级别,在末尾使用 //* (双斜杠星号)
主题路径一定不能包含两个以上连续的 / 符号。