- オープン文書フォーマットであるHWPXの構造と、データを保存・管理する方式を説明
- HWPXと従来のHWPフォーマットの違いを説明し、HWPXフォーマットの主要構成要素と各ファイルの役割を分析
はじめに
- HWPはバイナリフォーマットであり、HWPXはXMLファイルがZIP構造で構成されている点が最大の違い
- HWPフォーマットの場合、ストリームがレコード形式で構成されているため、データを抽出するには別途の解析過程を経る必要がある
- 一方、HWPXフォーマットは主要ファイルがXMLであるため、データ抽出が容易
HWPXとは
- Hancomが開発したXMLベースのオープン文書フォーマットで、国家標準(KS X 6101)であるOWPMLに従うオープン文書フォーマット
- OWPMLはXMLベースの「Open Word-Processor Markup Language」を意味
- 2011年12月30日に制定された韓国産業標準(KS)であり、約2年にわたって国内文書標準化委員会を通じて標準開発が進められた
- 国内標準開発に直接参加している専門家たちとともに共同開発された国家標準
- HWP形式のバイナリフォーマットに対する開放性、互換性、保存性を確保するために開発されたファイル形式
- そのためXMLベースのパッケージフォーマットで構成
HWPXファイル構造
- HWPXはZIPファイル構造を持つXMLベースのフォーマット
- 展開すると複数のXMLファイルとフォルダで構成されている
- 主な構成要素:
mimetype: ファイル形式情報を含み、HWPXフォーマットであることを確認するシグネチャ情報
settings.xml: カーソル位置などの外部設定要素情報を含む
version.xml: OWPMLファイル形式のバージョン情報と文書保存環境情報を含む
BinData/: 文書に含まれる画像、OLEオブジェクトなどのバイナリファイルを保存
Contents/: 文書の書式情報と本文内容が含まれており、content.hpf, header.xml, section0.xml などのファイルで構成される
content.hpf : パッケージングの主要ファイル一覧。OPF(Open Packaging Format)標準に従って定義されており、metadata、manifest、spineの3つの部分に分かれて構成
header.xml : 文書内容に関連するすべての設定を含み、文字スタイル、段落スタイルなどのマッピング情報を含む
section0.xml : セクションごとの本文内容を保存し、文書の各セクションが別個のファイルとして保存される
META-INF/: manifest.xml、container.rdf、container.xmlファイルが含まれており、暗号化文書の場合は各ファイルごとの暗号化情報が保存される
Scripts/: 文書に保存されたスクリプト情報がheaderScripts、sourceScriptsファイルに保存
Preview/: プレビュー画像とテキストファイルが含まれている。ファイルエクスプローラーでプレビューウィンドウを開いたときに表示される情報。暗号化文書の場合はセキュリティのためこのファイルは保存しない
おわりに
- HWPXを活用する前に、全体構造と内部を構成する各ファイルの役割を説明
- 今後のシリーズでは、実際のHWPX文書から必要なデータを抽出する例を共有する予定
- HWPXの構成要素とデータを活用するうえで役立つことを願う
4件のコメント
良い記事をありがとうございます。AWSで生成するファイル(レポートのようなもの)をHWPにしたいのですが、関連リファレンスが不足していて難しさがあります。現在はWordにしています。もし参考になりそうな資料がありましたら、リンクをお願いできればと思います。
以前聞いた話では、hwpx は hwp のバイナリを単純に xml に展開して、その後 zip でまとめたものだそうです。
とはいえ、少なくとも読めはするので…
それはdocxをそのまま真似たものだそうです。
すでにMSがdocからdocxを作るときにそうしていました。
ハングル文書ファイル形式: HWPフォーマット構造を見てみる