 |

|
作って学ぶXMLデータベースNeoCore XMS実践 |
第5回:検索式を組み込んでシステムを完成させる(後編)
著者:ウルシステムズ 小松 要 2006/4/21
|
|
|
1 2 3 4 次のページ
|
 |
提案書検索機能処理の概要
|
今回は提案書の検索や提案書のダウンロードを行う提案書検索機能の処理概要と実装方法について説明し、営業支援システムの構築を完成させていきます。
提案書検索機能は、提案書一覧表示機能部と提案書ダウンロード機能部の2つに分けられます。それぞれに必要な処理は以下のようになります。
|
提案書一覧表示機能
|
提案書検索機能では、以下の処理が必要となります。
|
XQueryによる検索処理
|
指定されたキーワードを含むような提案書を見つける処理です。検索にはXQueryを使用します。使用するXQueryは次のようになります。
・使用するXQuery
for $data in /ND sortby (integer(.//DocID/text()))
let $title := $data//frame[@name='提案タイトル']//text()
,$docId := $data//DocID/text()
where contains($data//text(),'キーワード')
return
<result>
<title>{string($title)}</title>
<docId>{string($docId)}</docId>
</result>
|
XSLスタイルシートを使用した画面表示処理
|
画面表示のスタイルを設定するためにXSLスタイルシートを設定します。
|
提案書ダウンロード機能
|
提案書ダウンロード機能では、以下の処理が必要となります。
|
XPathによる検索処理
|
ドキュメントIDを指定する単純な検索処理のため、XPathを使用します。ドキュメントIDは一覧表示したドキュメント情報から取得されます。指定された提案書を構成するXMLファイルであるcontent.xmlをストア時のXML構造のまま取得します。使用するXPathは次のようになります。
・使用するXPath
/ND/document-content[../MetaData/DocID='ドキュメントID']
|
機密情報スタイルが定義された要素のテキスト変換処理
|
XPathによる検索結果を元にDOMツリーを生成し、機密情報スタイルが適用された要素のテキストをすべて"■"に変換する処理を行います。
|
提案書を作成して返す処理
|
機密情報スタイルが定義された要素のテキスト変換処理結果を元にcontent.xmlを作成して、提案書を構成するファイルすべてに対してzip圧縮を行い、ユーザに返却するものです。
|
1 2 3 4 次のページ
|

|
|

|
著者プロフィール
ウルシステムズ株式会社 小松 要
ビジネスとITのギャップを埋めるITコンサルティングを行うコンサルタント。お客様の現場に対してIT活用の最適解を常に提供するコンサルタントを目指し日々奮闘中。現在は、もっぱらXMLDBの可能性を模索中。
|
|
|
|