ここでは,XML文書管理機能の概要について説明します。
XMLは,W3Cによって標準化が進められている,文書の構造を定義するための言語です。XMLでは,ユーザが設定した独自のタグによって,論理構造を持つ文書を記述できます。このため,Web上のデータ交換フォーマットなどとして,多くの業務で適用されています。
DocumentBrokerでは,XML形式で記述されたファイルをバージョンなし文書およびバージョン付き文書のコンテントとして管理できます。
なお,このマニュアルでは,XMLで記述されたファイルをXMLファイルと呼びます。また,XMLファイルをコンテントとしてDocumentBrokerに登録した文書を,XML文書と呼びます。
DocumentBrokerでは,XML文書を管理するために次のような機能を提供しています。
XMLプロパティマッピング機能を使用する場合は,前提プログラムとしてHiRDB Adapter for XMLが必要です。また,XMLインデクスデータ作成機能を使用する場合は,前提プログラムとしてHiRDB Adapter for XMLと,Preprocessing Library for Text Searchが必要です。また,全文検索を実行する場合は,サーバ側にHiRDB Text Search Plug-inが必要です。
ここでは,XMLプロパティマッピング機能について説明します。
XMLプロパティマッピング機能とは,XMLファイル中の,タグ間の文字列やタグの属性値を抽出して,XML文書のプロパティに設定するための情報を作成する機能です。この情報をXML文書のプロパティにマッピングすることによって,例えば,次のようなことができるようになります。
XMLプロパティマッピング機能を使用するXMLファイルの例を,次の図に示します。
図3-52 XMLプロパティマッピング機能を使用するXMLファイルの例
<prop>タグで囲まれた内容には,タイトルや著者,著者に関する情報,バージョン情報などが,それぞれのタグ内の文字列または属性値として記述されています。
ここでは,XMLファイルをバージョン付き文書のコンテントとして登録する場合について説明します。タイトルと著者の情報はバージョン付き文書のプロパティ(DMAオブジェクトのConfigurationHistoryオブジェクトのプロパティ)として,バージョン情報はバージョンなし文書(バージョン付き文書の1バージョン)のプロパティ(DMAオブジェクトのDocVersionオブジェクトのプロパティ)としてマッピングすることにします。
図3-52のXMLファイルに含まれる情報をXML文書のプロパティにマッピングした例を,次の図に示します。
図3-53 XMLプロパティマッピング機能によってXML文書のプロパティにマッピングした例
この例では,<title>タグ間の情報は,バージョン付き文書のusrProp_Titleプロパティにマッピングしています。<author>タグ間の情報は,複数の情報を表すタグを含むので,VariableArray型プロパティであるusrProp_Authorプロパティにマッピングしています。<author>タグの属性であるnameの値,<author>タグ間に含まれる<birthday>タグおよび<organization>タグ間の情報は,VariableArray型プロパティの構成要素を表すusrProp_Nameプロパティ,usrProp_BirthdayプロパティおよびusrProp_Organizationプロパティにそれぞれマッピングしています。
XMLプロパティマッピング機能は,XMLファイルに対して構文解析を実行し,タグ間の文字列や属性値を抽出して,プロパティにマッピングするための機能です。抽出した情報は,文書を作成する時に指定するDMAオブジェクト生成用の構造体(SDBR_DMAINFO構造体)として出力されます。SDBR_DMAINFO構造体は,文書の作成時に使用する,DMAオブジェクトのクラス識別子とプロパティの初期値をメンバとして持つ構造体です。SDBR_DMAINFO構造体の詳細については,マニュアル「DocumentBroker Version 3 クラスライブラリ C++ リファレンス 基本機能編」を参照してください。
作成したSDBR_DMAINFO構造体を指定して文書を作成することで,XMLファイルのコンテントの情報をプロパティにマッピングしたXML文書が作成できます。
なお,この機能を使用する場合は,登録するXMLファイルの論理構造を明確にして,どのタグをどのプロパティにマッピングするかの対応を定義しておく必要があります。定義に必要なファイルには,ユーザが作成するファイルと,DocumentBrokerおよびHiRDB Adapter for XMLによって作成されるファイルがあります。
定義ファイルの詳細については,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
ここでは,XMLインデクスデータ作成機能について説明します。
論理構造を持つ文書の構造を指定して実行する全文検索を,構造指定検索といいます。XMLインデクスデータ作成機能を使用して全文検索インデクスを作成したXML文書は,構造指定検索の対象になります。
構造指定検索について,次の図に示したXML文書1およびXML文書2の例で説明します。
図3-54 構造指定検索で使用するXML文書の例
構造指定検索では,これらの文書に対して,「構造<chap>の下の構造<topic>の中に『W3C』が含まれる文書を検索する」といった検索ができます。この例の場合は,XML文書2が検索結果として取得できます。
検索についての詳細は,「4. オブジェクトの検索」を参照してください。
XMLインデクスデータ作成機能は,XMLファイルの構文解析を実行して,構造指定検索に必要なインデクスデータを作成するための機能です。また,構造指定検索の対象にならない,プレーンテキスト形式の全文検索インデクスデータも作成できます。作成したインデクスデータは,インデクスデータ出力ファイルに出力されます。このファイルを指定してXML文書を作成することによって,構造指定検索またはプレーンテキストを対象にした全文検索に必要な全文検索インデクスを登録できます。
また,インデクスデータを作成する時には,XMLファイルの内容から不要なタグを表す情報を削除したり,不要なタグおよびそのタグに囲まれた文字列全体を削除したりできます。この場合,削除するタグについての定義は,フィルタリング定義ファイルとして作成しておく必要があります。フィルタリング定義ファイルについては,マニュアル「DocumentBroker Version 3 システム導入・運用ガイド」を参照してください。
なお,XMLインデクスデータ作成機能は,次の文字コードで記述されたXMLファイルを対象に実行できます。
ただし,DocumentBrokerの文書の全文検索インデクスは,次の文字コードで登録されます。
このため,AIXまたはWindowsの場合は,XML文書に対して構造指定検索を実行するとき,検索条件をすべてShift-JISで入力してください。
また,構造指定検索の対象になるXML文書は,次の条件に従って作成する必要があります。
全文検索機能付き文書クラスおよび全文検索インデクス用プロパティについての詳細は,「4.4 全文検索の対象になる文書の作成」を参照してください。また,登録した文書に対して実行できる全文検索の詳細については,「4.2.2 全文検索」を参照してください。
ここでは,XML文書管理機能を実現するための,クラスライブラリのクラスとDMAオブジェクトについて説明します。
XML文書管理機能は,次の二つのクラスの機能を使用して実現されます。
XML文書は,CdbrDocumentオブジェクトまたはCdbrVersionableDocumentオブジェクトとして作成,管理します。これらのオブジェクトを構成するDMAオブジェクトについては,「3.2.1 文書を表すクラスの概要」を参照してください。
ここでは,それぞれのオブジェクトに対して,XML文書管理機能によって設定される情報について説明します。
図3-55 CdbrDocumentオブジェクトに対するXMLプロパティマッピングの例
図3-56 CdbrVersionableDocumentオブジェクトに対するXMLプロパティマッピングの例