Hai rekan2 jug-indo, saya sedang buat aplikasi database dg java desktop, namun menggunakan DBMSnya pke XML Native DB dalam hal ini exist-DB. operasi CRUD dilakukan dg XQuery Update Extension. Sebelum diintegrasikan dg java code, perintah Xquery Update Extension ini ditesting di Exist-DB Sandbox dan berhasil, namun saat saya masukkan kedalam java code dan dirunning ,timbul exception seperti ini : 07 Jul 10 17:10:28 org.existdb.ui.Tester main SEVERE: null org.xmldb.api.base.XMLDBException: Failed to invoke method xupdate in class org.exist.xmlrpc.RpcConnection: org.xml.sax.SAXParseException: Content is not allowed in prolog. at org.exist.xmldb.RemoteXUpdateQueryService.update(RemoteXUpdateQueryService.java:51) at org.existdb.dao.BirdDAO.addElement(BirdDAO.java:78) at org.existdb.ui.Tester.main(Tester.java:34) Caused by: org.apache.xmlrpc.XmlRpcException: Failed to invoke method xupdate in class org.exist.xmlrpc.RpcConnection: org.xml.sax.SAXParseException: Content is not allowed in prolog. at org.apache.xmlrpc.client.XmlRpcStreamTransport.readResponse(XmlRpcStreamTransport.java:197) at org.apache.xmlrpc.client.XmlRpcStreamTransport.sendRequest(XmlRpcStreamTransport.java:156) at org.apache.xmlrpc.client.XmlRpcHttpTransport.sendRequest(XmlRpcHttpTransport.java:115) at org.apache.xmlrpc.client.XmlRpcSunHttpTransport.sendRequest(XmlRpcSunHttpTransport.java:69) at org.apache.xmlrpc.client.XmlRpcClientWorker.execute(XmlRpcClientWorker.java:56)
berikut ini contoh kode untuk operasi ADD : StringBuilder insert = new StringBuilder(); insert.append("update insert "); if(spec!=null){ insert.append("<owl:Thing rdf:about=\"#").append(spec).append("\"> "); if(fams!=null) insert.append("<familyName rdf:datatype=\"").append(type).append("string\">\"").append(fams).append("\"</familyName> "); if(scie!=null) insert.append("<scientificName rdf:datatype=\"").append(type).append("string\">\"").append(scie).append("\"</scientificName> "); if(local!=null) insert.append("<localName rdf:datatype=\"").append(type).append("string\">\"").append(local).append("\"</localName> "); if(comm!=null) insert.append("<commonName rdf:datatype=\"").append(type).append("string\">\"").append(comm).append("\"</commonName> "); insert.append("<speciesID rdf:datatype=\"").append(type).append("string\">\"").append(spec).append("\"</speciesID> "); if(pict!=null) insert.append("<picture rdf:datatype=\"").append(type).append("anyURI\">\"").append(pict).append("\"</picture> "); if(region!=null) insert.append("<hasRegion rdf:resource=\"#").append(region).append("\"/>"); insert.append("</owl:Thing>"); insert.append(" following doc(\"bird.owl\")/rdf:RDF/owl:Thing[last()]"); } XUpdateQueryService service = (XUpdateQueryService) getCollection("testing").getService("XUpdateQueryService", "1.0"); service.update(insert.toString()); isi insert.toString() sudah saya test manual dg exist-db sandbox dan berhasil. source : http://exist.sourceforge.net/update_ext.html Saya harap bantuan dri rekan sekalian,/alternative lain untuk operasi CRUD XML document dalam native XMLDB. Trims