I am doing a research for a diploma thesis at the moment - that is mainly about XML and its dynamic use itself and not that much about tamino - but I am using tamino to store XML data natively. I understand that tamino is REALLY native, so that each XML document is stored as is.
But I have some basic understanding problems. I got a big schema to work with that has already been designed - at this point it is not clear if it is designed properly, though. Fact is that the schema is quite enormous, and contains various references and types. a small fragment of the whole structure can be seen here:
In this example, “Modul” has a sequence, and that sequence contains an element called “Literature”. So, if I want to just store some literature that does not belong to any specific “Modul”, how can this be managed? As far as I can see, due to the hierarchical structure of xml the Literature cannot exist without the parent it is bound to - in this case “Literature” can not exist without “Modul” - even if it would exist as proper complexType, being refered to from within the parent-tree…
Maybe that my mind is strongly shaped by relational thinking, and I am trying to map relations to the xml data, but is there a possibility to keep “Literature” independent from “Modul”, while still belonging to the same schema that defines Modul? I don’t think so, since the schema is not used to store anything, but to validate a stored XML tree against it, so even references within a schema do not create a proper space for elements of type Literature, but are only acting as a placeholder within the schema definiton - refering to another “structure” used to build the whole schema, and not creating an object that later properly exists within the database without being bound to the whole structure defined by the schema. Am I right?
So I guess that object references should be made where the data is actually stored - which means within the XML files.
By definig a proper doctype for Literature and have both the doctype “Modul” and “Literature” in the same collection, it would be possible to keep them both independent. As far as I read, object references are possible within tamino - but then again the whole tree would be interrupted at the reference-point and xquerys won’t be applicable to the whole structure.
Furthermore I am not sure how object references interact with the schema that defines the whole… My assumption is that it would be best to break the whole schema into small fragments, with a doctype for each element that has to be used separately, using kind of split xquerys that query both instances… or maybe x-query.
To be clear: What I actually want is to store data defined by a small fragment by within ONE giant schema on a place where it does not depend on the whole tree and the existance of its parent. Because the way it is, a new “Literature” must always be bound to a “Module”.
Can anyone explain me how object references happen on tamino level, and what the mapping type (native / doctype) is all about? How does this exactly act within tamino?
Thanks in advance,