Это оффтопик. И заранее прошу прощения за терминологию - я не программист.
andrey писал(а):Источник цитаты XML.. Это формат для переноса информации из замкнутой системы во внешний мир (импорт информации).
Для переноса данных (а не их визуального представления) из одного приложения в другое оптимальным есть OPML. Этот формат достаточно распространён среди приложений с иерархическими списками (аутлайнеры, Mind Map, списки задач). При этом он настолько прост, что позволяет самостоятельно сделать шаблон трансформации из одного приложения в другое просто имея два OPML-файла из разных приложений. Использование XML для этой задачи - избыточное решение.
MLO пошёл другим путём - через создание утилиты для трансформации XML. Ок, пусть так. Но тогда через эту же утилиту надо и OPML генерировать, выбирая какие поля включать в файл экспорта. Иначе мы получаем инструмент для импорта, а не обмена информацией. А встроенный OPML не всегда устраивает - он содержит не все поля, которые нужны в ходе обмена.
andrey писал(а):Источник цитаты Вы можете сохранить ветку в XML, а потом вставить ее в тот же файл.
Соглашусь, что для создания и повторного использования шаблонов XML удобен. Можно наверное учесть какие-то нюансы, которые не передаёт OPML. Но для шаблонов вроде бы рекомендуется использовать существующие в базе ветки.
andrey писал(а):Источник цитаты Если она будет содержать UID, посыпется целостность, т.к. две задачи будут иметь один UID.
При создании новой ветки на основе шаблона - да. Но это не синхронизация.
При синхронизации нам необходим уникальный идентификатор элемента. Если это не UID, тогда что? Название задачи?
andrey писал(а):Источник цитаты Если файл данных участвует в синхронизации, то опасно давать формат в котором содержатся UID, т.к. очень легко все поломать и разрушить целостность экспортом некорректных данных.
Правильно ли я понял эту фразу?
"Если файл данных участвует в
облачной или WiFi синхронизации, то опасно давать формат в котором содержатся UID, т.к. очень легко все поломать и разрушить целостность
экспортом импортом в MLO некорректных данных".
Мне кажется, что в слово "синхронизация" мы вкладываем разный смысл.
Я понимаю, что технически лучшим решением для синхронизации было бы создание MLO API. Но пока его нет, почему нельзя хотя бы дать возможность изменять текст заметки через экспорт и последующий импорт по уникальному идентификатору элемента? И если будет конфликт (изменения прошли на обеих сторонах) просто вносить оба текста в одну заметку, добавляя оповещение о конфликте, например, в виде флага или текстового тега.