Zalety formatu DOCX w stosunku do DOC

9

Dzisiaj przypadkowo dowiedziałem się, że .docx jest tym samym .zip (lub nie ma między nimi dużej różnicy). Kiedy zmienisz .docx na .zip i otworzysz za pomocą WinRAR, zobaczysz kilka plików XML w folderach. W tym pliku XML jest zapisany tekst, czcionki, właściciel, ostatnia modyfikacja i tak dalej. Jednym słowem wszystkie informacje są przechowywane jako dane XML.

Ale to samo nie jest odpowiednie dla plików z rozszerzeniem .doc. Nie można otworzyć ich jako .zip op jako .rar.

Pytanie: jaka jest korzyść z przechowywania danych .docx w XML, ponieważ Microsoft zmienił sposób przechowywania danych? Rzeczywiście nie chcę znać zalet formatu XML, ale dlaczego Microsoft używa wielu plików XML do przechowywania danych .docx. Okazuje się, że .docx nie jest nowym formatem w katalogu głównym.

Narek
źródło
W ciągu 1 minuty .. 5 prawie takich samych odpowiedzi. Moc SO.
MRG,
1
Posiadanie danych w formacie XML nie oznacza, że ​​nie jest to nowy format. Nie możesz podać tego XML do OpenOffice i sprawić, by był poprawnie renderowany. Musisz jasno zdefiniować, jaka będzie struktura XML, jakie atrybuty, jakie elementy itp.
1
Zastanów się nad zmianą tytułu na coś bardziej pouczającego.
Carl Bergquist,
2
Oczywiście jest to nowy format. Chodź teraz.
Drodzy Janis Veinbergs i Kyle Rozendo Wiele razy pracowałem z XML i XSD i wiem, jak to działa !!! Bądź uważny, powiedziałem „w katalogu głównym”. Nie możesz zgodzić się, że jest to właśnie użyty format XML, a nie nowy format !!!!
Narek,

Odpowiedzi:

12

.docxPlik można zapisać osadzonych zasobów, takich jak pliki obrazu, a nie tylko pliki XML. Zamiast kodować rzeczy w base64 lub coś i przechowywać je w pliku XML lub wynaleźć inny binarny format serializacji, zdecydowali się na standardowy format ZIP.

Poza tym XML jest bardzo pełnym formatem plików, zawierającym wiele zbędnych wzorców. Możesz uzyskać wysoki współczynnik kompresji dla plików XML.

Nawiasem mówiąc, tak naprawdę nie rozumiem części oszukiwania nas. Czy lepiej jest wymyślić od nowa nowy, tajemniczy format pliku, czy użyć standardowego znanego formatu?

Mehrdad Afshari
źródło
Główną korzyścią, jaką widzę, jest to, że istnieją otwarte interfejsy API do faktycznego tworzenia tych plików, więc tworzenie plików .docx od zera jest możliwe bez wydawania dużych nakładów na zastrzeżone zestawy SDK. Microsoft SDK dostarcza nawet reflektor dokumentów, który wygeneruje kod C # w celu wygenerowania gotowego dokumentu od zera.
Will Eddins,
@Guard: Tak. Moja odpowiedź dotyczy oryginalnej wersji pytania. Pytanie znacznie się zmieniło od tego czasu;) Oryginalny tytuł brzmiał: „Microsoft oszukuje?”
Mehrdad Afshari,
xml sam w sobie nie czyni formatu „znanym”, a .docx jest jednym z najlepszych przykładów.
artistoex,
5

Artykuł w Wikipedii całkiem ładnie podsumowuje:

„Microsoft znalazł się pod rosnącą presją, aby przyjąć otwarty format pliku, w szczególności kilka narodów przyjęło zasady, że oficjalne dokumenty powinny być w otwartym formacie”.

Edycja: spakowanie go ma sens, ponieważ XML jest bardzo szczegółowy i naturalnie bardzo dobrze się kompresuje.

Henning
źródło
3
„Otwarty” nie oznacza „można rozpakować”.
Greg Hewgill
3
Zipowanie ma inne zalety oprócz kompresji. Działa również jako pojemnik na wiele plików.
Joey,
3

Używanie pliku .zip o zmienionej nazwie jest dość powszechną praktyką - na przykład pliki .pak programu Quake III są tak naprawdę plikami .zip. Nie ma sensu wymyślać własnego skompresowanego formatu pliku, jeśli istnieją już doskonale dobre.

Greg
źródło
1
Więcej przykładów korzystania z archiwów ZIP: Java .jar, Winamp .wsz/ .wal(skórki), Firefox .xpi(XPInstaller - motywy, dodatki). ( tararchiwa są również popularne.)
user1686,
1

Nie tylko Office Open XML wykorzystuje spakowany XML. OpenDocument Open Office robi to samo za kulisami.

Istnieje kilka zalet wymienionych na stronie Wikipedii w konwencji Open Packaging :

Pośrednictwo

Weźmy przykład katalogu, w którym logo powtarza się 1000 razy. Używając mechanizmu pośredniego, jeśli chcemy zmienić logo, musimy zmienić tylko jeden wpis w jednym pliku, bez konieczności wyszukiwania, ponieważ wiemy, gdzie szukać. Zwiększa to znacznie łatwość konserwacji. Jeśli chcesz zmienić układ, powiedzmy, katalogów ZIP, w których przechowywane są twoje pliki, staje się to banalne, ponieważ nie musisz znać każdego elementu, który może wskazywać na plik, wszystkie są w jednym miejscu.

Wydzielanie

Zachęca do dzielenia dokumentów na małe części. Jest to lepsze w celu zmniejszenia efektu uszkodzenia pliku. I lepszy dostęp do danych: na przykład wszystkie informacje o stylu w jednej części XML, każdym oddzielnym arkuszu lub tabeli w osobnych częściach. Umożliwia to szybszy dostęp i mniej tworzenia obiektów dla klientów oraz ułatwia pracę wielu procesów na tym samym dokumencie.

Chunking przynosi również korzyści programistom. Zastąpienie jednego arkusza stylów innym staje się operacją pliku ZIP, a nie operacją XML. Zmniejsza to liczbę rzeczy, które programiści muszą zrozumieć, ponieważ mogą podchodzić do fragmentów, zakładając, że wszystkie informacje na dany temat znajdują się w tym fragmencie: oszczędzono im mentalnego trudu przeszukiwania dużego pliku z dużą ilością elementy obce.

Względna pośrednia

W konwencjach otwartego pakowania każdy plik, który ma odwołanie, ma swój własny plik _rels z listami pośrednimi. Ułatwia to w niektórych przypadkach wycinanie i wklejanie niektórych informacji wraz ze wszystkimi powiązanymi zasobami, zapewnia zakres nazw, aby wyeliminować ryzyko kolizji nazw między plikami itp.

Joey
źródło
0

Największą zaletą jest to, że możesz dostać się do swoich danych poprzez rozpakowanie pliku i skopiowanie tekstu z plików XML. Można to zrobić za pomocą narzędzia zip i edytora tekstu, nawet jeśli nie masz kopii programu Word 2007.

To sprawia, że ​​format jest bardziej otwarty niż starsze formaty binarne.

Joe Internet
źródło