[Standards] Nonzas: What are they and do we need them?

Kim Alvefur zash at zash.se
Thu Apr 23 07:52:12 UTC 2015

tors apr 23 02:35:24 2015 GMT+0200 skrev Waqas Hussain:
> On Wed, Apr 22, 2015 at 3:41 AM, Florian Schmaus <flo at geekplace.eu> wrote:
> > The discussion drifted a bit into whether non-stanza top-level stream
> > elements should be used for a particular use case/XEP
> > or not. But what I really wanted to discuss is whether they could be
> > used after resource binding in general, or if this should be disallowed.
> > That's why I asked the council members to express their opinion on this
> > in their next meeting.
> >
> > As side note: I still think it is advantageous to have a unambiguous
> > term defined for non-stanza top-level stream elements. It would clearly
> > distinguish stanzas from non-stanzas in specifications and may help to
> > avoid the case where specification authors erroneously refer to
> > non-stanzas as stanzas. See for example the EXI XEP (XEP-322) where this
> > is done (nearly?) everywhere. Not to mention that this may cause
> > confusion when we take XEP-198: Stream Management into consideration.
> >
> > - Florian
> >
> >
> Some thoughts: In the Prosody XMPP server implementation, we classify
> top-level elements into two categories: stanzas, and non-stanzas (nonzas!).
> We call non-stanzas 'elements'. Interestingly, stanzas sent before a bind
> are categorized with non-stanzas, given how different they are from normal
> stanzas (several normally expected invariants don't hold for them, e.g., no
> reliable 'from' attribute). The bind stanza is special, and is almost a
> third category (it awkwardly exists in this space between having a username
> and not having a resource).
> These three categories require different sets of validation.
> Normally we expect non-stanzas to be purely affecting the state of a
> specific stream, and they don't have any affect beyond that. Stanzas
> typically do not affect the stream itself. The exceptions make code
> awkward, and the main (only?) one is the bind IQ (which we are forced to
> special case).

I would like to point out that dialback elements are also in an awkward space, being treated as stanzas when sending (being routed etc) and nonzas when receiving.

Kim "Zash" Alvefur

More information about the Standards mailing list