Поделиться через


Преобразование идентификаторов и элементов для RSS- и Atom-каналов

В процессе создания приложения, создающего или принимающего RSS-канал или канал Atom, главной задачей является преобразование идентификаторов и данных элементов между XML-форматом канала FeedSync и форматом службы синхронизации.

Преобразование идентификаторов

Приложение должно реализовать объект преобразователя идентификаторов, который может преобразовать идентификаторы реплики и идентификаторы элементов из формата переменной длины, используемого в службе, в строки и обратно. Кроме того, преобразователь идентификаторов должен иметь возможность создавать идентификатор реплики для анонимного изменения. Анонимное изменение происходит, когда в журнал FeedSync для изменения не включается значение by. Атрибут by представляет реплику, которая выполнила изменение. Однако атрибут by не является необходимым для схемы FeedSync и может отсутствовать. В этом случае для изменения необходимо создать идентификатор реплики на основе значений sequence и when изменения.

Управляемый код. Для преобразования идентификаторов в приложении реализуется объект FeedIdConverter.

Неуправляемый код. Для преобразования идентификаторов в приложении реализуется объект IFeedIdConverter.

Преобразование данных элементов

В приложении необходимо реализовать объект преобразователя элементов, который имеет возможность преобразования данных элементов из формата локальной службы в XML-формат канала и обратно. XML-данные могут представляться в виде структуры XML-узлов или в строковом виде. В любом случае приложение должно само убедиться, что XML-формат является допустимым для канала, поскольку платформы Sync Framework не выполняют проверку допустимости.

Управляемый код. Для преобразования данных элементов в приложении реализуется объект FeedItemConverter. Этот объект должен передавать данные в формате, который ожидается локальной службой в свойстве ChangeData объекта SaveChangeContext, отправленного в метод SaveItemChange.

Неуправляемый код. Для преобразования идентификаторов в приложении реализуется объект IFeedItemConverter. Этот объект должен передавать данные в формате, который ожидается локальной службой от метода ISaveChangeContext::GetChangeData объекта ISaveChangeContext, отправленного в метод ISynchronousNotifyingChangeApplierTarget::SaveChange.

См. также

Справочник

Интерфейс IFeedIdConverter
Интерфейс IFeedItemConverter
Microsoft.Synchronization.FeedSync
FeedIdConverter
FeedItemConverter

Основные положения

Синхронизация веб-каналов
Компоненты веб-синхронизации Sync Framework