BaseXのインストールと起動
環境
cat /etc/lsb-release
# DISTRIB_ID=Ubuntu
# DISTRIB_RELEASE=14.04
# DISTRIB_CODENAME=trusty
# DISTRIB_DESCRIPTION="Ubuntu 14.04.4 LTS"
arch
# x86_64
BaseX のインストールと BaseXServer の起動
# install
sudo apt-get install basex
# start as service
basexserver -S
typesafe-activator のインストール
なくてもいいけど便利だから使います(インストール方法)
BaseXClient の利用
プロジェクト作成
project名は basex-scala で進めていきます.
activator new basex-scala minimal-scala
クライアントライブラリの取得
Java によるデフォルトの実装が最もサポートされそうなので,それを Scala で利用(クライアント一覧)
cd basex-scala
mkdir -p libs src/main/java/org/basex/examples/api
basex_dir=`pwd`/libs/basex
lib_file=basex-examples/src/main/java/org/basex/examples/api/BaseXClient.java
git clone https://github.com/BaseXdb/basex.git $basex_dir
git --git-dir=$basex_dir/.git config core.sparsecheckout true
echo $lib_file > $basex_dir/.git/info/sparse-checkout
git --git-dir=$basex_dir/.git -C $basex_dir read-tree -m -u HEAD
ln -sf $basex_dir/$lib_file src/main/java/org/basex/examples/api/BaseXClient.java
BaseXClient.java を継承して利用したい場合
sed -i -e "s@final class BaseXClient@class BaseXClient@" $basex_dir/$lib_file
git --git-dir=$basex_dir/.git -C $basex_dir add .
git --git-dir=$basex_dir/.git commit -m "Make it extendable"
サンプルコードの実行
XMLの出力やnodeの挿入,nodeの値変更のサンプル
コードはGistにあるので内容はそちらで (サンプルコードは BaseXClient.java を継承するようになってます)
rm src/main/scala/com/example/Hello.scala
git clone https://gist.github.com/9dcbac93aac6b557e762a6665eec8c03.git src/main/scala/com/example/
activator run
# =>
# <!-- this document is in test.xml -->
# <?xml version="1.0" encoding="UTF-8"?>
# <root>
# <person id="1">
# <name>A</name>
# <height>175</height>
# <weight>85</weight>
# </person>
# <person id="2">
# <name>B</name>
# <height>180</height>
# <weight>91</weight>
# </person>
# </root>
#
# <!-- this document is in test.xml -->
# <?xml version="1.0" encoding="UTF-8"?>
# <root>
# <person id="1">
# <name>A</name>
# <height>175</height>
# <weight>85</weight>
# </person>
# <person id="2">
# <name>Z</name>
# <height>180</height>
# <weight>91</weight>
# </person>
# </root>