I am totally new to Tamino, and as a matter of fact also to XML…
I have been trying to understand how I can query an XML Document out of our in-house developed (in Delphi) application. It seems like I need to acesss the doc through an unique identifier, either this id (generated by Tamino) or through docname…
And I really do not know how to deal with this docname:
a) is docname specific from Tamino or a standard element from XML (till now in the tutorials I’ve made I’ve only met doctype)?
b) do I have to state it in my XML document? If yes, is docname an attribut from my root element or a child element itself?
c) do I have a possibility to enter a value for this docname from the Tamino Schema Editor, after I do an import DTD (I work with DTDs)?
I apologize for so many questions already. I am also new to such Foruns and do not know if this is the right way to ask…
Well, I will find out soon…
I’ll try to answer some of your questions and perhaps someone else will fill in the gaps.
First of all, I’d recommend reading the documentation for Tamino → Get started. It talks about what is a doctype, etc.
However, I know that some nomenclature and concepts are quite new when coming to Tamino.
Basically, if you want to store “some xml” into tamino, you have to first have a database created, then within a database you have collections, and then within collections you have doctypes. Think of doctypes loosely as “tables” in SQL server.
From XML, you might now that every XML document, or fragment must have only one root node. Well tamino does the same thing. However, in tamino, you create a doctype, which is then associated to the root of your document. The doctype and the root node have the same name.
I am sure an example will explain it better:
I have a database “industry”, with a collection “subscriptions” and in it I have two doctypes: “subscription” and “products”.
So, to insert a document into industry->subscriptions->subscription, your xml document might look something like this:
Using X-Plorer, or XQuery or one of the API’s, you could insert this document into the subscription doctype. Tamino just needs to know the database and the collection, and it will match your root node name to the doctype.
Now you must also understand that to be able to insert documents into Tamino, you must first create (or “define”) a schema. This schema tells tamino what sctructure the document will have, what indexes you might want to use, what datatypes each attribute and node will have, etc. When you insert a document into tamino, tamino will then build the indexes and also verify if your document complies with the schema rules and reject it if it doesn’t.
If you ever worked with SQL or Access (or perhaps even FileMaker), you must have create tables. When you were creating tables, you had to assign names to fields, their datatypes, etc. Well that’s whatc schemas do, but they are more powerful.
As to how to access data from Delphi, I am a bit confused.
I presume you want to query data from Tamino via your code in Delphi?
In that case, I am not too sure what to suggest. There API’s for .NET, Java, C, but I don’t think those apply to you. You can always use the ActiveX component or even pass your XQueries via URL, but if you queries get really large, then you might go over the limit of what you can pass through the url.
In the documentation, they show you how you can make queries via url. It’s not hard. If you’re not using one of the API’s, then you loose some benefits. However for simpler applications, querying via url might do the job.
Hope this helps.
I’m a Zen Garden Maintenance Engineer
Thanks a lot, Peter.
But my main question remains docname…
Could you help me on that???
Would I be right in thinking that you are probably trying to access Tamino using direct HTTP?
The APIs shipped with Tamino hide a lot of the HTTP stuff one needs to do.
Inserting a “document” with a document name can be done using this format:
<?xml version="1.0" encoding="utf-8"?> <ino:request xmlns:ino="http://namespaces.softwareag.com/tamino/response2"> <ino:object ino:docname="Bob"> <Document>...</Document> </ino:object> </ino:request> </pre><BR><BR>You should be able to retrieve it as:<BR><BR><pre class="ip-ubbcode-code-pre">http://host/tamino/db/collection/Document/Bob
By default Tamino generates the docnames “@1,@2,@3,…”. The docnames are associated with a document on an one to one basis. Either they are specified by the user or auto-generated by Tamino.