[Uml-devel] [Bug 56184] Umbrello XMI file format doesn't conform with uml13.dtd

Oliver Kellogg okellogg at users.sourceforge.net
Tue Dec 21 14:40:02 UTC 2004


------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.
        
http://bugs.kde.org/show_bug.cgi?id=56184        




------- Additional Comments From okellogg users sourceforge net  2004-12-21 23:39 -------
>From Marcus Alanen (maalanen_AT_ra.abo.fi)
<quote>

Stereotype should have an icon="" and baseClass="" attribute.

[...]
AssociationEnds should not have isLeaf, isRoot, isAbstract. 
(isSpecification should be there)

AssociationEnds should further have
- isNavigable = "(true|false)"
- type = "id"  where id is the id of the class where we point to
- ordering = "(unordered|ordered)" if order of elements matters
- aggregation = "(none|aggregate|composite)" (nothing, empty diamond, 
black diamond)
- targetScope = "(instance|classifier)"  if it points to objects or classes
- changeability = "(changeable|frozen|addOnly)"

Above, I've tried to give the "most suitable" enumeration value first.

Classes should have:
     <UML:Classifier.associationEnd>
      <UML:AssociationEnd xmi.idref="e3" />
     </UML:Classifier.associationEnd>

where e3 is the AssociationEnd they have. By the way you can add several 
 easily with
     <UML:Classifier.associationEnd>
      <UML:AssociationEnd xmi.idref="e3" />
      <UML:AssociationEnd xmi.idref="e4" />
      <UML:AssociationEnd xmi.idref="e5" />
       ....
     </UML:Classifier.associationEnd>

instead of

     <UML:Classifier.associationEnd>
      <UML:AssociationEnd xmi.idref="e3" />
     </UML:Classifier.associationEnd>
     <UML:Classifier.associationEnd>
      <UML:AssociationEnd xmi.idref="e4" />
     </UML:Classifier.associationEnd>
      ...

This goes for any such constructs.

All AssociationEnds must have exactly one Multiplicity element as well:
       <UML:AssociationEnd.multiplicity>
        <UML:Multiplicity xmi.id="e7" >
            ....
        </UML:Multiplicity>
       </UML:AssociationEnd.multiplicity>

There can be 0 to many MultiplicityRanges inside a Multiplicity.
        <UML:Multiplicity.range>
          <UML:MultiplicityRange xmi.id="e8" lower = "0" upper = "5" />
          <UML:MultiplicityRange xmi.id="e8" lower = "12" upper = "14" />
          <UML:MultiplicityRange xmi.id="e8" lower = "100" upper = "-1" />
        </UML:Multiplicity.range>

Regarding XMI.extensions, I think you should declare the XML namespace
(with xmlns:umbrello="http://blahblah/") either
- at top-level XMI together with the xmlns:UML definition,
- at XMI.extensions
- at *every* top-level element inside XMI.extensions:

I think the first one is easiest, and hopefully doesn't cause any 
compatibility problems with other tools. Anyway, you need then a 
"umbrello:" prefix for every top-level element inside XMI.extensions:
  <umbrello:docsettings viewid="118" documentation="" uniqueid="133" />
  <umbrello:diagrams> ....</ >
  <umbrello:listview> ....</ >
   ... etc..

The string doesn't have to be "umbrello", it can be anything you want, 
since the xmlns declaration is the key.

</quote>




More information about the umbrello-devel mailing list