XML stream

From JaWiki (Jabber/XMPP wiki)
Revision as of 21:26, 18 August 2009 by Vindicar (Talk | contribs) (накропал статейку)

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search
В соответствии с принятыми в данной вики договорённостями, правильное название этой статьи — XML-поток.
Для ссылок сюда с других страниц
ЯВики используйте название
XML-поток
На других ресурсах
можно также давать ссылку
http://jawiki.ru/XML_stream

Способ обмена данными между двумя сущностями по протоколу XMPP. Представляет собой нечто вроде незаконченного XML документа, в который по мере обмена данными дописываются стансы.

Спецификация

Понятие "XML-поток" описано в Основах XMPP.

XML-поток состоит из корневого элемента <stream/> и его дочерних элементов - станс. Количество станс в потоке не ограничено. Закрытие элемента <stream/> однозначно сигнализирует о закрытии XML-потока.

Особенности работы

Не всякий XML-парсер (программное средство для работы с данными в XML) пригоден для работы с XML-потоками. Во-первых, незакрытый поток не является правильным(валидным) XML-документом. Во-вторых, в отличие от работы с XML-документом, нет необходимости держать в памяти узлы(стансы), пришедшие ранее - они уже обработаны.

Таким образом, для работы с XML-потоками больше подходят так называемые событийные XML-парсеры. Они собирают данные из входного потока, и сигнализируют всякий раз, когда набирается завершенный элемент - станс.

ToDo: примеры событийных XML-парсеров

См. также