Topic naming
Consider the following restrictions when deciding on your topic names.
Restricted characters
A topic name can be made up of one or more Unicode characters but must not contain any of the restricted characters mentioned below. The topic path is made up of the names of all topics in its path separated by the slash character (/).
The slash character (/) and the exclamation mark (!) are not permitted in any topic names.
Classic API restricted characters
In addition to the slash character (/) and the exclamation mark (!), which are restricted in all topic names, the following characters are not permitted in topic names for topics that are accessed by any clients that use the Classic API (deprecated):
Character | Reason for restriction |
---|---|
[]\^$.|?*+() | These are all metacharacters used in regular expressions. Any topic String that contains any of these characters is assumed to be a topic selector. These characters cannot be used in topic names. |
Control/Reserved | No characters with a hexadecimal value of less than 0x2D. This includes some punctuation characters such as comma (,). |
Whitespace | No characters defined as whitespace in Java™ (as indicated by the isWhiteSpace method of the Java Character class). |
Reserved spaces
The Diffusion branch and the @ branch of the topic tree are reserved for internal use.
Recommendations
Although all Unicode characters (other than the restricted ones mentioned above) are supported to allow for language variations it is highly recommended that only alphanumeric characters are ever used in topic names. Hyphen (-) or underscore (_) can be used as break characters.