XML ドキュメントでの作業
XML(Extensible Markup Language:拡張マークアップ言語)は、構造化データを記述するためのマークアップ言語です。HTML と似ていますが、表示特性ではなく情報の構造をタグで記述する点が異なります。XML ドキュメントは、検索や編集が容易なように情報をテキストで簡単に格納する手段となります。これらは、Web アプリケーションや企業間通信などでの転送可能な標準のデータ形式としてしばしば使用されます。
XML ドキュメントでは、データの本体を階層的に表現します。XML ドキュメントのタグは各データ要素の役割や意味を記述します。例を以下のドキュメントで示しますが、これは保有株の集合を記述しています。
<?xml version="1.0" encoding="UTF-8" standalone="no" ?> <!DOCTYPE StockHoldings SYSTEM "sth.dtd"> <StockHoldings> <Stock exchange="NASDAQ"> <name>Borland</name> <price>15.375</price> <symbol>BORL</symbol> <shares>100</shares> </Stock> <Stock exchange="NYSE"> <name>Pfizer</name> <price>42.75</price> <symbol>PFE</symbol> <shares type="preferred">25</shares> </Stock> </StockHoldings>
この例では、XML ドキュメントでよく使用される代表的な要素をいくつか示しています。1 行目は、XML 宣言と呼ばれる処理命令です。XML 宣言は省略可能ですが、ドキュメントに関する有用な情報を提供するので、この宣言はぜひ含めてください。この例の XML 宣言で記述されているのは、このドキュメントが XML 仕様のバージョン 1.0 に準拠していること、UTF-8 文字エンコードが使用されていること、文書型宣言(DTD)を外部ファイルに依存していることです。
2 行目は <!DOCType> タグで始まっていますが、これは文書型宣言(DTD)です。DTD とは、ドキュメントの構造が XML でどう定義されるかということです。これは、ドキュメントに含まれている要素(タグ)が従わなければならない構文規則を記述します。この例の DTD では別のファイル(sth.dtd)を参照しています。今回の場合、XML ドキュメントそのものではなく外部ファイルに構造が定義されています。XML ドキュメントの構造を記述するファイルの種類としては、この他に、XDR(XML Data Reduced)、XSD(XML スキーマ)などがあります。
3 行目以降は、単一のルート ノード(<StockHoldings> タグ)を持つ階層に編成されています。この階層の各ノードには、一連の子ノードかテキスト値が含まれています。属性が含まれているタグもあります(<Stock> タグと <shares> タグ)。属性は "名前=値" という形式のペアであり、タグの解釈方法の詳細を指定しています。
XML ドキュメントのテキストを直接扱うことも可能ですが、アプリケーションでは通常、データの解析用および編集用の追加ツールを使用します。W3C では、DOM(Document Object Model)と呼ばれる、解析済みの XML ドキュメントを表現するための一連の標準インターフェイスを定義しています。DOM インターフェイスを実装して XML ドキュメントをもっと簡単に解釈および編集できるようにする XML パーサーがいくつかのベンダーから提供されています。
RAD Studio には、XML ドキュメントを扱うための追加ツールがいくつか用意されています。これらのツールでは、別のベンダーから提供される DOM パーサーを使用しており、ツールを使用することで、XML ドキュメントの取り扱いがさらに簡単になります。たとえば、以下のようなものがあります。
- XML コンポーネントを扱うための VCL コンポーネントおよびインターフェイス
- 特定の XML ドキュメントを表すクラスを生成するための XML データ バインディング ウィザード(「データ バインディング ウィザードによる XML ドキュメントの抽象化」を参照)
- XML ドキュメントとデータ パケットの間で変換を行うためのツールおよびコンポーネント(これらにより、XML ドキュメントをデータベース アプリケーションに統合できるようになります)