Konwersja formatu w obie strony
Termin obie strony jest używany w konwersji dokumentów , szczególnie w przypadku języków znaczników, takich jak XML i SGML . Pomyślne działanie w obie strony polega na konwersji dokumentu w formacie A (docA) na dokument w formacie B (docB), a następnie z powrotem do formatu A (docA′). Jeśli docA i docA′ są identyczne, nie doszło do utraty informacji i podróż w obie strony zakończyła się sukcesem. Mówiąc bardziej ogólnie, oznacza to konwersję z dowolnej reprezentacji danych i z powrotem, w tym z jednej struktury danych na inną.
Utrata informacji
Kiedy dokument w jednym formacie jest konwertowany na inny, istnieje prawdopodobieństwo utraty informacji. Załóżmy na przykład, że HTML jest zapisany jako zwykły tekst (*.txt). Następnie wszystkie znaczniki (struktura, formatowanie, indeksy górne itp.) zostaną utracone. Dokumenty złożone często tracą informacje o obrazach i innych osadzonych obiektach. Jeśli plik tekstowy zostanie przekonwertowany z powrotem do oryginalnego formatu, z pewnością będzie brakować informacji.
Podobny efekt występuje w przypadku formatów obrazów. Niektóre formaty, takie jak JPEG, osiągają kompresję poprzez niewielką utratę informacji. Jeśli plik bezstratny , taki jak plik BMP lub PNG , zostanie przekonwertowany do formatu JPEG i z powrotem, wynik będzie inny niż oryginał (chociaż może być bardzo podobny wizualnie).
To, że dokumenty początkowe i końcowe nie są identyczne pod względem bitowym, nie oznacza, że następuje utrata informacji. Niektóre formaty mają niezdefiniowane pola lub pola, których zawartość nie ma wpływu na wynik.
Języki znaczników
Języki znaczników, takie jak XML, mogą w zasadzie przechowywać dowolne informacje, dlatego proces docA → docX → docA' można zaprojektować tak, aby uniknąć utraty informacji. Obecnie powszechne jest konwertowanie starszych formatów na formaty XML, ponieważ zapewniają one większą interoperacyjność i szerszy zestaw dostępnych narzędzi. Dzięki temu możliwa jest konwersja dokumentów Worda do formatu XML i ich ponowny import.
Dokument XML powinien zawierać identyczne informacje, jak w dotychczasowym formacie. Ważnym warunkiem jest to, że w obie strony (starsze → XML → starsze) powinny skutkować faktycznie identycznymi dokumentami. Ponieważ niektóre struktury dokumentów pozwalają na pewną elastyczność w zakresie kolejności treści, białych znaków, uwzględniania wielkości liter itp., przydatne jest posiadanie sposobu kanonizacji starszego formatu. Pełna podróż w obie strony może wówczas wyglądać następująco:
- dziedzictwo → canonicalLegacy → XML → dziedzictwo′ → canonicalLegacy′
Jeśli canonicalLegacy = canonicalLegacy′, oznacza to, że podróż w obie strony zakończyła się sukcesem.
Kodowanie znaków
Unicode jest pełna kompatybilność ze starszymi, standardowymi kodowaniami, więc konwersja dokumentów na Unicode nie powoduje utraty informacji; można je ponownie przekształcić. Aby to osiągnąć, wprowadzono znaki zgodne z Unicode .
Ograniczenie
Aplikacja może zawierać informację o podróży w obie strony i być nieuczciwa. Na przykład może zapisać oryginalne dane z dokumentu docA jako pole w dokumencie docX, więc odwrotna transformacja do dokumentu docA′ po prostu wyodrębni to pole. Chociaż może to być potrzebne w niektórych przypadkach, ideą konwersji w obie strony jest przejście przez reprezentację innego formatu lub strukturę danych i z powrotem. Taka strategia powoduje, że niewielkie zmiany w dokumencie powodują, że nie da się go przekonwertować z powrotem do formatu pierwotnego.
Stosowanie
Termin ten wydaje się być powszechny, ale nie występuje w słownikach. Typowe użycie występuje w [1] , ale termin ten prawdopodobnie był używany wcześniej.