top / index / prev / next / target / source
日記形式でつづる いがぴょんコラム ウェブページです。
TC の調査
OpenOffice.orgの文書フォーマットでもある OpenDocumentの仕様について簡単に調べてみました。
OpenOffice.orgの文書フォーマットでもある OpenDocumentの仕様について簡単に調べてみました。
OASISに詳細なドキュメントがありました。
OpenDocumentホーム http://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office
OpenDocument 1.0
http://www.oasis-open.org/committees/download.php/12572/OpenDocument-v1.0-os.pdf Adobe PDF形式
http://www.oasis-open.org/committees/download.php/12573/OpenDocument-v1.0-os.sxw OpenOffice.org Writer形式
ドキュメントフォーマット形式がOASIS標準として公開されているのは とても嬉しいです。700頁を越えるドキュメントの量には圧倒されます。とりあえず、ページ数が多すぎるので、印刷は我慢しました。
blanco Frameworkの基盤として、現状としては JExcelApiにかなりの重心を置いていますが、これからはOpenDocumentも重要なフォーマットとして取り組んでいくことが出来たら総合的に効果が高いのでは、と現時点では考えています。
関連するニュース
関連する日記
まず手始めに、OpenOffice.org 2.0 の表計算ソフトの文書ファイルを簡単に解析しました。(なぜなら直近の仕事で既に利用することが必要だからです…)
OpenOffice.org 2.0でCalcを起動し、編集したのちにファイルを保存
保存したファイルを ZIPファイルであるものとして解凍する
OpenDocumentである XMLファイルなどが閲覧できる
Calcのデフォルト保存のファイル *.ods を解凍して得られるファイルのひとつ content.xml を例として示します。 content.xml
<?xml version="1.0" encoding="UTF-8"?><office:document-content
xmlns:office="urn:oasis:names:tc:opendocument:xmlns:office:1.0"
xmlns:style="urn:oasis:names:tc:opendocument:xmlns:style:1.0"
xmlns:text="urn:oasis:names:tc:opendocument:xmlns:text:1.0"
xmlns:table="urn:oasis:names:tc:opendocument:xmlns:table:1.0"
xmlns:draw="urn:oasis:names:tc:opendocument:xmlns:drawing:1.0"
xmlns:fo="urn:oasis:names:tc:opendocument:xmlns:xsl-fo-compatible:1.0"
xmlns:xlink="http://www.w3.org/1999/xlink"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:meta="urn:oasis:names:tc:opendocument:xmlns:meta:1.0"
xmlns:number="urn:oasis:names:tc:opendocument:xmlns:datastyle:1.0"
xmlns:svg="urn:oasis:names:tc:opendocument:xmlns:svg-compatible:1.0"
xmlns:chart="urn:oasis:names:tc:opendocument:xmlns:chart:1.0"
xmlns:dr3d="urn:oasis:names:tc:opendocument:xmlns:dr3d:1.0"
xmlns:math="http://www.w3.org/1998/Math/MathML"
xmlns:form="urn:oasis:names:tc:opendocument:xmlns:form:1.0"
xmlns:script="urn:oasis:names:tc:opendocument:xmlns:script:1.0"
xmlns:ooo="http://openoffice.org/2004/office"
xmlns:ooow="http://openoffice.org/2004/writer"
xmlns:oooc="http://openoffice.org/2004/calc"
xmlns:dom="http://www.w3.org/2001/xml-events"
xmlns:xforms="http://www.w3.org/2002/xforms"
xmlns:xsd="http://www.w3.org/2001/XMLSchema"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
office:version="1.0">
<office:scripts />
<office:font-face-decls>
<style:font-face style:name="Lucida Sans Unicode"
svg:font-family="'Lucida Sans Unicode'"
style:font-pitch="variable" />
<style:font-face style:name="MS P ゴシック"
svg:font-family="'MS P ゴシック'" style:font-pitch="variable" />
<style:font-face style:name="Tahoma" svg:font-family="Tahoma"
style:font-pitch="variable" />
<style:font-face style:name="Arial" svg:font-family="Arial"
style:font-family-generic="swiss" style:font-pitch="variable" />
</office:font-face-decls>
<office:automatic-styles>
<style:style style:name="co1" style:family="table-column">
<style:table-column-properties fo:break-before="auto"
style:column-width="2.267cm" />
</style:style>
<style:style style:name="ro1" style:family="table-row">
<style:table-row-properties style:row-height="0.432cm"
fo:break-before="auto" style:use-optimal-row-height="true" />
</style:style>
<style:style style:name="ro2" style:family="table-row">
<style:table-row-properties style:row-height="0.446cm"
fo:break-before="auto" style:use-optimal-row-height="true" />
</style:style>
<style:style style:name="ta1" style:family="table"
style:master-page-name="Default">
<style:table-properties table:display="true"
style:writing-mode="lr-tb" />
</style:style>
<number:date-style style:name="N33">
<number:month />
<number:text>月</number:text>
<number:day />
<number:text>日</number:text>
</number:date-style>
<style:style style:name="ce1" style:family="table-cell"
style:parent-style-name="Default" style:data-style-name="N33" />
</office:automatic-styles>
<office:body>
<office:spreadsheet>
<table:table table:name="Sheet1" table:style-name="ta1"
table:print="false">
<table:table-column table:style-name="co1"
table:number-columns-repeated="3"
table:default-cell-style-name="Default" />
<table:table-row table:style-name="ro1">
<table:table-cell office:value-type="string">
<text:p>A</text:p>
</table:table-cell>
<table:table-cell office:value-type="string">
<text:p>B</text:p>
</table:table-cell>
<table:table-cell office:value-type="string">
<text:p>C</text:p>
</table:table-cell>
</table:table-row>
<table:table-row table:style-name="ro2">
<table:table-cell office:value-type="float"
office:value="123">
<text:p>123</text:p>
</table:table-cell>
<table:table-cell table:style-name="ce1"
office:value-type="date" office:date-value="2005-02-09">
<text:p>2月9日</text:p>
</table:table-cell>
<table:table-cell />
</table:table-row>
<table:table-row table:style-name="ro1">
<table:table-cell office:value-type="string">
<text:p>EE</text:p>
</table:table-cell>
<table:table-cell table:number-columns-repeated="2" />
</table:table-row>
</table:table>
</office:spreadsheet>
</office:body></office:document-content>
※上記のXMLは Eclipse WTP のXML整形をしてから掲載しています。 ZIP形式としてドキュメントファイルが解凍でき、しかも可読性のあるXMLファイル形式で保存されているのは驚きです。ぱっと見て、私にもXMLファイルの内容を読むことが出来ました。これはすごいです。多くの可能性を感じます。(そしてビジネスチャンスも感じます)OpenDocumentには 時間の投資を行う価値が多くあることを強く理解しました。
OpenOffice.org 2.0のドキュメントファイル形式が世界標準のものとして仕様が公開されていて且つファイル形式には可読性があるので、このOpenDocument形式にはかなり奥が広い可能性があります。OpenOffice.org自身のAPIが公開されていることが、その可能性を更に広げます。簡単に考えただけでも、下記のような用途が容易に思いつきます。
MS Office形式の文書ファイルを OpenOffice.org APIを用いて OpenDocument形式で保存する。 →文書データ内容を機械処理することが容易に可能になります。
OpenDocument形式のデータを OpenOffice.org APIを用いてPDF化する。 →純粋にPDFファイルの生成が容易に実現できます。
高速なOfficeファイル入出力が可能になる。 →XMLファイルに対する入出力ということになれば、高速な入出力が可能になります。最後で MS Office 対 OpenOffice.orgファイル変換を行えば、トータルとしての実行速度が向上するものと考えられます。簡易帳票としての用途も大きいと考えます。
OpenOffice.org APIと OpenDocument入出力技術の両方を手に入れれば、かなりいろいろな可能性を手に入れることが出来ます。OpenOffice.orgは要チェック技術であることを強く思い知った今日の一日でした。