The jabber:iq:private namespace is the old way of storing any XML in another namespace on the server, such as client preferences. It is still supported and used to store any "private" XML, but the server now supports similiar public XML storage. If the client does an iq set in any XML namespace to the server, it is stored on that users account. That XML is then accessible to anyone doing an iq get with the same namespace to that user account. The server will also include a respective ns element in that user's browse data. In all cases, setting to a namespace beginning with the prefix 'jabber:' is invalid and rejected, as that namespace is reserved for use by the server.
Generic XML may also be stored public or private on a specific resource. When the recipient of the iq set is a resource of that user, the namespace is stored only on that resource and that resource then referenced in the main users browse data.
examples coming soon...