opengeospatial / CityGML-3.0CM

CityGML 3.0 Conceptional Model
MIT License
89 stars 16 forks source link

Superclass of generic attributes is not specified correctly in the data dictionary #168

Closed TatjanaKutzner closed 3 years ago

TatjanaKutzner commented 3 years ago

The data types StringAttribute, IntAttribute, DoubleAttribute, DateAttribute, UriAttribute, MeasureAttribute, CodeAttribute, and GenericAttributeSet are subclasses of AbstractGenericAttribute.

The data dictionary, however, specifies Subclass of: None for these data types. This needs to be corrected.

cmheazel commented 3 years ago

@TatjanaKutzner Actually none of the DataTypes have superclasses. This looks like an issue with the template.

cmheazel commented 3 years ago

@TatjanaKutzner DataTypes and Unions have different behavior from the other classes. The reason is that DataTypes and Unions are datatype elements while everything else is a class. Datatypes do not support inheritance. Therefore they cannot be subclassed. The solution is to convert all datatype elements (DataTypes and Unions) to classes. The only obvious impact will be to make datatype subclassing possible.

TatjanaKutzner commented 3 years ago

@cmheazel I checked the UML specification. Both, DataType and Class, are specialisations of Classifier. Classifier defines a relationship with Generalization. Thus, DataType and Class inherit this Generalization relationship. I do not find a constraint in the UML specification saying that DataType does not inherit the Generalization relationship. This means that also DataTypes can be subclassed.

We cannot simply convert our data type elements to classes as the semantics would be changed.

cmheazel commented 3 years ago

@TatjanaKutzner It's more of a EA implementation issue then. For a Class, the Element.BaseClasses template tag resolves to the target class of any Generalization relationship. The parent or super class. I cannot find a template tag which performs the same function for DataType.

I'll throw something together to get the document out the door.

Hopefully we'll see a better tool suite from TC211 and Testbed 17.

cmheazel commented 3 years ago

Changes applied - the document is now aligned with the latest UML model.