/** * This method stores an xml document given as an org.w3c.dom.Document to the database giving it * an indentifier. If the identifier provided is null, then the database generates a unique * identifier on its own. * * @param doc The dom represntation of the document to be stored as an org.w3c.dom.Document. * @param resourceId The resourceId to give to the document as a unique identifier within the * database. If null a unique identifier is automatically generated. * @param collection The name of the collection to store the document under. If it does not exist, * it is created. * @param username The identifier of the user calling the method used for authentication. * @param password The password of the user calling the method used for authentication. */ public void storeDomDocument( Document doc, String resourceId, String collection, String username, String password) { try { // initialize driver Class cl = Class.forName(_driver); Database database = (Database) cl.newInstance(); DatabaseManager.registerDatabase(database); // try to get collection Collection col = DatabaseManager.getCollection(_URI + collection, username, password); if (col == null) { // collection does not exist: get root collection and create // for simplicity, we assume that the new collection is a // direct child of the root collection, e.g. /db/test. // the example will fail otherwise. Collection root = DatabaseManager.getCollection(_URI + "/db"); CollectionManagementService mgtService = (CollectionManagementService) root.getService("CollectionManagementService", "1.0"); col = mgtService.createCollection(collection.substring("/db".length())); } // create new XMLResource; an id will be assigned to the new resource XMLResource document = (XMLResource) col.createResource(resourceId, "XMLResource"); document.setContentAsDOM(doc.getDocumentElement()); col.storeResource(document); } catch (Exception e) { e.printStackTrace(); } }
/** * Main method of the example class. * * @param args (ignored) command-line arguments * @throws Exception exception */ public static void main(final String[] args) throws Exception { System.out.println("=== XMLDBInsert ==="); // Collection instance Collection col = null; try { // Register the database Class<?> c = Class.forName(DRIVER); Database db = (Database) c.newInstance(); DatabaseManager.registerDatabase(db); System.out.println("\n* Get collection."); // Receive the collection col = DatabaseManager.getCollection(DBNAME); // ID for the new document String id = "world"; // Content of the new document String doc = "<xml>Hello World!</xml>"; System.out.println("\n* Create new resource."); // Create a new XML resource with the specified ID XMLResource res = (XMLResource) col.createResource(id, XMLResource.RESOURCE_TYPE); // Set the content of the XML resource as the document res.setContent(doc); System.out.println("\n* Store new resource."); // Store the resource into the database col.storeResource(res); } catch (final XMLDBException ex) { // Handle exceptions System.err.println("XML:DB Exception occurred " + ex.errorCode); ex.printStackTrace(); } finally { // Close the collection if (col != null) col.close(); } }