<?xml version="1.0" encoding="UTF-8"?>
  <!-- PDS4 XML/Schema for Name Space Id:cart  Version:1.9.0.0 - Fri Mar 30 15:51:19 PDT 2018 -->
  <!-- Generated from the PDS4 Information Model Version 1.9.0.0 - System Build 8a -->
  <!-- *** This PDS4 product schema is an operational deliverable. *** -->
  <!--                                                                           -->
  <!--               Dictionary Stack                                            -->
  <!-- 1.9.0.0 - pds: - Common Dictionary - N/A                                  -->
  <!-- 1.9.0.0 - geom: - Geometry Dictionary Full - input-ldd-geom_1500_1.2.0.xm -->
  <!-- 1.9.0.0 - cart: - Cartography - PDS4_CART_1900_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.0.0">
 
    <xs:import namespace="http://pds.nasa.gov/pds4/pds/v1" schemaLocation="https://pds.nasa.gov/pds4/pds/v1/PDS4_PDS_1900.xsd"/>
    <xs:import namespace="http://pds.nasa.gov/pds4/geom/v1" schemaLocation="https://pds.nasa.gov/pds4/geom/v1/PDS4_GEOM_1900_1510.xsd"/>
 
  <xs:annotation>
    <xs:documentation>

    Contains classes and attributes used to describe cartographic
    products.  This information is largely adapted from the 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
  
    </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="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>TBD</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>TBD</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: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 projection.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Map_Projection_Base">
        <xs:sequence>
          <xs:element name="straight_vertical_longitude_from_pole" type="cart:straight_vertical_longitude_from_pole" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="standard_parallel_1" type="cart:standard_parallel_1"> </xs:element>
            <xs:element name="standard_parallel_2" type="cart:standard_parallel_2"> </xs:element>
            <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin"> </xs:element>
          </xs:choice>
          <xs:element name="scale_factor_at_center_line" type="cart:scale_factor_at_center_line" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scale_factor_at_central_meridian" type="cart:scale_factor_at_central_meridian" 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:choice minOccurs="0" 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="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Geo_Transformation">
    <xs:annotation>
<xs:documentation>TBD</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="semi_major_radius" type="cart:semi_major_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="semi_minor_radius" type="cart:semi_minor_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="polar_radius" type="cart:polar_radius" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_direction" type="cart:longitude_direction" minOccurs="1" 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')"/> -->
    <!-- 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="1" maxOccurs="1"> </xs:element>
      <xs:element name="longitude_resolution" type="cart:longitude_resolution" minOccurs="1" 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="Local" type="cart:Local"> </xs:element>
        <xs:element name="Planar" type="cart:Planar"> </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_Conformal_Conic">
    <xs:annotation>
      <xs:documentation>The Lambert_Conformal_Conic class contains
        parameters for the Lambert Conformal Conic
        projection.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Map_Projection_Base">
        <xs:sequence>
          <xs:element name="straight_vertical_longitude_from_pole" type="cart:straight_vertical_longitude_from_pole" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="standard_parallel_1" type="cart:standard_parallel_1"> </xs:element>
            <xs:element name="standard_parallel_2" type="cart:standard_parallel_2"> </xs:element>
            <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin"> </xs:element>
          </xs:choice>
          <xs:element name="scale_factor_at_center_line" type="cart:scale_factor_at_center_line" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scale_factor_at_central_meridian" type="cart:scale_factor_at_central_meridian" 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:choice minOccurs="0" 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="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </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="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 developable surface.</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_Conformal_Conic" type="cart:Lambert_Conformal_Conic"> </xs:element>
        <xs:element name="Oblique_Mercator" type="cart:Oblique_Mercator"> </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', 'General Vertical Near-sided Projection', 'Gnomonic', 'Lambert Azimuthal Equal Area', 'Lambert Conformal Conic', 'Mercator', 'Miller Cylindrical', 'Oblique Mercator', 'Orthographic', '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_Base">
    <xs:annotation>
      <xs:documentation>An abstract class that serves as the parent
        class to all the map projections.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="straight_vertical_longitude_from_pole" type="cart:straight_vertical_longitude_from_pole" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:choice minOccurs="0" maxOccurs="3">
        <xs:element name="standard_parallel_1" type="cart:standard_parallel_1"> </xs:element>
        <xs:element name="standard_parallel_2" type="cart:standard_parallel_2"> </xs:element>
        <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin"> </xs:element>
      </xs:choice>
      <xs:element name="scale_factor_at_center_line" type="cart:scale_factor_at_center_line" minOccurs="0" maxOccurs="1"> </xs:element>
      <xs:element name="scale_factor_at_central_meridian" type="cart:scale_factor_at_central_meridian" 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:choice minOccurs="0" 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="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </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="Cylindrical_Perspective" type="cart:Cylindrical_Perspective"> </xs:element>
        <xs:element name="Orthographic_Lander" type="cart:Orthographic_Lander"> </xs:element>
        <xs:element name="Orthorectified" type="cart:Orthorectified"> </xs:element>
        <xs:element name="Perspective" type="cart:Perspective"> </xs:element>
        <xs:element name="Polar" type="cart:Polar"> </xs:element>
        <xs:element name="Vertical" type="cart:Vertical"> </xs:element>
      </xs:choice>
      <xs:element name="Coordinate_Space_Reference" type="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="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.</xs:documentation>
    </xs:annotation>
    <xs:sequence>
      <xs:element name="azimuthal_angle" type="cart:azimuthal_angle" minOccurs="1" maxOccurs="1"> </xs:element>
      <xs:element name="azimuth_measure_point_longitude" type="cart:azimuth_measure_point_longitude" minOccurs="1" 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.</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.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Map_Projection_Base">
        <xs:sequence>
          <xs:element name="straight_vertical_longitude_from_pole" type="cart:straight_vertical_longitude_from_pole" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="standard_parallel_1" type="cart:standard_parallel_1"> </xs:element>
            <xs:element name="standard_parallel_2" type="cart:standard_parallel_2"> </xs:element>
            <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin"> </xs:element>
          </xs:choice>
          <xs:element name="scale_factor_at_center_line" type="cart:scale_factor_at_center_line" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scale_factor_at_central_meridian" type="cart:scale_factor_at_central_meridian" 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:choice minOccurs="0" 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="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Orthographic_Lander">
    <xs:annotation>
<xs:documentation>TBD</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>TBD</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>TBD</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="Grid_Coordinate_System" type="cart:Grid_Coordinate_System"> </xs:element>
        <xs:element name="Local_Planar" type="cart:Local_Planar"> </xs:element>
        <xs:element name="Map_Projection" type="cart:Map_Projection"> </xs:element>
      </xs:choice>
      <xs:element name="Planar_Coordinate_Information" type="cart:Planar_Coordinate_Information" minOccurs="1" 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="Polar">
    <xs:annotation>
<xs:documentation>TBD</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.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Map_Projection_Base">
        <xs:sequence>
          <xs:element name="straight_vertical_longitude_from_pole" type="cart:straight_vertical_longitude_from_pole" minOccurs="1" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="standard_parallel_1" type="cart:standard_parallel_1"> </xs:element>
            <xs:element name="standard_parallel_2" type="cart:standard_parallel_2"> </xs:element>
            <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin"> </xs:element>
          </xs:choice>
          <xs:element name="scale_factor_at_center_line" type="cart:scale_factor_at_center_line" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scale_factor_at_central_meridian" type="cart:scale_factor_at_central_meridian" 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:choice minOccurs="0" 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="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Polyconic">
    <xs:annotation>
      <xs:documentation>The Polyconic class contains parameters for the
        Polyconic projection.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Map_Projection_Base">
        <xs:sequence>
          <xs:element name="straight_vertical_longitude_from_pole" type="cart:straight_vertical_longitude_from_pole" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="standard_parallel_1" type="cart:standard_parallel_1"> </xs:element>
            <xs:element name="standard_parallel_2" type="cart:standard_parallel_2"> </xs:element>
            <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin"> </xs:element>
          </xs:choice>
          <xs:element name="scale_factor_at_center_line" type="cart:scale_factor_at_center_line" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scale_factor_at_central_meridian" type="cart:scale_factor_at_central_meridian" 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:choice minOccurs="0" 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="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Sinusoidal">
    <xs:annotation>
      <xs:documentation>The Sinusoidal class contains parameters for the
        Sinusoidal projection.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Map_Projection_Base">
        <xs:sequence>
          <xs:element name="straight_vertical_longitude_from_pole" type="cart:straight_vertical_longitude_from_pole" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="standard_parallel_1" type="cart:standard_parallel_1"> </xs:element>
            <xs:element name="standard_parallel_2" type="cart:standard_parallel_2"> </xs:element>
            <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin"> </xs:element>
          </xs:choice>
          <xs:element name="scale_factor_at_center_line" type="cart:scale_factor_at_center_line" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:element name="scale_factor_at_central_meridian" type="cart:scale_factor_at_central_meridian" 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:choice minOccurs="0" 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="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="0" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </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.</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="Oblique_Mercator" type="cart:Oblique_Mercator"> </xs:element>
        <xs:element name="Polyconic" type="cart:Polyconic"> </xs:element>
        <xs:element name="Transverse_Mercator" type="cart:Transverse_Mercator"> </xs:element>
      </xs:choice>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Surface_Model_Parameters">
    <xs:annotation>
<xs:documentation>TBD</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 name="Coordinate_Space_Reference" type="geom:Coordinate_Space_Reference" minOccurs="0" maxOccurs="1"> </xs:element>
    </xs:sequence>
  </xs:complexType>

  <xs:complexType name="Surface_Model_Planar">
    <xs:annotation>
<xs:documentation>TBD</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>TBD</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.</xs:documentation>
    </xs:annotation>
    <xs:complexContent>
      <xs:restriction base="cart:Map_Projection_Base">
        <xs:sequence>
          <xs:element name="straight_vertical_longitude_from_pole" type="cart:straight_vertical_longitude_from_pole" minOccurs="0" maxOccurs="1"> </xs:element>
          <xs:choice minOccurs="0" maxOccurs="3">
            <xs:element name="standard_parallel_1" type="cart:standard_parallel_1"> </xs:element>
            <xs:element name="standard_parallel_2" type="cart:standard_parallel_2"> </xs:element>
            <xs:element name="scale_factor_at_projection_origin" type="cart:scale_factor_at_projection_origin"> </xs:element>
          </xs:choice>
          <xs:element name="scale_factor_at_center_line" type="cart:scale_factor_at_center_line" minOccurs="0" maxOccurs="1"> </xs:element>
          <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:choice minOccurs="0" 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="latitude_of_projection_origin" type="cart:latitude_of_projection_origin" minOccurs="1" maxOccurs="1"> </xs:element>
        </xs:sequence>
      </xs:restriction>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="Universal_Polar_Stereographic">
    <xs:annotation>
      <xs:documentation>The Universal_Polar_Stereographic class 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.</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.</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_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 ocated 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. CAMERA_ROTATION_AXIS_VECTOR 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_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
        Map_Projection_Lander 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. This point is measured in
        the coordinates specified by the Coordinate_Space reference in
        the Map_Projection_Lander 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. This vector is measured in
        the coordinates specified by the Coordinate_Space reference in
        the Map_Projection_Lander 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>TBD</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
        pds namespace.
      </xs:documentation>
    </xs:annotation>

  <xs:simpleType name="azimuth_measure_point_longitude_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="180.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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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="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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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="distance_resolution_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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="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 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="latitude_of_projection_origin_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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. The IAU definition for direction of
        positive longitude should be adopted:
        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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </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="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
        is adopted. Typically, for planets with prograde rotations,
        positive longitude direction is to the west. For planets with
        retrograde rotations, positive longitude direction is to the
        east. Note: The longitude_direction attribute should be used for
        planetographc systems, but not for
        planetocentric.</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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="180.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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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="map_projection_name">
    <xs:annotation>
      <xs:documentation>The 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="maximum_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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="minimum_elevation_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="180.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="pixel_resolution_x_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_Pixel_Resolution_Map" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_resolution_y_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_Pixel_Resolution_Map" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_scale_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_Pixel_Scale_Map" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="pixel_scale_y_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_Pixel_Scale_Map" 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="polar_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="polar_radius">
    <xs:annotation>
      <xs:documentation>The polar_radius attribute provides the value of
        the semiminor axis of the ellipsoid that defines the approximate
        shape of a target body. The polar radius is normal to the plane
        defined by the semi-major and semi-minor axes.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:polar_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="projection_axis_offset_WO_Units">
    <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: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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="reference_azimuth_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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="sample">
    <xs:annotation>
      <xs:documentation>The sample attribute specifies the sample
        number</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="1"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="scale_factor_at_center_line">
    <xs:annotation>
      <xs:documentation>The scale_factor_at_center_line attribute
        provides a multiplier for reducing a distance obtained from a
        map by computation or scaling to the actual distance along the
        center line.</xs:documentation>
    </xs:annotation>
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:simpleType name="semi_major_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="semi_major_radius">
    <xs:annotation>
      <xs:documentation>The semi_major_axis attribute provides the
        radius of the equatorial axis of the
        ellipsoid.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:semi_major_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="semi_minor_radius_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="0.0"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="semi_minor_radius">
    <xs:annotation>
      <xs:documentation>The semi_minor_radius attribute provides the
        value of the intermediate axis of the ellipsoid that defines the
        approximate shape of a target body. The semi-minor axis is
        usually in the equatorial plane.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:semi_minor_radius_WO_Units">
        <xs:attribute name="unit" type="pds:Units_of_Length" use="required" />
      </xs:extension>
    </xs:simpleContent>
  </xs:complexType>

  <xs:simpleType name="south_bounding_coordinate_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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 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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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 pecifies 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="straight_vertical_longitude_from_pole_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-180.0"/>
     <xs:maxInclusive value="180.0"/>
	   </xs:restriction>
  </xs:simpleType>

  <xs:complexType name="straight_vertical_longitude_from_pole">
    <xs:annotation>
      <xs:documentation>The straight_vertical_longitude_from_pole
        attribute provides the longitude oriented straight up from the
        North or South Pole.</xs:documentation>
    </xs:annotation>
    <xs:simpleContent>
      <xs:extension base="cart:straight_vertical_longitude_from_pole_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 where the camera is at the center of the
        sphere. </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="upperleft_corner_x_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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).
        </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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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).
        </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 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 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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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_axis_maximum_WO_Units">
    <xs:restriction base="pds:ASCII_Real">
    	<xs:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <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:pattern value='[-+]?[0-9]+(\.?[0-9]+)?([eE][-+]?[0-9]+)?'/>
     <xs:minInclusive value="-1.7976931348623157e308"/>
     <xs:maxInclusive value="1.7976931348623157e308"/>
	   </xs:restriction>
  </xs:simpleType>
 
  <xs:annotation>
    <xs:documentation>
[
  {
    "dataDictionary": {
      "Title": "PDS4 Data Dictionary" ,
      "Version": "1.9.0.0" ,
      "Date": "Fri Mar 30 15:51:19 PDT 2018" ,
      "Description": "This document is a dump of the contents of the PDS4 Data Dictionary" ,
      "PropertyMapDictionary": [
      ]
    }
  }
]
    </xs:documentation>
  </xs:annotation>
</xs:schema>
