Boost」など、さまざまなカンファレンスを企画・運営しています。BOOKS(コードジン・ブックス)は、CodeZineの連載からカットアップした、開発現場の課題解決に役立つ書籍シリーズです。コントローラ(ItemCRUDServlet)Daoクラスまとめ参考資料アプリケーション各処理の説明クラスの全体的な構成の説明が終わったところで、アプリケーションの仕様に従って、商品データ(商品XML)のデータ処理について説明していきます。新規登録の画面遷移を以下の図に示します。新規登録」画面は、商品一覧の新規登録ボタンを押下すると表示されます。新規登録」画面で商品情報を入力し「新規登録」ボタンを押下すると、XMLDBに商品データが新規XMLとして作成されます。新規登録」画面の表示処理は、ただ単にJSPを表示するだけですので、説明は割愛し「新規登録」ボタンが押下された場合のXMLデータ保存処理について説明します。コントローラ(ItemCRUDServlet)コントローラとなるサーブレットでは、HTMLから「action="create"」というパラメータを受け取り、以下の順で、XMLデータ新規作成処理を実行します。画面入力されたリクエストパラメータを元にItemクラスを生成し値を格納する(createItemメソッド)ItemDaoのcreateメソッドを呼び出す商品一覧画面(list.jsp)にForwardする以下にItemCRUDServletのソースを示します。以下のItemCRUDServletのソースでは、サーブレットのクラス定義、インスタンス変数、initメソッド、doServiceの記述は省略します。DaoクラスItemDaoImplクラスItemDaoImplクラスのcreateメソッドでは、以下の2つの処理を行っています。以下にItemDaoImplクラスのcreateメソッドのソースを示します。Luxeon上のXMLのファイル名を渡しています。XMLを保存するパス名のルールは「XMLStoreのルートディレクトリからのパス(/items)/商品コード(Cen001).xml」です。XML作成後、バインダドキュメントにXMLへのリンクを設定しています。することにより、複数のXMLを束ねて1つのXMLとして検索する処理を実現しています。Managerで参照した画面です。新規に作成したXML(items/Cen001.xml)とバインダドキュメント(item_container.bnd)とバインダドキュメント上に作成されたリンクが確認できます。LuxeonDaoクラス次にItemDaoImplクラスのcreateメソッドから呼ばれるLuxeonDaoクラスのcreateXMLメソッドの説明をします。APIとJAXB2.0を使用して実際にXMLをDBに保存する処理を以下の順で実行しています。セッション、XMLStore、ルートディレクトリを順に取得XMLをDB上に新規作成し、XMLへの出力ストリームを取得JAXBでItemクラスのインスタンスをXMLに変換しXMLの出力ストリームに出力XMLの出力ストリーム、セッションを閉じる以下にLuxeonDaoクラスのcreateXMLメソッドのソースを示します。NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Technologies。執筆コミュニティ「WINGSプロジェクト」代表。