DOCに対するDOCX形式の利点


9

今日、私は.docxが同じ.zipである(またはそれらに大きな違いはない)ことを誤って発見しました。.docxを.zipに変更してWinRARで開くと、フォルダー内に一連のXMLファイルが表示されます。そのXMLファイルには、テキスト、フォント、所有者、最終変更などが格納されます。つまり、すべての情報はXMLデータとして格納されています。

しかし、同じことが.doc拡張子ファイルには正しくありません。それらを.rarとして.zip opとして開くことは不可能です。

では質問:.docxのデータをXMLで保存する利点は何ですか?Microsoftがデータの保存方法を変更しましたか?実際、XML形式の利点ではなく、Microsoftが複数のXMLファイルを使用して.docxデータを格納している理由を知りたいのです。.docxがルートの新しい形式ではないことがわかります。


1分以内に5つのほぼ同じ答え。SOの力。
MRG、

1
データがXML形式であっても、それが新しい形式ではないという意味ではありません。そのXMLをOpenOfficeにフィードして正しくレンダリングすることはできません。あなたは明らかにXML構造がどうなるかを定義し、どの属性、どのような要素などをしなければならない

1
タイトルをよりわかりやすいものに変更することを検討してください。
Carl Bergquist、

2
もちろんそれは新しいフォーマットです。さあ来い

親愛なるJanis Veinbergs氏とKyle Rozendo氏私は何度もXMLとXSDを扱ってきましたが、その仕組みを知っています!!! 「根本的に」と私が言った注意してください。新しい形式ではなく、使用したばかりのXML形式であることに同意できません!!!!
Narek、

回答:


12

.docxファイルは、画像ファイルだけでなく、XMLファイルと同様に、埋め込まれたリソースを格納することができます。base64などでエンコードしてXMLファイルに格納したり、さらに別のバイナリシリアル化形式を発明したりする代わりに、標準のZIP形式を採用することにしました。

その上、XMLは冗長なパターンを多数含む非常に冗長なファイル形式です。XMLファイルの高い圧縮率を得ることができます。

ちなみに、私は「私たちをだますこと」の部分を本当に得ません。新しい暗号ファイル形式を最初から発明するか、標準の既知の形式を使用する方が良いですか?


私が目にする主な利点は、これらのファイルを実際に作成するためのOpen APIがあるため、独自のSDKに多くを費やすことなく、.docxファイルを最初から作成できることです。Microsoft SDKは、C#コードを生成して既製のドキュメントを最初から生成するドキュメントリフレクターも提供しています。
Eddinsは、

@ガード:うん。私の回答は、質問の元のバージョンに対応しています。その後、質問は大幅に変更されました;)元のタイトルは「Microsoftはだまされていますか?」
Mehrdad Afshari、

xml自体は「既知」の形式にはなりません。.docxが最良の例の1つです。
artistoex 2012年

5

Wikipediaの記事はかなりうまくそれを合計します:

「マイクロソフトはオープンファイル形式を採用するように圧力をかけられました。特に、いくつかの国では公式文書はオープン形式でなければならないという規則が採用されました。」

編集: そして、XMLは非常に冗長であり、自然に非常によく圧縮されるので、それを圧縮することは非常に理にかなっています。


3
「開く」は「解凍できる」という意味ではありません。
グレッグHewgill

3
圧縮には、圧縮以外にも他の利点があります。複数のファイルのコンテナとしても機能します。
ジョーイ

3

名前を変更した.zipファイルを使用することは、かなり一般的な方法です。たとえば、Quake IIIの.pakファイルは、実際には.zipファイルです。完全に優れたファイル形式がすでに存在する場合、独自の圧縮ファイル形式を発明しても意味がありません。


1
ZIPアーカイブの使用例:Java .jar、Winamp .wsz/ .wal(スキン)、Firefox .xpi(XPInstaller-テーマ、アドオン)。(tarアーカイブも人気があります。)
user1686

1

圧縮されたXMLを使用するのはOffice Open XMLだけではありません。Open OfficeのOpenDocumentは、舞台裏で同じことを行います。

Open Packaging ConventionsのWikipediaページに記載されているいくつかの利点があります。

間接

ロゴが1,000回繰り返されているカタログの例を見てみましょう。インダイレクションメカニズムを使用して、ロゴを変更する場合は、1つのファイルの1つのエントリを変更するだけで済みます。検索する場所がわかっているため、検索を行う必要はありません。これにより、保守性が大幅に向上します。たとえば、ファイルが格納されているZIPディレクトリのレイアウトを変更する場合、それは簡単なことになります。ファイルを指すことができるすべての要素を知る必要がないため、それらはすべて1つの場所にあります。

チャンキング

ドキュメントを小さなチャンクに分割することを推奨します。これは、ファイルの破損による影響を軽減するのに適しています。そして、データアクセスの方が優れています。たとえば、すべてのスタイル情報が1つのXMLパーツにあり、ワークシートまたはテーブルがそれぞれ異なるパーツにあります。これにより、クライアントのアクセスが高速になり、オブジェクトの作成が少なくなり、複数のプロセスが同じドキュメントで作業しやすくなります。

チャンク化は、プログラマにもメリットがあります。あるスタイルシートを別のスタイルシートに置き換えると、XML操作ではなくZIPファイル操作になります。また、トピックに関するすべての情報がそのチャンクにあると想定して、チャンクにアプローチできるため、プログラマーが理解する必要のあるものの量が減少します。大量の大きなファイルを検索しなければならないという面倒な作業から解放されます。無関係な要素。

相対間接

Open Packaging Conventionsでは、参照を持つ各ファイルには、間接参照リストを持つ独自の_relsファイルがあります。これにより、場合によっては、関連するすべてのリソースを含む情報を簡単にカットアンドペーストしたり、名前のスコープを指定して、ファイル間の名前の衝突を防ぐことができます。


0

最大の利点は、ファイルを解凍してxmlファイルからテキストをコピーすることでデータにアクセスできることです。これは、Word 2007のコピーがない場合でも、zipユーティリティとテキストエディターで実行できます。

これにより、以前のバイナリ形式よりも形式がオープンになります。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.