ラウンドトリップという用語は、特にXMLやSGMLなどのマークアップ言語を含む文書変換で使用されます。ラウンドトリップとは、形式 A (docA) の文書を形式 B (docB) の文書に変換し、その後再び形式 A (docA′) に戻すことです。docA と docA′ が同一であれば、情報損失はなく、ラウンドトリップは成功です。[ 1 ]より一般的には、あるデータ構造から別のデータ構造への変換を含め、あらゆるデータ表現から変換して元に戻すことを意味します。
グラフデータベースのコンテキストでは、ラウンドトリップによって、リソース記述フレームワーク(RDF)からプロパティグラフへの変換やその逆など、異なるグラフモデル間の変換を検証し、元の意味と構造が保持されることを保証できます。[ 4 ]
ある形式の文書を別の形式に変換すると、情報が失われる可能性があります。例えば、HTML文書をプレーンテキスト(*.txt)として保存すると、すべてのマークアップ(構造、書式設定、上付き文字など)が失われます。複合文書では、画像やその他の埋め込みオブジェクトの情報が失われることがよくあります。テキストファイルを元の形式に戻しても、情報は必ず失われます。
画像フォーマットでも同様の現象が起こります。JPEGなどの一部のフォーマットは、わずかな情報損失によって圧縮を実現しています。BMPやPNGファイルのような可逆圧縮ではないフォーマットのファイルをJPEGに変換し、再びBMPやPNGに戻すと、結果は元のファイルとは異なります(見た目は非常に似ている場合もあります)。
初期文書と最終文書がビット単位で完全に一致しないからといって、情報が失われるとは限りません。フォーマットによっては、未定義のフィールドや、内容が結果に影響を与えないフィールドが存在する場合があります。
XMLなどのマークアップ言語は、原理的にはあらゆる情報を保持できるため、docA → docX → docA′というプロセスは情報損失を回避するように設計できます。現在では、相互運用性が高く、利用可能なツールも豊富であることから、従来のフォーマットをXMLフォーマットに変換することが一般的になっています。したがって、Word文書をXMLフォーマットに変換して再インポートすることも可能です。
XMLドキュメントには、従来の形式と同一の情報が含まれている必要があります。重要な条件は、往復変換(従来の形式 → XML → 従来の形式)の結果、実質的に同一のドキュメントが生成されることであること。ドキュメント構造によっては、コンテンツの順序、空白、大文字小文字の区別などに柔軟性を持たせることができるため、従来の形式を正規化する手段があると便利です。往復変換全体は次のようになります。
canonicalLegacy = canonicalLegacy′ の場合、往復は成功しました。
Unicodeには、従来の標準化されたエンコーディングとの双方向互換性を確保するという原則があります。そのため、文書をUnicodeに変換しても情報が失われることはなく、元の形式に戻すことができます。これを実現するために、Unicode互換文字が導入されました。しかし、点付きIと点なしIの大文字小文字を切り替えて再度切り替えると、テキストの言語によっては誤った結果が生じる可能性があります。
アプリケーションは、往復変換を謳いながら実際には不正を行う可能性があります。例えば、docA の元のデータを docX のフィールドとして保存し、docA′ への逆変換ではそのフィールドを抽出するだけ、といったケースが考えられます。このような処理は場合によっては必要となるかもしれませんが、往復変換の本来の目的は、別のフォーマット表現やデータ構造を経由して、元の形式に戻すことです。このような手法では、ドキュメントにわずかな変更が加えられただけでも、元のフォーマットに戻すことができなくなります。
この用語は一般的であるように思われるが、辞書には記載されていない。典型的な使用例は1999年のxml-devスレッドに見られるが、この用語はそれ以前にも使用されていた可能性が高い。[ 5 ]
複数のコメント(CDATAを含む)の収集と回答。