XMLDB.jp

XMLDB開発支援
HOME  >  XMLDB開発支援  >  チュートリアル ~JAVA編(1):簡単なXML文書の格納と取得~

チュートリアル ~JAVA編(1):簡単なXML文書の格納と取得~

2004年5月20日 更新


チュートリアルのコンパイルと実行

(このメッセージの最後にソースコードがあります。C:\NeoCoreの下に「tutorials」というディレクトリを作成し、「tutorial1.java」というファイルにソースを保存してください。)



ステップ 1

NeoCore XMSが実行中であることを確認します。[スタート]メニューから、[NeoCore XMS]-[Launch XMS Console]をクリックします。ログインプロンプトが表示されたら、XMSは実行中です。表示されない場合、[Start NeoServer]をクリックして、再試行してください。


ステップ 2

最新のJava JDKがインストール済みで、実行中であることを確認します。これを確認するには、コマンドプロンプトを開いて「javac」と入力し、オプションのリストが戻されることを確認します。


ステップ 3

クラスパスにC:\NeoCore\API\Java\lib\xmsclient.jarを追加します。(既定以外のディレクトリにインストールした場合には、それに応じて変更してください。)


ステップ 4

クラスパスに C:\NeoCore\tutorials を追加します。(既定以外のディレクトリにインストールした場合には、それに応じて変更してください。)


ステップ 5

 a) メモ帳その他のテキストエディタ、またはIDEで、tutorial1.javaを開きます。


 b) 「Step 5b」と示されている第18行に移動して、サーバー名またはIPを必要に応じて変更します。


 c) 「Step 5c」と示されている第33行に移動して、パスワードを必要に応じて変更します。


 注: この例のようにコマンド行オプションを指定できますが、ここでの目的は、ソースコードとAPIに慣れることです。


 d) tutorial1をコンパイルして実行します。DOSプロンプトでC:\NeoCore\tutorialsディレクトリから実行する場合には、「javac tutorial1.java」の後に「java tutorial1」と入力するだけです。


 e) 正常に実行されると、次のように表示されます。


コード
Storing document
Store results: [<?xml version="1.0" encoding="UTF-8" ?>
   <Store-Results>
      <Documents-Processed> 1 </Documents-Processed>
      <Last-Doc-ID> 11 </Last-Doc-ID>
   </Store-Results>]
      
      
Current document: [<?xml version="1.0" encoding="UTF-8" ?>
   <Query-Results>
      <tutorial1>
         <name>
            <first>John</first>
            <last>Doe</last>
         </name>
      </tutorial1>
   </Query-Results>]

 f) このような結果が表示されない場合、XMSが実行中かどうか、サーバー名とパスワードが正しいか、パスおよびクラスパス変数を正しく設定したかを確認してください。


 注: サンプルを再実行した場合、2番目の文書が格納されて、クエリーによって2つの文書が戻されるようになります。 特定の文書および文書フラグメントを取得する方法については、この後のチュートリアルで説明します。


コードの詳細解説

第27行: neosession = new SessionManagedNeoConnection(server, 7700); // neosession will manage session id for us (neosessionがセッションIDを管理)


ここでは、既定のポート7700で、サーバーに含まれるマシン名またはIPに(HTTPを介して)接続します。 問題が存在する場合、またはXMSが実行中でない場合には、例外がスローされてエラーが表示されます。


第34行: sid = neosession.login("Administrator", "password");


接続が確立されたら、インストール時に作成したAdministratorユーザーとしてログインすることができます。 パスワードを更新済みであることを確認してください。


第43行: String s = neosession.deleteXML("/ND[tutorial1]");


ログインした後、格納、変更、挿入、削除などの操作を実行できます。 まず最初に、以前にtutorial1を実行したときの古い文書を削除します。 削除については、この後のチュートリアルで説明します。


第47行: String s = neosession.storeXML("<tutorial1><name><first>John</first><last>Doe</last></name></tutorial1>", null, null);


格納はSQLの挿入と同様です(挿入の場合、あとで見るように、構造が変更されます)。ただし、テーブルや列を事前定義する必要はありません。


ここでは、ストリングから直接格納することに注意してください。 このほかに、ファイル、ストリーム、またはコンソールから格納することもできます。 他のオプションについては、API資料を参照してください。


第51行: s = neosession.queryXML("/ND/tutorial1");


ここでは簡単なXPathクエリーを実行して、文書の最上位タグを戻します。 "/ND[tutorial1]"と指定すれば、文書全体を戻すことができます。また、たとえば"/ND/tutorial1/name/last"と指定すれば、下位レベル(ラストネーム)を戻すことができます。詳細について、およびXPathとXQueryについては、この後のチュートリアルで説明します。


注:NeoCore XMSは常に、ND (NeoDocument)の文書ルートから開始します。これは実際にはルートではなく、複数のツリーからなる「フォレスト」のようなものです。こうする理由は、MetaDataを追加して文書管理を容易にするためです。 詳細については、この後のチュートリアルで説明します。


第55行: neosession.logout();


操作が終わったので、ログアウトします。 XMSはHTTPベースですから、セッションは「Nailed-Up」ではなく、「仮想」または「論理」です。ログアウトしない場合、XMSはセッションをタイムアウトさせて、セッション管理に使用される内部ストレージをすべて解放します。



--- チュートリアル(1)の終わり --- 以下はソースコードです ---


コード

//Title:        tutorial1 using NeoCore XMS
//Version:      1.0
//Date:         4/15/04
//Copyright:    Copyright (c) 2004
//Author:       Kevin Huck
//Company:      Xpriori
//Description:  Demonstrates a simple document store and retrieval

/**
This is a very simple Java application that demonstrates storing a retrieving a
simple xml document.
*/

import com.neocore.httpclient.*;

public class tutorial1 {

   // Step 5b - change the below "server" variable to the machine name or IP if not running XMS on this machine
   public static String server = "localhost";
   public static SessionManagedNeoConnection neosession;
   public static String sid = null;

   public static void main(String[] args)
   {
      //------------------------- get connection and login -----------------------
      try{
         neosession = new  SessionManagedNeoConnection(server, 7700);   // neosession will manage session id for us
      }catch(Exception e){
         System.out.println("Cannot connect to NeoCore server:" + e);
         return;
      }
      try{
         // Step 5c - change the below password to what you entered during the installation
         sid = neosession.login("Administrator", "password");
      }catch(Exception e){
         System.out.println("Cannot login to NeoCore server:" + e);
         return;
      }

      try
      {
         //--------------- first, delete any tutorial1 documents ----------------
         String s = neosession.deleteXML("/ND[tutorial1]");

         //-------------------- now store a simple document ---------------------
         System.out.println("Storing document");
         s = neosession.storeXML("<tutorial1><name><first>John</first><last>Doe</last></name></tutorial1>", null, null);
         System.out.println("Store results: [" + s + "]");
 
         //------------------ now query the sample document ---------------------
         s = neosession.queryXML("/ND/tutorial1");
         System.out.println("Current document: [" + s + "]");

         //------------------------------ logout --------------------------------
         neosession.logout();
      }
      catch(Exception e)
      {
         System.out.println("NeoCore error: " + e);
      }
   }
}
// END OF FILE - tutorial1.java

▲このページのTOPへ

  • 無償で使える!XMLDB「NeoCore」
  • サイバーテック求人情報
  • メールマガジン申し込み
  • TEchScore

  • ▲NeoCoreについて記載されています!

  • ▲XMLマスター教則本です。試験対策はこれでばっちり!
Copyright (c) CyberTech corporation ltd. All ights Reserved. | サイバーテックについて | ご利用ガイド