Skip to content

fsteeg/sinist

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A simple (and very early) Scala wrapper to access eXist DB

Usage

Store and retrieve XML and binary objects:

val db = XmlDb() // defaults: server="localhost", port=8080, user="guest", pass="guest"
db.putXml(<some><xml>element</xml></some>, collectionId, xmlDocId)
db.putBin("data".getBytes, collectionId, binDocId)
val xml: Option[List[Elem]] = db.getXml(collectionId)
val bin: Option[List[Array[Byte]]] = db.getBin(collectionId)

Query a Lucene index, e.g. if you set up your eXist DB to index note elements and their type attributes and you store data like this:

db.putXml(<p><note type="quick">text1</note></p>, "test", "query-test-1")
db.putXml(<p><note type="quick">text2</note></p>, "test", "query-test-2")

You can query with XQuery and Lucene query syntax:

val res = db.query("test", "for $m in //note[ft:query(., 'text?')]/ancestor::p return $m")

Full sample usage (includes index setup and queries on attributes) can be found in the XmlDbSpec.

Some background and details can be found in this blog post.

Setup

git clone git://github.com/fsteeg/sinist.git; cd sinist; sbt

To run the tests, have an eXist DB running via startup.sh at localhost:7777 (or change port in XmlDbSpec).

Building with SBT:

  • update
  • test
  • package

This will fetch dependencies, run the tests, and create a jar in the sinist/target directory.

About

A simple Scala wrapper to access eXist DB

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages