主题中的特殊字符

主题可以包含 Unicode 字符集中的任何字符。 但是,下列三个字符有特殊含义:
  • 主题级别分隔符“/”。
  • 多级通配符“#”。
  • 单级通配符“+”。

主题级别分隔符用于将结构引入主题,从而可在主题中进行指定以实现该目的。

多级通配符单级通配符可以用于预订,但是不能在主题中由消息的发布程序使用。

但是,如果发布程序将“+”或“#”字符与其他字符一起用于主题中的任何主题级别,这些字符不会被视为通配符,且不具任何特殊含义。

主题级别分隔符

主题级别分隔符字符“/”用于为主题空间提供分层结构。它必须由应用程序使用以分隔主题树内的级别。 当在订户指定的主题中出现两个通配符时,使用主题级别分隔符具有非常重要的意义。

主题层次结构在访问控制管理中很重要。

多级通配符

多点传送通配符“#”用于匹配主题内的任何级别数。例如,使用上述示例主题树,如果预订“USA/Alaska/#”,您将收到有关“USA/Alaska”和“USA/Alaska/Juneau”主题的消息。

多级通配符可以代表零个或更多级别。因此,“USA/#”还可以与单独的“USA”匹配,其中 # 表示零个级别。主题级别分隔符在此环境中没有意义,因为没有要分隔的级别。

只能指定独立使用多级通配符,或将其指定在主题级别分隔符字符旁。因此,“#”和“USA/#”为有效主题 ,其中“#”字符被视为通配符。虽然“USA#”也是有效主题,但“#”字符不被视为通配符,并且不具有任何特殊意义。请参阅当通配符不通配时获取更多信息。

单级通配符

单一级别通配符“+”与一个且只有一个主题级别匹配。例如,“USA/+”与“USA/Alabama”匹配,但与“USA/Alabama/Auburn”不匹配。同时,因为单级通配符仅与单一级别匹配,因此“USA/+”与“USA”不匹配。

单级通配符能在主题树中的任何级别使用,并可与多级通配符一起使用。除非指定了独立使用单级通配符,否则必须将其指定在主题级别分隔符旁。 因此,“+”和“USA/+”为有效主题,其中“+”字符被视为通配符。 虽然“USA+”也是有效主题,但“+”字符不被视为通配符,并且不具任何特殊意义。请参阅当通配符不通配时获取更多信息。

当通配符不通配时

当通配符“+”和“#”与其他字符(包括通配符)混合出现在主题级别中时,通配符不具任何特殊意义。

这表示主题级别中包含了“+”或“#”与其他字符的主题可以发布。

例如以下两个主题:

  1. level0/level1/+/level4/#
  2. level0/level1/#+/level4/level#

在第一个示例中,“+”和“#”字符被视为通配符,因此在要发布的主题中无效。

在第二个示例中,“+”和“#”字符不被视为通配符,因此可以发布和预订该主题。

相关概念
主题
相关参考
主题语义和用法
声明 | 商标 | 下载 | 书库 | 支持 | 反馈
Copyright IBM Corporation 1999, 2006 最后一次更新时间:2006/08/14
aq13290_