OpenDocument - フォーマット構造の解説

Author: Daniel Carrera、Page last modified December 05, 2005

日本語訳: 可知 豊 (http://www.catch.jp/

この文書は、OpenDocument Fellowshipの「Introduction to the format internals」の全訳である。
原文は、「Creative Commons:Attribution-ShareAlike 2.5」で公開されている。日本語訳も同じ条件で公開する。
OpenDocument Fellowshipは、OpenDocumentに関連した多くのドキュメントとリンクを公開している。


OpenDocumentは、複数のXMLファイルで構成されたZIPファイルである。圧縮ファイル中のファイルとディレクトリが、ド キュメントの実際の中身に対応している(例. images, macros, など).。典型的なドキュメントを解凍すると、下記のファイルが得られる。

content.xml
META-INF/manifest.xml
meta.xml
mimetype
Pictures/
settings.xml
styles.xml

では、各ファイルについて説明しよう。

content.xml

これは、もっとも重要なファイルで、ドキュメントの実際の中身を格納している(画像のようなバイナリデータを除く)。基本となるフォー マットは、HTMLに似て、それをより複雑にしているが、人間にも読めるようになっている。

<text:h text:style-name="Heading_2">
This is a title
</text:h>
<text:p text:style-name="Text_body"/>
<text:p text:style-name="Text_body">
This is a paragraph. The formating (font,
colour, etc.) are specified in the Text_body
style. The empty text:p tag above is a blank
paragraph (ie. an empty line).
</text:p>

META-INF/manifest.xml

manifestファイルは、ZIPファイルの中身のリストになっている。下記にその例を示す 。

<manifest:file-entry
manifest:media-type="image/png"
manifest:full-path="Pictures/10ECF14403.png"/>
<manifest:file-entry
manifest:media-type="text/xml"
manifest:full-path="content.xml"/>
<manifest:file-entry
manifest:media-type="text/xml"
manifest:full-path="styles.xml"/>

OpenDocumentのmanifestのリストが示す物は、JARファイルとほぼ同じだ。OpenDocumentが、車輪を再 発明する代わりに、実績のある規格を再利用するという一つの例になっている

meta.xml

このファイルは、ファイルのメタデータになっている。例えば、著者、変更者、変更日などを含んでいる。下記にその例を示す

<meta:creation-date>2003-09-10T15:31:11</meta:creation-date>
<dc:creator>Daniel Carrera</dc:creator>
<dc:date>2005-06-29T22:02:06</dc:date>
<dc:language>es-ES</dc:language>
<meta:document-statistic
meta:table-count="6" meta:object-count="0"
meta:page-count="59" meta:paragraph-count="676"
meta:image-count="2" meta:word-count="16701"
meta:character-count="98757"/>

<dc:...>タグの名前は、 Dublin Core XMLスタンダードに由来する。日付書式は、ISOスタンダード を使用する。

mimetype

これは、ファイルのmimetypeという、1行だけで構成されたファイルである。文書ドキュメントでは、次のようになる。

application/vnd.oasis.opendocument.text

Pictures/

これは、JPEGやPNGといった標準的なフォーマットの画像を格納するディレクトリである。これらのファイルは、HTMLの <img>タグと同じようにして、content.xmlファイルから参照される。

settings.xml

このファイルは、ズーム率やカーソルの位置といった設定を格納する。これは、文書の中身や書式には含まれない内容になる。

styles.xml

このファイルは、スタイル情報を格納している。スタイルには、フォントサイズや色、ページ幅といった書式に関連した情報が含まれる。

OpenDocumentでは、コンテンツ(content.xml)と書式(styles.xml)を完全に分離している。スタイル には、次の種類がある。

OpenDocumentでは、全ての書式にスタイルが適用される。書式 を設定していない場合も、スタイルが適用される(アプリケーションが、必要に応じて動的にスタイルを作り出す)。

なぜZIPファイルを使うのか?

XMLをクリーンにする
ZIPファイルを使うと、画像のようなバイナリーデータをドキュメントにクリーンに埋め込めるというのが、第1の理由である。Picturesディ レクトリに画像を追加して、ドキュメントから参照する場合、次のように記述する。

 <draw:image
xlink:href="Pictures/1000020100E7CF14403.png"
xlink:type="simple" xlink:show="embed"
xlink:actuate="onLoad"/>

この1000020100E7CF14403.png が、画像ファイル名になる

もし、ファイルフォーマットにZIPファイルを使わないとしたら、ファイ ル内にバイナリーデータを直接埋め込むことになる。例えば、次のようになる。

<image content="AAAAB3NzaC1kc3MAAACBALhIE5ZbPWD
uB44Qo/+DGECA8u1Jl4QdwubYgiweQQX4ZeD6LduuZk+HMW
bfvGpADeOAzS7Aw1nBPbp1F7AKo9LpGBwv/70dX0HE5hm5X
2JKXhzom4M2IPtv9BV7qKXvqdibltAPX6kTWS7Bp/o3krNL
zNsV6zkuMEETFz3Rmt2hAAAAFQCfLFFL0ouPHx3wKtgyeL5
aUO8W+QAAAIBf7MGYYn8ylLOdAs4LX00pQpaAEuwjYalnxy
ZUMpBnBhwjOkY0OH10m3hASu/jnTvbJchm43NK0YyvW1zCa
YGKrUllFrfh4pamr4Ov3zmoL7BUK0zGwowrD6ILd3OroNch
pAetV0YMJ2FkSfPlDuBaddMhymtWoFDLQ9QEzkbaTgAAAIA
sxyNNHT7MN8VaF8GZWLUaq+dl9rj2wgSPYHkDV/EvGqgB0e
GNEXzty3X2GqAg9z10Qj1W2Ua7FnC57kUdSG6B68Ei1Qkv/
N0yGFSZ3xbnP9hxFa2H/2DDPAftuBJT8MUZJHKttXVZ6jJ/
3aXEMBcL8eXw6kWroOR/L7NUxHpvyw"/>

(実際には、もっと長くなる)

ファイルサイズ
ファイルを圧縮しているので、Microsoftの.docファイルと比べてOpenDocumentでは、、たいていの場合ファイルサイズが小さくな る。その上、文書が長くなれば、圧縮による効果は大きくなる。

利点


変更履歴

  Some rights reserved