トピックでの特殊文字

トピックには、ユニコード文字セットのどの文字でも含めることができます。 ただし、次の 3 つの文字には特殊な意味があります。
  • トピック・レベルのセパレーター "/"
  • マルチレベル・ワイルドカード "#"
  • 単一レベル・ワイルドカード "+"

トピック・レベルのセパレーター は、構造体をトピックに紹介するのに使用されるため、その目的のトピックで指定することが可能です。

マルチレベル・ワイルドカード および 単一レベル・ワイルドカード はサブスクリプションに使用できますが、 メッセージのパブリッシャーがトピック内で使用することはできません。

ただし、パブリッシャーがトピック内の任意のトピック・レベルで、文字 "+" または "#" を他の文字と同時に使用する場合には、これらの文字はワイルドカードとして扱われず、特殊な意味もありません。

トピック・レベルのセパレーター

トピック・レベルのセパレーター 文字 "/" は、トピック・スペースに階層構造を規定するために使用されます。トピック・ツリー内のレベルを分離するために、アプリケーションが使用するべきです。 トピック・レベルのセパレーター の使用は、サブスクライバーが指定するトピックで、2 つのワイルドカード文字が出てくる場合に有効です。

トピック階層は、アクセス制御の管理において重要です。

マルチレベル・ワイルドカード

マルチレベル・ワイルドカード文字 "#" は、トピック内で、どんな数のレベルとも一致させるのに使用します。 例えば、上記のトピック・ツリーの例を使用すると、 "USA/Alaska/#" にサブスクライブすると、トピック "USA/Alaska" および "USA/Alaska/Juneau" に関するメッセージを受け取ることになります。

マルチレベル・ワイルドカード は、ゼロ以上のレベルを表すことができます。 したがって、"USA/#" には "USA" だけの場合も含まれます。# がゼロ・レベルも表すためです。 分離するレベルがないので、トピック・レベルのセパレーター はこのコンテキストでは意味がありません。

マルチレベル・ワイルドカード は、トピック・レベルのセパレーター 文字自体、およびその隣の文字でのみ指定できます。 したがって "#" と "USA/#" は有効なトピックであり、ここでは "#" 文字がワイルドカードとして扱われます。 "USA#" も有効なトピックですが、"#" 文字はワイルドカードとみなされず、特殊な意味はありません。 詳しくは、ワイルドカードがワイルドでない場合を参照してください。

単一レベル・ワイルドカード

単一レベルのワイルドカード文字 "+" は、1 つのトピック・レベルにのみ一致します。 例えば、"USA/+" は、"USA/Alabama" と一致しますが、"USA/Alabama/Auburn" とは一致しません。 また、単一レベル・ワイルドカード は単一レベルとのみ一致するため、"USA/+" は "USA" とは一致しません。

単一レベル・ワイルドカード は、トピック・ツリーのどのレベルでも、マルチレベル・ワイルドカード と組み合わせて使用することができます。 単一レベル・ワイルドカード は、トピック・レベルのセパレーター 文字自体で指定される以外は、その隣に指定する必要があります。 したがって "+" と "USA/+" は有効なトピックであり、ここでは "+" 文字がワイルドカードとして扱われます。 "USA+" も有効なトピックですが、"+" 文字はワイルドカードとみなされず、特殊な意味はありません。 詳しくは、ワイルドカードがワイルドでない場合を参照してください。

ワイルドカードがワイルドでない場合

ワイルドカード文字 "+" と "#" は、トピック・レベル内で他の文字 ("+" と "#" 自体も含む) と混合している場合には、特殊な意味はありません。

つまりトピック・レベル内で "+" または "#" を他の文字と同時に含むトピックは、パブリッシュできる、という意味です。

例えば、以下の 2 つのトピックについて考えてみましょう。

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

最初の例では、文字 "+" と "#" はワイルドカードとして扱われるので、パブリッシュされるトピック内では無効です。

2 番目の例では、文字 "+" と "#" はワイルドカードとして扱われないので、トピックはパブリッシュすることもサブスクライブすることもできます。

関連概念
トピック
特記事項 | 商標 | ダウンロード | ライブラリー | サポート | フィードバック
Copyright IBM Corporation 1999, 2006 最終更新: 08/21/2006
aq13290_