Термин туда и обратно используется в преобразовании документа, особенно в языки разметки, такие как XML и SGML. Успешный возврат состоит из преобразования документа в формате A (docA) в документ в формате B (docB), а затем обратно в формат A (docA ′). Если docA и docA 'идентичны, значит, потери информации не было, и цикл приема-передачи был успешным. В более общем смысле это означает преобразование из любого представления данных и обратно, в том числе из одной структуры данных в другую.
Когда документ одного формата конвертируется в другой, возможна потеря информации. Например, предположим, что документ HTML сохранен как обычный текст (*.txt). Тогда вся разметка (структура, форматирование, надстрочные знаки и т. Д.) Будет потеряна. Составные документы часто теряют информацию об изображениях и других встроенных объектах. Если текстовый файл преобразован обратно в исходный формат, информация обязательно будет отсутствовать.
Аналогичный эффект происходит с форматами изображений. Некоторые форматы, такие как JPEG, достигают сжатия за счет небольшой потери информации. Если файл без потерь, например файл BMP или PNG, конвертируется в JPEG и обратно, то результат будет отличаться от исходного (хотя он может быть визуально очень похожим).
Тот факт, что исходный и конечный документы не идентичны побитно, не означает, что имеется потеря информации. В некоторых форматах есть неопределенные поля или поля, содержимое которых не влияет на результат.
Языки разметки, такие как XML, в принципе могут содержать любую информацию, поэтому процесс docA → docX → docA 'может быть разработан так, чтобы избежать потери информации. В настоящее время принято преобразовывать устаревшие форматы в форматы XML, поскольку они обладают большей совместимостью и более широким набором доступных инструментов. Таким образом, можно преобразовать документы Word в формат XML и повторно импортировать их.
XML-документ должен содержать информацию, идентичную устаревшему формату. Важным условием является то, что обратный путь (legacy → XML → legacy ') должен приводить к фактически идентичным документам. Поскольку некоторые структуры документов допускают некоторую гибкость в порядке содержимого, пробелов, чувствительности к регистру и т. Д., Полезно иметь средства канонизации унаследованного формата. Тогда полный цикл туда и обратно может быть:
Если canonicalLegacy = canonicalLegacy ′, то обратный путь был успешным.
Unicode имеет принцип двусторонней совместимости со старыми стандартизованными устаревшими кодировками, поэтому преобразование документов в Unicode не приводит к потере информации; их можно конвертировать обратно. Для этого были введены символы совместимости Unicode.
Приложение может претендовать на двусторонний обмен и быть нечестным. Например, он может сохранить исходные данные из docA как поле в docX, поэтому обратное преобразование в docA 'просто извлекает это поле. Хотя это может потребоваться в некоторых случаях, идея двустороннего преобразования состоит в том, чтобы пройти через представление другого формата или структуру данных и обратно. Такая стратегия означает, что небольшие изменения в документе означают, что он не может быть преобразован обратно в исходный формат.
Термин кажется обычным, но не упоминается в словарях. Типичное использование встречается в [1], но этот термин, вероятно, использовался до этого.