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


Kirim email ke