# Glossary

This section defines terms used throughout the `aioxmpp` documentation.

Character Data Type

  An `aioxmpp.xso` type description class which converts between strings and other python values. Common examples include `aioxmpp.xso.Integer` and `aioxmpp.xso.Bool`.

  A character data type is a descendant of `aioxmpp.xso.AbstractCDataType`.

  See also

  A Bit of XSO Terminology.

Conversation

  A context for communication between two or more entities. It defines a transport medium (such as direct XMPP or a Multi-User-Chat), a set of members along with their addresses and possibly additional features such as archive access method.

Conversation Implementation

  A module consisting of service that implements `aioxmpp.im.conversation.AbstractConversationService` together with implementations of `aioxmpp.im.conversation.AbstractConversation` and `aioxmpp.im.conversation.AbstractConversationMember`. This adds support for one concrete type of conversation to aioxmpp. Currently, the following conversation implementations exist: `aioxmpp.im.p2p` and `aioxmpp.muc`.

Conversation Member

  Representation of an entity which takes part in a conversation. The actual definition of “taking part in a conversation” depends on the specific medium used. Conversation members are represented in aioxmpp as instances of `aioxmpp.im.conversation.AbstractConversationMember`.

Conversation Service

  A service implementing `aioxmpp.im.conversation.AbstractConversationService`. This allows to create and manage conversations.

Element Type

  An `aioxmpp.xso` type description class which converts between XML subtrees and python values.

  An element type is a descendant of `aioxmpp.xso.AbstractElementType`.

  See also

  A Bit of XSO Terminology.

Entity

  An endpoint in the Jabber network, anything that can be addressed by a JID. (Compare RFC 6122 section 2.1)

Jabber ID
JID

  Jabber Identifier. The unique address of an entity in the Jabber network. (Compare RFC 6122 section 2).

  Jabber IDs are represented as `aioxmpp.JID` objects in aioxmpp.

Namespace URI
namespace-uri

  The URI which identifies an XML namespace.

  In the following examples, the Namespace URI of the shown element is always `uri`:

  - `<foo xmlns="uri"/>`

  - `<ns:bar xmlns:ns="uri"/>`

  - `<fnord:baz xmlns:fnord="uri" xmlns="other-uri"/>`

  See also Namespaces in XML 1.0.

Local Name
local-name

  The local name of an XML element. For both the following examples, `<foo xmlns="uri"/>` and `<ns:foo xmlns:ns="other-uri"/>`, the local name is `foo`.

  See also Namespaces in XML 1.0.

Tracking Service

  A Service which provides functionality for updating `aioxmpp.tracking.MessageTracker` objects.

Service

  A subclass of `aioxmpp.service.Service` which supplements the base `aioxmpp.Client` with additional functionality. Typically, a service implements a part of one or more XEPs.

Service Member

  A Conversation Member representing the service over which the conversation is run. For example, some XEP-0045 multi-user chat service implementations send messages to all occupants as a service user. Those messages appear in `aioxmpp.muc` as coming from the service member.

  Relevant entities:

  - `aioxmpp.im.conversation.AbstractConversation.service_member`

    > - `aioxmpp.muc.Room.service_member`

  - `aioxmpp.im.conversation.AbstractConversationMember`

    > - `aioxmpp.muc.ServiceMember`

XEP
XMPP Extension Proposal

  An XMPP Extension Proposal (or XEP) is a document which extends the basic RFCs of the XMPP protocol with additional functionality. Many important instant messaging features are specified in XEPs. The index of XEPs is located on xmpp.org.

XSO
XML stream object

  A XML stream object (or XSO) is a python representation of an XML subtree. Its name originates from the fact that it is mostly used with XMPP XML streams.

  The definition and use of XSOs is documented in `aioxmpp.xso`.