POSC Specifications: Epicentre Version 3.0
Logical Data Model
ENTITY
COMPOUND_COORDINATE_SYSTEM
(* Local *)
SUBTYPE OF
(
coordinate_system
);
first_system :
simple_coordinate_system
;
second_system :
simple_coordinate_system
;
UNIQUE
si: first_system, second_system;
WHERE
val: SIZEOF(QUERY ( cnstrtype <* ref_coordinate_sys_constraint.axis_type | ((SIZEOF(QUERY ( firstaxis <* first_system.coordinate_system_axis | ((SIZEOF(QUERY ( quan <* cnstrtype.axis_type.quantity_property | (quan.property_kind :=: firstaxis.property_kind) )) = 1) AND (firstaxis.axis_order = cnstrtype.axis_order)) )) + SIZEOF(QUERY ( secondaxis <* second_system.coordinate_system_axis | ((SIZEOF(QUERY ( quan <* cnstrtype.axis_type.quantity_property | (quan.property_kind :=: secondaxis.property_kind) )) = 1) AND (secondaxis.axis_order = (cnstrtype.axis_order - SIZEOF(first_system.coordinate_system_axis)))) ))) = 1) )) = SIZEOF(ref_coordinate_sys_constraint.axis_type);
val1: ((NOT (SIZEOF(QUERY ( typ <* TYPEOF(first_system) | (typ LIKE '*GEODETIC_COORDINATE_SYSTEM*') )) > 0)) OR (NOT (SIZEOF(QUERY ( typ <* TYPEOF(second_system) | (typ LIKE '*GEODETIC_COORDINATE_SYSTEM*') )) > 0))) OR (((SIZEOF(QUERY ( typ <* TYPEOF(first_system) | (typ LIKE '*VERTICAL_COORDINATE_SYSTEM*') )) > 0) OR (SIZEOF(QUERY ( typ <* TYPEOF(second_system) | (typ LIKE '*GVERTICAL_COORDINATE_SYSTEM*') )) > 0)) AND (((SIZEOF(QUERY ( typ <* TYPEOF(first_system) | (typ LIKE '*PROJECTED_2D_COORDINATE_SYSTEM*') )) > 0) OR (SIZEOF(QUERY ( typ <* TYPEOF(second_system) | (typ LIKE '*PROJECTED_2D_COORDINATE_SYSTEM*') )) > 0)) OR ((SIZEOF(QUERY ( typ <* TYPEOF(first_system) | (typ LIKE '*GEOGRAPHIC_2D_COORD_SYSTEM*') )) > 0) OR (SIZEOF(QUERY ( typ <* TYPEOF(second_system) | (typ LIKE '*GEOGRAPHIC_2D_COORD_SYSTEM*') )) > 0))));
END_ENTITY
; (* compound_coordinate_system *)
Generated on Tue Jul 10 19:37:39 2001
© Copyright 2001 POSC. All rights reserved.