Entities

I am using custom general internal parsed entities but I have a problem with storing/retrieving the XML data.

The DOCTYPE section is not stored therefore when I retrieve the data, the entities are undefined… What should I do to use tailor-made entities with Tamino :confused: ?

---- XML Sample ----

<?xml version="1.0" encoding="utf-8" ?>
<!DOCTYPE test [


]>

System activated

At &hour;:&minute;


Hi, David,

from another post of you I gathered you’re using Tamino 2.2.1.9. I just ran your example through Tamino 2.3. and it works. Can cou upgrade to the new version?

Best regards,

Andreas

quote:
Originally posted by Andreas Schoedl:
Can you upgrade to the new version?

I am lucky, we are in the process of migrating to a new version... I have hope that my problems will soon be cleared !

Kind regards and thx for your support,
David

Hi,

to complete my answer, this is from Tamino 2.3.1.1 documentation:

quote:
When storing documents in Tamino, internal entity references and character references are resolved. As a consequence, documents retrieved from Tamino will not contain references to internal entities any more. Also, character entities in strings used in queries will be resolved. For example, a query

//[=“A& #x2a;B”]
will match all documents containing the string A*B


Best regards, Andreas

I have just tested the new behaviour of Tamino 2.3 concerning the entities. As you said, Andreas, they are now resolved.

Which means that parsed internal entities are replaced with their values… and it is even worst than before, for the goal I am seeking which is benefiting from the flexibility entities bring : the reference stays but the definition can change, producing a different XML document.

Entities are a basic XML feature, I am sure Tamino deals with this correctly, so what am I doing wrong :confused:

fyi. I have also tried parsed/unparsed external entities : I just can’t enter the document in Tamino (bas prolog).

David,

I understand your dissatisfaction.

I am not especially happy about it, but I think the current implementation is a good solution, though it is a trade-off.

In the light that most people use dbms to have powerful retrieval functions (and that fast), this trade-off is (as I believe) inevitable.

Imagine the extra stuff that would need to go into the database code, if it handled entities in a special manner. Think of querying on content that is in entities. Storing the document with entity references unresolved would require the kernel to resolve the entities of all documents on each and every query run. Same for indexes.

I think, SAG development had some quite heated discussions on how to exactly handle entities. For the time being I think it’s a good enough implementation, for it is in the name of simplicity and, thus, speed.

I understand that this might not exactly help you. I hope you can come up with another solution that doesn’t require entity references in the query result set. If you could share the problem you’re trying to solve, maybe someone around here picks it up. I think, you’re not the first one dealing with this.

In regard to external entities: Unparsed entites really have no business in the XML store, they are not part of the XML, the concept is merely for linking. The way out is to store the unparsed stuff in a nonXML doctype and employ another mechanism for linking.

Best regards, Andreas

Hi Andreas,

Even if it breaks my heart, I can fully understand the reasons why SAG would not mess with entities. I can imagine the performance impact, etc…

I am currently trying to solve my problem by using Server X-Tensions (with all the hapiness you can imagine by the look at my posts in the X-Tension forum).

Anyway, Tamino remains a great tool.