DTD -> Tamino Schema (CHOICE, multiplicity)

we are facing some problem with the translation that Tamino Schema Editor 2 is making importing a DTD.

The customer is finalizing an evaluation against other vendors.
We are going to load about 4-5GB of 35000 xml documents !


1) First problem:


is translated, by Tamino Schema Editor 2, to

<?xml version="1.0"?>
<ino:collection ino:name=“try_choice” ino:key=“ID001”>
<ino:doctype ino:name=“A” ino:key=“A2” ino:options=“READ INSERT UPDATE DELETE” ino:structure-index=“CONDENSED”>
<ino:node ino:name=“A” ino:key=“A3” ino:obj-type=“CHOICE” ino:parent=“A2” ino:search-type=“no” ino:map-type=“Native”/>
<ino:node ino:name=“B” ino:key=“A4” ino:obj-type=“PCDATA” ino:parent=“A3” ino:multiplicity="+" ino:search-type=“no” ino:map-type=“No”/>
<ino:node ino:name=“C” ino:key=“A5” ino:obj-type=“PCDATA” ino:parent=“A3” ino:multiplicity="+" ino:search-type=“no” ino:map-type=“No”/>

This means that the document:

B value

is valid for both the DTD and the Tamino Schema but the document

B value
C value

is valid for the DTD but NOT VALID for the Tamino schema.

Our workaround is:

the DTD has been modified as follows:

This let Tamino convert in a way that the two xml documents can be loaded. But the customer will find it as a joke.

This is a huge problem for us. The customer DTDs must be imported in Tamino without modification.


2) Second problem


is translated into the Tamino schema

<?xml version="1.0"?>
<ino:collection ino:name=“try_implied” ino:key=“ID001”>
<ino:doctype ino:name=“pippo” ino:key=“pippo2” ino:options=“READ INSERT UPDATE DELETE” ino:structure-index=“CONDENSED”>
<ino:node ino:name=“pippo” ino:key=“pippo3” ino:obj-type=“PCDATA” ino:parent=“pippo2” ino:search-type=“no” ino:map-type=“Native”/>
<ino:node ino:name=“pippo_att” ino:key=“pippo4” ino:obj-type=“CDATA” ino:parent=“pippo3” ino:search-type=“no” ino:map-type=“No”/>

Note that the multiplicity is set to 1, which IS NOT what the DTD is saying.

The only workaround that we can find is to make a program that changes the multiplicity to the proper nodes on the Tamino schema. But again this will be probably unacceptable.

Can you help us ?

Best regards


ad 1)

Golden Rule of Tamino Schema Editing:
“No DTD can expect to be modelled 1:1 against the Tamino repository"

Irrelevant story from my own practice (perhaps to show you you’re not alone):
I’ve a DTD at hand, crafted by a grand-mistress of DTD carving (who since left the customer’s enterprise). Taking it 1:1 would require Tamino to generate above 40.000 nodes. Imagine a Entity Relationship Model with 40.000 nodes! Okay, okay, SAP has one, but do you need one, too? Relly? Okay, I told you it was an irrelevant story. Sorry.

Exception to the Golden Rule:
”… unless you’re using a version of Tamino that handles CHOICE content models correctly."

But even then, at one level or other I usually pull the emergency break and go on to “assimilate” those nodes to PCDATA. Usually, Tamino forgives.

So, solution to your problem would be not to mess with B or C at all but go with A = PCDATA. Let the customer laugh, just make sure the speed is okay!

2) I fail to see how this


indicates anything other than multiplicity=1. Maybe you dropped a character?

Best regards,