Más contenido relacionado Similar a Learn about ODF / ODFを見なおそう (20) Más de Naruhiko Ogasawara (20) Learn about ODF / ODFを見なおそう1. ODF を見なおそう
〜 ODF の中身をじっくり眺めてみる〜
2013 年度
定例会
2013.12.19
アシスト大阪 セミナールーム
株式会社 ミライト情報システム
小笠原 徳彦
ogasawara.naruhiko@miraitsystems.jp
12/20/13
ODPG定例会2013
1
2. 自己紹介
●
●
●
小笠原 徳彦 (OGASAWARA, Naruhiko)
ミライト情報システム
オープンソリューション技術本部
応用システム技術部 所属
ODPG 会員 / 技術評価 WG メンバー
日本語チーム メンバー
●
●
Software Design, Ubuntu Magazine Japan,
Gihyo.jp, IT Pro などに執筆経験あり
12/20/13
ODPG定例会2013
2
5. ODF とは?
●
Open Document Format
–
●
●
●
オフィス文書の交換用標準フォーマット
Apache OpenOffice 、 LibreOffice 、 OpenOffice.org の
標準文書フォーマット
オープン系オフィスソフトの Abiword 、 Gnumeric 、
Calligra (旧 KOffice )なども標準で採用
Microsoft Office や Google Drive もインポート・エクス
ポート可能
–
12/20/13
MS Office で ODF 1.2 サポートになったのは 2013 から
ODPG定例会2013
5
6. ODF を決めているのは?
●
規格団体 OASIS (https://www.oasis-open.org/) の
Open Document Format for Office Applications
(OpenDocument) TC にて制定
http://www.oasis-open.org/committees/office
–
TC = Technical Committee (技術委員会)
●
制定後、 ISO/IEC に標準化提案
●
現在は 1.2 が OASIS で制定完了 (2012.01.11)
–
12/20/13
ISO/IEC で標準化プロセス中
ODPG定例会2013
6
7. ベンダーフリー
●
TC の参加メンバーの企業は多種多様
–
TC IRC member companies:
Adobe Systems, Google Inc., IBM, Intel Corporation,
Justsystem Corporation, KDE e.V., Microsoft, Mozilla
Foundation, Novell, Oracle, Red Hat, The Document
Foundation, …
https://www.oasis-open.org/committees/office/obligation.php
※Novell メンバーの大部分が移籍した英 Collabora の名前がな
いのは、単に情報がアップデートされていないためと推測される
12/20/13
ODPG定例会2013
7
9. ODF = ZIP された XML + α
$ unzip ../ODF.odp
Archive: ../ODF.odp
extracting: mimetype
extracting: Thumbnails/thumbnail.png
inflating: meta.xml
inflating: settings.xml
inflating: content.xml
inflating: Pictures/TablePreview1.svm
extracting: Pictures/10000000000001680000003C4B8CF63D.jpg
extracting: Pictures/1000020100000258000000B2FAEDCD5A.png
extracting: Pictures/1000000000000320000000C8FC9C48B6.png
extracting: Pictures/1000351400009698000054ABF11AC20D.svg
extracting: Pictures/10000201000003AF00000212D6B53D6E.png
extracting: Pictures/10000000000000200000002000309F1C.png
inflating: styles.xml
creating: Configurations2/images/Bitmaps/
inflating: Configurations2/accelerator/current.xml
creating: Configurations2/floater/
creating: Configurations2/popupmenu/
creating: Configurations2/statusbar/
creating: Configurations2/toolpanel/
creating: Configurations2/progressbar/
creating: Configurations2/menubar/
creating: Configurations2/toolbar/
inflating: META-INF/manifest.xml
12/20/13
ODPG定例会2013
9
15. 詳しい仕様
●
OASIS のサイトにて配布
–
Technical Work Produced by the Committee Open Document Format v1.2
https://www.oasis-open.org/committees/tc_home.php?wg_abbrev=office#technical
●
三部構成
–
Part 1 OpenDocument Schema
http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2-part1.pdf
–
Part 2 Recalculated Formula (OpenFormula) Format
http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2-part3.pdf
–
Part 3 Packages
http://docs.oasis-open.org/office/v1.2/OpenDocument-v1.2-part3.pdf
12/20/13
ODPG定例会2013
15
16. Part 1 OpenDocument Schema①
●
XML 文書の定義について述べた仕様
●
ODF は以下のようなフォーマットの集まり
–
OpenDocument Text Document
–
OpenDocument Spreadsheet Document
–
OpenDocument Drawing Document
–
OpenDocument Presentation Document
–
OpenDocument Formula Document
–
OpenDocument Database Front End Document
12/20/13
ODPG定例会2013
16
17. Part 1 OpenDocument Schema②
●
Producer と Consumer
–
Producer: ODF に適合する文書を作るソフトウェア
–
Consumer: ODF に適合する文書を読めるソフトウェア
12/20/13
ODPG定例会2013
17
18. Part 1 Open Document Schema③
●
さまざまな Content (内容)
–
Database Front-end
Document
Text Field
–
Form
Text Indexes
–
Common
Tables
–
SMIL Annotations
Graphic
–
Styles
Chart
–
Formatting Elements
–
Text
–
Paragraph Element
–
–
–
–
–
12/20/13
ODPG定例会2013
18
19. Part 1 Open Document Schema④
●
Datatypes (データ型)
–
W3C Schema Datatypes
●
–
string, date, time, dateTime, decimal, duration, int, integer,
nonNegativeInteger, positiveInteger, double, long, short, base64Binary, ID,
IDREF, NCNames
Other Datatypes
●
12/20/13
angle, anyIRI, boolean, cellAddress, cellRangeAddress, cellRangeAddressList,
character, clipShape, color, coodinate, countryCode, CURIE, CURIEs,
dateOrDatetime, distance, language, languageCode, length,
namespacedToken, nonNegativeLength, nonNegativePixelLength, pathData,
percent, point3D, points, positiveLength, relativeLength, safeCURIE,
scriptCode, sizedZeroToHandledPercent, styleName, styleNameRef,
targetFrameName, textEncoding, timeOrDateTime, URLorSafeCURIE,
valueType, variableName, vector3D, zeroToHandledPercent
ODPG定例会2013
※IRI = Internationalized Resource Identifiers
CURIE = Compact URI expression
19
20. Part 1 Open Document Schema⑤
●
Attributes (属性)
<draw:line
<draw:line
draw:style-name="gr13"
draw:style-name="gr13"
draw:text-style-name="P2"
draw:text-style-name="P2"
draw:layer="layout"
draw:layer="layout"
svg:x1="2.111cm" svg:y1="16.879cm"
svg:x1="2.111cm" svg:y1="16.879cm"
svg:x2="7.937cm" svg:y2="11.855cm">
svg:x2="7.937cm" svg:y2="11.855cm">
<text:p/>
<text:p/>
</draw:line>
</draw:line>
–
XML タグの中で、タグを修飾するもの
–
この部分が属性
General Attributes (一般属性)
●
–
プレゼンアニメとかデータベース接続とかフォームとか
Formatting Attributes (書式属性)
●
12/20/13
<style:*-properties> タグ専用の属性。書式を定義する
ODPG定例会2013
20
21. Part 2 OpenFormula Format
●
大雑把に言えばセル関数の定義
–
●
ODF 1.1 までは Open Document Schema の一部だった
が 1.2 から独立
Expression (式)と Evaluator (評価器)
–
–
OpenDocument Formula Expression
~= OpenFormula
OpenDocument
Formula
Expression
評価器は三種類存在
●
OpenDocument Formula Medium Group Evaluator
●
12/20/13
OpenDocument Formula Small Group Evaluator
●
OpenDocument Formula Large Group Evaluator
OpenFormula
ODPG定例会2013
サポートする
セル関数の
範囲で決まる
21
22. Part 3 Packages
●
●
●
ODF のファイル構造を決めたもの
このスライドの p.9 で示したような内容が厳格に定
義されている
Encryption (暗号化)や Digital Signature (電子認
証)の規定もこの仕様
12/20/13
ODPG定例会2013
22
23. ODF Validator
●
ODF 文書が規準を満たしているかを検証 (validate)
するソフトウェア
–
Apache ODF Toolkit インキュベータプロジェクト
http://incubator.apache.org/odftoolkit/conformance/ODFValidator.html
–
Web サービスも公開中
http://odf-validator.rhcloud.com/
12/20/13
ODPG定例会2013
23
26. ODF で表現するもの
●
ODF ファイルの構造
●
ODF 文書の中に持つべき情報
–
–
–
–
●
文書の構造
文書の構成要素
各構成要素の書式
……
ODF で決まっている仕様を変更・拡張するような
アプリケーションの機能要求は、受け入れられる
ハードルが上がる
12/20/13
ODPG定例会2013
26
30. OOXML とは
●
MS Office 2007 から導入された新しいファイル形式
●
Office Open XML の略、別名 OpenXML
●
Microsoft により仕様提案、 ECMA
http://www.ecma-international.org/default.htm
にて標準化 (ECMA-376)
http://www.ecma-international.org/publications/standards/Ecma-376.htm
●
その後 ISO/IEC にて国際標準化
12/20/13
ODPG定例会2013
30
31. OOXML と旧 MS Office 形式
●
旧 MS Office 形式はフォーマット非公開 (※)
–
–
●
OOXML と旧 MS Office 形式はファイル形式の互換
性は一切ない
–
●
バイナリー形式であり中を覗いても意味不明
ただしユーザーが多いので解析されつくしている
表現力は近いとは想像できる
MS Office 2007 以降にとって、旧 MS Office 形式は
「インポート・エクスポート」の対象
–
12/20/13
標準フォーマットではない
ODPG定例会2013
(※) 資料公開後、仕様は下記アドレ
スで公開されているとのご指摘をい
ただきました。お詫びして訂正します。
http://msdn.microsoft.com/en-us/library31
/cc313105%28v=office.12%29.aspx
32. OOXML = ZIP された XML + α
$ unzip ../line-thickness.xlsx
$ unzip ../line-thickness.xlsx
Archive: ../line-thickness.xlsx
Archive: ../line-thickness.xlsx
inflating: [Content_Types].xml
inflating: [Content_Types].xml
inflating: _rels/.rels
inflating: _rels/.rels
inflating: xl/_rels/workbook.xml.rels
inflating: xl/_rels/workbook.xml.rels
inflating: xl/workbook.xml
inflating: xl/workbook.xml
inflating: xl/theme/theme1.xml
inflating: xl/theme/theme1.xml
inflating: xl/worksheets/_rels/sheet1.xml.rels
inflating: xl/worksheets/_rels/sheet1.xml.rels
inflating: xl/worksheets/sheet2.xml
inflating: xl/worksheets/sheet2.xml
inflating: xl/worksheets/sheet3.xml
inflating: xl/worksheets/sheet3.xml
inflating: xl/worksheets/sheet1.xml
inflating: xl/worksheets/sheet1.xml
inflating: xl/styles.xml
inflating: xl/styles.xml
inflating: docProps/core.xml
inflating: docProps/core.xml
inflating: xl/printerSettings/printerSettings1.bin
inflating: xl/printerSettings/printerSettings1.bin
inflating: docProps/app.xml
inflating: docProps/app.xml
12/20/13
ODPG定例会2013
32
33. OOXML の特徴
●
アプリケーションによりファイル構造が大きく異なる
–
●
●
例えば Excel なら worksheet + (sheets × n) など
ODF はスタイル指向だが、 OOXML は個々の要素に
属性を設定していく感じ
仕様がとにかく膨大
–
ODF 1000 ページ: OOXML 6500 ページ
–
Office Open XML overview という 14 ページの入門ド
キュメントがあるのでこれを読むと良い
http://www.ecma-international.org/news/TC45_current_work/OpenXML%20White%20Paper.pdf
12/20/13
ODPG定例会2013
33
34. OOXML と ODF を比べる①
●
日本のみなさん大好きな
罫線を Excel で描く
–
Excel の罫線は ODF の罫線とモデルが違う
●
–
12/20/13
「線種」と「線の太さ」が一次元にマップされている
OOXML もそれを反映
<sheetData>
<row r="2" spans="2:2">
<c r="B2" s="1"/></row>
<row r="3" spans="2:2" ht="14.25" thickBot="1"/>
<row r="4" spans="2:2" ht="14.25" thickBot="1">
<c r="B4" s="2"/></row>
<row r="5" spans="2:2" ht="14.25" thickBot="1"/>
<row r="6" spans="2:2" ht="15" thickTop="1" thickBot="1">
<c r="B6" s="3"/></row>
<row r="7" spans="2:2" ht="14.25" thickTop="1"/>
ODPG定例会2013
34
</sheetData>
35. OOXML と ODF を比べる②
●
「線の太さ」に関するモデリングの違い
–
–
●
ODF は線の太さは実寸( cm 単位)
OOXML は「細い」「中ぐらい」「太い」しかない
悩ましい変換の問題
ODF アプリケーション
内部モデル
(ODF like)
OOXML
s = "1"
stroke-width=??
s = "?"
–
OOXML
インポーター
OOXML
エクスポーター
stroke-width=0.1cm
基本的に行ったり来たりをするのは推奨されない
12/20/13
ODPG定例会2013
35
36. OOXML Validator / Plugfest
●
OOXML の検証ソフト( Validator) は一応存在する
http://ooxmlvalidator.codeplex.com/
–
–
–
●
OOXML 最新バージョンは 4 だが、 3.0 しかサポートして
いない
Plugfest
–
●
非常に野良っぽい
2009 年から更新が止まっている
存在しない
OOXML は、相互運用性の担保に無関心に見える
12/20/13
ODPG定例会2013
36
38. まとめ
●
●
●
●
ODF とは Apache OpenOffice/LibreOffice の標準ファイルフォーマッ
トというだけではなく、国際標準のオフィスファイル交換形式であ
る
実体は ZIP 圧縮された XML とその添付ファイル類
ODF は文書の構造を規定し、アプリケーションはその見せ方や操
作を決める
OOXML は Microsoft による国際標準のオフィスファイル交換形式
–
–
●
ODF と構造は似ている( XML+ZIP )が、まったく違う形式
旧 MS Office 形式とも互換性を持たない
相互運用においては両者の違いを正しく認識しよう
12/20/13
ODPG定例会2013
38