The jabber:iq:browse namespace is relatively new and could almost be seen as a departure from the traditional namespaces found elsewhere in Jabber. While namespaces such as jabber:iq:agents and jabber:iq:register define very strict content using specific tag names, jabber:iq:browse allows a more free-form containment of information. Both forms of tight and loose namespaces have a place in Jabber.

The real world contains countless types and classifications of information far more than you could ever reasonably cover with a finite collection of namespaces. And even if you did, that coverage would be out of date as soon as it was completed. The Jabber concept of browsing, introduced in Chapter 2, is an approach to being able to classify and exchange information of all kinds without the definitions being previously cast in stone.

More or less any hierarchical information can be represented in the jabber:iq:browse namespace. It can be seen as an open-ended way of describing structures in an almost ad hoc way. That said, the namespace comes with some general rules and some predefined classifications.

Information represented and described in a jabber:iq:browse extension is subject to classification. This classification is in two levels: categories and subtypes. The category is used to define the general area or type of information being represented. The subtype gives a more specific definition of that category. Table 6-1 shows a list of initial categories.

Table 6-1. jabber:iq:browse ...

Get Programming Jabber now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.