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-bindinglegacy-amqp-topic-bindinglegacy-amqp-headers-bindingselector-filterxquery-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.