CLASS Hydrologische_Einzugsgebiet (ABSTRACT) =
Geometrie : MANDATORY GeometryCHLV95_V1.Area;
objectid : MANDATORY 0 .. 999999;
END Hydrologische_Einzugsgebiet;
CLASS Einzugsgebiet_gross
EXTENDS Hydrologische_Einzugsgebiet =
END Einzugsgebiet_gross;
CLASS Einzugsgebiet_klein
EXTENDS Hydrologische_Einzugsgebiet =
END Einzugsgebiet_klein;
CLASS Einzugsgebiet_mittel
EXTENDS Hydrologische_Einzugsgebiet =
END Einzugsgebiet_mittel;
Geometrien von „gross“ und „mittel“ überlappen sich. ilivalidator meldet dies als Fehler. In der Annahme, dass ilivalidator recht hat, kann mir das jemand anhand des Referenzhandbuches erklären.
Auf den ersten Blick war ich erstaunt über dieses Resultat (dass der ilivalidator Überlappungen als Fehler meldet), weil es scheint, als ob die Subklassen unabhängig voneinander sein sollten.
Aber auf den zweite Blick ist doch GeometryCHLV95_V1.Area eigentlich ein Datentyp, der implizit einen CONSTRAINT beinhaltet. Also wie wenn man auf Stufe der abstrakten Superklasse einen CONSTRAINT für einen numerischen Datentypen oder eine Zeichenkette definieren würde. Ein solcher CONSTRAINT wäre ja auch für alle Subklassen gültig, oder nicht?
Das steht zwar so nicht im RefHB, aber so interpretiere ich das in der objektorientierten Modellierung…