| オフィスオープンXML |
|---|
| Office Open XML ドキュメント | |
|---|---|
| ファイル名拡張子 | .docx、.docm |
| インターネットメディアの種類 | |
| 開発者 | マイクロソフト、Ecma、ISO / IEC |
| 初回リリース | 2006 (2006年) |
| フォーマットの種類 | ドキュメントファイル形式 |
| 延長 | XML、DOC、ワードプロセッシングML |
| 標準 | ECMA-376、ISO/IEC 29500 |
| Webサイト | ECMA-376、ISO/IEC 29500:2008 |
| Office Open XML プレゼンテーション | |
|---|---|
| ファイル名拡張子 | .pptx、.pptm |
| インターネットメディアの種類 | |
| 開発者 | マイクロソフト、Ecma、ISO / IEC |
| フォーマットの種類 | プレゼンテーション |
| 延長 | XML、PPT |
| 標準 | ECMA-376、ISO/IEC 29500 |
| Webサイト | ECMA-376、ISO/IEC 29500:2008 |
| Office Open XML ワークブック | |
|---|---|
| ファイル名拡張子 | .xlsx、.xlsm |
| インターネットメディアの種類 | |
| 開発者 | マイクロソフト、Ecma、ISO / IEC |
| フォーマットの種類 | スプレッドシート |
| 延長 | XML、XLS、スプレッドシートML |
| 標準 | ECMA-376、ISO/IEC 29500 |
| Webサイト | ECMA-376、ISO/IEC 29500:2008 |
Office Open XMLファイル形式は、電子オフィス文書を表現するために使用できるファイル形式のセットです。ワープロ文書、スプレッドシート、プレゼンテーション用の形式に加え、数式、グラフィック、参考文献などの資料に特化した形式も用意 されています。
これらの形式はMicrosoftによって開発され、 Microsoft Office 2007で初めて採用されました。2006年12月から2008年11月にかけて標準化され、最初はEcma InternationalコンソーシアムによってECMA-376として標準化されました。その後、物議を醸した標準化プロセスを経て、ISO/IECの合同技術委員会1によってISO/IEC 29500:2008として標準化されました。

Office Open XMLドキュメントは、 Open Packaging Conventions (OPC)パッケージに保存されます。これは、 XMLファイルやその他のデータファイル、およびそれらの間の関係を示す仕様を含むZIPファイルです。 [ 2 ]ドキュメントの種類に応じて、パッケージの内部ディレクトリ構造と名前は異なります。アプリケーションは、関係ファイルを使用して個々のセクション(ファイル)を特定します。各セクション(ファイル)には、 MIMEメタデータなどのメタデータが付随します。
基本パッケージには、ルートに[Content_Types].xmlというXMLファイルがあり、さらに3つのディレクトリ( _rels、docProps、そしてドキュメントタイプ固有のディレクトリ(例えば、.docx形式のワープロパッケージであればwordディレクトリ))が含まれています。wordディレクトリには、ドキュメントのコアコンテンツである document.xml ファイルが 含まれています。
関係ファイルの例 ( word/_rels/document.xml.rels ) は次のとおりです。
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?> <リレーションシップxmlns= "http://schemas.microsoft.com/package/2005/06/relationships" > <リレーションシップID= "rId1"タイプ= "http://schemas.microsoft.com/office/2006/relationships/image"ターゲット= "http://en.wikipedia.org/images/wiki-en.png"ターゲットモード= "外部" /> <リレーションシップID= "rId2"タイプ= "http://schemas.microsoft.com/office/2006/relationships/hyperlink"ターゲット= "http://www.wikipedia.org"ターゲットモード= "外部" /> </リレーションシップ>そのため、ドキュメント内で参照されている画像は、関係ファイル内で タイプの関係をすべて検索することで見つけることができますhttp://schemas.microsoft.com/office/2006/relationships/image。使用されている画像を変更するには、関係を編集してください。
次のコードは、ハイパーリンクのインライン マークアップの例を示しています。
<w:hyperlink r:id= "rId2" w:history= "1" xmlns:r= "http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns:w= "http://schemas.openxmlformats.org/wordprocessingml/2006/main" >この例では、Uniform Resource Locator (URL) は、リレーションシップID(この場合は「rId2」)を介して参照されるリレーションシップのTarget属性にあります。リンクされた画像、テンプレート、その他のアイテムも同様に参照されます。
画像はタグを使用して埋め込んだりリンクしたりできます。
<v:imagedata w:rel= "rId1" o:title= "例" />これは画像ファイルへの参照です。すべての参照はリレーションシップによって管理されます。例えば、document.xmlは画像とリレーションシップを持っています。document.xmlと同じディレクトリに_relsディレクトリがあり、その中にdocument.xml.relsというファイルがあります。このファイルには、タイプ、ID、場所を含むリレーションシップ定義が含まれます。IDはXMLドキュメント内で使用される参照IDです。タイプはメディアタイプの参照スキーマ定義であり、場所はZIPパッケージ内の内部の場所、またはURLで定義された外部の場所になります。
Office Open XMLは、ドキュメントのプロパティを保存するために、 Dublin Coreメタデータ要素セットとDCMIメタデータ用語を使用します。Dublin Coreは、クロスドメイン情報リソース記述の標準であり、 ISO 15836:2003で定義されています。
Dublin Core メタデータを使用する ドキュメント プロパティ ファイル ( docProps/core.xml )の例は次のとおりです。
<?xml version="1.0" encoding="UTF-8" standalone="yes"?> <cp:coreProperties xmlns:cp= "http://schemas.openxmlformats.org/package/2006/metadata/core-properties" xmlns:dc= "http://purl.org/dc/elements/1.1/" xmlns:dcterms= "http://purl.org/dc/terms/" xmlns:xsi= "http://www.w3.org/2001/XMLSchema-instance" > <dc:title> Office Open XML </dc:title> <dc:subject>ファイル形式と構造</dc:subject> <dc:creator> Wikipedia </dc:creator> <cp:keywords> Office Open XML、メタデータ、Dublin Core </cp:keywords> <dc:description> Office Open XMLはISOを使用します15836:2003 </dc:description> <cp:lastModifiedBy> Wikipedia </cp:lastModifiedBy> <cp:revision> 1 </cp:revision> <dcterms:created xsi:type= "dcterms:W3CDTF" > 2008-06-19T20:00:00Z </dcterms:created> <dcterms:modified xsi:type= "dcterms:W3CDTF" > 2008-06-19T20:42:00Z </dcterms:modified> <cp:category>文書ファイル形式</cp:category> <cp:contentStatus>最終</cp:contentStatus> </cp:coreProperties>Office Open XMLファイルには、Microsoft Office製品ライン内のアプリケーションに対応する特殊なマークアップ言語でエンコードされた複数のドキュメントが含まれる場合があります。Office Open XMLは、27の名前空間と89のスキーマモジュールを使用して複数の語彙を定義します。
主なマークアップ言語は次のとおりです。
共有マークアップ言語マテリアルには次のものが含まれます。
上記のマークアップ言語に加えて、カスタム XML スキーマを使用して Office Open XML を拡張することもできます。
ODFの編集者であるパトリック・デュルソー氏は、OOXMLとODFのマークアップスタイルを、議論の二つの側面、すなわち「要素側」と「属性側」を代表していると考えています。彼は、OOXMLが「このアプローチの要素側」を代表していると指摘し、KeepNext要素を例として挙げています。
<w:pPr> <w:keepNext/> … </w:pPr>fo:keep-next対照的に、ODFでは同じ意味を表現するために要素ではなく単一の属性を使用することを指摘している。 [ 3 ]
Office Open XML の XML スキーマは、読み込み時間の短縮と解析速度の向上を重視しています。[ 4 ] 2007年4月現在のアプリケーションでのテストでは、XML ベースのオフィス ドキュメントの読み込みはバイナリ形式よりも遅かったです。[ 5 ]パフォーマンスを向上させるために、Office Open XML では共通要素に非常に短い要素名が使用され、スプレッドシートは日付をインデックス番号 (1900 年または 1904 年開始) として保存します。[ 6 ]体系的かつ汎用的であるため、Office Open XML では通常、構造化プロパティを可能にする複数の属性を使用するのではなく、データとメタデータに個別の子要素 (プロパティの場合は Pr で終わる要素名) を使用します。Office Open XML では混合コンテンツは使用されず、一連のテキスト ラン (要素名r )が段落 (要素名p )に配置されます 。
テキスト内の要素と属性の命名については、批判の声が上がっています。OOXML (ECMA-376) には、文書がテキスト、スプレッドシート、プレゼンテーションのいずれであるかに応じて、テキストの色と配置を指定するための3つの異なる構文があります。IBM社員でOASIS OpenDocument Format TCの共同議長を務めるRob Weir氏は、「この恐ろしい状況の技術的根拠は何か?」と問いかけています。彼はOpenDocumentと対比し、「ODFはテキストスタイル設定にW3CのXSL-FOボキャブラリを使用しており、このボキャブラリを一貫して使用しています」と述べています。[ 7 ]
一部の人々は、OOXMLの設計がMicrosoftアプリケーションにあまりにも依存していると主張しています。2007年8月、Linux Foundationはブログ記事を公開し、ISO加盟国に対し、OOXMLの国際標準化において「コメント付きで反対票を投じる」よう呼びかけました。記事では、「OOXMLは単一ベンダーのバイナリ文書形式をそのまま移植したものであり、既存の国際標準(複数の暗号化アルゴリズム、VMLなど)の再利用を回避しています。OOXMLを標準化する前に、プラットフォーム固有の機能に結びついたバイナリコードの継続的な使用、MS-Officeのバグの標準への伝播、独自のユニット、独自の/機密タグへの参照、不明確な知的財産権や特許権など、文字通り数百もの技術的欠陥に対処する必要があります」と述べています。[ 8 ]
JTC 1に提出された規格のバージョンは6546ページに及んだ。この長さの必要性と妥当性については疑問が呈されている。[ 9 ] [ 10 ] Googleは「同じ目的を達成するODF規格はわずか867ページである」と述べている[ 9 ]。
ワープロ文書は、wml.xsd標準規格に付属するスキーマによって規範的に定義されたWordprocessingMLと呼ばれるXML語彙を使用します。この語彙は、パート1の11項で定義されています。[ 11 ]
sml.xsdスプレッドシート文書は、標準規格に付属するスキーマによって規範的に定義されたSpreadsheetMLと呼ばれるXML語彙を使用します。この語彙は、パート1の12項で説明されています。 [ 11 ]
<worksheet>...</worksheet>スプレッドシート内の各ワークシートは、名前空間で名前が付けられたルート要素を持つ XML ドキュメントによって表されますhttp://schemas.openxmlformats.org/spreadsheetml/2006/main。
SpreadsheetMLにおける日付と時刻の値の表現には、批判が寄せられています。ECMA-376第1版は、ISO 8601:2004「日付と時刻の表現」に準拠していません。実装において、1900年を誤って閏年として扱うLotus 1-2-3 [ 12 ] のバグを再現することが求められています。ECMA-376に準拠する製品では、WEEKDAY()スプレッドシート関数を使用する必要があり、その結果、一部の曜日に誤った日付が割り当てられ、特定の日付間の日数も誤って計算されます。 [ 13 ] ECMA-376第2版(ISO/IEC 29500)では、Lotus 1-2-3のバグ互換形式に加えて、ISO 8601:2004「日付と時刻の表現」の使用が許可されています。[ 14 ] [ 15 ]
Office Math Markup Languageは、WordprocessingMLに埋め込むことができる数学マークアップ言語で、リビジョンマーク、[ 16 ]、脚注、コメント、画像、複雑な書式設定やスタイルなどのワードプロセッサマークアップを組み込むための固有のサポートを備えています。[ 17 ] OMML形式は、これらのオフィス機能をサポートしていないワールドワイドウェブコンソーシアム(W3C)のMathML勧告とは異なりますが、[ 18 ] XSL変換を通じて部分的に互換性があります。ツールはオフィススイートに提供されており、クリップボード変換によって自動的に使用されます。[ 19 ]
次の Office MathML の例では、分数を定義します。
<m:oMathPara> <!-- 段落として使用される数学ブロック コンテナー --> <m:oMath> <!-- 数学的なインライン式 --> <m:f> <!-- 分数 --> <m:num><m:r><m:t> π </m:t></m:r></m:num> <!-- 分子に 1 つのテキスト ランが含まれています --> <m:den><m:r><m:t> 2 </m:t></m:r></m:den> <!-- 分母に 1 つのテキスト ランが含まれています --> </m:f> </m:oMath> </m:oMathPara>Office MathML(OMML)の必要性を疑問視する声もあり、代わりにW3C勧告の「ウェブページへの数式の表示」と「マシン間通信」に関するMathMLの使用を推奨する声もある。 [ 20 ]マレー・サージェントはブログ記事でこれらの問題のいくつかに回答し、2つのフォーマットの哲学的な違いについて詳しく説明している。[ 21 ]

DrawingMLは、 Office Open XMLドキュメントで使用されるベクターグラフィックマークアップ言語です。主な機能は、テキスト要素、ベクターベースの図形要素、グラフィカルな表やグラフのグラフィックレンダリングです。
DrawingMLテーブルは、Office Open XMLの3番目のテーブルモデル(WordprocessingMLとSpreadsheetMLのテーブルモデルに次ぐ)であり、グラフィカル効果に最適化されており、主にPresentationMLマークアップで作成されたプレゼンテーションで使用されます。DrawingMLには、DrawingMLで使用されるさまざまなグラフィカル要素に使用できるグラフィック効果(影や反射など)が含まれています。DrawingMLでは、たとえば柔軟なカメラ視点を通してさまざまなグラフィカル要素を表示するなど、3D効果を作成することもできます。Office Open XMLパッケージに個別のDrawingMLテーマパーツを作成することが可能です。これらのテーマは、Office Open XMLパッケージ全体のグラフィカル要素に適用できます。[ 22 ]
DrawingMLは、 SVGなどの他のベクターグラフィック形式とは無関係です。これらの形式はDrawingMLに変換して、Office Open XMLドキュメントにネイティブに組み込むことができます。これは、SVGのサブセットを使用し、ベクターグラフィックを個別のファイルとして組み込むOpenDocument形式とは異なるアプローチです。
DrawingMLグラフィックの寸法は、英国メートル法単位(EMU)で指定されます。これは、元々英国単位またはメートル法単位のいずれかで定義されていた寸法を正確に共通に表現できるためです。1センチメートルは1/360,000と定義され、計算における四捨五入を防ぐため、 1インチあたり914,400 EMU、1ポイントあたり12,700 EMUが使用されます。リック・ジェリフは、特定の設計基準に対する合理的な解決策としてEMUを推奨しています。[ 23 ]
W3C勧告のSVGの代わりにDrawingML(および移行用VML )を使用したことを批判する人もいます。[ 24 ] VMLはW3C勧告にはなりませんでした。[ 25 ]
OOXML ドキュメントは通常、XML コンテンツに加えて他のリソース (グラフィック、ビデオなど) で構成されます。
このようなリソースに許可されるフォーマットの選択について批判する声もある。ECMA-376第1版では、「埋め込みオブジェクト代替画像リクエストタイプ」と「クリップボードフォーマットタイプ」が規定されているが、これらはWindowsメタファイルまたは拡張メタファイルを参照している。これらはいずれもWindows自体 にハードコードされた依存関係を持つ独自のフォーマットである。批判者たちは、この規格はプラットフォームに依存しない標準規格であるISO/IEC 8632「コンピュータグラフィックスメタファイル」を参照すべきだったと主張している。[ 13 ]
この規格では、編集目的でコンテンツ内に外部マークアップを埋め込むことができる 3 つのメカニズムが提供されています。
これらはパート 1 の条項 17.5 で定義されています。
Office Open XMLの各バージョンには、「互換性設定」と呼ばれる機能が含まれています。これらはECMA-376第1版のパート4(「マークアップ言語リファレンス」)に含まれていますが、標準化の過程でISO/IEC 29500:2008(「移行機能」)の新しいパート(パート4とも呼ばれます)に移動されました。
これらの設定(autoSpaceLikeWord95、footnoteLayoutLikeWW8、lineWrapLikeWord6、mwSmallCaps、shapeLayoutLikeWW8、suppressTopSpacingWP、truncateFontHeightsLikeWP6、uiCompat97To2003、useWord2002TableStyleRules、useWord97LineBreakRules、wpJustification、wpSpaceWidthなどの名前を持つ要素を含む)は、DIS 29500の標準化中にいくつかの論争の的となった。[ 26 ]その結果、これらを文書化するためにISO/IEC 29500に新しいテキストが追加された。[ 27 ]
Free Software Magazineの記事では、これらの設定に使用されているマークアップが批判されています。Office Open XMLでは、各互換性設定にそれぞれ固有の名前を持つ要素が使用され、それぞれがスキーマで宣言されています。そのため、設定のレパートリーは限られており、新しい互換性設定を追加するには、新しい要素を宣言する必要があり、「相互運用性とは全く関係のない設定が何千も作成される可能性があります」。[ 28 ]
この規格では、パート 3 (ISO/IEC 29500-3:2008) で定義されているマークアップ互換性と拡張性 (MCE) と、パート 1 の条項 18.2.10 で定義されている拡張リストの 2 種類の拡張メカニズムが提供されています。
が6546ページに及ぶOOXMLに他の標準と同じレベルのレビューを与えた場合、同じ目的を達成しており適切な比較対象となる既存のODF標準(867ページ、871日)と同等のレベルのレビューを達成するには18年(6546ページ、6576日)かかることになる。OOXMLは、同等の標準が受けてきたレビューの約5.5%しか受けていないことを考えると、不一致、矛盾、情報不足に関する報告があっても驚くには当たらない。
「…OOXMLはこの方法を選択しました。アプリケーション定義可能な設定タグを作成するのではなく、各設定に固有のタグを用意しています…現在、アプリケーション固有の設定で対応しているのは、標準の作成者が含めることを決定したアプリケーションのみです…他のアプリケーションを追加するには、仕様でさらにタグ名を定義する必要があり、相互運用性とはまったく関係のないタグが数千個も作成される可能性があります…」