Namespace Usage
Chapter 5 frequently referred to namespaces. Jabber’s namespaces are used within the message elements to qualify payloads (distinct content) within these elements. For example:
RECV: <iq id='roster_0' type='result' from='dj@yak/Work'>
<query xmlns='jabber:iq:roster'>
<item jid='sabine@yak' name='sabine' subscription='both'>
<group>Family</group>
</item>
</query>
</iq>
Here the jabber:iq:roster namespace is
used to qualify a chunk of XML that contains roster information
embedded in an <iq/> element.
A payload exists as a subelement of the main element
(that is, a child tag of the parent
<message/>,
<presence/>, or
<iq/> tag) and, in
XML terms, belongs to a different namespace than the main element.
The namespace of the main
elements in the XML document that is streamed across the
connection—<message/>,
<presence/>, and
<iq/> and indeed their “standard”
subelements, such as <message/>’s
<subject/> tag—is defined in the
root tag of the XML document and in this case is
jabber:client. Namespaces like
jabber:client that are used to qualify
such XML document body fragments are described in
Section 5.3.2 in Chapter 5. While the main elements
in our client connection are qualified by
jabber:client, each
distinct payload (“attachment” is also a good way to think of
these additional chunks of XML) is qualified by one of the specific
namespaces listed in this chapter.
Standard Jabber namespaces begin
jabber:, with a few exceptions. It could be argued that the exceptions ...
Become an O’Reilly member and get unlimited access to this title plus top books and audiobooks from O’Reilly and nearly 200 top publishers, thousands of courses curated by job role, 150+ live events each month,
and much more.
Read now
Unlock full access