Make sure your database URL goes via IIS rather than Apache.
say the DB URL is “http://localhost:8080/tamino/db” and relUrl is “collection/doc/@10” then tam.InoReplaceChild(relUrl, “//elem[10]”, newElement) should replace the specified elem with the newElement.
Hi, is this dll part of a official patch? We got the same problem that we’d like to update a single node within a document. As far as I know the Tamino storage unit is still a document, and thus the entire document must be replaced. Is that correct? Or are there any new releases out?
If I modify the “active” attribute of the Address node and then use the Active X “process” function passing in the “Name” node, I receive an error like the following:
INOXRE8814: Element/attribute name not found;Line 1, Column 1: Element name = Name
If I do the query like this “/AddressList/Name[@id=“John”]/…” and get the root of the document (“AddressList”), modify the same attribute, and then put the “AddressList” node back, it works fine.
My questions are the following:
- Can I put back the node “Name” and its modified subnode “Address” without querying for the entire document?
- If so, what do I need to pass as the parameters to the ActiveX API’s Process method?
I installed IIS instead of Apache and then NodeLevelUpdate.dll according to the description. I made sure that msxml3.dll is being used as Microsoft.XMLDOM.
I queried for a node and tried to append a sibling by cloning the result node. Did not work!
The following command with a realtive URL which is correct as I understand the API, returns nothing.
From a quick search of the Tamino documentation for “8400” - the JScript API documentation says: “…the numerical HTTP error status if any. This would be interrogated if an error 8400 was reported by the Tamino Result.”
So it seems likely that error 8400 just means “HTTP error” and the error in question is “404 - Not Found”. This would be a reasonable consequence of null in the document’s relative URL.
Did your other attempt (the first one, with no response) work?
[This message was edited by Bill Leeney on 18 Mar 2002 at 17:25.]
I tried to modify the element and also just the ID, either failed. How can I find out what went wrong? Are any good working examples around?
Btw: What makes me curious is the fact, that in your document is stated, that msxml3.dll is required. But at the other hand, what does the Tamino API call UseServerHTTP() exactly mean? There’s no parameter for XMLDOM3. Could this cause the problem?
Hi Rene, Regarding MSXML3, it is definitely needed. The registry entries it creates during registration include a VersionIndependentProgID of “MSXML2.ServerXMLHTTP”, which has a corresponding InProcServer32 of “……msxml3.dll”. So, despite its appearance, this ProgID is really an MSXML3 “feature”.
I have an example but it’s in java (attached). After compiling it, you can execute it with command: java AppendChild ino:id where is the URL to your RealEstate database and ino:id is the ino:id (number) of an xml instance in that database, collection “Property”, doctype “Property”. The example will just append a new Price node, value “9999”, to the end of that xml instance.
Bill, where do I get the RealEstate database, is it part of the XMLStarter Kit? I’m using V3.1.1.1 (licensed version) and I did not found the RealEstate database. The example in Java is fine, but since I’m using the ActiveX API I think it does not help a lot. I think the problem is more related to the ActiveX implementation of the Tamino API. For example, I don’t have such nice helpful functions like setTrace().
Concerning the msxml3.dll, I think that I’m using the right version, but i could be that there is a typical dll versioning problem.
anyway thanks for your help, I’m working on it. rene
Sorry about the previous examples. Here is a more general example that uses the demo data provided with Tamino 3111. In the zipped file attached there is a modified Telephone schema. This will allow you to add unbounded instances of a new element type, “Append”, to a Telephone element.
Two examples are provided, both are asp’s but one is in javascript and the other vbscript. Both use the Tamino ActiveX API.
Before running the examples, define the modified schema (attached). The default collection name is “NodeLevelUpdate” and the doctype is “Telephone”. Then “process” (load) some instances (for example, using the Tamino-supplied examples in /examples/data/phone1k.xml), using the Interactive Interface. Be careful to specify collection “NodeLevelUpdate” when processing the xml.
Now set the URL to your database in the asp source code and try the pages. HTH NodeLevelUpdate.zip (1.9 KB)
Hi Bill, thanks for your example, but unfortunately it does not work either on my installation. I tried it out also on another client machine. The problem has been posted to the SAG customer support center, they take care now about the problem. You’ll find attached my VB example, which I slightly changed in order to run it on my box. I still receive the following error, when trying to append a child element.
<?xml version="1.0"?> <ino:response xmlns:ino=“http://namespaces.softwareag.com/tamino/response”> <ino:message ino:returnvalue=“8814”> ino:messagelineHAAXJE8400 HTTP Error 404 Not Found</ino:messageline> </ino:message>ino:messagetextGenerated by NodeLevelUpdate Filter Version 3.1.1.1</ino:messagetext> ino:messagetextCurrent Date: 03/21/02 Time: 14:08.09</ino:messagetext> </ino:response>
NodeLevelUpdate builds the complete docURL from the databaseURL plus the relURL parameter.
If you change your code from: Set inoResponse = tamino.InoAppendChild(“Telephone/@1”, “Telephone”, element) to: Set inoResponse = tamino.InoAppendChild(“/Telephone/@1”, “Telephone”, element) (add the extra slash to make the doc URL complete)it should work.
Bill, infact, the wrong relative URL caused this 404 page error. Inserting and replacing a document works now. For example replacing the password looks as follows:
This works for me: inoResponse = tamino.InoRemoveChild(“/Telephone/@1”,“Telephone/Append[1]”); where [1] is the instance number of the Append child node you want to remove. If it doesn’t exist you get an “XPath not found” error. If it’s not unique you get an “XPath not unique” error.