TOPサーバ構築・運用> 検索式を設計する
作って学ぶXMLデータベースNeoCore XMS実践
作って学ぶXMLデータベースNeoCore XMS実践

第3回:XMLデータベースを構築し、検索式を設計する
著者:ウルシステムズ  最上 隆史   2006/3/31
前のページ  1  2  3   4  次のページ
検索式を設計する

   次は登録した提案書のデータを取り出すための検索式について検討します。

   RDBからデータを検索するために、データベース製品によらない標準の問い合わせ言語としてSQLが用いられるように、XMLデータベースからデータを検索するには、標準の問い合わせ言語であるXPathやXQueryが用いられます。

   まず、XPathとXQueryがどのようなものかを表3に示します。

XPath
XML文書の特定条件を満たす要素を指し示すための表現式。XSLやXQueryといったXMLの操作や検索をするための手段の一部として広く使われている。条件を記述できるので、それだけで検索式として利用することもできる。
XQuery
複数のXML文書の要素間の複雑な関係を条件にした検索を可能にする表現式。RDBのSQLに相当するもので、where節を含むFLWR構文が使われ、検索結果を新たなXML文書として取得できる。

表3:XPath、XQueryとは

   今回構築する営業支援システムで必要な検索要件もこれらのXPath、XQueryを利用して実現します。


今回構築する営業支援システムで必要な検索要件とは

   前回、営業支援システムで必要となる検索要件には以下の2つがあることを説明しました。

項目指定による検索
お客様名などのオブジェクト名を持つ定型部分の値を検索し、対象となる提案書を見つける。
フリーワード検索
指定されたキーワードを含むような提案書を見つける

表4:必要となる検索要件

   上記それぞれの検索を実現する検索式を検討します。


項目指定による検索

   単純な項目指定の検索なので、XPath式によって行うことにします。

   「content.xml」ファイルの内、「お客様名」をあらわす部分を以下に示します。XPath式では、XML文書のルートとなる要素(ここではdocument-content)から、配下の要素を「/」を使って順次特定していくのが基本になります。

content.xmlの内、「お客様名」をあらわす部分
<?xml version="1.0" encoding="UTF-8"?>
<office:document-content>
  <office:body>
    <office:presentation>
      <draw:page draw:name="page1" draw:style-name="dp1" draw:master-page-name="標準">
        <draw:frame draw:name="お客様名" draw:style-name="gr1">
          <draw:text-box>
            <text:p text:style-name="P1">鈴木電気株式会社</text:p>
          </draw:text-box>
        </draw:frame>
        <draw:frame draw:name="提案タイトル" draw:style-name="gr2" >
          <draw:text-box>
            <text:p text:style-name="P2">
              <text:span text:style-name="T1">Think That Server</text:span>
              <text:span text:style-name="T1">タイプ</text:span>
              <text:span text:style-name="T1">2</text:span>
              <text:span text:style-name="T1">導入によるシステム再構築</text:span>
            </text:p>
          </draw:text-box>
        </draw:frame>
      </draw:page>
    </office:presentation>
  </office:body>
</office:document-content>

※注: サンプルのため一部省略しています。

   例えば、「お客様名」と名付けたられたオブジェクトは「/document-content/body/presentation/page」で指定される要素の配下にある1つ目の「frame」要素です。この要素にname属性として「お客様名」が定義されていて、そのまた複数階層配下の「p」要素に含まれるテキストが実際のお客様名(ここでは[鈴木電気株式会社])をあらわしています。なお、office:、draw:、text:といった形式がたくさんでてきますが、これで示されているのは名前空間でありここでは無視してかまいません。

前のページ  1  2  3   4  次のページ


ウルシステムズ株式会社 最上 隆史
著者プロフィール
ウルシステムズ株式会社   最上 隆史
シニアコンサルタント
独立系ソフトウエアハウスで7年のシステム構築を経験。2005年より現職にて基幹システムの構築およびコンサルティングに従事。最近はRDBMSとXMLDBの利用価値に関心を持つ。



INDEX
第3回:XMLデータベースを構築し、検索式を設計する
  前回は
  提案書をXMLデータベースに登録する
検索式を設計する
  XPath式、XQuery式の組み立て