<?xml version="1.0" encoding="UTF-8"?>
  <!-- PDS4 XML/Schema for Name Space Id:cart  Version:1.9.5.0 - Tue May 04 05:11:42 UTC 2021 -->
  <!-- Generated from the PDS4 Information Model Version 1.16.0.0 - System Build 11.1 -->
  <!-- *** This PDS4 product schema is an operational deliverable. *** -->
  <!--                                                                           -->
  <!--               Dictionary Stack                                            -->
  <!-- 1.16.0.0 - pds: - Common Dictionary                                       -->
  <!-- 1.9.2.0 - geom: - Geometry Dictionary Full                                -->
  <!--   file:/home/runner/work/ldd-cart/ldd-cart/src/dependencies/ldd-geom/src/ -->
  <!-- 1.9.2.0 - geom: - Geometry Dictionary Full                                -->
  <!--   file:/home/runner/work/ldd-cart/ldd-cart/src/dependencies/ldd-geom/src/ -->
  <!-- 1.9.5.0 - cart: - Cartography                                             -->
  <!--   file:/home/runner/work/ldd-cart/ldd-cart/src/PDS4_CART_IngestLDD.xml    -->
  <!--                                                                           -->
  <xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema"
    targetNamespace="http://pds.nasa.gov/pds4/cart/v1"
    xmlns:cart="http://pds.nasa.gov/pds4/cart/v1"
    xmlns:pds="http://pds.nasa.gov/pds4/pds/v1"
    xmlns:geom="http://pds.nasa.gov/pds4/geom/v1"
    elementFormDefault="qualified"
    attributeFormDefault="unqualified"
    version="1.9.5.0">
 
    <xs:import namespace="http://pds.nasa.gov/pds4/pds/v1" schemaLocation="https://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1G00.xsd"/>
    <xs:import namespace="http://pds.nasa.gov/pds4/geom/v1" schemaLocation="https://pds.nasa.gov/pds4/geom/v1/PDS4_GEOM_1G00_1920.xsd"/>
 
  <xs:annotation>
    <xs:documentation>

    Contains classes and attributes used to describe cartographic
    products.  This information is largely adapted from the Federal Geographic 
    Data Committee (FGDC) "Content Standard for Digital Geospatial Metadata", 
    with extensions (changes/additions) to satisfy planetary requirements.

    ## CHANGE LOG ##
    1.9.0.0
    - Upgraded to v1900 of the IM
    - Created new Map_Projection_Lander class with associated map projections and attributes
    - New pixel_scale attribute that defines a pixel scale not x/y aligned
    - Change units for pixel_scale_x/y to Units_of_Pixel_Scale_Map
    - Change units for pixel_resolution_x/y to Units_of_Pixel_Resolution_Map
    - Change local_georeference_information to optional in the case where Map_Projection_Lander is specified.
    - Created Local_child_check rule to check this
    - Change Spatial_Domain to optional in the case where Map_Projection_Lander is specified since domain is the horizon
    - Created spatial_domain_or_lander_check rule to check this
    - Added Local_Internal_Reference at top-level of Cartography dictionary
    - Created local_reference_type_check_cart rule to enforce value of Local_Internal_Reference
    
    1.9.0.1
    - Changed all class local_identifier to identifier_reference per v1900 IM update
    - Changed Coordinate_Space_Reference to inherit from Geometry dictionary
    
    1.9.0.2
    - CIsbell 24July2018
    - Added/corrected unit_of_measure_type where appropriate to correctly include 
      'Units_of_Pixel_Scale_Map' and 'Units_of_Pixel_Resolution_Map'
    
    1.9.1.0
    - Added Point Perspective Map Projection (CIsbell).
    - Note: As of 24July2018, parameters/attributes here include only those required to define the 'fundamental' Point Perspective (PP)
        Projection. That is, along with the common base projection parameters required for all projections, the additional PP
        requirements of target_center_distance and nadir point (longitude_of_central_meridian, latitude_of_projection_origin) 
        will define the basic PP projection. Additional parameters for a more 'complex' PP (line/sample sub-spacecraft offsets
        optical offsets, focal parameters, image array segment definitions, etc, will need to be added as needed.

    1.9.1.1
    - CDeCesare 20181116
    - Removed definitions of classes which are already defined by GEOM dictionary: Vector_Cartesian_Unit_Base, Vector_Cartesian_Position_Base, Vector_Cartesian_No_Units
    - Updated references that point at Vector_Cartesian_Unit_Base to instead point at geom.Vector_Cartesian_Unit
    - Updated references that point at Vector_Cartesian_Position_Base to instead point at geom.Vector_Cartesian_Position_Base

    1.9.2.0
    PGeissler and THare 20181221
    - Added Oblique Cylindrical Map Projection 
    - Note: To support Cassini BIDR. This is a somewhat specialize map projection which requires several new projection parameters
            including: reference_latitude, reference_longitude, map_projection_rotation, oblique_proj_pole_latitude, 
			oblique_proj_pole_longitude, oblique_proj_pole_rotation, oblique_proj_x_axis_vector, oblique_proj_y_axis_vector, and
			oblique_proj_z_axis_vector. The original parameter center_latitude is now mapped to latitude_of_projection_origin and
			the original parameter center_longitude is now mapped to longitude_of_central_meridian. line, sample offsets are
			remapped into meters using upperleft_corner_x and upperleft_corner_y. 
    - Added many definitions for map projections (cartographic and lander). 
    - Removed "General Vertical Near-sided Projection" since it has functionally been replaced by "Point Perspective".

    1.9.3.0
    THare and PGeissler 20190424
    - 'Planar_Coordinate_Information' is no longer mandated to better support vector files. It should be added for images
    - 'cart.latitude_resolution' and 'cart:longitude_resolution' to be optional, not needed for vector GIS labels
    - Added Secondary_Spatial_Domain as an optional or alternative method to list IAU recommended or historically used 
      bounding coordinate section to support both positive East and positive West systems in the same label.
    - Rename all three radius parameter names. These were renamed to clarify the parameter names since the name 
        semi_major_radius is flawed and confusing as semi and radius both mean "half". This keyword should have
        originally been named semi_major_axis (as used by the Federal Geospatial Data Consortium [FGDC]). To better
        align with PDS version 3, we are moving these parameters names back to a_axis_radius, b_axis_radius, and 
        c_axis_radius. Thus we are renaming: 
    - semi_major_radius to a_axis_radius. 
    - semi_minor_radius to b_axis_radius
    - polar_radius to c_axis_radius
      To be clear, most mapping applications call a_axis_radius the semi_major_axis and c_axis_radius the semi_minor_radius.
      The b_axis_radius value is generally not seen in mapping applications which typical do not support triaxial definitions
      for map projections. For most all cases, when a triaxial definition is defined, the IAU defines a best fit sphere. 
      see: https://astrogeology.usgs.gov/groups/IAU-WGCCRE.
      When a best-fit sphere or a body is already defined as a sphere, a single radius value will be listed across all three 
      parameters a_axis_radius, b_axis_radius, and c_axis_radius. For an ellipse, the a_axis_radius and b_axis_radius will be
      defined by a single radius value and a different (generally smaller) radius value for the c_axis_radius. Lastly, the
      default units for the these parameters was set to meters "m".

    THare and CDeCesare 20190430
    - Upgraded to v1B10 of IM.
    - Undid changes from 1.9.1.1.
    - Coordinate_Space_Reference is now re-used from the GEOM class as-is, so that CART doesn't need to re-implement it.

    THare 20190520
    - simple misspellings
    - updated definitions for Surface_Model_Parameters and Surface_Model_Planar, surface_model_type, 
      Vector_Surface_Ground_Location, Vector_Surface_Normal

    1.9.3.1
    THare and CDeCesare 20190613
    - updated line and sample attributes to allow for non-negate values under Camera_Model_Offset, 
      Pixel_Position_Nadir_Polar, Pixel_Position_Origin  

    1.9.3.2
    THare 20190909
    - add Ring section, Map_Projection_Rings, for ring map projections to meet conversion of Cassini PDS3 data to PDS4.
    - Rings intially falls under Horizontal_Coordinate_System_Definition using Local (not tied to a surface) and
      enforces the need for a defined Geodetic_Model (body name, radius values, latitude type, and longitude direction).
    - Updated spatial_domain_or_lander_check to spatial_domain_or_lander_or_rings_check rule.

    1.9.3.3
    THare 20191027
    - Removed Map_Projection_Base. This was suppose to be an abstract clss for group liking map projection
      parameters, but there was no good method to group across the current allowable map projections and
      it made it harder to know which map projection required which parameters.
    - Added Orthographic, Mercator, and Lambert Azimuthal Equal-area
    - removed straight_vertical_longitude_from_pole, just use longitude_of_central_meridian (aka Longitude of 
      projection center) for polar stereographic which is more normally seen. need to update:
      https://github.com/OSGeo/gdal/blob/33a8a0edc764253b582e194d330eec3b83072863/gdal/frmts/pds/pds4dataset.cpp#L2280

    1.9.3.4
    THare 20200127
    - Minor update for Oblique Cylindrical to help define that the XML-odd 3-value vector strings (oblique_proj_x_axis_vector,
      oblique_proj_y_axis_vector, oblique_proj_z_axis_vector) as optional and really for documention purposes.
    - Minor update to Polar Stereographic to make scale_factor_at_projection_origin optional and added documention
      to help clarify that attribute projection.

    1.9.4.0
    THare 20200515
    - Add new class Vector_Projection_Z_Axis_Initial
    - Under Oblique Cylindrical set reference_latitude and reference_longitude as optional. Unfortunately,
      some older PDS3 labels have these two values (and an implied angle always set to zero) instead of using the
      more appropriate values: oblique_proj_pole_latitude, oblique_proj_pole_longitude, oblique_proj_pole_rotation
      Implementations for this map projection on use the later 3 attributes (e.g. ISIS3/4 and PROJ) not reference_*.
      So when older labels only use reference_*, those should be converted to use the 3 oblique_proj_pole_* attributes
      (note it is not a simple mapping, requiring a calculated update to get from reference_* to oblique_proj_pole_*)
    - Removed scale_factor_at_center_line as it is currently not being used anywhere
    - Removed pixel_resolution as pixel_resolution_x and pixel_resolution_y should be used (and it was not used anywhere)
      If square, simply repeat the same value in both pixel_resolution_x and pixel_resolution_y
    - Updated projection_axis_offset to be ASCII_REAL
  
    1.9.5.0
    THare 20201204
    - updates for 1.E.0.0 and 1.F.0.0, adding dictionary_type and building with new GEOM 1E00_1900

  
    </xs:documentation>
  </xs:annotation>
 
  <xs:element name="Cartography" type="cart:Cartography"> </xs:element>

  <xs:complexType name="Bounding_Coordinates">
    <xs:annotation>
      <xs:documentation>The Bounding_Coordinates class defines the
        limits of coverage of a set of data expressed by latitude and
        longitude values in the order western-most, eastern-most,
        northern-most, and southern-most. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="west_bounding_coordinate" type="cart:west_bounding_coordinate" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="east_bounding_coordinate" type="cart:east_bounding_coordinate" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="north_bounding_coordinate" type="cart:north_bounding_coordinate" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="south_bounding_coordinate" type="cart:south_bounding_coordinate" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Camera_Model_Offset">
    <xs:annotation>
      <xs:documentation>The Camera_Model_Offset class specifies the
        location of the image origin with respect to the camera model's
        origin. For CAHV/CAHVOR models, this origin is not the center of
        the camera, but is the upper-left corner of the "standard"-size
        image, which is encoded in the CAHV vectors. Applies to the
        Perspective lander map projection.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="line" type="cart:line" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sample" type="cart:sample" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Cartography">
    <xs:annotation>
      <xs:documentation>The Cartography class provides a description of
        how a 3D sphere, spheroid, or elliptical spheroid or the
        celestial sphere is mapped onto a plane. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element ref="pds:Local_Internal_Reference" minOccurs="1" maxOccurs="unbounded"> </xs:element>
      <xs:element name="Spatial_Domain" type="cart:Spatial_Domain" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Secondary_Spatial_Domain" type="cart:Secondary_Spatial_Domain" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Spatial_Reference_Information" type="cart:Spatial_Reference_Information" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Coordinate_Representation">
    <xs:annotation>
      <xs:documentation>The Coordinate_Representation class provides the
        method of encoding the position of a point by measuring its
        distance from perpendicular reference axes (the "coordinate
        pair" and "row and column" methods). </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pixel_resolution_x" type="cart:pixel_resolution_x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_resolution_y" type="cart:pixel_resolution_y" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_scale_x" type="cart:pixel_scale_x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_scale_y" type="cart:pixel_scale_y" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Cylindrical">
    <xs:annotation>
      <xs:documentation>This is an in-situ projection used for
        (non-stereo) panoramas. Each image row represents a constant
        elevation and each image column represents a constant azimuth,
        from a given point of view. The image scale in degrees per pixel
        is constant across the image.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pixel_scale_x" type="cart:pixel_scale_x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_scale_y" type="cart:pixel_scale_y" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_elevation" type="cart:maximum_elevation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_elevation" type="cart:minimum_elevation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="start_azimuth" type="cart:start_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="stop_azimuth" type="cart:stop_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="zero_elevation_line" type="cart:zero_elevation_line" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Origin" type="cart:Vector_Projection_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Cylindrical_Perspective">
    <xs:annotation>
      <xs:documentation>This is an in-situ projection that is a hybrid.
        Each column is a vertical slice from a pinhole camera
        (Perspective projection), while the columns are spaced evenly in
        azimuth (Cylindrical projection). It is most useful for viewing
        panoramas in stereo.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pixel_scale_x" type="cart:pixel_scale_x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_scale_y" type="cart:pixel_scale_y" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_elevation" type="cart:maximum_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_elevation" type="cart:minimum_elevation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="projection_azimuth" type="cart:projection_azimuth" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="projection_elevation" type="cart:projection_elevation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="projection_elevation_line" type="cart:projection_elevation_line" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="start_azimuth" type="cart:start_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="stop_azimuth" type="cart:stop_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="projection_axis_offset" type="cart:projection_axis_offset" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Origin" type="cart:Vector_Projection_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Z_Axis" type="cart:Vector_Projection_Z_Axis" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Z_Axis_Initial" type="cart:Vector_Projection_Z_Axis_Initial" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Distance_and_Bearing_Representation">
    <xs:annotation>
      <xs:documentation>The Distance_and_Bearing_Representation class
        provides a method of encoding the position of a point by
        measuring its distance and direction (azimuth angle) from
        another point.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="distance_resolution" type="cart:distance_resolution" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="bearing_resolution" type="cart:bearing_resolution" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="bearing_reference_direction" type="cart:bearing_reference_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="bearing_reference_meridian" type="cart:bearing_reference_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:bearing_reference_direction = ('North', 'South')"/> -->
    <!-- <xs:assert test="cart:bearing_reference_meridian = ('Assumed', 'Astronomic', 'Geodetic', 'Grid', 'Magnetic')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Equirectangular">
    <xs:annotation>
      <xs:documentation>The Equirectangular class contains parameters
        for the Equirectangular map projection. Synder 1987,
        DOI:10.3133/pp1395, page 90:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=102 PROJ:
        https://proj.org/operations/projections/eqc.html forward: x = R
        * (lambda - lambda_0) * cos(phi_1) y = R * (phi - phi_1) and
        reverse: lambda = (x / R cos(phi_1)) + lambda_0 phi = (y / R) +
        phi_1 where: lambda is the longitude of the location to project
        on the body; phi is the latitude of the location to project on
        the body; phi_1 is the standard parallel (north and south of the
        equator) where the scale of the projection is true; lambda_0 is
        the central meridian of the map; x is the horizontal coordinate
        of the projected location on the map; y is the vertical
        coordinate of the projected location on the map; R is the radius
        of the body. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="standard_parallel_1" type="cart:standard_parallel_1" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Geo_Transformation">
    <xs:annotation>
      <xs:documentation>The GEO_Transformation describes the
        relationship between raster positions (in pixel/line
        coordinates) and georeferenced coordinates. This is defined by
        an affine transform. The affine transform consists of six
        coefficients which map pixel/line coordinates into georeferenced
        space using the following relationship: Xgeo = GT(0) +
        Xpixel*GT(1) + Yline*GT(2) Ygeo = GT(3) + Xpixel*GT(4) +
        Yline*GT(5) or also defined as: GT[0] = Xmin; //
        upperleft_corner_y GT[1] = CellSize in X; // W-E pixel size,
        pixel_resolution_x GT[2] = 0; // rotation term, 0 if 'North Up'
        GT[3] = Ymax; // upperleft_corner_y GT[4] = 0; // shear term, 0
        if 'North Up' GT[5] = CellSize in Y; // N-S pixel size,
        pixel_resolution_y In case of north up images, the GT(2) and
        GT(4) coefficients are zero, and the GT(1) is pixel width
        (pixel_resolution_x), and GT(5) is pixel height
        (pixel_resolution_y). The (GT(0),GT(3)) position is the top left
        corner of the top left pixel of the raster. Note that the
        pixel/line coordinates in the above are from (0.5,0.5) at the
        top left corner of the top left pixel to
        (width_in_pixels,height_in_pixels) at the bottom right corner of
        the bottom right pixel. The pixel/line location of the center of
        the top left pixel would therefore be (1.0,1.0).
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="upperleft_corner_x" type="cart:upperleft_corner_x" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="upperleft_corner_y" type="cart:upperleft_corner_y" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Geodetic_Model">
    <xs:annotation>
      <xs:documentation>The Geodetic_Model class provides parameters
        describing the shape of the planet.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="latitude_type" type="cart:latitude_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="spheroid_name" type="cart:spheroid_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="a_axis_radius" type="cart:a_axis_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="b_axis_radius" type="cart:b_axis_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="c_axis_radius" type="cart:c_axis_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_direction" type="cart:longitude_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="coordinate_system_type" type="cart:coordinate_system_type" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="coordinate_system_name" type="cart:coordinate_system_name" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:latitude_type = ('Planetocentric', 'Planetographic')"/> -->
    <!-- <xs:assert test="cart:longitude_direction = ('Positive East', 'Positive West')"/> -->
    <!-- <xs:assert test="cart:coordinate_system_type = ('Body-fixed Non-rotating', 'Body-fixed Rotating', 'Inertial')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Geographic">
    <xs:annotation>
      <xs:documentation>The Geographic class provides information about
        the quantities of latitude and longitude which define the
        position of a point on a planetary body's surface with respect
        to a reference spheroid.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="latitude_resolution" type="cart:latitude_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_resolution" type="cart:longitude_resolution" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Grid_Coordinate_System">
    <xs:annotation>
      <xs:documentation>The Grid_Coordinate_System class defines a
        plane-rectangular coordinate system usually based on, and
        mathematically adjusted to, a map projection so that geographic
        positions can be readily transformed to and from plane
        coordinates.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="grid_coordinate_system_name" type="cart:grid_coordinate_system_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Universal_Transverse_Mercator" type="cart:Universal_Transverse_Mercator" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Universal_Polar_Stereographic" type="cart:Universal_Polar_Stereographic" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="State_Plane_Coordinate_System" type="cart:State_Plane_Coordinate_System" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:grid_coordinate_system_name = ('ARC Coordinate System', 'Other Grid System', 'State Plane Coordinate System 1927', 'State Plane Coordinate System 1983', 'Universal Polar Stereographic', 'Universal Transverse Mercator')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Horizontal_Coordinate_System_Definition">
    <xs:annotation>
      <xs:documentation>The Horizontal_Coordinate_System_Definition
        class provides the reference frame or system from which linear
        or angular quantities are measured and assigned to the position
        that a point occupies. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Geographic" type="cart:Geographic"> </xs:element>
        <xs:element name="Planar" type="cart:Planar"> </xs:element>
        <xs:element name="Local" type="cart:Local"> </xs:element>
      </xs:choice>
      <xs:element name="Geodetic_Model" type="cart:Geodetic_Model" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Lambert_Azimuthal_Equal_Area">
    <xs:annotation>
      <xs:documentation>The Lambert_Azimuthal_Equal_Area class contains
        parameters for the Lambert Azimuthal Equal-area projection.
        Synder 1987, DOI:10.3133/pp1395, page 182:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=194 PROJ:
        https://proj.org/operations/projections/laea.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Lambert_Conformal_Conic">
    <xs:annotation>
      <xs:documentation>The Lambert_Conformal_Conic class contains
        parameters for the Lambert Conformal Conic projection. Synder
        1987, DOI:10.3133/pp1395, page 104:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=116 PROJ:
        https://proj.org/operations/projections/lcc.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="standard_parallel_1" type="cart:standard_parallel_1" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="standard_parallel_2" type="cart:standard_parallel_2" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Local">
    <xs:annotation>
      <xs:documentation>The Local class provides a description of any
        coordinate system that is not aligned with the surface of the
        planet. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_description" type="cart:local_description" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_georeference_information" type="cart:local_georeference_information" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Map_Projection_Lander" type="cart:Map_Projection_Lander" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Map_Projection_Rings" type="cart:Map_Projection_Rings" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Surface_Model_Parameters" type="cart:Surface_Model_Parameters" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Local_Planar">
    <xs:annotation>
      <xs:documentation>The Local_Planar class defines any right-handed
        planar coordinate system of which the z-axis coincides with a
        plumb line through the origin that locally is aligned with the
        surface of the planet. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="local_planar_description" type="cart:local_planar_description" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="local_planar_georeference_information" type="cart:local_planar_georeference_information" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Map_Projection">
    <xs:annotation>
      <xs:documentation>The Map_Projection class provides the systematic
        representation of all or part of the surface of a planet on a
        plane (or Cartesian system). </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="map_projection_name" type="cart:map_projection_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Equirectangular" type="cart:Equirectangular"> </xs:element>
        <xs:element name="Lambert_Azimuthal_Equal_Area" type="cart:Lambert_Azimuthal_Equal_Area"> </xs:element>
        <xs:element name="Lambert_Conformal_Conic" type="cart:Lambert_Conformal_Conic"> </xs:element>
        <xs:element name="Mercator" type="cart:Mercator"> </xs:element>
        <xs:element name="Oblique_Cylindrical" type="cart:Oblique_Cylindrical"> </xs:element>
        <xs:element name="Oblique_Mercator" type="cart:Oblique_Mercator"> </xs:element>
        <xs:element name="Orthographic" type="cart:Orthographic"> </xs:element>
        <xs:element name="Point_Perspective" type="cart:Point_Perspective"> </xs:element>
        <xs:element name="Polar_Stereographic" type="cart:Polar_Stereographic"> </xs:element>
        <xs:element name="Polyconic" type="cart:Polyconic"> </xs:element>
        <xs:element name="Sinusoidal" type="cart:Sinusoidal"> </xs:element>
        <xs:element name="Transverse_Mercator" type="cart:Transverse_Mercator"> </xs:element>
      </xs:choice>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:map_projection_name = ('Albers Conical Equal Area', 'Azimuthal Equidistant', 'Equidistant Conic', 'Equirectangular', 'Gnomonic', 'Lambert Azimuthal Equal Area', 'Lambert Conformal Conic', 'Mercator', 'Miller Cylindrical', 'Oblique Cylindrical', 'Oblique Mercator', 'Orthographic', 'Point Perspective', 'Polar Stereographic', 'Polyconic', 'Robinson', 'Sinusoidal', 'Space Oblique Mercator', 'Stereographic', 'Transverse Mercator', 'van der Grinten')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Map_Projection_Lander">
    <xs:annotation>
      <xs:documentation>The Map_Projection class provides the systematic
        representation of all or part of the surface of a planet on a
        plane or developable surface from the perspective of an in-situ
        spacecraft.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="lander_map_projection_name" type="cart:lander_map_projection_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Cylindrical" type="cart:Cylindrical"> </xs:element>
        <xs:element name="Perspective" type="cart:Perspective"> </xs:element>
        <xs:element name="Cylindrical_Perspective" type="cart:Cylindrical_Perspective"> </xs:element>
        <xs:element name="Polar" type="cart:Polar"> </xs:element>
        <xs:element name="Vertical" type="cart:Vertical"> </xs:element>
        <xs:element name="Orthographic_Lander" type="cart:Orthographic_Lander"> </xs:element>
        <xs:element name="Orthorectified" type="cart:Orthorectified"> </xs:element>
      </xs:choice>
      <xs:element ref="geom:Coordinate_Space_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:lander_map_projection_name = ('Cylindrical', 'Cylindrical_Perspective', 'Orthographic', 'Orthorectified', 'Perspective', 'Polar', 'Vertical')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Map_Projection_Rings">
    <xs:annotation>
      <xs:documentation>The Map_Projection_Rings class provides the
        systematic representation of all or part of the rings of a
        planet on a plane.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="rings_map_projection_name" type="cart:rings_map_projection_name" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Ring_Polar" type="cart:Ring_Polar"> </xs:element>
      </xs:choice>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:rings_map_projection_name = ('Ring_Polar')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Mercator">
    <xs:annotation>
      <xs:documentation>The Mercator class contains parameters for the
        Mercator projection. Synder 1987, DOI:10.3133/pp1395, page 38:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=50 PROJ:
        https://proj.org/operations/projections/merc.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="standard_parallel_1" type="cart:standard_parallel_1" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Oblique_Cylindrical">
    <xs:annotation>
      <xs:documentation>The Oblique_Cylindrical class contains
        parameters for the Oblique Cylindrical projection. Synder 1987,
        DOI:10.3133/pp1395, page 93:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=105
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reference_latitude" type="cart:reference_latitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="reference_longitude" type="cart:reference_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="map_projection_rotation" type="cart:map_projection_rotation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="oblique_proj_pole_latitude" type="cart:oblique_proj_pole_latitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="oblique_proj_pole_longitude" type="cart:oblique_proj_pole_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="oblique_proj_pole_rotation" type="cart:oblique_proj_pole_rotation" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="oblique_proj_x_axis_vector" type="cart:oblique_proj_x_axis_vector" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="oblique_proj_y_axis_vector" type="cart:oblique_proj_y_axis_vector" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="oblique_proj_z_axis_vector" type="cart:oblique_proj_z_axis_vector" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="look_direction" type="cart:look_direction" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:look_direction = ('LEFT', 'RIGHT')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Oblique_Line_Azimuth">
    <xs:annotation>
      <xs:documentation>The Oblique_Line_Azimuth class defines the
        method used to describe the line along which an Oblique Mercator
        map projection is centered using the map projection origin and
        an azimuth. Synder 1987, DOI:10.3133/pp1395, page 195:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=207 PROJ:
        https://proj.org/operations/projections/omerc.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="azimuthal_angle" type="cart:azimuthal_angle" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="azimuth_measure_point_longitude" type="cart:azimuth_measure_point_longitude" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Oblique_Line_Point">
    <xs:annotation>
      <xs:documentation>The Oblique_Line_Point class defines the method
        used to describe the line along which an Oblique Mercator map
        projection is centered using two points near the limits of the
        mapped region that define the center line. Synder 1987,
        DOI:10.3133/pp1395, page 195:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=207 PROJ:
        https://proj.org/operations/projections/omerc.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Oblique_Line_Point_Group" type="cart:Oblique_Line_Point_Group" minOccurs="2" maxOccurs="2"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Oblique_Line_Point_Group">
    <xs:annotation>
      <xs:documentation>The Oblique_Line_Point_Group class provides the
        coordinates in latitude and longitude of one end point of the
        line along which an oblique mercator map projection is
        centered.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="oblique_line_latitude" type="cart:oblique_line_latitude" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="oblique_line_longitude" type="cart:oblique_line_longitude" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Oblique_Mercator">
    <xs:annotation>
      <xs:documentation>The Oblique_Mercator class contains parameters
        for the Oblique Mercator projection. Synder 1987,
        DOI:10.3133/pp1395, page 66:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=78 PROJ:
        https://proj.org/operations/projections/omerc.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Oblique_Line_Azimuth" type="cart:Oblique_Line_Azimuth"> </xs:element>
        <xs:element name="Oblique_Line_Point" type="cart:Oblique_Line_Point"> </xs:element>
      </xs:choice>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Orthographic">
    <xs:annotation>
      <xs:documentation>The Orthographic class contains parameters for
        the Orthographic projection. Synder 1987, DOI:10.3133/pp1395,
        page 145: https://pubs.usgs.gov/pp/1395/report.pdf#page=157
        PROJ: https://proj.org/operations/projections/ortho.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Orthographic_Lander">
    <xs:annotation>
      <xs:documentation>This is an in-situ projection that is a
        generalization of the Vertical projection, in that any arbitrary
        projection plane can be specified.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pixel_resolution_x" type="cart:pixel_resolution_x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_resolution_y" type="cart:pixel_resolution_y" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="x_axis_maximum" type="cart:x_axis_maximum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="x_axis_minimum" type="cart:x_axis_minimum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_axis_maximum" type="cart:y_axis_maximum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_axis_minimum" type="cart:y_axis_minimum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Pixel_Position_Origin" type="cart:Pixel_Position_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Origin" type="cart:Vector_Projection_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_X_Axis" type="cart:Vector_Projection_X_Axis" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Y_Axis" type="cart:Vector_Projection_Y_Axis" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Z_Axis" type="cart:Vector_Projection_Z_Axis" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Orthorectified">
    <xs:annotation>
      <xs:documentation>This is an in-situ projection that provides a
        true overhead view of the scene. Range data is required to
        create this projection, meaning there is no parallax distortion.
        It has a constant scale in meters/pixel.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pixel_resolution_x" type="cart:pixel_resolution_x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_resolution_y" type="cart:pixel_resolution_y" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="x_axis_maximum" type="cart:x_axis_maximum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="x_axis_minimum" type="cart:x_axis_minimum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_axis_maximum" type="cart:y_axis_maximum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_axis_minimum" type="cart:y_axis_minimum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Pixel_Position_Origin" type="cart:Pixel_Position_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Origin" type="cart:Vector_Projection_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_X_Axis" type="cart:Vector_Projection_X_Axis" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Y_Axis" type="cart:Vector_Projection_Y_Axis" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Z_Axis" type="cart:Vector_Projection_Z_Axis" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Perspective">
    <xs:annotation>
      <xs:documentation>This is an in-situ projection that models a
        pinhole camera. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pixel_scale_x" type="cart:pixel_scale_x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_scale_y" type="cart:pixel_scale_y" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_elevation" type="cart:maximum_elevation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="minimum_elevation" type="cart:minimum_elevation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="start_azimuth" type="cart:start_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="stop_azimuth" type="cart:stop_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="projection_azimuth" type="cart:projection_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="projection_elevation" type="cart:projection_elevation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Camera_Model_Offset" type="cart:Camera_Model_Offset" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Pixel_Position_Nadir_Polar">
    <xs:annotation>
      <xs:documentation>The Pixel_Position_Nadir_Polar class specifies
        the sample coordinate of the location in the image of the
        "special" point of the mosaic. For Polar projections, this is
        the nadir of the polar projection. In PDS3, this information was
        specified using the LINE_PROJECTION_OFFSET and
        SAMPLE_PROJECTION_OFFSET keywords.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="line" type="cart:line" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sample" type="cart:sample" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Pixel_Position_Origin">
    <xs:annotation>
      <xs:documentation>The Pixel_Position_Origin class specifies the
        sample coordinate of the location in the image of the "special"
        point of the mosaic. For Vertical, Orthographic and
        Orthorectified projections, this is the origin of the projected
        coordinate system, corresponding to the
        Vector_Projection_Origin. In PDS3, this information was
        specified using the LINE_PROJECTION_OFFSET and
        SAMPLE_PROJECTION_OFFSET keywords.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="line" type="cart:line" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="sample" type="cart:sample" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Planar">
    <xs:annotation>
      <xs:documentation>The Planar class provides the quantities of
        distances, or distances and angles, which define the position of
        a point on a reference plane to which the surface of a planet
        has been projected.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Map_Projection" type="cart:Map_Projection"> </xs:element>
        <xs:element name="Grid_Coordinate_System" type="cart:Grid_Coordinate_System"> </xs:element>
        <xs:element name="Local_Planar" type="cart:Local_Planar"> </xs:element>
      </xs:choice>
      <xs:element name="Planar_Coordinate_Information" type="cart:Planar_Coordinate_Information" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Geo_Transformation" type="cart:Geo_Transformation" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Planar_Coordinate_Information">
    <xs:annotation>
      <xs:documentation>The Planar_Coordinate_Information class provides
        information about the coordinate system developed on the planar
        surface.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="planar_coordinate_encoding_method" type="cart:planar_coordinate_encoding_method" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Coordinate_Representation" type="cart:Coordinate_Representation"> </xs:element>
        <xs:element name="Distance_and_Bearing_Representation" type="cart:Distance_and_Bearing_Representation"> </xs:element>
      </xs:choice>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:planar_coordinate_encoding_method = ('Coordinate Pair', 'Distance and Bearing', 'Row and Column')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Point_Perspective">
    <xs:annotation>
      <xs:documentation>The Point Perspective class contains parameters
        for the Point Perspective (fundamental definition) projection.
        Synder 1987, DOI:10.3133/pp1395, page 169:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=181
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="target_center_distance" type="cart:target_center_distance" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Polar">
    <xs:annotation>
      <xs:documentation>This is an in-situ projection that provides a
        quasi-overhead view that extends to the horizon. Elevation is
        measured radially outward from the nadir location, with a
        constant pixel scale. Azimuth is measured along concentric
        circles centered at the nadir.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pixel_scale" type="cart:pixel_scale" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="maximum_elevation" type="cart:maximum_elevation" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="reference_azimuth" type="cart:reference_azimuth" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Pixel_Position_Nadir_Polar" type="cart:Pixel_Position_Nadir_Polar" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Origin" type="cart:Vector_Projection_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Polar_Stereographic">
    <xs:annotation>
      <xs:documentation>The Polar_Stereographic class contains
        parameters for the Polar Stereographic projection. Synder 1987,
        DOI:10.3133/pp1395, page 154:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=166 PROJ:
        https://proj.org/operations/projections/stere.html Note that
        most applications will either define
        latitude_of_projection_origin or
        scale_factor_at_projection_origin, but not both. Here we define
        latitude_of_projection_origin as mandatory and at CART LDD
        versoin 1934 have made scale_factor_at_projection_origin
        optional. For context, these two keywords have the same impact
        on the final product but are just different ways to define it.
        Thus, for example in the PROJ library, if both are made
        available, the latitude_of_projection_origin (+lat_ts) will be
        used instead of scale_factor_at_projection_origin (+k_0). Note,
        if you do supply the optional attribute
        scale_factor_at_projection_origin, the default scale (+k_0) for
        planetary polar data will mostly likely be set to 1.0.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Polyconic">
    <xs:annotation>
      <xs:documentation>The Polyconic class contains parameters for the
        Polyconic projection. Synder 1987, DOI:10.3133/pp1395, page 124:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=136 PROJ:
        https://proj.org/operations/projections/poly.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Ring_Polar">
    <xs:annotation>
      <xs:documentation>The representation of ring data requires a
        unique projection. The rings are modeled by a thin disk centered
        on the body and in its equatorial plane. For Saturn, the thin
        disk is centered on Saturn and in its equatorial plane, with an
        outer radius of 500,000km. If the field of view falls partially
        or completely beyond this limit or if it intersects the primary
        body before intersecting the rings, the data will not be
        included. Plotted coordinates are derived as follows. If A is
        the location of the intersection of the CIRS field of view with
        the body's equatorial plane, the X coordinate is the distance of
        A from the center of the body (e.g. Saturn), and the Y
        coordinate is the local time on on the body at the intersection
        with the body's surface of the line between A and the body's
        center. Local time is expressed in fractional hours, from 0.0
        (at midnight) to 12.0 (at noon), to 24.0 (at midnight).
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="data_count" type="cart:data_count" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="radial_scale" type="cart:radial_scale" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="angular_scale" type="cart:angular_scale" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="local_time_scale" type="cart:local_time_scale" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sample_name" type="cart:sample_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="line_name" type="cart:line_name" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="first_sample_center" type="cart:first_sample_center" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="first_line_center" type="cart:first_line_center" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="last_sample_center" type="cart:last_sample_center" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="last_line_center" type="cart:last_line_center" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="min_footprint_sample" type="cart:min_footprint_sample" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="min_footprint_line" type="cart:min_footprint_line" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="max_footprint_sample" type="cart:max_footprint_sample" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="max_footprint_line" type="cart:max_footprint_line" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Secondary_Spatial_Domain">
    <xs:annotation>
      <xs:documentation>The Secondary_Spatial_Domain class describes an
        alternative longitude and latitude bounds to better support IAU
        approved or historically used geographic areal coordinates. This
        is only needed if the Spatial_Domain does not meet IAU
        recommendations or historical uses for the body.
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Bounding_Coordinates" type="cart:Bounding_Coordinates" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_direction" type="cart:longitude_direction" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_type" type="cart:latitude_type" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:longitude_direction = ('Positive East', 'Positive West')"/> -->
    <!-- <xs:assert test="cart:latitude_type = ('Planetocentric', 'Planetographic')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Sinusoidal">
    <xs:annotation>
      <xs:documentation>The Sinusoidal class contains parameters for the
        Sinusoidal projection. Synder 1987, DOI:10.3133/pp1395, page
        243: https://pubs.usgs.gov/pp/1395/report.pdf#page=255 PROJ:
        https://proj.org/operations/projections/sinu.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Spatial_Domain">
    <xs:annotation>
      <xs:documentation>The Spatial_Domain class describes the
        geographic areal domain of the data set. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Bounding_Coordinates" type="cart:Bounding_Coordinates" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Spatial_Reference_Information">
    <xs:annotation>
      <xs:documentation>The Spatial_Reference_Information class provides
        a description of the reference frame for, and the means to
        encode, coordinates in a data set. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Horizontal_Coordinate_System_Definition" type="cart:Horizontal_Coordinate_System_Definition" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="State_Plane_Coordinate_System">
    <xs:annotation>
      <xs:documentation>The State_Plane_Coordinate_System class defines
        a plane-rectangular coordinate system established for each state
        in the United States by the National Geodetic Survey. Synder
        1987, DOI:10.3133/pp1395, page 52:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=64
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="spcs_zone_identifier" type="cart:spcs_zone_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Lambert_Conformal_Conic" type="cart:Lambert_Conformal_Conic"> </xs:element>
        <xs:element name="Transverse_Mercator" type="cart:Transverse_Mercator"> </xs:element>
        <xs:element name="Oblique_Mercator" type="cart:Oblique_Mercator"> </xs:element>
        <xs:element name="Polyconic" type="cart:Polyconic"> </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Surface_Model_Parameters">
    <xs:annotation>
      <xs:documentation>This class describes the surface model used by
        the projection. For in-situ mosaics, the surface model describes
        the surface upon which input images are projected in order to
        create a unified point of view in a mosaic. To the extent the
        surface model does not match the actual surface, parallax errors
        typically occur at seams between images.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="surface_model_type" type="cart:surface_model_type" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="1" maxOccurs="1">
        <xs:element name="Surface_Model_Planar" type="cart:Surface_Model_Planar"> </xs:element>
        <xs:element name="Surface_Model_Spherical" type="cart:Surface_Model_Spherical"> </xs:element>
      </xs:choice>
      <xs:element ref="geom:Coordinate_Space_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Surface_Model_Planar">
    <xs:annotation>
      <xs:documentation>This is a specific type of surface model that
        treats the surface as a flat plane, with a specified orientation
        (Vector_Surface_Normal) and location
        (Vector_Surface_Ground_Location). </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="Vector_Surface_Normal" type="cart:Vector_Surface_Normal" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Surface_Ground_Location" type="cart:Vector_Surface_Ground_Location" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Surface_Model_Spherical">
    <xs:annotation>
      <xs:documentation>This is a specific type of surface model that
        treats the surface as a sphere, with a specified center and
        radius.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="sphere_radius" type="cart:sphere_radius" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="sphere_intersection_count" type="cart:sphere_intersection_count" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Sphere_Center" type="cart:Vector_Sphere_Center" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Transverse_Mercator">
    <xs:annotation>
      <xs:documentation>The Transverse_Mercator class contains
        parameters for the Transverse Mercator projection. Synder 1987,
        DOI:10.3133/pp1395, page 48:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=60 PROJ:
        https://proj.org/operations/projections/tmerc.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="scale_factor_at_central_meridian" type="cart:scale_factor_at_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_of_central_meridian" type="cart:longitude_of_central_meridian" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Universal_Polar_Stereographic">
    <xs:annotation>
      <xs:documentation>The Universal_Polar_Stereographic class,
        generally used for Earth data sets, defines a grid system based
        on the polar stereographic projection, applied to the planet's
        polar regions north of 84 degrees north and south of 80 degrees
        south. Synder 1987, DOI:10.3133/pp1395, page 157:
        https://pubs.usgs.gov/pp/1395/report.pdf#page=169 PROJ:
        https://proj.org/operations/projections/ups.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="ups_zone_identifier" type="cart:ups_zone_identifier" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Polar_Stereographic" type="cart:Polar_Stereographic" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
    <!-- Begin assert statements for schematron - Enumerated Values -->
    <!-- <xs:assert test="cart:ups_zone_identifier = ('A', 'B', 'Y', 'Z')"/> -->
    <!-- End assert statements for schematron - Enumerated Values -->
  </xs:complexType>

  <xs:complexType name="Universal_Transverse_Mercator">
    <xs:annotation>
      <xs:documentation>The Universal_Transverse_Mercator class defines
        a grid system based on the Transverse Mercator projection,
        applied between latitudes 84 degrees north and 80 degrees south
        on the planet's surface. Synder 1987, DOI:10.3133/pp1395, page
        57: https://pubs.usgs.gov/pp/1395/report.pdf#page=69 PROJ:
        https://proj.org/operations/projections/utm.html
        </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="utm_zone_number" type="cart:utm_zone_number" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Transverse_Mercator" type="cart:Transverse_Mercator" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_No_Units">
    <xs:annotation>
      <xs:documentation>This is a generic vector in Cartesian space. The
        "x", "y", and "z" component have no units. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x" type="cart:x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y" type="cart:y" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z" type="cart:z" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_Position_Base">
    <xs:annotation>
      <xs:documentation>The Vector_Cartesian_Position_Base is a three
        dimensional, rectangular coordinates vector. Uses units of
        length. The included attributes are not sufficient to identify
        the endpoints of the vector. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_position" type="cart:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_position" type="cart:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_position" type="cart:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector_Cartesian_Unit_Base">
    <xs:annotation>
      <xs:documentation>This is a generic unit vector in Cartesian
        space. The "x", "y", and "z" component have no units and are
        restricted to values between -1.0 and 1.0 inclusive. Further the
        length of the vector square root of the (sum of the squares of
        the components) must be 1.0. </xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_unit" type="cart:x_unit" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_unit" type="cart:y_unit" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_unit" type="cart:z_unit" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector_Length_Base">
    <xs:annotation>
      <xs:documentation>The Vector_Length_Base is an abstract class that
        forms the base of length-based x, y, z
        vectors.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="x_length" type="cart:x_length" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_length" type="cart:y_length" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="z_length" type="cart:z_length" minOccurs="1" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Vector_Projection_Origin">
    <xs:annotation>
      <xs:documentation>The Vector_Projection_Origin class specifies the
        location of the origin of the projection. For Polar and
        Cylindrical projections, this is the XYZ point from which all
        the azimuth/elevation rays emanate. For the
        Cylindrical-Perspective projection, this defines the center of
        the circle around which the synthetic camera orbits. For
        Orthographic, Orthorectified, and Vertical projections, this
        optional keyword specifies the point on the projection plane
        that serves as the origin of the projection (i.e. all points on
        a line through this point in the direction of
        PROJECTION_Z_AXIS_VECTOR will be located at X=Y=0 in the
        projection). If not present, (0,0,0) should be assumed. This
        translation is generally not necessary and not often used; the
        (X|Y)_AXIS_MINIMUM and (X|Y)_AXIS_MAXIMUM fields allow the
        mosaic to be located arbitrarily in the projection
        plane.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Vector_Cartesian_Position_Base">
        <xs:sequence>
          <xs:element name="x_position" type="cart:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="cart:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="cart:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Projection_X_Axis">
    <xs:annotation>
      <xs:documentation>The Vector_Projection_X_Axis class specifies a
        unit vector defining the X-axis for a given projection. For
        Orthographic, Orthorectified, and Vertical projections, this
        vector defines how the * axis in the mosaic is oriented in
        space. The X and Y axis vectors together define the rotation of
        the projection plane around the projection
        axis.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Vector_Cartesian_Unit_Base">
        <xs:sequence>
          <xs:element name="x_unit" type="cart:x_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_unit" type="cart:y_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_unit" type="cart:z_unit" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Projection_Y_Axis">
    <xs:annotation>
      <xs:documentation>The Vector_Projection_Y_Axis class specifies a
        unit vector defining the Y-axis for a given projection. For
        Orthographic, Orthorectified, and Vertical projections, this
        vector defines how the * axis in the mosaic is oriented in
        space. The X and Y axis vectors together define the rotation of
        the projection plane around the projection
        axis.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Vector_Cartesian_Unit_Base">
        <xs:sequence>
          <xs:element name="x_unit" type="cart:x_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_unit" type="cart:y_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_unit" type="cart:z_unit" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Projection_Z_Axis">
    <xs:annotation>
      <xs:documentation>The Vector_Projection_Z_Axis class specifies a
        unit vector defining the Z axis for a given projection. For
        Orthographic, Orthorectified, and Vertical projections, this
        vector defines the projection axis for the mosaic. All points
        along a line parallel to this axis are projected to the same
        spot in the projection plane. For the Cylindrical-Perspective
        projections, this defines the new axis of the circle around
        which the synthetic camera orbits (i.e. the normal to the
        circle), after the cameras have been rotated to correct for
        rover tilt. Vector_Projection_Z_Axis_Initial contains the axis
        before rotation; the difference in these two indicate the
        rotation amount.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Vector_Cartesian_Unit_Base">
        <xs:sequence>
          <xs:element name="x_unit" type="cart:x_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_unit" type="cart:y_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_unit" type="cart:z_unit" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Projection_Z_Axis_Initial">
    <xs:annotation>
      <xs:documentation>The Vector_Projection_Z_Axis_Initial class
        specifies the initial unit vector defining the Z axis for a
        given projection. For Cylindrical-Perspective projections, this
        defines the original axis of the circle around which the
        synthetic camera orbits, before the cameras have been rotated to
        correct for rover tilt. Vector_Projection_Z_Axis contains the
        axis after rotation; the difference in these two indicate the
        rotation amount.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Vector_Cartesian_Unit_Base">
        <xs:sequence>
          <xs:element name="x_unit" type="cart:x_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_unit" type="cart:y_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_unit" type="cart:z_unit" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Sphere_Center">
    <xs:annotation>
      <xs:documentation>The Vector_Sphere_Center class specifies the
        center of the sphere. This point is measured in the coordinates
        specified by the Coordinate_Space reference in the
        Surface_Model_Parameters class.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Vector_Cartesian_Position_Base">
        <xs:sequence>
          <xs:element name="x_position" type="cart:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="cart:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="cart:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Surface_Ground_Location">
    <xs:annotation>
      <xs:documentation>The Vector_Surface_Ground_Location class
        specifies any point on the surface model, in order to fix the
        model in space. This point is measured in the coordinates
        specified by the Coordinate_Space reference in the
        Surface_Model_Parameters class.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Vector_Cartesian_Position_Base">
        <xs:sequence>
          <xs:element name="x_position" type="cart:x_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_position" type="cart:y_position" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_position" type="cart:z_position" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vector_Surface_Normal">
    <xs:annotation>
      <xs:documentation>The Vector_Surface_Normal class specifies a
        vector normal to the planar surface model. This vector is
        measured in the coordinates specified by the Coordinate_Space
        reference in the Surface_Model_Parameters
        class.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Vector_Cartesian_Unit_Base">
        <xs:sequence>
          <xs:element name="x_unit" type="cart:x_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="y_unit" type="cart:y_unit" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:element name="z_unit" type="cart:z_unit" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Vertical">
    <xs:annotation>
      <xs:documentation>This is an in-situ projection that provides an
        overhead view. By projecting to a surface model, the need for
        range data is eliminated, but significant layover effects can
        happen when the actual geometry does not match the surface
        model. It has a constant scale in meters/pixel, subject to
        layover distortion.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="pixel_resolution_x" type="cart:pixel_resolution_x" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="pixel_resolution_y" type="cart:pixel_resolution_y" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="x_axis_maximum" type="cart:x_axis_maximum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="x_axis_minimum" type="cart:x_axis_minimum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_axis_maximum" type="cart:y_axis_maximum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="y_axis_minimum" type="cart:y_axis_minimum" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="Pixel_Position_Origin" type="cart:Pixel_Position_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="Vector_Projection_Origin" type="cart:Vector_Projection_Origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

    <xs:annotation>
      <xs:documentation>This section contains the simpleTypes that provide more constraints
        than those at the base data type level. The simpleTypes defined here build on the base data
        types. This is another component of the common dictionary and therefore falls within the
        common namespace.
      </xs:documentation>
    </xs:annotation>

  <xs:simpleType name="a_axis_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="a_axis_radius">
    <xs:annotation>
      <xs:documentation>The a_axis_radius attribute provides the radius
        of the equatorial axis of the ellipsoid. The IAU calls this
        "Subplanetary equatorial radius" and mapping applications
        generally call this "semi_major_axis". </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:a_axis_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="angular_scale_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="angular_scale">
    <xs:annotation>
      <xs:documentation>Grid spacing. Unit is
        radian/pixel.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:angular_scale_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Pixel_Resolution_Angular" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="azimuth_measure_point_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="azimuth_measure_point_longitude">
    <xs:annotation>
      <xs:documentation>The azimuth_measure_point_longitude attribute
        provides the longitude of the map projection
        origin.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:azimuth_measure_point_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="azimuthal_angle_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="azimuthal_angle">
    <xs:annotation>
      <xs:documentation>The azimuthal_angle attribute provides the angle
        measured clockwise from north, and expressed in
        degrees.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:azimuthal_angle_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="b_axis_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="b_axis_radius">
    <xs:annotation>
      <xs:documentation>The b_axis_radius attribute provides the value
        of the intermediate axis of the ellipsoid that defines the
        approximate shape of a target body. The b_axis_radius is usually
        in the equatorial plane. The IAU calls this axis "along orbit
        equatorial radius". Mapping applications, which generally only
        define a sphere or an ellipse, do not support this radius
        parameter.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:b_axis_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="bearing_reference_direction">
    <xs:annotation>
      <xs:documentation>The bearing_reference_direction attribute
        specifies the direction from which the bearing is
        measured.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="5"/>
     <xs:maxLength value="5"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="bearing_reference_meridian">
    <xs:annotation>
      <xs:documentation>The bearing_reference_meridian attribute
        specifies the axis from which the bearing is
        measured.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="4"/>
     <xs:maxLength value="10"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="bearing_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="bearing_resolution">
    <xs:annotation>
      <xs:documentation>The bearing_resolution attribute provides the
        minimum angle measurable between two points.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:bearing_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="c_axis_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="c_axis_radius">
    <xs:annotation>
      <xs:documentation>The c_axis_radius attribute provides the value
        of the polar axis of the ellipsoid that defines the approximate
        shape of a target body. The c_axis_radius is normal to the plane
        defined by the a_axis_radius and b_axis_radius. The IAU calls
        this "polar radius". Mapping applications generally call this
        "semi_minor_axis" </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:c_axis_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="coordinate_system_name">
    <xs:annotation>
      <xs:documentation>The given name of the used coordinate system.
        e.g. "MEAN EARTH/POLAR AXIS OF DE421"</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="coordinate_system_type">
    <xs:annotation>
      <xs:documentation>There are three basic types of coordinate
        systems: body-fixed rotating, body-fixed non-rotating, and
        inertial. A body-fixed coordinate system is one associated with
        the body (e.g., a planet or satellite). The body-fixed system is
        centered on the body and rotates with the body (unless it is a
        non-rotating type), whereas an inertial coordinate system is
        fixed at some point in space. Currently, the PDS has
        specifically defined two types of body-fixed rotating coordinate
        systems: planetocentric and planetographic. However, the set of
        related data elements are modeled such that definitions for
        other body-fixed rotating coordinate systems, body-fixed
        non-rotating and inertial coordinate systems can be added as the
        need arises. Contact a PDS data engineer for assistance in
        defining a specific coordinate system. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="8"/>
     <xs:maxLength value="25"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="data_count">
    <xs:annotation>
      <xs:documentation>Number of measurements combined to create the
        cube.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_NonNegative_Integer">
    	<xs:pattern value='[0-9]+'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="18446744073709551615"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="distance_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="distance_resolution">
    <xs:annotation>
      <xs:documentation>The distance_resolution attribute provides the
        minimum distance measurable between two points, expressed in
        Planar Distance Units of measure.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:distance_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Map_Scale" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="east_bounding_coordinate_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="east_bounding_coordinate">
    <xs:annotation>
      <xs:documentation>The east_bounding_coordinate attribute provides
        the eastern-most coordinate of the limit of coverage expressed
        in longitude.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:east_bounding_coordinate_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="first_line_center">
    <xs:annotation>
      <xs:documentation>Line coordinate at the center of the first line
        element.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="first_sample_center">
    <xs:annotation>
      <xs:documentation>Sample coordinate at the center of the first
        sample element.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="grid_coordinate_system_name">
    <xs:annotation>
      <xs:documentation>The grid_coordinate_system_name attribute
        provides the name of the grid coordinate
        system.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="lander_map_projection_name">
    <xs:annotation>
      <xs:documentation>The lander_map_projection_name attribute
        provides the name of the map projection.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="last_line_center">
    <xs:annotation>
      <xs:documentation>Line coordinate at the center of the last line
        element.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="last_sample_center">
    <xs:annotation>
      <xs:documentation>Sample coordinate at the center of the last
        sample element.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="latitude_of_projection_origin_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90.0"/>
     <xs:maxInclusive value="90.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="latitude_of_projection_origin">
    <xs:annotation>
      <xs:documentation>The latitude_of_projection_origin attribute
        defines the latitude chosen as the origin of rectangular
        coordinates for a map projection.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:latitude_of_projection_origin_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="latitude_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="latitude_resolution">
    <xs:annotation>
      <xs:documentation>The latitude_resolution attribute indicates the
        minimum difference between two adjacent latitude values
        expressed in angular units of measure.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:latitude_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="latitude_type">
    <xs:annotation>
      <xs:documentation>The latitude_type attribute defines the type of
        latitude (planetographic, planetocentric) used within a
        cartographic product and as reflected in attribute values within
        associated PDS labels. For planets and satellites, latitude is
        measured north and south of the equator; north latitudes are
        designated as positive. The planetocentric latitude is the angle
        between the equatorial plane and a line from the center of the
        body. The planetographic latitude is the angle between the
        equatorial plane and a line that is normal to the body. In
        summary, both latitudes are equivalent on a sphere (i.e.,
        equatorial radius equal to polar radius); however, they differ
        on an ellipsoid (e.g., Mars, Earth). For more on latitude_type,
        please see the IAU publication available here:
        http://astrogeology.usgs.gov/groups/IAU-WGCCRE
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="line">
    <xs:annotation>
      <xs:documentation>The line attribute specifies the line number in
        the image.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="line_name">
    <xs:annotation>
      <xs:documentation>Coordinate name for the line axis. e.g. "LOCAL
        TIME HOURS"</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="local_description">
    <xs:annotation>
      <xs:documentation>The local_description attribute provides a
        description of the coordinate system and its orientation to the
        surface of a planet.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="local_georeference_information">
    <xs:annotation>
      <xs:documentation>The local_georeference_information attribute
        provides a description of the information provided to register
        the local system to a planet (e.g. control points, satellite
        ephemeral data, inertial navigation data).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="local_planar_description">
    <xs:annotation>
      <xs:documentation>The local_planar_description attribute provides
        a description of the local planar system.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="local_planar_georeference_information">
    <xs:annotation>
      <xs:documentation>The local_planar_georeference_information
        attribute provides a description of the information provided to
        register the local planar system to a planet (e.g. control
        points, satellite ephemeral data, inertial navigation
        data).</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="local_time_scale_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="local_time_scale">
    <xs:annotation>
      <xs:documentation>Grid spacing. Unit is local
        hours/pixel.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:local_time_scale_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Misc" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="longitude_direction">
    <xs:annotation>
      <xs:documentation>The longitude_direction attribute identifies the
        direction of longitude (e.g. POSITIVE_EAST or POSITIVE_WEST) for
        a planet. The IAU definition for direction of positive longitude
        should be adopted:
        http://astrogeology.usgs.gov/groups/IAU-WGCCRE. Typically, for
        planets with prograde (direct) rotations, positive longitude
        direction is to the west. For planets with retrograde rotations,
        positive longitude direction is to the east. Generally the
        Positive West longitude_direction is used for planetographic
        systems and Positive East is used for planetocentric systems. If
        the data is defined with Spatial_Domain in a manner not
        recommended by the IAU, there is a optional
        Secondary_Spatial_Domain section to define a second set of
        bounding coordinates.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="13"/>
     <xs:maxLength value="13"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="longitude_of_central_meridian_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="longitude_of_central_meridian">
    <xs:annotation>
      <xs:documentation>The longitude_of_central_meridian attribute
        defines the line of longitude at the center of a map projection
        generally used as the basis for constructing the
        projection.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:longitude_of_central_meridian_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="longitude_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="longitude_resolution">
    <xs:annotation>
      <xs:documentation>The longitude_resolution attribute indicates the
        minimum difference between two adjacent longitude values
        expressed in angular units of measure.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:longitude_resolution_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="look_direction">
    <xs:annotation>
      <xs:documentation>The value (RIGHT or LEFT) indicates the side of
        the spacecraft ground-track to which the antenna is pointed for
        data acquired within this file. The SAR images stored in theBIDR
        files are always acquired on only one side of the ground track
        for each Titan pass. This value also indicates from which side
        the SAR image is illuminated. If the spacecraft images to the
        left of its ground track (LOOK_DIRECTION=LEFT), the image will
        be illuminated from the (viewer's) left side, and, conversely,
        if the spacecraft looks to the right, the illumination will come
        from the right in the image file. The direction of illumination
        is critical to interpretation of features in the image.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="map_projection_name">
    <xs:annotation>
      <xs:documentation>The map_projection_name attribute provides the
        name of the map projection. Definitions when available are from
        Synder, J.P., 1987, Map Projections: A Working Manual, USGS
        Numbered Series, Professional Paper 1395, URL:
        https://doi.org/10.3133/pp1395.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="map_projection_rotation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="map_projection_rotation">
    <xs:annotation>
      <xs:documentation>Included for generality, always 90 degrees for
        Cassini BIDRs.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:map_projection_rotation_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="max_footprint_line">
    <xs:annotation>
      <xs:documentation>Maximum size of footprints along the line
        axis.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="max_footprint_sample">
    <xs:annotation>
      <xs:documentation>Maximum size of footprints along the sample
        axis.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="maximum_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="maximum_elevation">
    <xs:annotation>
      <xs:documentation>The maximum_elevation attribute specifies the
        elevation (as defined by the coordinate system) of the first
        line of the image. For the Polar projection, specifies the
        highest elevation used, i.e. the elevation of the outermost
        circle of pixels. Applies to lander map projections Cylindrical,
        Polar, Sinusoidal, Perspective and
        Cylindrical-Perspective.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:maximum_elevation_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="min_footprint_line">
    <xs:annotation>
      <xs:documentation>Minimum size of footprints along the line
        axis.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="min_footprint_sample">
    <xs:annotation>
      <xs:documentation>Minimum size of footprints along the sample
        axis.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="minimum_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="minimum_elevation">
    <xs:annotation>
      <xs:documentation>The minimum_elevation attribute specifies the
        elevation (as defined by the coordinate system) of the last line
        of the image for Cylindrical map projections. Applies to
        Cylindrical, Perspective and Cylindrical-Perspective lander map
        projections.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:minimum_elevation_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="north_bounding_coordinate_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90.0"/>
     <xs:maxInclusive value="90.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="north_bounding_coordinate">
    <xs:annotation>
      <xs:documentation>The north_bounding_coordinate attribute provides
        the northern-most coordinate of the limit of coverage expressed
        in latitude.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:north_bounding_coordinate_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="oblique_line_latitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90.0"/>
     <xs:maxInclusive value="90.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="oblique_line_latitude">
    <xs:annotation>
      <xs:documentation>The oblique_line_latitude attribute provides the
        latitude of a point defining the oblique line.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:oblique_line_latitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="oblique_line_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="oblique_line_longitude">
    <xs:annotation>
      <xs:documentation>The oblique_line_longitude attribute provides
        the longitude of a point defining the oblique
        line.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:oblique_line_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="oblique_proj_pole_latitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90.0"/>
     <xs:maxInclusive value="90.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="oblique_proj_pole_latitude">
    <xs:annotation>
      <xs:documentation>One of the three angles defining the oblique
        coordinate system used in the OBLIQUE_CYLINDRICAL projection.
        This is the ordinary latitude of the pole (Z axis) of the
        oblique system. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:oblique_proj_pole_latitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="oblique_proj_pole_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="oblique_proj_pole_longitude">
    <xs:annotation>
      <xs:documentation>One of the three angles defining the oblique
        coordinate system used in the OBLIQUE_CYLINDRICAL projection.
        This is the ordinary longitude of the pole (Z axis) of the
        oblique system. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:oblique_proj_pole_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="oblique_proj_pole_rotation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="oblique_proj_pole_rotation">
    <xs:annotation>
      <xs:documentation>One of the three angles defining the oblique
        coordinate system used in the OBLIQUE_CYLINDRICAL projection.
        This is a rotation around the polar (Z) axis of the oblique
        system that completes the transformation from standard to
        oblique coordinates. The value is positive east (obeys right
        hand rule) and is in the range 0 to 360 degrees.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:oblique_proj_pole_rotation_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="oblique_proj_x_axis_vector">
    <xs:annotation>
      <xs:documentation>This is a redundant attirubte and as such is
        optional mostly available for documentation for the parameters.
        Unit vector in the direction of the X axis of the oblique
        coordinate system used in the OBLIQUE_CYLINDRICAL projection, in
        terms of the X, Y, and Z axes of the standard body-fixed
        coordinate system. In each system, the X axis points from the
        body center toward longitude and latitude (0,0) in that system,
        the Z axis to (0,90), and the Y-axis completes a right-handed
        set. The OBLIQUE_PROJ_X/Y/Z_AXIS_VECTORS makeup the rows of a
        rotation matrix that when multiplied on the left of a vector
        referenced to the standard coordinate system converts it into
        its equivalent in the oblique coordinate system. This rotation
        matrix is the product of successively applied rotations by
        OBLIQUE_PROJ_POLE_LONGITUDE around the Z axis, 90
        OBLIQUE_PROJ_POLE_LATITUDE around the once-rotated Y axis, and
        OBLIQUE_PROJ_POLE_ROTATION around the twice-rotated Z axis.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="oblique_proj_y_axis_vector">
    <xs:annotation>
      <xs:documentation>This is a redundant attirubte and as such is
        optional mostly available for documentation for the parameters.
        Unit vector in the direction of the Y axis of the oblique
        coordinate system used in the OBLIQUE_CYLINDRICAL projection, in
        terms of the X, Y, and Z axes of the standard body-fixed
        coordinate system. In each system, the X axis points from the
        body center toward longitude and latitude (0,0) in that system,
        the Z axis to (0,90), and the Y-axis completes a right-handed
        set. The OBLIQUE_PROJ_X/Y/Z_AXIS_VECTORS makeup the rows of a
        rotation matrix that when multiplied on the left of a vector
        referenced to the standard coordinate system converts it into
        its equivalent in the oblique coordinate system. This rotation
        matrix is the product of successively applied rotations by
        OBLIQUE_PROJ_POLE_LONGITUDE around the Z axis, 90
        OBLIQUE_PROJ_POLE_LATITUDE around the once-rotated Y axis, and
        OBLIQUE_PROJ_POLE_ROTATION around the twice-rotated Z axis.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="oblique_proj_z_axis_vector">
    <xs:annotation>
      <xs:documentation>This is a redundant attirubte and as such is
        optional mostly available for documentation for the parameters.
        Unit vector in the direction of the Z axis of the oblique
        coordinate system used in the OBLIQUE_CYLINDRICAL projection, in
        terms of the X, Y, and Z axes of the standard body-fixed
        coordinate system. In each system, the X axis points from the
        body center toward longitude and latitude (0,0) in that system,
        the Z axis to (0,90), and the Y-axis completes a right-handed
        set. The OBLIQUE_PROJ_X/Y/Z_AXIS_VECTORS makeup the rows of a
        rotation matrix that when multiplied on the left of a vector
        referenced to the standard coordinate system converts it into
        its equivalent in the oblique coordinate system. This rotation
        matrix is the product of successively applied rotations by
        OBLIQUE_PROJ_POLE_LONGITUDE around the Z axis, 90
        OBLIQUE_PROJ_POLE_LATITUDE around the once-rotated Y axis, and
        OBLIQUE_PROJ_POLE_ROTATION around the twice-rotated Z axis.
        </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="pixel_resolution_x_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pixel_resolution_x">
    <xs:annotation>
      <xs:documentation> The pixel_resolution_x and pixel_resolution_y
        attributes indicate the image array pixel resolution
        (distance/pixel or degree/pixel) relative to the Cartesian (x,y)
        coordinate system as defined by the map projection. Due to
        varying properties across different map projections, actual
        surface distances for an individual pixel may be accurate only
        at specific location(s) within the image array (e.g. reference
        latitude or longitude, standard parallels, etc). For most PDS
        products, x and y resolution values are equal ('square' pixels).
        The inclusion of both x and y attributes allows for anticipated
        products where resolution may differ for each axis
        ('rectangular' pixels). NOTE: Definition of this PDS4 attribute
        differs from how 'resolution' was defined within PDS3.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:pixel_resolution_x_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Map_Scale" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_resolution_y_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pixel_resolution_y">
    <xs:annotation>
      <xs:documentation> The pixel_resolution_x and pixel_resolution_y
        attributes indicate the image array pixel resolution
        (distance/pixel or degree/pixel) relative to the Cartesian (x,y)
        coordinate system as defined by the map projection. Due to
        varying properties across different map projections, actual
        surface distances for an individual pixel may be accurate only
        at specific location(s) within the image array (e.g. reference
        latitude or longitude, standard parallels, etc). For most PDS
        products, x and y resolution values are equal ('square' pixels).
        The inclusion of both x and y attributes allows for anticipated
        products where resolution may differ for each axis
        ('rectangular' pixels). NOTE: Definition of this PDS4 attribute
        differs from how 'resolution' was defined within PDS3.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:pixel_resolution_y_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Map_Scale" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_scale_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pixel_scale">
    <xs:annotation>
      <xs:documentation> The pixel_scale attribute indicate the image
        array pixel scale (pixel/degree or pixel/distance) relative to
        the referenced coordinate system as defined by the map
        projection. This attribute should be used in lieu of
        pixel_scale_x and pixel_scale_y when the pixel scale is not x/y
        aligned. i.e. a radial pixel scale. NOTE: Definition of this
        PDS4 attribute differs from how 'scale' was defined within PDS3
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:pixel_scale_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Map_Scale" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_scale_x_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pixel_scale_x">
    <xs:annotation>
      <xs:documentation> The pixel_scale_x and pixel_scale_y attributes
        indicate the image array pixel scale (pixel/degree or
        pixel/distance) relative to the Cartesian (x,y) coordinate
        system as defined by the map projection. Due to varying
        properties across different map projections, actual surface
        distances for an individual pixel may be accurate only at
        specific location(s) within the image array (e.g. reference
        latitude or longitude, standard parallels, etc). For most PDS
        products, x and y scale values are equal ('square' pixels). The
        inclusion of both x and y attributes allows for anticipated
        products where scale may differ for each axis ('rectangular'
        pixels). NOTE1: For presentation of hard-copy maps, a map scale
        is traditionally expressed as a 'representative fraction' (the
        ratio of a hard-copy map to the actual subject surface (e.g.
        1:250,000, where one unit of measure on the map equals 250,000
        of the same unit on the body surface)). This usage is relevant
        when map/data are presented on hard-copy media (paper, computer
        screen,etc). When defining pixel scale within a stored
        image/array context here, we are expressing a ratio between the
        image array and the actual surface (thus, pixel/degree or
        pixel/distance units). NOTE2: Definition of this PDS4 attribute
        differs from how 'scale' was defined within PDS3
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:pixel_scale_x_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Map_Scale" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_scale_y_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="pixel_scale_y">
    <xs:annotation>
      <xs:documentation> The pixel_scale_x and pixel_scale_y attributes
        indicate the image array pixel scale (pixel/degree or
        pixel/distance) relative to the Cartesian (x,y) coordinate
        system as defined by the map projection. Due to varying
        properties across different map projections, actual surface
        distances for an individual pixel may be accurate only at
        specific location(s) within the image array (e.g. reference
        latitude or longitude, standard parallels, etc). For most PDS
        products, x and y scale values are equal ('square' pixels). The
        inclusion of both x and y attributes allows for anticipated
        products where scale may differ for each axis ('rectangular'
        pixels). NOTE1: For presentation of hard-copy maps, a map scale
        is traditionally expressed as a 'representative fraction' (the
        ratio of a hard-copy map to the actual subject surface (e.g.
        1:250,000, where one unit of measure on the map equals 250,000
        of the same unit on the body surface)). This usage is relevant
        when map/data are presented on hard-copy media (paper, computer
        screen,etc). When defining pixel scale within a stored
        image/array context here, we are expressing a ratio between the
        image array and the actual surface (thus, pixel/degree or
        pixel/distance units). NOTE2: Definition of this PDS4 attribute
        differs from how 'scale' was defined within PDS3
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:pixel_scale_y_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Map_Scale" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="planar_coordinate_encoding_method">
    <xs:annotation>
      <xs:documentation>The planar_coordinate_encoding_method attribute
        indicates the means used to represent horizontal
        positions.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="projection_axis_offset_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="projection_axis_offset">
    <xs:annotation>
      <xs:documentation>The projection_axis_offset attribute specifies
        an offset from a projection axis in a map projection. For the
        Cylindrical-Perspective projection, this is the radius of a
        circle which represents the rotation around the projection
        origin of the synthetic camera used to calculate each
        column.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:projection_axis_offset_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="projection_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="projection_azimuth">
    <xs:annotation>
      <xs:documentation>The projection_azimuth attribute specifies the
        azimuth of the horizontal center of projection for the
        Perspective lander map projection (loosely, where the camera
        model is pointing). </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:projection_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="projection_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="projection_elevation">
    <xs:annotation>
      <xs:documentation>The projection_elevation attribute specifies the
        elevation of the vertical center of projection (loosely, where
        the camera is pointing). For Perspective lander map projection,
        this applies to the single output camera model; for
        Cylindrical-Perspective it applies to each columns output camera
        model, before the rotation specified by
        Vector_Projection_Z_Axis. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:projection_elevation_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="projection_elevation_line">
    <xs:annotation>
      <xs:documentation>The projection_elevation_line attribute
        specifies the image line which corresponds to the
        projection_elevation attribute for each column of the
        Cylindrical-Perspective projection, before the rotation
        specified by Vector_Projection_Z_Axis. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="radial_scale_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="radial_scale">
    <xs:annotation>
      <xs:documentation>Grid spacing. Unit is
        km/pixel.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:radial_scale_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Pixel_Resolution_Linear" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="reference_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="reference_azimuth">
    <xs:annotation>
      <xs:documentation>The reference_azimuth attribute specifies the
        azimuth of the line extending from the center of the image to
        the top center of the image with respect to a polar projection.
        </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:reference_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="reference_latitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90.0"/>
     <xs:maxInclusive value="90.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="reference_latitude">
    <xs:annotation>
      <xs:documentation>Provides the ordinary latitude coordinate of the
        origin (oblique latitude = oblique longitude = 0) for the
        oblique coordinate system used to specify the OBLIQUE_CYLIDRICAL
        projection used in Cassini BIDR. NOTE that whereas some past PDS
        products may utilize oblique projections defined solely in terms
        of the REFERENCE_LATITUDE and REFERENCE_LONGITUDE (i.e., with a
        third defining angle always set to zero), the Cassini BIDRs
        require the full generality of three nonzero rotation angles.
        These angles are represented by the keywords
        OBLIQUE_PROJ_POLE_LATITUDE, OBLIQUE_PROJ_POLE_LONGITUDE, and
        OBLIQUE_PROJ_POLE_ROTATION. The values of REFERENCE_LATITUDE and
        REFERENCE_LONGITUDE are consistent with the latter three angles
        but do not uniquely define the oblique coordinate system on
        their own. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:reference_latitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="reference_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="reference_longitude">
    <xs:annotation>
      <xs:documentation>Provides the ordinary longitude coordinate of
        the origin (oblique latitude = oblique longitude = 0) for the
        oblique coordinate system used to specify the OBLIQUE_CYLIDRICAL
        projection used in Cassini BIDR. NOTE that whereas some past PDS
        products may utilize oblique projections defined solely in terms
        of the REFERENCE_LATITUDE and REFERENCE_LONGITUDE (i.e., with a
        third defining angle always set to zero), the Cassini BIDRs
        require the full generality of three nonzero rotation angles.
        These angles are represented by the keywords
        OBLIQUE_PROJ_POLE_LATITUDE, OBLIQUE_PROJ_POLE_LONGITUDE, and
        OBLIQUE_PROJ_POLE_ROTATION. The values of REFERENCE_LATITUDE and
        REFERENCE_LONGITUDE are consistent with the latter three angles
        but do not uniquely define the oblique coordinate system on
        their own. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:reference_longitude_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="rings_map_projection_name">
    <xs:annotation>
      <xs:documentation>The rings_map_projection_name attribute provides
        the name of the map projection used for rings
        data.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="sample">
    <xs:annotation>
      <xs:documentation>The sample attribute specifies the sample
        number.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="sample_name">
    <xs:annotation>
      <xs:documentation>Coordinate name for the sample axis. e.g.
        "RADIUS KM"</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Text_Preserved">
     <xs:minLength value="1"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="scale_factor_at_central_meridian">
    <xs:annotation>
      <xs:documentation>The scale_factor_at_central_meridian attribute
        provides a multiplier for reducing a distance obtained from a
        map by computation or scaling to the actual distance along the
        central meridian.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="scale_factor_at_projection_origin">
    <xs:annotation>
      <xs:documentation> The scale_factor_at_projection_origin attribute
        provides a multiplier for reducing a distance obtained from a
        map by computation or scaling to the actual distance at the
        projection origin. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="south_bounding_coordinate_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90.0"/>
     <xs:maxInclusive value="90.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="south_bounding_coordinate">
    <xs:annotation>
      <xs:documentation>The south_bounding_coordinate attribute provides
        the southern-most coordinate of the limit of coverage expressed
        in latitude.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:south_bounding_coordinate_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spcs_zone_identifier">
    <xs:annotation>
      <xs:documentation>The spcs_zone_identifier attribute identifies
        the State Plane Coordinate Systems (SPCS)
        zone.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
    	<xs:pattern value='[0-9][0-9][0-9][0-9]'/>
     <xs:minLength value="4"/>
     <xs:maxLength value="4"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="sphere_intersection_count">
    <xs:annotation>
      <xs:documentation>The sphere_intersection_count attribute
        specifies the number of the intersection to use for the
        spherical surface model when the camera is outside the sphere.
        For example, specifying a value of 1 would indicate the first
        intersection with the sphere should be used (more useful for
        modeling hills or rocks), while a value of 2 would indicate the
        second intersection with the sphere should be used (more useful
        for modeling craters). In PDS3, this was overloaded as part of
        the SURFACE_MODEL_TYPE keyword. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Integer">
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="9223372036854775807"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="sphere_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="sphere_radius">
    <xs:annotation>
      <xs:documentation>The sphere_radius attribute specifies the radius
        of the spherical body. In PDS3, this was specified using the
        SURFACE_NORMAL_VECTOR keyword. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:sphere_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="spheroid_name">
    <xs:annotation>
      <xs:documentation>The spheroid_name attribute provides the
        identification given to established representations of a
        planet's shape. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="standard_parallel_1_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90.0"/>
     <xs:maxInclusive value="90.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="standard_parallel_1">
    <xs:annotation>
      <xs:documentation>The standard_parallel_1 attribute defines the
        first standard parallel (applicable only for specific
        projections), the first line of constant latitude at which the
        surface of the planet and the plane or developable surface
        intersect. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:standard_parallel_1_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="standard_parallel_2_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-90.0"/>
     <xs:maxInclusive value="90.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="standard_parallel_2">
    <xs:annotation>
      <xs:documentation>The standard_parallel_2 attribute defines the
        second standard parallel (applicable only for specific
        projections, a subset of specific projections where a first
        standard parallel is applicable), the second line of constant
        latitude at which the surface of the planet and the plane or
        developable surface intersect. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:standard_parallel_2_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="start_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="start_azimuth">
    <xs:annotation>
      <xs:documentation>The start_azimuth specifies the angular distance
        from a fixed reference position at which an image or observation
        starts. Azimuth is measured in a spherical coordinate system, in
        a plane normal to the principal axis. Azimuth values increase
        according to the right hand rule relative to the positive
        direction of the principal axis of the spherical coordinate
        system. For lander map projections, this attribute specifies the
        azimuth of the left edge of the output map. Applies to
        Cylindrical and Cylindrical-Perspective lander map projections
        only.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:start_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="stop_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="0"/>
     <xs:maxInclusive value="360"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="stop_azimuth">
    <xs:annotation>
      <xs:documentation>The stop_azimuth attribute specifies the angular
        distance from a fixed reference position at which an image or
        observation stops. Azimuth is measured in a spherical coordinate
        system, in a plane normal to the principal axis. Azimuth values
        increase according to the right hand rule relative to the
        positive direction of the principal axis of the spherical
        coordinate system. For lander map projections, this attribute
        specifies the azimuth of the right edge of the output map.
        Applies to Cylindrical and Cylindrical-Perspective lander map
        projections only.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:stop_azimuth_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="surface_model_type">
    <xs:annotation>
      <xs:documentation>Specifies the type of surface used for the
        reprojection performed during the mosaicking process. Valid
        values: Planar - refers to a flat planar model; Spherical -
        refers to a spherical model. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="target_center_distance_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="target_center_distance">
    <xs:annotation>
      <xs:documentation> The target_center_distance attribute provides
        the distance to target center, in meters, relative to the
        observing system. </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:target_center_distance_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="upperleft_corner_x_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="upperleft_corner_x">
    <xs:annotation>
      <xs:documentation> The upperleft_corner_x and upperleft_corner_y
        attributes provide the projection x and y values, in meters,
        relative to the map projection origin, at sample 0.5 and line
        0.5 (upper left corner of pixel 1,1 within image array).
        (0.5,0.5) - upper left corner (edge) of pixel 1,1 / #---+---+->
        I where # is X,Y location in meters, | * | | relative to map
        projection origin. +---+---+ where * is pixel coordinate
        (1.0,1.0) | \ J pixel coordinate (2.5,1.5) </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:upperleft_corner_x_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="upperleft_corner_y_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="upperleft_corner_y">
    <xs:annotation>
      <xs:documentation> The upperleft_corner_x and upperleft_corner_y
        attributes provide the projection x and y values, in meters,
        relative to the map projection origin, at sample 0.5 and line
        0.5 (upper left corner of pixel 1,1 within image array).
        (0.5,0.5) - upper left corner (edge) of pixel 1,1 / #---+---+->
        I where # is X,Y location in meters, | * | | relative to map
        projection origin. +---+---+ where * is pixel coordinate
        (1.0,1.0) | \ J pixel coordinate (2.5,1.5) </xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:upperleft_corner_y_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="ups_zone_identifier">
    <xs:annotation>
      <xs:documentation>The ups_zone_identifier attribute provides an
        identifier for the Universal Polar Stereographic (UPS)
        zone.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Short_String_Collapsed">
     <xs:minLength value="1"/>
     <xs:maxLength value="255"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="utm_zone_number">
    <xs:annotation>
      <xs:documentation>The utm_zone_number attribute provides the
        identifier for the Universal Transverse Mercator (UTM)
        zone.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Integer">
     <xs:minInclusive value="-60"/>
     <xs:maxInclusive value="60"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="west_bounding_coordinate_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="360.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="west_bounding_coordinate">
    <xs:annotation>
      <xs:documentation>The west_bounding_coordinate attribute provides
        the western-most coordinate of the limit of coverage expressed
        in longitude.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:west_bounding_coordinate_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Angle" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x">
    <xs:annotation>
      <xs:documentation>The x component of a Cartesian vector which has
        no units.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="x_axis_maximum_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="x_axis_maximum">
    <xs:annotation>
      <xs:documentation>The x_axis_maximum attribute specifies the value
        of the X coordinate (measured in the projection frame) of a
        Vertical, Orthographic or Orthorectified lander map projection
        at the top of the image. Note that +X is at the top of the image
        and +Y is at the right, so +X corresponds to North in the
        Vertical projection.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:x_axis_maximum_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x_axis_minimum_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="x_axis_minimum">
    <xs:annotation>
      <xs:documentation>The x_axis_minimum attribute specifies the value
        of the X coordinate (measured in the projection frame) of a
        Vertical, Orthographic or Orthorectified lander map projection
        at the bottom of the image.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:x_axis_minimum_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x_length_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="x_length">
    <xs:annotation>
      <xs:documentation>The x_length attribute represents length in the
        x-direction.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:x_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="x_position">
    <xs:annotation>
      <xs:documentation>The x component of a Cartesian position
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:x_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="x_unit">
    <xs:annotation>
      <xs:documentation>The x component of a unit
        vector.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="y">
    <xs:annotation>
      <xs:documentation>The y component of a Cartesian vector which has
        no units.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="y_axis_maximum_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="y_axis_maximum">
    <xs:annotation>
      <xs:documentation>The y_axis_minimum attribute specifies the value
        of the Y coordinate (measured in the projection frame) of a
        Vertical, Orthographic or Orthorectified lander map projection
        at the right edge of the image.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:y_axis_maximum_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="y_axis_minimum_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="y_axis_minimum">
    <xs:annotation>
      <xs:documentation>The y_axis_minimum attribute specifies the value
        of the Y coordinate (measured in the projection frame) of a
        Vertical, Orthographic or Orthorectified lander map projection
        at the left edge of the image.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:y_axis_minimum_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="y_length_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="y_length">
    <xs:annotation>
      <xs:documentation>The y_length attribute represents length in the
        y-direction.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:y_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="y_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="y_position">
    <xs:annotation>
      <xs:documentation>The y component of a Cartesian position
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:y_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="y_unit">
    <xs:annotation>
      <xs:documentation>The y component of a unit
        vector.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="z">
    <xs:annotation>
      <xs:documentation>The z component of a Cartesian vector which has
        no units.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="z_length_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="z_length">
    <xs:annotation>
      <xs:documentation>The z_length attribute represents length in the
        z-direction.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:z_length_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="z_position_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="z_position">
    <xs:annotation>
      <xs:documentation>The z component of a Cartesian position
        vector.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:z_position_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="z_unit">
    <xs:annotation>
      <xs:documentation>The z component of a unit
        vector.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="zero_elevation_line">
    <xs:annotation>
      <xs:documentation>The zero_elevation_line attribute specifies the
        image line representing 0.0 degree elevation. Applies to
        Cylindrical lander map projections. </xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>
</xs:schema>
