Xerces/Xalan-C++ で XML

トップページ

最終更新: 2015-04-01 (水) 20:35:07 (789d)

概要

目的

このページは、XML の基礎技術として 以下を扱う C++ プログラムの書き方について説明することを目的としている。

  • XML パーサ
  • XSLT プロセッサ

XML パーサとは、XML ドキュメントを解釈するプログラムである。 XML パーサを使うことで XML ドキュメントをプログラム上で扱うことが可能になる。

XSLT プロセッサとは、 XML ドキュメントを XSLT スタイルシートの定義に従って 別のドキュメントに変換するプログラムである。 XSLT プロセッサを使うことで他形式ドキュメントへの変換やドキュメントの装飾、 着目情報の抽出等を行うことが可能になる。

対象者

  • 直接 XML ドキュメントを操作するプログラムを記述したいと考えている人。

XML パーサと XSLT プロセッサは、 いずれも XML ドキュメントを操作する基礎的な技術であり、 目的を達成することが可能である。

非対象者

  • XML ドキュメントおよび XSLT スタイルシートの書き方を覚えたいと考えている人。

XML ドキュメントおよび XSLT スタイルシートの書き方については詳しく説明しない。

  • XML の応用技術(SOAP や XML DB 等)を使用したいと考えている人。

通常、応用技術を使用する際、 直接 XML を操作するプログラムを記述することはない。 多くの場合、XML は内部表現として使われているだけで、外部から隠蔽されており、直接触れる機会はない。

想定する開発環境

本ページが想定する環境(コンパイラ及びライブラリのバージョン)は 以下の通りである。

コンパイラMicrosoft Visual C++ 6.0Microsoft Visual C++ 2010 Express
XML パーサライブラリXerces-C++ Version 2.2.0 ~ 2.8.0Xerces-C++ Version 3.0.0 ~
XSLT プロセッサライブラリXalan-C++ Version 1.8.0未定

コンパイラの想定環境は、 プロジェクトファイルの提供および動作確認の有無という観点から記載している。

XML パーサおよび XSLT プロセッサライブラリは、 マルチプラットフォームを対象としている。 そのため本サイトで紹介しているソースコード自体は、 マルチプラットフォームを想定している。

補足

本コンテンツ内で技術的解説を加えた上で公開しているクラスをユーティリティーとし、SourceForge.JP でオープンソースで公開する。

利用を検討する方は以下のサイトを参考のこと。

コンテンツ

XML パーサ(Xerces-C++)を使ったサンプル

まずはXerces-C++の簡単な使い方も含め、単純なXMLプログラミングを始めよう。

Xerces-C++及びSAXの簡単な使い方がわかったら、 次にDOMを使った単純なプログラミングをしてみよう。

Xerces-C++を使った簡単なプログラムの作り方はわかった。 でも、日本語(Shift_JIS)を入れたら動かなかった。 なんでだろう?でも、決して使えないわけではない。 どうやったらうまく日本語を処理できるのか、 Xerces-C++で日本語を使うまでを簡単に示す。

仕組の説明はともかく日本語を扱いたいという人は、XMLCh 型と char 型の変換をカプセル化しようで定義しているクラスを使用すると良い。

XMLCh型とchar型の変換を行うためには、 XMLString::transcodeして変換し、使い終わったらXMLString::releaseする。 忘れることが多い処理なので、これをクラスの中に隠蔽してしまおう。

Xerces-C++で日本語を使うまでをさらに発展させて、 日本語を含むXMLCh型とchar型の変換をカプセル化しよう。

Xerces-C++はバージョン3.0.0以上とそれ以前とではインターフェイスが変わった部分がある。 バージョンを判断し、バージョンの違いを吸収する方法を覚えよう。

XSLT プロセッサ(Xalan-C++)を使ったサンプル

まずはXalan-C++の簡単な使い方も含め、単純なXSLTプログラミングを始めよう。

XSLTで処理した結果をSAXやDOMで処理したい。 Xalan-C++とXerces-C++を連携させよう。

コメント

本ページの内容に関して何かコメントがある方は、以下に記入してください。

コメントはありません。 コメント/FrontPage

お名前: