IBM webMethods Hybrid Integration

IBM webMethods Hybrid Integration

Join this online group to communicate across IBM product users and experts by sharing advice and best practices with peers and staying up to date regarding product enhancements.

 View Only
Expand all | Collapse all

DTD -> Tamino Schema (CHOICE, multiplicity)

  • 1.  DTD -> Tamino Schema (CHOICE, multiplicity)

    Posted Mon September 10, 2001 12:55 PM

    Hello,
    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:

    The DTD



    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”/>
    </ino:doctype>
    </ino:collection>

    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

    The DTD


    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”/>
    </ino:doctype>
    </ino:collection>


    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

    Gianni


    #webMethods
    #Tamino
    #API-Management


  • 2.  RE: DTD -> Tamino Schema (CHOICE, multiplicity)

    Posted Mon September 10, 2001 07:03 PM

    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

    quote:

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

    Best regards,

    Andreas


    #Tamino
    #API-Management
    #webMethods