トピックでの特殊文字

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

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

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

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

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

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

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

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

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

マルチレベル・ワイルドカード は、トピック・レベルのセパレーター 文字自体、およびその隣の文字でのみ指定できます。 したがって、"#" と "USA/#" はいずれも有効ですが、"USA#" は無効です。

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

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

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

関連概念
トピック

関連資料
トピックのセマンティクスと使用法