<?xml version="1.0" encoding="utf-8"?>
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns="http://www.okmap.it/xsd/map/1/1" xmlns:gpx_style="http://www.topografix.com/GPX/gpx_style/0/2" targetNamespace="http://www.okmap.it/xsd/map/1/1" elementFormDefault="qualified">
  <xsd:import namespace="http://www.topografix.com/GPX/gpx_style/0/2" schemaLocation="gpx_style.xsd" />
  <xsd:annotation>
    <xsd:documentation>
  OkMap map schema version 1.1 - For more information on this schema, visit http://www.okmap.it
  OkMap uses the following conventions: all coordinates are in decimal degrees (otherwise specified).  All measurements are in metric units.
		</xsd:documentation>
  </xsd:annotation>
  <xsd:element name="map" type="mapType">
  </xsd:element>
  <xsd:annotation>
    <xsd:documentation>
		map is the root element in the XML file.
	  		</xsd:documentation>
  </xsd:annotation>
  <xsd:complexType name="mapType">
    <xsd:annotation>
      <xsd:documentation>
		This documents contain a metadata header, followed by map size, grid, projection, vectorial data.  You can add your own elements
		to the extensions section of this document.
	  		</xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="metadata" type="metadataType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Metadata about the file.
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="filename" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Raster image map filename. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="size" type="sizeType" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
		The map size in pixel.
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="projectionPredef" type="xsd:string" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Prefedined projection.
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="datum" type="xsd:string" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Datum of the projection.
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="proj" type="projType" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
		All the projection data.
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="grid" type="gridType" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
		All the grid data.
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="altGrid" type="altGridType" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
		All the alternate grid data.
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="gref" type="grefType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		All the georeference data.
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="vect" type="vectType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		All the vectorial data.
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="extensions" type="extensionsType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		You can add extend by adding your own elements from another schema here.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="version" type="xsd:string" use="required" fixed="1.1">
      <xsd:annotation>
        <xsd:documentation>
		You must include the version number in your document.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="creator" type="xsd:string" use="required">
      <xsd:annotation>
        <xsd:documentation>
		You must include the name or URL of the software that created your document.  This allows others to
		inform the creator of a instance document that fails to validate.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="metadataType">
    <xsd:annotation>
      <xsd:documentation>
		Information about the file, author, and copyright restrictions goes in the metadata section.  Providing rich,
		meaningful information about your files allows others to search for and use your data.
	  </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="name" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		The name of the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="desc" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		A description of the contents of the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="author" type="personType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		The person or organization who created the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="copyright" type="copyrightType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Copyright and license information governing use of the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="link" type="linkType" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
		URLs associated with the location described in the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="time" type="xsd:dateTime" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		The creation date of the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="keywords" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Keywords associated with the file.  Search engines or databases can use this information to classify the data.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="bounds" type="boundsType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Minimum and maximum coordinates which describe the extent of the coordinates in the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="extensions" type="extensionsType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		You can add extend by adding your own elements from another schema here.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="extensionsType">
    <xsd:annotation>
      <xsd:documentation>
	 You can add extend by adding your own elements from another schema here.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:any namespace="##other" processContents="lax" minOccurs="0" maxOccurs="unbounded">
        <xsd:annotation>
          <xsd:documentation>
		 You can add extend by adding your own elements from another schema here.
		</xsd:documentation>
        </xsd:annotation>
      </xsd:any>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="copyrightType">
    <xsd:annotation>
      <xsd:documentation>
	 Information about the copyright holder and any license governing use of this file.  By linking to an appropriate license,
	 you may place your data into the public domain or grant additional usage rights.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="year" type="xsd:gYear" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Year of copyright.
	  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="license" type="xsd:anyURI" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Link to external file containing license text.
	  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="author" type="xsd:string" use="required">
      <xsd:annotation>
        <xsd:documentation>
		Copyright holder 
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="linkType">
    <xsd:annotation>
      <xsd:documentation>
	 A link to an external resource (Web page, digital photo, video clip, etc) with additional information.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="text" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Text of hyperlink.
	  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="type" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Mime type of content (image/jpeg)
	  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
    <xsd:attribute name="href" type="xsd:anyURI" use="required">
      <xsd:annotation>
        <xsd:documentation>
		URL of hyperlink.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="emailType">
    <xsd:annotation>
      <xsd:documentation>
	 An email address.  Broken into two parts (id and domain) to help prevent email harvesting.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="id" type="xsd:string" use="required">
      <xsd:annotation>
        <xsd:documentation>
		id half of email address (billgates2004)
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="domain" type="xsd:string" use="required">
      <xsd:annotation>
        <xsd:documentation>
		domain half of email address (hotmail.com)
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:complexType name="personType">
    <xsd:annotation>
      <xsd:documentation>
	 A person or organization.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="name" type="xsd:string" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Name of person or organization.
	  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="email" type="emailType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Email address.
	  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="link" type="linkType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Link to Web site or other external information about person.
	  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="boundsType">
    <xsd:annotation>
      <xsd:documentation>
	 Two lat/lon pairs defining the extent of an element.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="minlat" type="latitudeType" use="required">
      <xsd:annotation>
        <xsd:documentation>
		The minimum latitude.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="minlon" type="longitudeType" use="required">
      <xsd:annotation>
        <xsd:documentation>
		The minimum longitude.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="maxlat" type="latitudeType" use="required">
      <xsd:annotation>
        <xsd:documentation>
		The maximum latitude.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="maxlon" type="longitudeType" use="required">
      <xsd:annotation>
        <xsd:documentation>
		The maximum longitude.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
  <xsd:simpleType name="latitudeType">
    <xsd:annotation>
      <xsd:documentation>
		The latitude of the point.  Decimal degrees
	  </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:decimal">
      <xsd:minInclusive value="-90.0" />
      <xsd:maxInclusive value="90.0" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:simpleType name="longitudeType">
    <xsd:annotation>
      <xsd:documentation>
		The longitude of the point.  Decimal degrees
	  </xsd:documentation>
    </xsd:annotation>
    <xsd:restriction base="xsd:decimal">
      <xsd:minInclusive value="-180.0" />
      <xsd:maxExclusive value="180.0" />
    </xsd:restriction>
  </xsd:simpleType>
  <xsd:complexType name="sizeType">
    <xsd:annotation>
      <xsd:documentation>
		Represents image width / height.
	  </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="width" type="xsd:int" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Image width in pixel.
				</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="height" type="xsd:int" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Image height in pixel.
				</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="gridType">
    <xsd:annotation>
      <xsd:documentation>
		Represents info to draw grids.
	  </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="lonIncrement" type="xsd:int" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Increment step for longitude in seconds.
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="latIncrement" type="xsd:int" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Increment step for latitude in seconds.
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="altGridType">
    <xsd:annotation>
      <xsd:documentation>
		Represents info to draw grids.
	  </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="northIncrement" type="xsd:int" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Increment step for Utm north in meters.
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="eastIncrement" type="xsd:int" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Increment step for Utm east in meters.
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="projectionPredef" type="xsd:string" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Prefedined projection.
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="datum" type="xsd:string" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Datum of the projection.
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="proj" type="projType" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
		All the projection data.
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="projType">
    <xsd:annotation>
      <xsd:documentation>
		Represents informations on parameters used to project the map.
	  </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="name" type="xsd:string" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Projection name used for the map. 
		  </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="falseEasting" type="xsd:decimal" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			False easting. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="falseNorthing" type="xsd:decimal" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			False northing. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="centerLon" type="longitudeType" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Center longitude. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="centerLat" type="latitudeType" minOccurs="1">
        <xsd:annotation>
          <xsd:documentation>
			Center latitude. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="scaleX" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Scale factor X. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="scaleY" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Scale factor Y. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="centerLineAzimuth" type="latitudeType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Center line azimuth. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="centerLineBearing" type="latitudeType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Center line bearing. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="firstStdLat" type="latitudeType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			First standard latitude. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="secondStdLat" type="latitudeType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
			Second standard latitude. 
					</xsd:documentation>
        </xsd:annotation>
      </xsd:element>
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="iconType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="desc" type="xsd:string" minOccurs="0" />
      <xsd:element name="cmt" type="xsd:string" minOccurs="0" />
      <xsd:element name="posBitmap" type="xsd:string" minOccurs="0" />
      <xsd:element name="file" type="xsd:string" minOccurs="0" />
      <xsd:element name="link" type="linkType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="x" type="xsd:decimal" use="required" />
    <xsd:attribute name="y" type="xsd:decimal" use="required" />
    <xsd:attribute name="visible" type="xsd:boolean" />
    <xsd:attribute name="selected" type="xsd:boolean" />
  </xsd:complexType>
  <xsd:complexType name="commentType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="desc" type="xsd:string" minOccurs="0" />
      <xsd:element name="cmt" type="xsd:string" minOccurs="0" />
      <xsd:element name="size" type="sizeType" minOccurs="0" />
      <xsd:element name="file" type="xsd:string" minOccurs="0" />
      <xsd:element name="link" type="linkType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element ref="gpx_style:line" />
      <xsd:element ref="gpx_style:fill" />
      <xsd:element ref="gpx_style:text" />
    </xsd:sequence>
    <xsd:attribute name="x" type="xsd:decimal" use="required" />
    <xsd:attribute name="y" type="xsd:decimal" use="required" />
    <xsd:attribute name="visible" type="xsd:boolean" />
    <xsd:attribute name="selected" type="xsd:boolean" />
  </xsd:complexType>
  <xsd:complexType name="vectType">
    <xsd:annotation>
      <xsd:documentation>
	 Vectorial data.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:sequence>
      <xsd:element name="bounds" type="vboundsType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Minimum and maximum coordinates which describe the extent of the coordinates in the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="icon" type="iconType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="comment" type="commentType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="theme" type="themeType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    <!-- elements must appear in this order -->
  </xsd:complexType>
  <xsd:complexType name="pointType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element ref="gpx_style:line" />
      <xsd:element ref="gpx_style:fill" />
      <xsd:element ref="gpx_style:text" />
    </xsd:sequence>
    <xsd:attribute name="x" type="xsd:decimal" use="required" />
    <xsd:attribute name="y" type="xsd:decimal" use="required" />
    <xsd:attribute name="label" type="xsd:string" />
    <xsd:attribute name="visible" type="xsd:boolean" />
    <xsd:attribute name="selected" type="xsd:boolean" />
  </xsd:complexType>
  <xsd:complexType name="multiPointType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="bounds" type="vboundsType" minOccurs="0" />
      <xsd:element ref="gpx_style:line" />
      <xsd:element ref="gpx_style:fill" />
      <xsd:element ref="gpx_style:text" />
      <xsd:element name="points" type="pntType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="label" type="xsd:string" />
    <xsd:attribute name="visible" type="xsd:boolean" />
    <xsd:attribute name="selected" type="xsd:boolean" />
  </xsd:complexType>
  <xsd:complexType name="pntType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
    </xsd:sequence>
    <xsd:attribute name="x" type="xsd:decimal" use="required" />
    <xsd:attribute name="y" type="xsd:decimal" use="required" />
  </xsd:complexType>
  <xsd:complexType name="grefType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="grefpnt" type="grefpntType" minOccurs="2" maxOccurs="unbounded" />
      <xsd:element name="forCoeff" type="xsd:double" minOccurs="4" maxOccurs="unbounded" />
      <xsd:element name="invCoeff" type="xsd:double" minOccurs="4" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="grefpntType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="x" type="xsd:int" minOccurs="1" />
      <xsd:element name="y" type="xsd:int" minOccurs="1" />
      <xsd:element name="lon" type="longitudeType" minOccurs="1" />
      <xsd:element name="lat" type="latitudeType" minOccurs="1" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="polyLineType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="bounds" type="vboundsType" minOccurs="0" />
      <xsd:element ref="gpx_style:line" />
      <xsd:element ref="gpx_style:text" />
      <xsd:element name="parts" type="partType" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="label" type="xsd:string" />
    <xsd:attribute name="visible" type="xsd:boolean" />
    <xsd:attribute name="selected" type="xsd:boolean" />
  </xsd:complexType>
  <xsd:complexType name="polygonType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="bounds" type="vboundsType" minOccurs="0" />
      <xsd:element ref="gpx_style:line" />
      <xsd:element ref="gpx_style:fill" />
      <xsd:element ref="gpx_style:text" />
      <xsd:element name="parts" type="partType" minOccurs="1" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="label" type="xsd:string" />
    <xsd:attribute name="visible" type="xsd:boolean" />
    <xsd:attribute name="selected" type="xsd:boolean" />
  </xsd:complexType>
  <xsd:complexType name="partType">
    <xsd:sequence>
      <!-- elements must appear in this order -->
      <xsd:element name="points" type="pntType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
  </xsd:complexType>
  <xsd:complexType name="themeType">
    <xsd:sequence>
      <xsd:element name="bounds" type="vboundsType" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Minimum and maximum coordinates which describe the extent of the coordinates in the file.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element name="mtPixDraw" type="xsd:decimal" minOccurs="0">
        <xsd:annotation>
          <xsd:documentation>
		Mt/pixel below which to draw the theme.
	   </xsd:documentation>
        </xsd:annotation>
      </xsd:element>
      <xsd:element ref="gpx_style:line" />
      <xsd:element ref="gpx_style:fill" />
      <xsd:element ref="gpx_style:text" />
      <xsd:element name="points" type="pointType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="multiPoints" type="multiPointType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="polyLines" type="polyLineType" minOccurs="0" maxOccurs="unbounded" />
      <xsd:element name="polygons" type="polygonType" minOccurs="0" maxOccurs="unbounded" />
    </xsd:sequence>
    <xsd:attribute name="desc" type="xsd:string" />
    <xsd:attribute name="shapevis" type="xsd:boolean" />
    <xsd:attribute name="labelvis" type="xsd:boolean" />
    <xsd:attribute name="selected" type="xsd:boolean" />
  </xsd:complexType>
  <xsd:complexType name="vboundsType">
    <xsd:annotation>
      <xsd:documentation>
	 Two lat/lon pairs defining the extent of an element.
    </xsd:documentation>
    </xsd:annotation>
    <xsd:attribute name="minx" type="xsd:decimal" use="required">
      <xsd:annotation>
        <xsd:documentation>
		The minimum latitude.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="miny" type="xsd:decimal" use="required">
      <xsd:annotation>
        <xsd:documentation>
		The minimum longitude.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="maxx" type="xsd:decimal" use="required">
      <xsd:annotation>
        <xsd:documentation>
		The maximum latitude.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
    <xsd:attribute name="maxy" type="xsd:decimal" use="required">
      <xsd:annotation>
        <xsd:documentation>
		The maximum longitude.
	  </xsd:documentation>
      </xsd:annotation>
    </xsd:attribute>
  </xsd:complexType>
</xsd:schema>
