POSC Specifications |
EXPRESS Projection Methods |
The following table specifies the suffix used for the attribute components of each projected type. A domain rule was constructed in order to validate each set of projected attributes. These domain rules utilized a predefined function (e.g., quantity_valid). Precision constraints were hard coded into each REAL value. Other constraints were included in the function arguments. Existing domain rules that referenced the original attribute using the EXISTS function were modified to reference a single mandatory component of the type. The few existing domain rules that compared the equality of attribute values were hand modified.
For geometry types, the underlying type was converted to an entity, the attribute was converted to an relationship to the new (type) entity and a domain rule (utilizing the predefined function geom_param_valid) was added to insure that the parameter values were valid in the (type) entity.
Meta Type | Meta Element | Projected Type | Projected Suffix | Optionality Within Type |
---|---|---|---|---|
complex | real_part | real(precision) | REAL | M |
imaginary_part | real(precision) | IMAGINARY | M | |
rational | numerator | integer | NUMERATOR | M |
denominator | integer | DENOMINATOR | M | |
ratio | numerator | real(precision) | NUMERATOR | M |
denominator | real(precision) | DENOMINATOR | M | |
money | currency_value | integer | VALUE | M |
currency_unit | ref_unit_of_measure | UNIT | M | |
subvalue | LIST[1:10] OF integer | SUBVALUE | ||
location | system | coordinate_system | SYSTEM | M |
origin | vertex | ORIGIN | ||
ordinal_value | LIST[1:20] OF real(precision) | ORDINAL | M | |
ordinal_unit | LIST[1:20] OF ref_unit_of_measure | UNIT | M | |
minute_value | ARRAY[1:20] OF OPTIONAL integer | MINUTE | ||
second_value | ARRAY[1:20] OF OPTIONAL real(precision-5) | SECOND | ||
date | year | integer | YEAR | M |
month | integer | MONTH | M | |
day | integer | DAY | M | |
time | hour | integer | HOUR | M |
minute | integer | MINUTE | M | |
second | real(precision) | SECOND | M | |
offset_hour | integer | OFFSETHOUR | M | |
offset_minute | integer | OFFSETMINUTE | M | |
timestamp | content_code | emi_timestamp_content | CODE | M |
year | real(6) | YEAR | M | |
year_part | integer | PART | ||
day | integer | DAY | ||
hour | integer | HOUR | ||
minute | integer | MINUTE | ||
second | real(precision) | SECOND | ||
offset_hour | integer | OFFSETHOUR | ||
offset_minute | integer | OFFSETMINUTE | ||
yearmonthinterval | years | integer | YEARS | M |
months | integer | MONTHS | M | |
daytimeinterval | day | integer | DAY | M |
hour | integer | HOUR | M | |
minute | integer | MINUTE | M | |
second | real(precision) | SECOND | M | |
quantity | quantity_value | real(precision) | VALUE | M |
quantity_unit | ref_unit_of_measure | UNIT | M | |
anyquantity | quantity_value | real(precision) | VALUE | M |
quantity_unit | ref_unit_of_measure | UNIT | M | |
quantity_type | ref_quantity_type | TYPE | M | |
angle | quantity_value | real(precision) | VALUE | M |
quantity_unit | ref_unit_of_measure | UNIT | M | |
minute_value | integer | MINUTE | ||
second_value | real(precision-5) | SECOND |