uCosminexus DocumentBroker Version 3 システム導入・運用ガイド
![[目次]](figure/content.gif)
![[用語]](figure/gloss.gif)
![[索引]](figure/index.gif)
![[前へ]](figure/front.gif)
XMLプロパティマッピング機能について説明します。
XMLプロパティマッピング機能とは,XMLファイル中の,タグ間の文字列やタグの属性値を抽出して,XML文書のプロパティに設定するための情報を作成する機能です。この情報をXML文書のプロパティにマッピングすることによって,例えば,次の検索ができるようになります。
XMLプロパティマッピング機能を使用するXMLファイルの例を次の図に示します。
図2-16 XMLプロパティマッピング機能を使用するXMLファイルの例
![[図データ]](figure/zu240100.gif)
<prop>タグで囲まれた内容には,タイトル,著者名,著者の所属する組織名,版についての情報などが,それぞれのタグ内の文字列または属性値として記述されています。
ここでは,XMLファイルをバージョン付き文書のコンテントとして登録する場合について説明します。タイトルと著者の情報はバージョン付き文書のプロパティ(DMAオブジェクトのConfigurationHistoryオブジェクトのプロパティ)として,バージョン情報はバージョンなし文書(バージョン付き文書の一つのバージョン)のプロパティ(DMAオブジェクトのDocVersionオブジェクトのプロパティ)としてマッピングすることにします。
図2-16のXMLファイルに含まれる情報をXML文書のプロパティにマッピングした例を次の図に示します。
図2-17 XMLプロパティマッピング機能によってXML文書のプロパティにマッピングした例
![[図データ]](figure/zu240200.gif)
この例では,<title>タグ間の情報は,バージョン付き文書のusrProp_titleプロパティにマッピングしています。<author>タグ間の情報は,複数の情報を表すタグを含むので,VariableArray型のプロパティであるusrProp_authorプロパティにマッピングしています。<author>タグの属性である,nameの値,<author>タグ間に含まれる<birthday>タグおよび<organization>タグ間の情報は,VariableArray型のプロパティの構成要素を表すusrProp_nameプロパティ,usrProp_birthdayプロパティおよびusrProp_organizationプロパティにそれぞれマッピングしています。
XMLプロパティマッピング機能は,ユーザの定義に従ってXML文書のタグ間の文字列,またはタグの属性値から必要な情報を取得し,これをDocumentBrokerのプロパティリストに変換します。DocumentBrokerは,プロパティリストを生成するライブラリを提供します。XML文書管理機能を実現するためには,登録するXML文書の文書構造を表現するマッピング元XMLタグ定義,およびXML文書中のタグ名とその内容をマッピングするクラス名,プロパティ名の対応を定義したプロパティマッピング定義をユーザが作成する必要があります。ユーザが作成したプロパティマッピング定義で,HiRDB Adapter for XMLが提供する,機能およびマッピング定義情報に変換するコマンドを利用してXML文書を解析し,DocumentBrokerのプロパティリストを生成します。このライブラリを利用して生成されたプロパティリストをC++ クラスライブラリの引数に指定することで,プロパティマッピングができます。
XMLプロパティマッピング機能を使用する場合は,登録するXMLファイルの論理構造を明確にして,マッピング先となるXML文書にプロパティを追加する必要があります。また,どのタグをどのプロパティにマッピングするかという対応を定義しておく必要があります。定義に必要なファイルには,次のファイルがあります。
XML文書管理機能を使用するための定義ファイルの作成および生成については,「3.18 XML文書管理機能を使用する場合の設定」を参照してください。
XMLプロパティマッピング機能は,次の文字コードで記述されたXMLファイルを対象に実行できます。
ただし,プロパティリストの文字列は,すべてShift-JISに変換されます。
All Rights Reserved. Copyright (C) 2006, Hitachi, Ltd.
All Rights Reserved. Copyright (C) 2006, 2013, Hitachi Solutions, Ltd.