Open XML 形式 SDK 1.0 について

Office Open XML (OpenXML) は、さまざまなプラットフォームで複数のアプリケーションによって自由に実装できる、ワード プロセッシング ドキュメント、プレゼンテーション、およびスプレッドシートのオープン スタンダートです。OpenXML は、Microsoft® Office アプリケーションによって定義されているバイナリ形式でエンコードされた既存のワード プロセッシング ドキュメント、プレゼンテーション、およびスプレッドシートを忠実に表すように設計されています。OpenXML が求められる理由は単純です。現在、非常に多くのドキュメントが存在していますが、残念ながら、それらのドキュメントに含まれる情報は、それらを作成したプログラムに密接に結び付けられています。OpenXML 標準の目的は、Microsoft Office アプリケーションによって作成されたドキュメントを切り離し、独自の形式に関係なく、また、データを失うことなく、他のアプリケーションで操作できるようにすることです。

OpenXML パッケージの構造

OpenXML ファイルは、パッケージ化および圧縮され ZIP アーカイブに格納されます。ZIP ビューアを使用して、OpenXML ファイルの構造を表示できます。OpenXML ドキュメントは、複数のドキュメント パーツで構築されています。ドキュメント パーツ間のリレーションシップは、それぞれのパーツに格納されています。ZIP 形式は、各パーツへのランダム アクセスをサポートしています。たとえば、アプリケーションは、Microsoft Office PowerPoint® 2007 プレゼンテーション間で、スライドのコンテンツを解析することなくスライドを移動できます。同様に、アプリケーションは、ワード プロセッシング ドキュメントのすべてのコメントを、そのコンテンツを解析することなく削除できます。

OpenXML パッケージのドキュメント パーツは、XML マークアップとして作成されます。XML は、構造化された書式なしテキストであるため、テキスト リーダーを使用してドキュメント パーツのコンテンツを表示したり、XPath などのプロセスを使用してコンテンツを解析したりできます。

構造的には、OpenXML ドキュメントは Open Packaging Conventions (OPC) パッケージです。前述のとおり、パッケージはドキュメント パーツの集合で構成されています。各パーツには、"/word/theme/theme1.xml" のような、ひと続きのセグメントまたはパス名で構成される名前があります。パッケージには、[Content_Types].xml パーツが含まれており、これにより、パッケージ内のすべてのドキュメント パーツのコンテンツの種類を判断できます。ソース パッケージまたはパーツの明示的なリレーションシップのセットは、最後に .rels という拡張子が付くリレーションシップ パーツに含まれています。

Microsoft Office Word 2007 文書は、WordprocessingML マークアップを使用して定義されます。文書はストーリーの集合で構成されます。各ストーリーは次のいずれかです。

  • メイン文書 (唯一の必須のストーリー)

  • グロッサリ文書

  • ヘッダーおよびフッター

  • コメント

  • テキスト ボックス

  • 脚注および文末脚注

Microsoft Office PowerPoint 2007 プレゼンテーションは、PresentationML マークアップによって記述されます。プレゼンテーション パッケージには、次のドキュメント パーツを含めることができます。

  • スライド マスタ

  • ノート マスタ

  • 配布資料マスタ

  • スライドのレイアウト

  • ノート

Microsoft Office Excel® 2007 ブックは、SpreadsheetML マークアップを使用して記述されます。ブック パッケージには以下を含めることができます。

  • ブック パーツ (必須パーツ)

  • 1 つ以上のワークシート

  • グラフ

  • カスタム XML

Open XML 形式 SDK 1.0

Open XML 形式 SDK 1.0 は、OpenXML パッケージの操作を容易にします。Open XML アプリケーション プログラミング インターフェイス (API) には、OpenXML パッケージで通常実行する一般的なタスクの多くがカプセル化されているため、数行のコードのみで複雑な操作を実行できます。一般的なタスクには次のものがあります。

  • 検索。数行のコードで、多数の Excel 2007 ワークシートから任意のデータを検索できます。

  • ドキュメント作成。プログラムによって既存ドキュメントのドキュメント パーツを結合して、ドキュメントを作成できます。たとえば、さまざまな PowerPoint 2007 プレゼンテーションからスライドを抜き出し、単一のプレゼンテーションを作成できます。

  • 検証。数行のコードで、パッケージ内のドキュメント パーツを検証したり、パッケージ全体をスキーマに対して検証したりできます。

  • データの更新。Open XML API を使用して、複数のパッケージ内のデータを容易に編集できます。

  • プライバシー。数行のコードで、ドキュメントを配布する前に、そのドキュメントからコメントやその他の個人情報を削除できます。

Open XML API は、Microsoft .NET Framework® によってサポートされているすべての言語で使用できます。この SDK で示されているヘルプ トピックでは、Microsoft Visual C#® および Microsoft Visual Basic® .NET のコード サンプルを提供しています。

手始めに、この SDK のヘルプ トピックにあるコード サンプルを使用して、2007 Microsoft Office system で OpenXML 標準を利用することができます。Open XML API は、面倒な Open Packaging Conventions ドキュメントの操作を大幅に簡略化するので、検討してみることをお勧めします。