sub latitudeType { # The latitude of the point. Decimal degrees, WGS84 datum. my($class, $value) = @_; return FALSE if _is_null($value); return xsd_decimal($value) and $value >= -90.0 and $value <= 90.0 and TRUE; } sub longitudeType { # The longitude of the point. Decimal degrees, WGS84 datum. my($class, $value) = @_; return FALSE if _is_null($value); return xsd_decimal($value) and $value >= -180.0 and $value < 180.0 and TRUE; } sub degreesType { # Used for bearing, heading, course. Units are decimal degrees, true (not magnetic). my($class, $value) = @_; return FALSE if _is_null($value); return xsd_decimal($value) and $value >= 0.0 and $value < 360.0 and TRUE; } sub fixType { # Type of GPS fix. none means GPS had no fix. To signify "the fix info is unknown, leave out fixType entirely. pps = military signal used my($class, $value) = @_; return FALSE if _is_null($value); return xsd_string($value) and TRUE; } sub dgpsStationType { # Represents a differential GPS station. my($class, $value) = @_; return FALSE if _is_null($value); return xsd_integer($value) and $value >= 0 and $value <= 1023 and TRUE; }