// QuickStart.java // // o Gets a the root collection of the Sedna XML Database. // o Creates a collection called myCollection. // o Creates a collection called mySub within myCollection. // o Inserts 50 random XML Documents in collection mySub. // o Runs an XQuery over mySub collection, prints the results. // o Deletes collection myCollection and everything underneath it. // o Closes the collection. import org.xmldb.api.*; import org.xmldb.api.base.*; import org.xmldb.api.modules.*; public class QuickStart { // -------------------- // Change these details // -------------------- private String databaseURI = "xmldb:sedna://localhost/db"; private String databaseUsername = "SYSTEM"; private String databasePassword = "MANAGER"; // -------------------- public static void main(String[] args) { QuickStart qs = new QuickStart(); qs.execute(); } public void execute() { try { registerXMLDBDriver(); Collection rootCollection = DatabaseManager.getCollection( databaseURI, databaseUsername, databasePassword); Collection myCollection = createChildCollection( rootCollection, "myCollection"); Collection mySub = createChildCollection(myCollection, "mySub"); for(int i=0;i<50;i++) { String xmlDocument = "<myDoc>\n" + "<id>" + i + "</id>\n" + "<data>" + (Math.random()*1000000) + "</data>\n" + "</myDoc>"; XMLResource resource=(XMLResource)mySub.createResource(null, XMLResource.RESOURCE_TYPE); resource.setContent(xmlDocument); mySub.storeResource(resource); } XQueryService queryService = (XQueryService)mySub.getService("XQueryService","1.0"); ResourceSet resourceSet = queryService.query("for $x in //myDoc\n"+ "return <result>id = {$x/id/text()}, "+ "data = {$x/data/text()}</result>"); System.out.println("The results were as follows:"); System.out.println("----------------------------"); ResourceIterator iterator = resourceSet.getIterator(); while(iterator.hasMoreResources()) { Resource resource = iterator.nextResource(); System.out.println(resource.getContent()); } System.out.println("----------------------------"); deleteCollection(rootCollection, "myCollection"); rootCollection.close(); } catch(XMLDBException e) { e.printStackTrace(); } } public void registerXMLDBDriver() throws XMLDBException { try { Database dbDriver = (Database)Class.forName( "net.cfoster.sedna.DatabaseImpl").newInstance(); DatabaseManager.registerDatabase(dbDriver); } catch(ClassNotFoundException e) { System.err.println("ClassNotFoundException: "+ e.getMessage()); } catch(InstantiationException e) { System.err.println("InstantiationException: "+ e.getMessage()); } catch(IllegalAccessException e) { System.err.println("IllegalAccessException: "+ e.getMessage()); } } public Collection createChildCollection(Collection collection, String collectionName) throws XMLDBException { CollectionManagementService cms = (CollectionManagementService)collection.getService( "CollectionManagementService","1.0"); return cms.createCollection(collectionName); } public void deleteCollection(Collection collection, String collectionName) throws XMLDBException { CollectionManagementService cms = (CollectionManagementService)collection.getService( "CollectionManagementService","1.0"); cms.removeCollection(collectionName); } }