11.5. アドレス文字列グラフ
トークン
以下の正規表現は、アドレス文字列の解析に使用されるトークンを定義します。
LBRACE: \\{ RBRACE: \\} LBRACK: \\[ RBRACK: \\] COLON: : SEMI: ; SLASH: / COMMA: , NUMBER: [+-]?[0-9]*\\.?[0-9]+ ID: [a-zA-Z_](?:[a-zA-Z0-9_-]*[a-zA-Z0-9_])? STRING: "(?:[^\\\\"]|\\\\.)*"|\'(?:[^\\\\\']|\\\\.)*\' ESC: \\\\[^ux]|\\\\x[0-9a-fA-F][0-9a-fA-F]|\\\\u[0-9a-fA-F][0-9a-fA-F][0-9a-fA-F][0-9a-fA-F] SYM: [.#*%@$^!+-] WSPACE: [ \\n\\r\\t]+
文法
アドレスの正式な文法は以下のとおりです。
address := name [ SLASH subject ] [ ";" options ] name := ( part | quoted )+ subject := ( part | quoted | SLASH )* quoted := STRING / ESC part := LBRACE / RBRACE / COLON / COMMA / NUMBER / ID / SYM options := map map := "{" ( keyval ( "," keyval )* )? "}" keyval "= ID ":" value value := NUMBER / STRING / ID / map / list list := "[" ( value ( "," value )* )? "]"
アドレス文字列のオプション
アドレス文字列オプションマップでは、以下のパラメーターがサポートされます。
AMQP 0-10
<name> [ / <subject> ] ; { create: always | sender | receiver | never, delete: always | sender | receiver | never, assert: always | sender | receiver | never, mode: browse | consume, node: { type: queue | topic, durable: True | False, x-declare: { ... <declare-overrides> ... }, x-bindings: [<binding_1>, ... <binding_n>] }, link: { name: <link-name>, durable: True | False, reliability: unreliable | at-most-once | at-least-once | exactly-once, x-declare: { ... <declare-overrides> ... }, x-bindings: [<binding_1>, ... <binding_n>], x-subscribe: { ... <subscribe-overrides> ... } } }
AMQP 1.0
<name> [ / <subject> ] ; { create: always | sender | receiver | never, assert: always | sender | receiver | never, mode: browse | consume, node: { type: queue | topic, durable: True | False, properties: { ... <nested-map> ... }[2], capabilities: [<capability_1>, ... <capability_n>] }, link: { name: <link-name>, durable: True | False, reliability: unreliable | at-most-once | at-least-once | exactly-once, filter: { name: <name>, descriptor: <filter-descriptor>, value: <filter-value> } } }
Create、Delete、および Assert ポリシー
( create
delete
AMQP 0-10 のみ)、および assert
ポリシーは、関連するアクションを実行するユーザーを指定します。
- Always
- アクションはすべてのメッセージングクライアントによって実行されます。
- sender
- アクションは送信元によってのみ実行されます。
- receiver
- アクションはレシーバーによってのみ実行されます。
- Never
- アクションは実行されない(デフォルト)。
node-Type
は以下の node-type
いずれかになります。
- トピック
- AMQP 0-10 マッピングでは、トピックノードはデフォルトでトピック交換に、x-declare を使用して他の交換タイプを指定できます。
- Queue
- これがデフォルトです。
node-type
フィルター記述子
以下の AMQP 1.0 フィルターは MRG 3 に実装されます。
legacy-amqp-direct-binding
legacy-amqp-topic-binding
legacy-amqp-headers-binding
selector-filter
xquery-filter
[2]
The use of new
properties
nested map is recommended. The x-declare
map is supported as a convenience and is automatically converted to a properties
map before sending to the broker.