Shoeisha Technology Media

CodeZine(コードジン)

特集ページ一覧

XMLデータの操作(後編) ~ XML updategramの基本

Cyber Luxeonで学ぶXMLDB入門 第3回

  • LINEで送る
  • このエントリーをはてなブックマークに追加

Cyber LuxeonはXMLデータの更新用機能としてXML updategram(XUG)を用意しています。XUGは、シンプルかつ強力な機能を持っており、XMLアプリケーション開発の生産性を高めるのに非常に有用です。今回はXUGの基本文法、基本機能についてサンプルを交えて説明します。

目次

はじめに

 XMLデータ操作の前編として、前回は、XMLDB上のデータを操作するための標準であるXQueryとXPathの基本文法について説明しました。前回も説明したように、XQueryのデータ操作機能で、執筆時点(2007年2月時点)で仕様が勧告となっているのは検索機能のみです。XMLデータの更新機能(作成、更新、削除)についての仕様はこれから策定が進められるという状況ですので、XMLDB各製品は独自のXMLデータの更新機能を用意しています。Cyber Luxeonも類に漏れず、独自のXMLデータ更新用機能を用意しており、その更新機能は「XML updategram(以降、XUG)」と言います。後編となる本稿では、最初にこのXUGの概要、基本文法について説明し、その後、サンプルを元にXUGの基本機能について説明します。

XML updategram(XUG)の特徴

 XUGはCyber Luxeonが用意している独自のXMLデータの追加・更新・削除機能です。XUGは、複数の追加・更新・削除処理をシンプルな文法で記述することができ、また複数のXMLドキュメントに対する処理もまとめて1トランザクションとして扱うことができるという特徴を持っています。XUGはCyber Luxeonの独自機能ですが、更新対象のXMLドキュメント内の位置を選択する場合には、XPathを使用しますので、初めてXUGを使用する開発者も違和感なく使用することができます。このXUGはシンプルな文法で複雑なXML更新用ロジックを記述することができますので、XUGを活用することで、XMLアプリケーションの開発工数が削減されることが期待できます。XUGは、DXE ManagerやJava API、COMから実行することができます。

XUGを作成する2つの方法

 XUGを作成する方法には、DXE ManagerのXUG自動生成機能を使用する方法と、手動でXUGを記述する方法の2通りが用意されています。DXE ManagerのXUG自動生成機能を利用する方法では、詳しいXUGの文法を知らなくても、XML更新のための記述を生成できるという便利さがあります。XUG自動生成機能は、XUGの基本的な文法を学習するのに非常に有用な機能です。一方、手動でXUGを記述する方法は、複雑なXML更新機能を定義する際に使用します。

XUGの自動生成機能

 まずは、DXE ManagerのXUG自動生成機能でXUGを作成する方法を説明します。

 XUGを自動生成するには、DXE Managerのツリーペイン上で、更新するXMLファイルを右クリックし、[更新]-[更新グラマーの自動作成]を選択します。

XUGの自動作成メニュー
XUGの自動作成メニュー

 上記の図のように選択すると、[Updategramの自動作成]ダイアグラムが表示されます。

XUGの自動作成ダイアグラム
XUGの自動作成ダイアグラム

 ダイアログ上にXMLの階層構造が表示されますので、操作したいノード(要素・属性など)をツリー上で選択し、ダイアログ上部のメニューバーのアイコンで実行したい操作を選択します。要素を選択した場合、要素/属性/テキスト/CDATA/コメントの新規挿入、値の変更、順序の入れ替え、ノード削除の操作が実行できます。属性を選んだ場合、属性名の変更、値の変更、属性の削除が実行できます。以下の表に選択したノードとその際に、使用できるアイコンをまとめました。

Updategramの自動作成ダイアログ選択したノードと使用できるアイコン
選択したノードノード新規作成ノードの削除ノード名の変更値の変更上に移動下に移動保存
要素×
属性×××
テキスト×××××
CDATA××××

 XMLを更新する操作をダイアログ上で行った後、[保存]ボタンを押下すると、以下の図のように自動作成されたXUGが表示されます。

変更のコミットダイアログ
変更のコミットダイアログ

 自動作成されたXUGを編集する場合は、このダイアログ上で編集します。[OK]ボタンを押下すると、XMLドキュメントに更新内容が反映されます。

XUGの手動定義

 XUGの自動生成機能は非常に有用な機能ですが、foreach(繰り返し)などのやや複雑な制御を自動生成する機能は用意されていません。従って、そのような複雑な処理を記述したい場合には、手動でXUGを記述する必要があります。ここでは、手動でXUGを記述する方法を説明します。

 DXE Managerのツリーペイン(ウィンドウ左側のペイン)上で、更新対象のXMLを右クリックして、[更新]-[更新グラマーの手動作成]を選択します。

XUG実行方法
XUG実行方法

 「Updategramの手動作成」ダイアログが開きますので、XUGを入力して[OK]ボタンを押下します。

XUG実行ダイアログ
XUG実行ダイアログ

 [OK]ボタンを押下すると、更新内容がXMLに反映(コミット)されます。

XUG実行確認ダイアログ
XUG実行確認ダイアログ

  • LINEで送る
  • このエントリーをはてなブックマークに追加

著者プロフィール

  • WINGSプロジェクト 佐藤 治夫 (株式会社ビープラウド)(サトウ ハルオ)

    <WINGSプロジェクトについて> 有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。2018年11月時点での登録メンバは55名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂...

  • 山田 祥寛(ヤマダ ヨシヒロ)

    静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for ASP/ASP.NET。執筆コミュニティ「WINGSプロジェクト」代表。 主な著書に「入門シリーズ(サーバサイドAjax/XMLD...

バックナンバー

連載:Cyber Luxeonで学ぶXMLDB入門
All contents copyright © 2005-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5