Dear all,
I’ve made a simple TJDOMObjectModel XQuery (see the below captured code)
but the result doesn’t contain Ino:ID which makes the update failed (error message below)
But there are 2 cases that the return result contains Ino:id (xmlObject.getId())
1.) if using TDOMObjectModel (not TJDOM)
2.) compile & run on another PC, using Java 1.4 (I can’t explain what’s the difference !!!)
is it a TaminoAPI4J.jar related issue ?
Any one has seen this kind of problem before ?
I read through the archives, just find that the XQuery return result is not guaranteed to have ino:id … is it still the case ?
Thanks everybody !
Regards,
Dee.
----- >8 -------
tcon = TConnectionFactory.getInstance().newConnection (tamServerURL, tamUsername, tamPassword) ;
TXMLObjectAccessor tacc = tcon.newXMLObjectAccessor (
TAccessLocation.newInstance(tamCollection),
TJDOMObjectModel.getInstance() ) ;
tcon.setIsolationDegree(TIsolationDegree.COMMITTED_COMMAND ) ;
tcon.setLockMode(TLockMode.PROTECTED) ;
tcon.setLockwaitMode (TLockwaitMode.YES) ;
…
TResponse tamResponse = tacc.query (xQuery) ; // make the query
TXMLObject xmlObject = tamResponse.getXMLObjectIterator().next() ;
…
// modify xmlObject
tacc.update(xmlObject) ; // ← failed due to no ino:id ?!
----- >8 -------
Error:
----- >8 -------
com.softwareag.common.instrumentation.contract.ViolatedPrecondition: Violated Precondition: Update not possible. TXMLObject instance does not contain an ino:id!
----- >8 -------
I get a problem about update().
I want update an element not a document,What can I do?
thank you.
By default xquery will not return the ino:id unless you formulate the xquery expression to do so. One possibility is to use the XQuery-Update feature to update individual element(s) and attribute(s). Take a look at FLWUExpr expressions in the XQuery section of the Tamino documentation.
Hope this helps.