XMLDB.jp

XMLDB開発支援
HOME  >  XMLDB開発支援  >  チュートリアル ~JAVA編(3):構造の変更 - 挿入/削除~

チュートリアル ~JAVA編(3):構造の変更 - 挿入/削除~

2004年5月20日 更新


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

ステップ 1

すでにtutrial1およびtutrial2を実行済みで、環境が正しくセットアップされており、サーバーアドレスとログイン情報の変更方法を理解していることを確認して、次のステップに進みます。


ステップ 2

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


 b) サーバー情報とログイン情報を必要に応じて変更します。


 c) tutorial3をコンパイルして実行します。


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


コード
Storing document
      Store results: [<?xml version="1.0" encoding="UTF-8" ?>
      <Store-Results>
              <Documents-Processed> 1 </Documents-Processed>
              <Last-Doc-ID> 22 </Last-Doc-ID>
      </Store-Results>]

      Current document: [<?xml version="1.0" encoding="UTF-8" ?>
      <Query-Results>
              <tutorial3>
                      <name>
                              <first>John</first>
                              <last>Doe</last>
                      </name>
              </tutorial3>
      </Query-Results>]

      Insert results: [<?xml version="1.0" encoding="UTF-8" ?>
      <Insert-Results>
              <Insert-Nodes>1</Insert-Nodes>
      </Insert-Results>]
      Current document: [<?xml version="1.0" encoding="UTF-8" ?>
      <Query-Results>
              <tutorial3>
                      <name>
                              <first>John</first>
                              <mi>J.</mi>
                              <last>Doe</last>
                      </name>
              </tutorial3>
      </Query-Results>]

      Delete results: [<?xml version="1.0" encoding="UTF-8" ?>
      <Delete-Results>
              <Deleted-Nodes>1</Deleted-Nodes>
      </Delete-Results>]
      Current document: [<?xml version="1.0" encoding="UTF-8" ?>
      <Query-Results>
              <tutorial3>
                      <name>
                              <first>John</first>
                              <last>Doe</last>
                      </name>
              </tutorial3>
      </Query-Results>]

注:それぞれの操作の後、変更内容を確認するためにクエリーを実行します。


コードの詳細説明(tutorial2との相違点)

第56行: s = neosession.insertXML("/ND/tutorial3/name/first", "<mi>J.</mi>");


ここでは、1つのエレメント<first>を指定する簡単なXPath式を実行します。 このエレメントの後に新しい構造を挿入します。 その新しい構造は、<mi>という単一のタグです(ただし、フラグメント全体も可能です)。 さらに、値「J.」をこれに提供します。


注:これはSQLの挿入と大きく異なります。SQLの挿入は、NeoCoreXMSの格納と部分的に同等です(ただし、スキーマをSQLに事前定義する必要があります)。 NeoCoreXMSの挿入に同等な機能は、SQLにはありません。 これは、既存のテーブルに新しい列を追加することと同等です。(場合によっては、複数のテーブルや列を追加することと同等です!)


言い換えると、数千にもわたる文書を対象として、たった1つのコマンドを使って、オンザフライで(実行中に)、自由自在に、それぞれの文書ごとにスキーマを完全に変更できるわけです。それらの文書のスキーマや表記がさまざまに異なっていても差し支えありません!


第64行: s = neosession.deleteXML("/ND/tutorial3/name/mi");


ここでは、<mi>タグおよび関連データを単に削除します。 これもまた、SQLテーブルから列を削除することと同等です。(ただし、文書ごとに削除を実行できます。これは、クエリーを満たす単一行または複数行から列を削除するようなものです!)



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


コード

//Title:        tutorial3 using NeoCore XMS
//Version:      1.0
//Date:         4/15/04
//Copyright:    Copyright (c) 2004
//Author:       Kevin Huck
//Company:      Xpriori
//Description:  Demonstrates inserting and deleting elements within a document

/**
This is a very simple Java application that demonstrates inserting and deleting
"structure", or new tags, in an xml document.  This is a very unique and
powerful feature of XMS.
*/

import com.neocore.httpclient.*;

public class tutorial3 {

   // 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{
         // 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 tutorial3 documents -----------------
         String s = neosession.deleteXML("/ND[tutorial3]");

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

         //-------------------- now query the sample document ---------------------
         s = neosession.queryXML("/ND/tutorial3");
         System.out.println("Current document: [" + s + "]");

         //------------------ now insert a middle initial element -----------------
         s = neosession.insertXML("/ND/tutorial3/name/first", "<mi>J.</mi>");
         System.out.println("Insert results: [" + s + "]");
 
         //---------- now query the sample document to see the change -------------
         s = neosession.queryXML("/ND/tutorial3");
         System.out.println("Current document: [" + s + "]");

         //---------------- now delete the middle initial element -----------------
         s = neosession.deleteXML("/ND/tutorial3/name/mi");
         System.out.println("Delete results: [" + s + "]");

         //---------- now query the sample document to see the change -------------
         s = neosession.queryXML("/ND/tutorial3");
         System.out.println("Current document: [" + s + "]");
         //------------------------------- logout ---------------------------------
         neosession.logout();
      }
      catch(Exception e)
      {
         System.out.println("NeoCore error: " + e);
      }
   }
}
// END OF FILE - tutorial3.java

▲このページのTOPへ

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

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

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