Simon,
First, you set these properties (to your own values):
System.setProperty(
"xindice.home",System.getProperty("user.dir")+fsep+"roots"+fsep+(String)session.get("sphere_id")+fsep+"DB");
System.setProperty("xindice.configuration",System.getProperty("user.dir")+fsep+"system.xml");
Then, you initialize the database:
Database maindb = null;
Collection sc = null;
try {
String driver =
"org.apache.xindice.client.xmldb.embed.DatabaseImpl";
Class c = Class.forName(driver);
maindb = (Database) c.newInstance();
DatabaseManager.registerDatabase(maindb);
sc =
DatabaseManager.getCollection("xmldb:xindice-embed:///db/suprasphere");
}catch (XMLDBException e) {
System.err.println("XML:DB Exception occured " + e.errorCode);
}
catch (InstantiationException ie) {
System.err.println("ie");
}
catch (ClassNotFoundException cnfe) {
System.err.println("cnfe");
}
catch (IllegalAccessException iae) {
System.err.println("iae");
}
Then, you use it (this has some specifics to the XML parser I'm using):
public Vector getAll() {
Vector all = new Vector();
String apath = "//*";
try {
String[] docs = sc.listResources();
for (int i=0;i<docs.length;i++) {
XMLResource res = (XMLResource) sc.getResource(docs[i]);
DocumentHelper df = new DocumentHelper();
try {
Document document = df.parseText(((String)res.getContent()));
all.add(document);
} catch (DocumentException de) {}
}
}
catch (XMLDBException e) {
System.err.println("XML:DB Exception occured " + e.errorCode);
}
return all;
}
Please let me know if you have any more specific questions, or any
questions about the code above. I have code to
add/remove/replace/query/search document(s), but not much dealing with
XUpdate.
-David
On 24 Feb 2003, Simon Farrow wrote:
> Having had a little root around in my code and discovered a few other
> errors with my use of embedded Xindice. I'm going to broaden the scope
> of my original question. Does anyone have any sample code for setting up
> and dealing with embedded Xindice?
>
> Simon.
>
>