# ``twisted`.`words`.`xish`.`xmlstream`.`XmlStream``

class documentation

`class XmlStream(protocol.Protocol, utility.EventDispatcher): (source)`

Known subclasses: `twisted.words.protocols.jabber.xmlstream.XmlStream`

View In Hierarchy

Generic Streaming XML protocol handler.

This protocol handler will parse incoming data as XML and dispatch events accordingly. Incoming stanzas can be handled by registering observers using XPath-like expressions that are matched against each stanza. See `utility.EventDispatcher` for details.

Method | `__init__` | Undocumented
Method | `connectionLost` | Called when the connection is shut down.
Method | `connectionMade` | Called when a connection is made.
Method | `dataReceived` | Called whenever data is received.
Method | `onDocumentEnd` | Called whenever the end tag of the root element has been received.
Method | `onDocumentStart` | Called whenever the start tag of a root element has been received.
Method | `onElement` | Called whenever a direct child element of the root element has been received.
Method | `resetDispatchFn` | Set the default function (`onElement`) to handle elements.
Method | `send` | Send data over the stream.
Method | `setDispatchFn` | Set another function to handle elements.
Instance Variable | `rawDataInFn` | Undocumented
Instance Variable | `rawDataOutFn` | Undocumented
Instance Variable | `stream` | Undocumented
Method | `_initializeStream` | Sets up XML Parser.

Inherited from `Protocol`:

Method | `logPrefix` | Return a prefix matching the class name, to identify log messages related to this protocol instance.
Class Variable | `factory` | Undocumented

Inherited from `BaseProtocol` (via `Protocol`):

Method | `makeConnection` | Make a connection to a transport and a server.
Instance Variable | `connected` | Undocumented
Instance Variable | `transport` | Undocumented

Inherited from `EventDispatcher`:

Method | `addObserver` | Register an observer for an event.
Method | `addOnetimeObserver` | Register a one-time observer for an event.
Method | `dispatch` | Dispatch an event.
Method | `removeObserver` | Remove callable as observer for an event.
Instance Variable | `prefix` | Undocumented
Method | `_addObserver` | Undocumented
Method | `_getEventAndObservers` | Undocumented
Instance Variable | `_dispatchDepth` | Undocumented
Instance Variable | `_eventObservers` | Undocumented
Instance Variable | `_updateQueue` | Undocumented
Instance Variable | `_xpathObservers` | Undocumented

def __init__(self): (source)
overrides `twisted.words.xish.utility.EventDispatcher.__init__`
overridden in `twisted.words.protocols.jabber.xmlstream.XmlStream`

Undocumented

def connectionLost(self, reason): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.Protocol.connectionLost`

Called when the connection is shut down.

Dispatches the `STREAM_END_EVENT`.

def connectionMade(self): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.BaseProtocol.connectionMade`
overridden in `twisted.words.protocols.jabber.xmlstream.XmlStream`

Called when a connection is made.

Sets up the XML parser and dispatches the `STREAM_CONNECTED_EVENT` event indicating the connection has been established.

def dataReceived(self, data): (source)
from `twisted.internet.interfaces.IProtocol`
overrides `twisted.internet.protocol.Protocol.dataReceived`

Called whenever data is received.

Passes the data to the XML parser. This can result in calls to the DOM handlers. If a parse error occurs, the `STREAM_ERROR_EVENT` event is called to allow for cleanup actions, followed by dropping the connection.

def onDocumentEnd(self): (source)

Called whenever the end tag of the root element has been received.

Closes the connection. This causes `connectionLost` being called.

def onDocumentStart(self, rootElement): (source)
overridden in `twisted.words.protocols.jabber.xmlstream.XmlStream`

Called whenever the start tag of a root element has been received.

Dispatches the `STREAM_START_EVENT`.

def onElement(self, element): (source)

Called whenever a direct child element of the root element has been received.

Dispatches the received element.

def resetDispatchFn(self): (source)
Set the default function (`onElement`) to handle elements.
def send(self, obj): (source)
overridden in `twisted.words.protocols.jabber.xmlstream.XmlStream`

Send data over the stream.

Sends the given `obj` over the connection. `obj` may be instances of `domish.Element`, `unicode` and `str`. The first two will be properly serialized and/or encoded. `str` objects must be in UTF-8 encoding.

Note: because it is easy to make mistakes in maintaining a properly encoded `str` object, it is advised to use `unicode` objects everywhere when dealing with XML Streams.

Parameters
obj:`domish.Element`, `domish` or `str` | Object to be sent over the stream.

def setDispatchFn(self, fn): (source)
Set another function to handle elements.
rawDataInFn = (source)

Undocumented

rawDataOutFn = (source)

Undocumented

stream = (source)

Undocumented

def _initializeStream(self): (source)
Sets up XML Parser.