<schema
xmlns="http://www.w3.org/2001/XMLSchema"
targetNamespace="http://niem.gov/niem/external/ogc-openls/1.1.0/dhs-gmo/1.0.0"
xmlns:xls="http://niem.gov/niem/external/ogc-openls/1.1.0/dhs-gmo/1.0.0"
xmlns:gml="http://niem.gov/niem/external/ogc-gml/3.1.1/dhs-gmo/1.0.0"
elementFormDefault="qualified" version="1.1">
<annotation>
<documentation>
A slightly modified profile of OGC 05-016_OpenLS_core_services_1.1 that is based on GML version 3.1.1 instead of GML version 3.0, containing type and element definitions from
ADT.xsd
geometry.xsd
UOM.xsd
It contains a MultiPolygonType and element to replace the deprecated GML 311 MultiPolygonType and element.
See http://schemas.opengeospatial.net/ols/1.1.0/
See documentation in type definitions below for details.
Backward incompatibilities include:
* gid replaced by gml:id
* dimension attribute replaced by srsDimension
* gml:pos replaced by gml:lowerCorner and gml:upperCorner in gml:Envelope
* gml:MultiPolygon replaced by xls:MultiPolygon
These changes are significant enough to warrent incrementing the minor version from 1 to 2 for change proposal to OGC.
Change Log:
2006-09-28 Changed namespaces and schema location
ns old http://niem.gov/niem/external/gml/3.1.1/dhs-gmo/1.0.0
ns new http://niem.gov/niem/external/ogc-gml/3.1.1/dhs-gmo/1.0.0
from ../../../../gml/3.1.1/dhs-gmo/1.0.0/gml.xsd
to ../../../../ogc-gml/3.1.1/dhs-gmo/1.0.0/gml.xsd
2006-09-22 Changed namespaces following NIEM conventions
1. targetNamespace http://niem.gov/niem/external/ogc-openls/1.1.0/dhs-gmo/1.0.0
2. gml namespace http://niem.gov/niem/external/gml/3.1.1/dhs-gmo/1.0.0
2006-09-04 Changes
1. Change namespaces following conventions proposed in OGC 05-065r3 to include version and profile information,
except that complete version is used instead of BNF "principle version".
a) targetNamespace was http://www.opengis.net/xls; changed to http://www.opengis.net/xls/1.1.0/DHS-GMO/1.0.0
b) gml namespace was http://www.opengis.net/gml; changed to http://www.opengis.net/gml/3.1.1/DHS-GMO/1.0.0
2. Include complete OGC copyright notice from http://www.opengeospatial.org/ogc/software
2006-04-14
rename to ols4niem.xsd
move to proposed external components directory structure
change path to gml4niem.xsd
2005-12-31
rename from ADT.xsd to xls4niem.xsd
change import from gml4xls311.xsd to gml4niem.xsd
change include from geometry.xsd to geometry4xls.xs
2005-12-29
import gml4xls311.xsd instead of gml4xls.xsd
use xls:MultiPolygonType to replace deprecated GML 311 MultiPolygonType
2006-01-01
import gml4niem.xsd instead of gml4xls311.xsd
2006-01-05
add documentation
2006-01-07
Put definitions from geometry4xls.xsd and UOM.xsd in-line to conform to NIEM schema practice
whereby there is only one schema document per namespace.
Added appinfo elements to indicate source of type definitions.
2006-01-09
Add references to (empty) gml:AssociationAttributeGroup
2006-01-21
Add RouteService, XLS definitions
Copyright Notices:
Copyright (c) 2006 Open Geospatial Consortium, Inc. All Rights Reserved.
This OGC work (including software, documents, or other related items) is being provided by the copyright holders under the following license. By obtaining, using and/or copying this work, you (the licensee) agree that you have read, understood, and will comply with the following terms and conditions:
Permission to use, copy, and modify this software and its documentation, with or without modification, for any purpose and without fee or royalty is hereby granted, provided that you include the following on ALL copies of the software and documentation or portions thereof, including modifications, that you make:
1. The full text of this NOTICE in a location viewable to users of the redistributed or derivative work.
2. Any pre-existing intellectual property disclaimers, notices, or terms and conditions. If none exist, a short notice of the following form (hypertext is preferred, text is permitted) should be used within the body of any redistributed or derivative code: "Copyright © [$date-of-document] Open Geospatial Consortium, Inc. All Rights Reserved. http://www.opengeospatial.org/ogc/legal (Hypertext is preferred, but a textual representation is permitted.)
3. Notice of any changes or modifications to the OGC files, including the date changes were made. (We recommend you provide URIs to the location from which the code is derived.)
THIS SOFTWARE AND DOCUMENTATION IS PROVIDED "AS IS," AND COPYRIGHT HOLDERS MAKE NO REPRESENTATIONS OR WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO, WARRANTIES OF MERCHANTABILITY OR FITNESS FOR ANY PARTICULAR PURPOSE OR THAT THE USE OF THE SOFTWARE OR DOCUMENTATION WILL NOT INFRINGE ANY THIRD PARTY PATENTS, COPYRIGHTS, TRADEMARKS OR OTHER RIGHTS.
COPYRIGHT HOLDERS WILL NOT BE LIABLE FOR ANY DIRECT, INDIRECT, SPECIAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF ANY USE OF THE SOFTWARE OR DOCUMENTATION.
The name and trademarks of copyright holders may NOT be used in advertising or publicity pertaining to the software without specific, written prior permission. Title to copyright in this software and any associated documentation will at all times remain with copyright holders.
</documentation>
</annotation>
<import namespace="http://niem.gov/niem/external/ogc-gml/3.1.1/dhs-gmo/1.0.0"
schemaLocation="../../../../ogc-gml/3.1.1/dhs-gmo/1.0.0/gml.xsd"/>
<!-- The ADTs defined in this document represent the minimum set of essential elements as determined from the analysis of the APIs provided by OpenLS sponsors and participants. There are many additional elements that may be added but these are considered to be optional. The APIs considered include: Oracle, Webraska, ESRI, Vodafone, opt[e]way, NavTech, IntelliWhere, and LocatioNet. -->
<!--=============================================================================
Root ADT XML schema types - XLS, ADT and Location
================================================================================ -->
<attribute name="lang" type="language"/>
<!-- ============================================================== -->
<element name="_ADT" type="xls:AbstractDataType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>This is the abstract type that all other abstract types will extend</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="AbstractDataType"/>
<!-- ============================================================== -->
<element name="_Location" type="xls:AbstractLocationType" abstract="true" substitutionGroup="xls:_ADT"/>
<!-- ============================================================== -->
<complexType name="AbstractLocationType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Location can be one of four things: Position, POI, Address or Point. Each of those types has been defined in the XLS namespace with this in condiseration. </documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractDataType"/>
</complexContent>
</complexType>
<!-- ==================================================================
Position ADT
===================================================================== -->
<complexType name="AbstractPositionType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractLocationType"/>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="_Position" type="xls:AbstractPositionType" abstract="true" substitutionGroup="xls:_Location"/>
<!-- ============================================================== -->
<complexType name="PositionType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractPositionType">
<sequence>
<element ref="gml:Point"/>
<choice minOccurs="0">
<element ref="xls:Ellipse"/>
<element ref="gml:CircleByCenterPoint"/>
<element ref="xls:CircularArc"/>
<element ref="gml:Polygon"/>
<element ref="xls:MultiPolygon"/>
</choice>
<element name="QoP" type="xls:QualityOfPositionType" minOccurs="0">
<annotation>
<documentation>QoP as defined by LIF.</documentation>
</annotation>
</element>
<element ref="xls:Time" minOccurs="0"/>
<element name="Speed" type="xls:SpeedType" minOccurs="0"/>
<element name="Direction" type="xls:AngleType" minOccurs="0"/>
</sequence>
<attribute name="levelOfConf" type="string" use="optional"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="Position" type="xls:PositionType" substitutionGroup="xls:_Position">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>The Position ADT. Normally used to represent an observation/calculated position for a mobile terminal, but can be any position used by the platform. Contains Point with optional Shape, QoP, Speed, Direction and Time. Also has levelOfConfidence attribute.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="QualityOfPositionType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<sequence>
<element name="HorizontalAcc" type="xls:HorAccType"/>
<element name="VerticalAcc" type="xls:VerAccType"/>
</sequence>
<attribute name="responseReq" use="optional" default="Delay_Tol">
<simpleType>
<restriction base="string">
<enumeration value="No_Delay"/>
<enumeration value="Low_Delay"/>
<enumeration value="Delay_Tol"/>
</restriction>
</simpleType>
</attribute>
<attribute name="responseTimer" type="string" use="optional"/>
</complexType>
<!-- ============================================================== -->
<complexType name="HorAccType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<choice>
<element ref="xls:Distance"/>
<element ref="xls:Angle"/>
<!-- modified this type to Angle instead of multiangle based on Maidenhead decision not to use
multiangle in the OpenLS uom - marwa 26/1/02 -->
</choice>
</complexType>
<!-- ============================================================== -->
<complexType name="VerAccType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<sequence>
<element ref="xls:Distance"/>
</sequence>
</complexType>
<!-- ======================================================
Point of Interest ADT
===========================================================-->
<complexType name="AbstractPOIType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractLocationType"/>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="_POI" type="xls:AbstractPOIType" substitutionGroup="xls:_Location">
<annotation>
<documentation>Point of Interest is a place, product or service with a fixed position, typically identified by name rather than by address and characterized by type, that may be used as a reference point or a target in a location based service request.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="PointOfInterestType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractPOIType">
<sequence>
<annotation>
<documentation> We need to look more closely at this choice block (it's too restrictive). Since we don't have a getCapabilities, there is really no way that a client can discover the information a Directory Service could possibly return. Also, clients have no way to specify which of these information types they want returned (ReferenceSystem, POIInfoList, Point, and/or Address), like we do for GeoCode. Plus, when a Directory Service has two or more of these types, with the choice block there is no way for the a client to receive the full information set. Do we want to change this to a sequence block and/or change POIAttributeList and/or Point to optional? Also, we need to examine the role of POI in this form since it may not return a Point or Address and therefore may not have sufficient info to be used in location services that require a position of some sort.
[MM] 17/3/03. Made the change from a choice block to a sequence block. Made the elements optional inside the sequence block
</documentation>
</annotation>
<element ref="xls:POIAttributeList" minOccurs="0"/>
<element ref="gml:Point" minOccurs="0"/>
<element ref="xls:Address" minOccurs="0"/>
<!-- ref="xls:Point"/> -->
</sequence>
<attribute name="ID" type="string" use="required"/>
<attribute name="POIName" type="string" use="optional"/>
<attribute name="phoneNumber" type="string" use="optional"/>
<attribute name="description" type="string" use="optional"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="POI" type="xls:PointOfInterestType" substitutionGroup="xls:_POI">
<annotation>
<documentation>The POI ADT. Primarily generated in the responses from Directory Services. Can also be used as a filter in the request to a Directory Service for nearest/within distance conditions. </documentation>
</annotation>
</element>
<!-- ============================================================== -->
<element name="POIAttributeList" type="xls:POIAttributeListType">
<annotation>
<documentation>One or more formal name classifications and/or one or more name/value pairs.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="POIAttributeListType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<sequence>
<element ref="xls:ReferenceSystem" minOccurs="0"/>
<element ref="xls:POIInfoList" minOccurs="0"/>
</sequence>
</complexType>
<!-- ============================================================== -->
<complexType name="POIInfoListType">
<sequence>
<element ref="xls:POIInfo" maxOccurs="unbounded"/>
</sequence>
</complexType>
<!-- ============================================================== -->
<element name="POIInfoList" type="xls:POIInfoListType">
<annotation>
<documentation>List of other information available about the POI in name/value pairs.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="POIInfoType">
<attribute name="name" type="string" use="required"/>
<attribute name="value" type="string" use="required"/>
</complexType>
<!-- ============================================================== -->
<element name="POIInfo" type="xls:POIInfoType">
<annotation>
<documentation>POI Information defined as a Name/Value pair</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="ReferenceSystemType">
<sequence>
<element ref="xls:_NamedReferenceSystem" maxOccurs="unbounded"/>
</sequence>
</complexType>
<!-- ============================================================== -->
<element name="ReferenceSystem" type="xls:ReferenceSystemType">
<annotation>
<documentation>Formal name reference system. Three are defined here (NACE, NAICS and SIC), but any others may be defined and added to this schema.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="AbstractNamedReferenceSystem" abstract="true"/>
<!-- ============================================================== -->
<element name="_NamedReferenceSystem" type="xls:AbstractNamedReferenceSystem" abstract="true"/>
<!-- ============================================================== -->
<complexType name="NAICSType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractNamedReferenceSystem">
<attribute name="type" type="string" use="optional"/>
<attribute name="subType" type="string" use="optional"/>
<attribute name="category" type="string" use="optional"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="NAICS" type="xls:NAICSType" substitutionGroup="xls:_NamedReferenceSystem"/>
<!-- ============================================================== -->
<complexType name="SICType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractNamedReferenceSystem">
<attribute name="type" type="string" use="optional"/>
<attribute name="subType" type="string" use="optional"/>
<attribute name="category" type="string" use="optional"/>
<attribute name="code" type="string" use="optional"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="SIC" type="xls:SICType" substitutionGroup="xls:_NamedReferenceSystem"/>
<!-- ============================================================== -->
<complexType name="NACEType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractNamedReferenceSystem">
<attribute name="division" type="string" use="optional"/>
<attribute name="group" type="string" use="optional"/>
<attribute name="class" type="string" use="optional"/>
<attribute name="description" type="string" use="optional"/>
</extension>
</complexContent>
</complexType>
<element name="NACE" type="xls:NACEType" substitutionGroup="xls:_NamedReferenceSystem"/>
<!-- ============================================================================ -->
<element name="AOI" type="xls:AreaOfInterestType" substitutionGroup="xls:_ADT">
<annotation>
<documentation>The Area of Interest (AOI) ADT. Can be a Circle, Polygon or Point.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="AreaOfInterestType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractDataType">
<choice>
<element ref="gml:CircleByCenterPoint"/>
<element ref="gml:Polygon"/>
<element ref="gml:Envelope"/>
<!-- ref="xls:Circle"/> -->
<!-- <element ref="xls:Box"/> -->
</choice>
</extension>
</complexContent>
</complexType>
<!--=============================================================================
Address ADT definitions
================================================================================ -->
<complexType name="AbstractAddressType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>
The AddressType is the Address_ADT for OpenLS and it supports the concepts of the OGC Geocoder document 01-026r1
with some modifications which resulted in both simplifications and improved handling capability. The definition is also
broad enough to handle some of the more obscure occurrences of street addressing as well as handling the
case of when all you have is an un-parsed string representing the complete address. We could generalize this even
further to handle non-street addressing schemes found in other industries, such as the Municipal Survey Addressing
schemes that are used by Municipalities to address the lots on which a building may be placed but that is probably a
future requirement outside the scope of OLS1.
</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractLocationType">
<attribute name="addressee" type="string" use="optional"/>
<attribute name="countryCode" type="xls:CountryCodeType" use="required"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<simpleType name="CountryCodeType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation xml:lang="en">
ISO 3166 Alpha-2 Country Codes
</documentation>
</annotation>
<restriction base="string"/>
</simpleType>
<!-- ============================================================== -->
<complexType name="StreetAddressType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>A set of precise and complete data elements that cannot be subdivided and that describe the physical location of a place.</documentation>
</annotation>
<sequence>
<element ref="xls:_StreetLocation" minOccurs="0"/>
<element ref="xls:Street" maxOccurs="unbounded"/>
</sequence>
</complexType>
<!-- ============================================================== -->
<element name="StreetAddress" type="xls:StreetAddressType">
<annotation>
<documentation>Structured street address.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<element name="_StreetLocation" type="xls:AbstractStreetLocatorType">
<annotation>
<documentation>The location on a street.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="AbstractStreetLocatorType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>
The AbstractStreetLocatorType is an abstract type for describing the location on a street within an AddressType.
We do this because the components of a location on a street vary greatly throughout the world.
So that the schema can accommodate this variation we create derived types such as the
BuildingLocatorType which has the components for an apartment or suite or floor within a building.
</documentation>
</annotation>
</complexType>
<!-- ============================================================== -->
<element name="Building" type="xls:BuildingLocatorType" substitutionGroup="xls:_StreetLocation">
<annotation>
<documentation>An addressable place; normally a location on a street: number, subdivision name and/or building name.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="BuildingLocatorType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>A type of AbstractStreetLocatorType</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractStreetLocatorType">
<attribute name="number" type="string" use="optional"/>
<attribute name="subdivision" type="string" use="optional"/>
<attribute name="buildingName" type="string" use="optional"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<complexType name="StreetNameType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>The data elements that make up the name of a street. There are two valid methods for encoding this information: 1). Use the structured elements and attributes. 2). The element value may contain a simplified string (e.g. 43 West 83rd. Street).
An example: <Street directionalPrefix="W" officialName="83RD" typeSuffix="ST"/>
</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="directionalPrefix" type="string" use="optional">
<annotation>
<documentation>The direction for a street (e.g., North), placed before the official name.</documentation>
</annotation>
</attribute>
<attribute name="typePrefix" type="string" use="optional">
<annotation>
<documentation>The street type (e.g., Rd or Ave) specified before the official name
</documentation>
</annotation>
</attribute>
<attribute name="officialName" type="string" use="optional">
<annotation>
<documentation>
The name for a street (e.g., Main).
</documentation>
</annotation>
</attribute>
<attribute name="typeSuffix" type="string" use="optional">
<annotation>
<documentation>The street type (e.g., Rd or Ave) specified after the official name</documentation>
</annotation>
</attribute>
<attribute name="directionalSuffix" type="string" use="optional">
<annotation>
<documentation>The direction for a street (e.g., North), placed after the official name.</documentation>
</annotation>
</attribute>
<attribute name="muniOctant" type="gml:CompassPointEnumeration" use="optional"/>
</extension>
</simpleContent>
</complexType>
<!-- ============================================================== -->
<element name="Street" type="xls:StreetNameType">
<annotation>
<documentation>Structured Street Name.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<element name="Address" type="xls:AddressType" substitutionGroup="xls:_Location">
<annotation>
<documentation>The Address ADT. An address that is either a “Free Form Address” or a “Street Address” or an “Intersection Address”, with 0 or more “place” elements and an optional “postalCode” element. It also has two optional attributes, the “addressee” and the “phone number”, and one required attribute, the “country”.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="AddressType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Defines an address</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractAddressType">
<choice>
<element name="freeFormAddress" type="string">
<annotation>
<documentation>An unstructured free form address.</documentation>
</annotation>
</element>
<sequence>
<element ref="xls:StreetAddress"/>
<element ref="xls:Place" minOccurs="0" maxOccurs="unbounded"/>
<element ref="xls:PostalCode" minOccurs="0"/>
</sequence>
</choice>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<simpleType name="NamedPlaceClassification">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>The classification for the hierarchy a level of which is defined to be one of five different types: CountrySubDivision, CountrySecondarySubdivision, Municipality, or MunicipalitySubdivision.</documentation>
</annotation>
<restriction base="string">
<enumeration value="CountrySubdivision"/>
<enumeration value="CountrySecondarySubdivision"/>
<enumeration value="Municipality"/>
<enumeration value="MunicipalitySubdivision"/>
</restriction>
</simpleType>
<!-- ============================================================== -->
<element name="Place" type="xls:NamedPlaceType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Place represents a hierarchical set of geographic regions/placenames: country subdivision, country secondary subdivision, municipality, and municipality subdivision.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="NamedPlaceType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>
The NamedPlaceType defines a named place within an AddressType.
A named place has a classification (such as country, country subdivision, or municipality).
</documentation>
</annotation>
<simpleContent>
<extension base="string">
<attribute name="type" type="xls:NamedPlaceClassification" use="required"/>
</extension>
</simpleContent>
</complexType>
<!-- ============================================================== -->
<element name="PostalCode" type="xls:PostalCodeType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>A zipcode or international postal code as defined by the governing postal authority.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<simpleType name="PostalCodeType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>
The AbstractPostalCodeType is an abstract type for postal code within an AddressType.
We do this because the components of a postal code vary greatly throughout the world.
So that the schema can accommodate this variation we create derived types such as the
USZipCodeType which has the components for a US zipcode
</documentation>
</annotation>
<restriction base="string"/>
</simpleType>
<!-- ========================================================== -->
<annotation>
<documentation>These types don't fit well with ADTs, rather with Location Utility. Should move them. Also, GeocodingQOSType should be renamed GeocodeMatchCodeType, for consistency, or the element GeocodeMatchCode should be renamed GeocodingQOS.</documentation>
</annotation>
<!-- ============================================================== -->
<element name="GeocodeMatchCode" type="xls:GeocodingQOSType">
<annotation>
<documentation>Provides information on the quality of the match operation (accuracy and match code).</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="GeocodingQOSType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Quality of service type</documentation>
</annotation>
<attribute name="accuracy" type="float" use="optional">
<annotation>
<documentation>This is the score (probability) assocaited with the match function</documentation>
</annotation>
</attribute>
<attribute name="matchType" type="string" use="optional">
<annotation>
<documentation>Describes the type of match made by the function, example zip+4</documentation>
</annotation>
</attribute>
</complexType>
<!-- ======================================================
Map ADT
========================================================= -->
<element name="Map" type="xls:MapType" substitutionGroup="xls:_ADT"/>
<!-- ============================================================== -->
<complexType name="MapType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractDataType">
<sequence minOccurs="0">
<element name="Content" type="xls:ContentType"/>
<choice>
<element name="BBoxContext" type="gml:EnvelopeType"/>
<element name="CenterContext" type="xls:CenterContextType"/>
<!-- type="xls:BoxType"/> -->
</choice>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<complexType name="ContentType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<choice>
<element name="Data" type="string">
<annotation>
<documentation>Map data embeded into the xml (if map data is binary then it is base64 encoded) </documentation>
</annotation>
</element>
<element name="URL" type="string">
<annotation>
<documentation>The Data can be found at this URL</documentation>
</annotation>
</element>
</choice>
<attribute name="format" type="string" use="required"/>
<attribute name="width" type="integer" use="required"/>
<attribute name="height" type="integer" use="required"/>
</complexType>
<!-- ============================================================== -->
<complexType name="CenterContextType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<sequence>
<element name="CenterPoint" type="gml:PointType">
<annotation>
<documentation>lat/long WGS84 point to center the map on</documentation>
</annotation>
<!-- type="xls:PointType"> -->
</element>
<choice>
<sequence>
<element name="DisplayScale" type="integer">
<annotation>
<documentation>A ratio of distance. For example 1:5000 would be expressed as 5000, it's always expressed per 1 pixel of the display</documentation>
</annotation>
</element>
<element name="DPI" type="integer">
<annotation>
<documentation>Dots per Inch of the display device.</documentation>
</annotation>
</element>
</sequence>
<sequence>
<element name="Radius" type="xls:RadiusType">
<annotation>
<documentation>This defines the area that will be required to be displayed</documentation>
</annotation>
</element>
</sequence>
</choice>
</sequence>
<attribute name="azimuth" type="integer" use="optional">
<annotation>
<documentation>The orientation of the map, clockwise degrees from north.</documentation>
</annotation>
</attribute>
<attribute name="SRS" type="string" use="required">
<annotation>
<documentation>The Spatial Reference System that the data with be projected to in EPSG:XXXX format (getCapabilites provides the list of SRS's supported).</documentation>
</annotation>
</attribute>
</complexType>
<!-- ============================================================== -->
<complexType name="RadiusType">
<annotation>
<appinfo source="ADT.xsd"/>
</annotation>
<simpleContent>
<extension base="decimal">
<attribute name="unit" type="xls:DistanceUnitType" use="required"/>
</extension>
</simpleContent>
</complexType>
<!-- ===============================================================================
Route Abstract Types
==================================================================================== -->
<complexType name="AbstractRouteSummaryType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Abstract type which specifies a route's overall characteristics.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractDataType">
<sequence>
<element name="TotalTime" type="duration">
<annotation>
<documentation>Estimated time to travel the complete route. Expressed as a duration as defined by W3C. reference URL: http://www.w3c.org/TR/xmlschema-2/</documentation>
</annotation>
</element>
<element name="TotalDistance" type="xls:DistanceType">
<annotation>
<documentation>Total distance covered by the route.</documentation>
</annotation>
</element>
<element ref="xls:BoundingBox">
<annotation>
<documentation>Rectangular area bounding the complete route.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="_RouteSummary" type="xls:AbstractRouteSummaryType" abstract="true" substitutionGroup="xls:_ADT">
<annotation>
<documentation>Base element which represents a route's overall characteristics.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="AbstractRouteSegmentType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Defines the characteristics of a segment along a route.</documentation>
</annotation>
<sequence>
<element ref="xls:Distance">
<annotation>
<documentation>Distance along the segment.</documentation>
</annotation>
</element>
<element name="TravelTime" type="duration">
<annotation>
<documentation>Estimated time to travel the complete route, Expressed as a duration as defined by W3C. reference URL: http://www.w3c.org/TR/xmlschema-2</documentation>
</annotation>
</element>
<element ref="xls:BoundingBox">
<annotation>
<documentation>Rectangular area bounding the segment.</documentation>
</annotation>
</element>
</sequence>
<attribute name="name" type="string" use="optional">
<annotation>
<documentation>Name of segment, e.g.: street name, or the name of the public transit line. When the name is unknown, this should be an empty string. When not specified, the name is assumed to be the same as the previous segment.</documentation>
</annotation>
</attribute>
</complexType>
<!-- ============================================================== -->
<element name="_NextSegment" type="xls:AbstractRouteSegmentType" abstract="true">
<annotation>
<documentation>Base element which represents the information about the segment of the route between the current maneuver and the next.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="AbstractWayPointType" abstract="true">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Abstract type representing a location to be visited along a route.</documentation>
</annotation>
</complexType>
<!-- ============================================================== -->
<element name="_WayPoint" type="xls:AbstractWayPointType" abstract="true">
<annotation>
<documentation>A location to be visited along a route.</documentation>
</annotation>
</element>
<!-- ===============================================================================
Route ADT
==================================================================================== -->
<complexType name="RouteSummaryType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Specifies a route's overall characteristics.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractRouteSummaryType"/>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="RouteSummary" type="xls:RouteSummaryType" substitutionGroup="xls:_RouteSummary">
<annotation>
<documentation>A route's overall characteristics.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<element name="BoundingBox" type="gml:EnvelopeType">
<annotation>
<documentation>Rectangular bounding area.</documentation>
</annotation>
<!-- type="xls:BoxType" changed to gml:EnvelopeType -->
</element>
<!-- ============================================================== -->
<complexType name="RouteSegmentType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Defines the characteristics of a segment along a route.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractRouteSegmentType"/>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="NextSegment" type="xls:RouteSegmentType" substitutionGroup="xls:_NextSegment">
<annotation>
<documentation>Information about the segment of the route between this maneuver and the next.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="WayPointType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Defines a location to be visited along a route.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractWayPointType">
<sequence>
<element ref="xls:_Location"/>
<element ref="xls:GeocodeMatchCode" minOccurs="0"/>
</sequence>
<attribute name="stop" type="boolean" use="optional" default="true">
<annotation>
<documentation>Specifies whether the traveler plans to stop at the waypoint, or simply pass through it. </documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="StartPoint" type="xls:WayPointType" substitutionGroup="xls:_WayPoint">
<annotation>
<documentation>Starting point of the route.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<element name="ViaPoint" type="xls:WayPointType" substitutionGroup="xls:_WayPoint">
<annotation>
<documentation>Intermediate waypoint along the route.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<element name="EndPoint" type="xls:WayPointType" substitutionGroup="xls:_WayPoint">
<annotation>
<documentation>Ending point of the route (i.e. the destination)</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="WayPointListType">
<annotation>
<documentation>Defines a list of waypoints along a route.</documentation>
</annotation>
<sequence>
<element ref="xls:StartPoint"/>
<element ref="xls:ViaPoint" minOccurs="0" maxOccurs="unbounded"/>
<element ref="xls:EndPoint"/>
</sequence>
</complexType>
<!-- ============================================================== -->
<element name="WayPointList" type="xls:WayPointListType">
<annotation>
<documentation>List of waypoints along a route.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<element name="RouteInstructionsList" type="xls:RouteInstructionsListType" substitutionGroup="xls:_ADT">
<annotation>
<documentation>A list of route instructions.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="RouteInstructionsListType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Defines a list of route instructions.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractDataType">
<sequence>
<element ref="xls:RouteInstruction" maxOccurs="unbounded"/>
</sequence>
<attribute name="format" type="string" use="optional" default="text/plain">
<annotation>
<documentation>Mime type describing the encoding.</documentation>
</annotation>
</attribute>
<attribute ref="xls:lang" use="required">
<annotation>
<documentation>Specifies the language in which the instructions are given.</documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<complexType name="RouteInstructionType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Defines a single turn-by-turn route instruction or advisory formatted for presentation.</documentation>
</annotation>
<sequence>
<element name="Instruction" type="string"/>
<element name="distance" type="xls:DistanceType"/>
<element name="RouteInstructionGeometry" type="xls:RouteGeometryType" minOccurs="0"/>
<element name="BoundingBox" type="gml:EnvelopeType" minOccurs="0"/>
</sequence>
<attribute name="duration" type="duration" use="required">
<annotation>
<documentation>Specifies the duration needed to execute those instructions. Duration is expressed as defined in the W3C defintion. Reference URL: http://www.w3c.org/TR/xmlschema-2/</documentation>
</annotation>
</attribute>
<attribute name="description" type="string">
<annotation>
<documentation>Allows the route instruction to be matched with a RouteMapType. For example "maneuver 1"</documentation>
</annotation>
</attribute>
</complexType>
<!-- ============================================================== -->
<element name="RouteInstruction" type="xls:RouteInstructionType">
<annotation>
<documentation>A turn-by-turn route instruction or advisory formatted for presentation.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<element name="RouteHandle" type="xls:RouteHandleType">
<annotation>
<documentation>A reference to a route stored at the Route Determination Service server.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="RouteHandleType">
<annotation>
<documentation>Defines a reference to a route stored at the Route Determination Service server.</documentation>
</annotation>
<attribute name="serviceID" type="string" use="optional">
<annotation>
<documentation>Uniquely identifies the service which holds the route.</documentation>
</annotation>
</attribute>
<attribute name="routeID" type="string" use="required">
<annotation>
<documentation>Uniquely identifies the route store at the service.</documentation>
</annotation>
</attribute>
</complexType>
<!-- ============================================================== -->
<complexType name="RouteGeometryType">
<annotation>
<appinfo source="ADT.xsd"/>
<documentation>Defines the geometry of a route.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractDataType">
<sequence>
<element ref="gml:LineString"/>
<!-- ref="xls:LineString"/> -->
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ============================================================== -->
<element name="RouteGeometry" type="xls:RouteGeometryType" substitutionGroup="xls:_ADT">
<annotation>
<documentation>Geometry of a route.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<!-- ====================== Route Service Basic =================================== -->
<!-- ========================================================================== -->
<element name="DetermineRouteRequest" type="xls:DetermineRouteRequestType" substitutionGroup="xls:_RequestParameters">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Specifies the Determine Route request parameters.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<complexType name="DetermineRouteRequestType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines the Determine Route request parameters.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractRequestParametersType">
<sequence>
<choice>
<element ref="xls:RouteHandle">
<annotation>
<documentation>Reference to a proviously determined route stored at the Route Determination Service server.</documentation>
</annotation>
</element>
<element ref="xls:RoutePlan"/>
</choice>
<element ref="xls:RouteInstructionsRequest" minOccurs="0">
<annotation>
<documentation>Request parameters for turn-by-turn route directions and advisories formatted for presentation.</documentation>
</annotation>
</element>
<element ref="xls:RouteGeometryRequest" minOccurs="0">
<annotation>
<documentation>Request parameters for route geometry.</documentation>
</annotation>
</element>
<element ref="xls:RouteMapRequest" minOccurs="0"/>
</sequence>
<attribute name="provideRouteHandle" type="boolean" use="optional" default="false">
<annotation>
<documentation>Requests the return of a route handle.</documentation>
</annotation>
</attribute>
<attribute name="distanceUnit" type="xls:DistanceUnitType" use="optional" default="M">
<annotation>
<documentation>Specifies the unit for measuring distance.</documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<!-- ========================================================================== -->
<element name="RoutePlan" type="xls:RoutePlanType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>The criteria upon which a route is determined.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<complexType name="RoutePlanType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines the criteria upon which a route is determined.</documentation>
</annotation>
<sequence>
<element ref="xls:RoutePreference"/>
<element ref="xls:WayPointList"/>
<element ref="xls:AvoidList" minOccurs="0"/>
</sequence>
<attribute name="useRealTimeTraffic" type="boolean" use="optional" default="false">
<annotation>
<documentation>Specifies whether to use real time traffic information when determining the best route.</documentation>
</annotation>
</attribute>
<attribute name="expectedStartTime" type="dateTime" use="optional">
<annotation>
<documentation>Specifies the date and time at which travel is expected to begin. Specified in the format YYYY-MM-DD HH:MM. Defaults to current date and time.</documentation>
</annotation>
</attribute>
<attribute name="expectedEndTime" type="dateTime" use="optional">
<annotation>
<documentation>Specifies the date and time at which travel is expected to end. The format for the end time is specified as Duration</documentation>
</annotation>
</attribute>
</complexType>
<!-- ========================================================================== -->
<element name="AvoidList" type="xls:AvoidListType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>The list of areas, locations, and types of features in which the route should avoid passing through.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<complexType name="AvoidListType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines the list of areas, locations, and types of features in which the route should avoid passing through.</documentation>
</annotation>
<sequence>
<element ref="xls:AOI" minOccurs="0" maxOccurs="unbounded">
<annotation>
<documentation>List of geographic areas to avoid.</documentation>
</annotation>
</element>
<element ref="xls:_Location" minOccurs="0" maxOccurs="unbounded">
<annotation>
<documentation>List of locations to avoid.</documentation>
</annotation>
</element>
<element ref="xls:AvoidFeature" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</complexType>
<!-- ========================================================================== -->
<element name="RouteMapRequest" type="xls:RouteMapRequestType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>The request parameters for route maps.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<complexType name="RouteMapRequestType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines the request parameters for route maps.</documentation>
</annotation>
<sequence>
<element name="Output" type="xls:RouteMapOutputType" maxOccurs="unbounded"/>
</sequence>
</complexType>
<!-- ========================================================================== -->
<complexType name="RouteMapOutputType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines the rendered route map output parameters.</documentation>
</annotation>
<sequence>
<element name="BBoxContext" type="gml:EnvelopeType" minOccurs="0">
<annotation>
<documentation>Rectangular area to be displayed in the rendered map. If not specified, defaults to full route.</documentation>
</annotation>
<!-- type="xls:BoxType" -->
</element>
</sequence>
<attribute name="width" type="nonNegativeInteger">
<annotation>
<documentation>pixel width of the resulting map</documentation>
</annotation>
</attribute>
<attribute name="height" type="nonNegativeInteger">
<annotation>
<documentation>pixel height of the resulting map</documentation>
</annotation>
</attribute>
<attribute name="format" type="string">
<annotation>
<documentation>mime type describing the encoding</documentation>
</annotation>
</attribute>
<attribute name="BGcolor" type="string" use="optional"/>
<attribute name="transparent" type="boolean" use="optional"/>
<attribute name="style" type="xls:RouteMapStyleType" use="optional"/>
</complexType>
<!-- ========================================================================== -->
<simpleType name="RouteMapStyleType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>A route map can be either an overview or a maneuver</documentation>
</annotation>
<restriction base="string">
<enumeration value="Overview">
<annotation>
<documentation>Used to describe the map showing the full route</documentation>
</annotation>
</enumeration>
<enumeration value="Maneuver">
<annotation>
<documentation>Used to describe the map showing a particular maneuver (often the maneuver corresponds to a single instruction)</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<!-- ========================================================================== -->
<element name="RouteInstructionsRequest" type="xls:RouteInstructionsRequestType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>The request parameters for turn-by-turn route instructions and travel advisories formatted for presentation.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<complexType name="RouteInstructionsRequestType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines the request parameters for turn-by-turn route instructions and travel advisories formatted for presentation.</documentation>
</annotation>
<attribute name="format" type="string" use="optional" default="text/plain">
<annotation>
<documentation>The preferred format of the route instructions, specified as a mime type.</documentation>
</annotation>
</attribute>
<attribute name="provideGeometry" type="boolean" use="optional" default="false"/>
<attribute name="provideBoundingBox" type="boolean" use="optional" default="false"/>
</complexType>
<!-- ========================================================================== -->
<element name="RouteGeometryRequest" type="xls:RouteGeometryRequestType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>The request parameters for route geometry.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<complexType name="RouteGeometryRequestType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines the request parameters for route geometry.</documentation>
</annotation>
<sequence>
<element name="BoundingBox" type="gml:EnvelopeType" minOccurs="0">
<annotation>
<documentation>Rectangular area of route for which the geometry is requested. If not specified, defaults to full route.</documentation>
</annotation>
<!-- type="xls:BoxType" -->
</element>
</sequence>
<attribute name="scale" type="positiveInteger" use="optional" default="1">
<annotation>
<documentation>Maximum scale at which the route will be displayed. Expressed as a ratio of world units to a device unit. For example 1:50000 would be specified as 50000.</documentation>
</annotation>
</attribute>
<attribute name="provideStartingPortion" type="boolean" use="optional" default="false">
<annotation>
<documentation>If true, return the geometry of the starting portion of the route contained within the specified bounding area, up to the specified maximum number of points. If false, return the geometry of the complete route contained within the specified area, reducing the accuracy of the geometry as necessary to not exceed the specified maximum number of points.</documentation>
</annotation>
</attribute>
<attribute name="maxPoints" type="positiveInteger" use="optional" default="100">
<annotation>
<documentation>Maximum number of geometric points to return.</documentation>
</annotation>
</attribute>
</complexType>
<!-- ===================================================================================
Response
====================================================================================== -->
<element name="DetermineRouteResponse" type="xls:DetermineRouteResponseType" substitutionGroup="xls:_ResponseParameters">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Specifies the Determine Route response parameters.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<complexType name="DetermineRouteResponseType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines the Determine Route response parameters.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractResponseParametersType">
<sequence>
<element ref="xls:RouteHandle" minOccurs="0">
<annotation>
<documentation>Reference to the route stored at the Route Determination Service server.</documentation>
</annotation>
</element>
<element ref="xls:RouteSummary">
<annotation>
<documentation>Response for requested route summary.</documentation>
</annotation>
</element>
<element ref="xls:RouteGeometry" minOccurs="0">
<annotation>
<documentation>Response for requested route geometry.</documentation>
</annotation>
</element>
<element ref="xls:RouteInstructionsList" minOccurs="0">
<annotation>
<documentation>Response for requested route instructions.</documentation>
</annotation>
</element>
<element ref="xls:RouteMap" minOccurs="0" maxOccurs="unbounded">
<annotation>
<documentation>Response list for requested route maps.</documentation>
</annotation>
</element>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- ========================================================================== -->
<element name="RouteMap" type="xls:RouteMapType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>A route map.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<complexType name="RouteMapType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Defines a route map.</documentation>
</annotation>
<complexContent>
<extension base="xls:MapType">
<attribute name="description" type="string">
<annotation>
<documentation>Allows the route instruction to be matched with a RouteMapType. For example "maneuver 1"</documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<!-- ========================================================================== -->
<element name="AvoidFeature" type="xls:AvoidFeatureType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Type of feature to avoid when determining the route.</documentation>
</annotation>
</element>
<!-- ========================================================================== -->
<simpleType name="AvoidFeatureType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Enumeration of types of features to avoid when determining the route.</documentation>
</annotation>
<restriction base="string">
<enumeration value="Highway">
<annotation>
<documentation>Minimize the use of highways.</documentation>
</annotation>
</enumeration>
<enumeration value="Tollway">
<annotation>
<documentation>Minimize tolls.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<!-- ========================================================================== -->
<simpleType name="RoutePreferenceType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Enumeration of preferences to be taken into consideration when determining the route.</documentation>
</annotation>
<restriction base="string">
<enumeration value="Fastest">
<annotation>
<documentation>Minimize the travel time by vehicle.</documentation>
</annotation>
</enumeration>
<enumeration value="Shortest">
<annotation>
<documentation>Minimize the travel distance by vehicle.</documentation>
</annotation>
</enumeration>
<enumeration value="Pedestrian">
<annotation>
<documentation>Best route by foot.</documentation>
</annotation>
</enumeration>
</restriction>
</simpleType>
<!-- ========================================================================== -->
<element name="RoutePreference" type="xls:RoutePreferenceType">
<annotation>
<appinfo source="RouteService.xsd"/>
<documentation>Preference to be taken into consideration when determining the route.</documentation>
</annotation>
</element>
<!-- =============================================================================== -->
<!-- definitions formerly included from geometry4xls.xsd -->
<!-- =============================================================================== -->
<!-- =============================== type ===================================== -->
<complexType name="EllipseType">
<annotation>
<appinfo source="geometry.xsd"/>
</annotation>
<complexContent>
<extension base="gml:AbstractGeometricPrimitiveType">
<sequence>
<element ref="gml:pos"/>
<element name="majorAxis" type="gml:LengthType"/>
<element name="minorAxis" type="gml:LengthType"/>
<element name="rotation" type="gml:AngleType"/>
</sequence>
</extension>
</complexContent>
</complexType>
<!-- =============================== element =================================== -->
<element name="Ellipse" type="xls:EllipseType"/>
<!-- =============================== LIF CicularArcArea Element ===================================== -->
<element name="CircularArc" type="xls:CircularArcType">
<annotation>
<appinfo source="geometry.xsd"/>
<documentation>A CircularArc is a geometric object defined by LIF (MLP 3.0) which is defined by two arcs (r[1] > r[2]), and two lines that radiate from the center point, at a given start angle and end angle. As with the definitions for circle and ellipse, this object is defined by its parameters: a center point, two radii, and two angles. This represenation can be used only in 2D.</documentation>
</annotation>
</element>
<!-- ============================================================== -->
<complexType name="CircularArcType">
<annotation>
<documentation>This is Modeled after GML ArcByCenterPointType. </documentation>
</annotation>
<complexContent>
<extension base="gml:AbstractGeometricPrimitiveType">
<sequence>
<element ref="gml:pos"/>
<element name="innerRadius" type="gml:LengthType">
<annotation>
<documentation>The radius of the inner arc.</documentation>
</annotation>
</element>
<element name="outerRadius" type="gml:LengthType">
<annotation>
<documentation>The radius of the outer arc.</documentation>
</annotation>
</element>
<element name="startAngle" type="gml:AngleType">
<annotation>
<documentation>The bearing of the arc and radial line at the start.</documentation>
</annotation>
</element>
<element name="endAngle" type="gml:AngleType">
<annotation>
<documentation>The bearing of the arc and radial line at the end.</documentation>
</annotation>
</element>
</sequence>
<attribute name="interpolation" type="gml:CurveInterpolationType" fixed="circularArcCenterPointWithRadius">
<annotation>
<documentation>The attribute "interpolation" specifies the curve interpolation mechanism used for this segment. This mechanism
uses the control points and control parameters to determine the position of this curve segment. For an ArcByCenterPoint the interpolation is fixed as "circularArcCenterPointWithRadius".</documentation>
</annotation>
</attribute>
<attribute name="numArc" type="integer" use="required" fixed="1">
<annotation>
<documentation>Since this type describes always a single arc, the attribute is fixed to "1".</documentation>
</annotation>
</attribute>
</extension>
</complexContent>
</complexType>
<!-- ========================end of circular arc ========================= -->
<!-- =============================== element =================================== -->
<element name="lineStringProperty" type="xls:LineStringPropertyType">
<annotation>
<documentation>Replacement for gml:LineStringProperty Deprecated with GML 3.0 </documentation>
</annotation>
</element>
<!-- =========================================================== -->
<complexType name="LineStringPropertyType">
<annotation>
<appinfo source="geometry4xls.xsd"/>
<documentation> A property that has a line string as its value domain as an appropriate geometry element encapsulated
in an element of this type. </documentation>
</annotation>
<sequence minOccurs="0">
<element ref="gml:LineString"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</complexType>
<!-- =========================================================== -->
<!-- substitutionGroup="gml:surfaceMember" -->
<element name="polygonProperty" type="xls:PolygonPropertyType">
<annotation>
<documentation>Replacement for gml:PolygonProperty Deprecated with GML 3.0</documentation>
</annotation>
</element>
<!-- =============================== element =================================== -->
<element name="polygonMember" type="xls:PolygonPropertyType"/>
<!-- substitutionGroup="gml:surfaceMember"/> -->
<!-- =============================== type ===================================== -->
<complexType name="PolygonPropertyType">
<annotation>
<appinfo source="geometry4xls.xsd"/>
<documentation>Replacement for gml:PolygonPropertyType Deprecated with GML 3.0 </documentation>
</annotation>
<sequence minOccurs="0">
<element ref="gml:Polygon"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
<!-- <complexContent>
<restriction base="gml:SurfacePropertyType">
<sequence minOccurs="0">
<element ref="gml:Polygon"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent> -->
</complexType>
<!-- =============================== element =================================== -->
<element name="MultiPolygon" type="xls:MultiPolygonType" substitutionGroup="gml:_GeometricAggregate"/>
<!-- substitutionGroup="gml:MultiSurface"/> -->
<!-- =============================== type ======================================= -->
<complexType name="MultiPolygonType">
<annotation>
<appinfo source="geometry4xls.xsd"/>
<documentation>A MultiPolygon is defined by one or more Polygons, referenced through polygonMember elements.
This type replaces the gml:MultiPolygonType that was deprecated in GML3.1.1 and will dissapear from ISO/GML 3.2.</documentation>
</annotation>
<complexContent>
<extension base="gml:AbstractGeometricAggregateType">
<sequence>
<element ref="xls:polygonMember" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</extension>
</complexContent>
<!-- <complexContent>
<restriction base="gml:MultiSurfaceType">
<sequence>
<element ref="xls:polygonMember" minOccurs="0" maxOccurs="unbounded"/>
</sequence>
</restriction>
</complexContent> -->
</complexType>
<!-- =============================== element =================================== -->
<element name="multiPolygonProperty" type="xls:MultiPolygonPropertyType"/>
<!-- substitutionGroup="gml:multiSurfaceProperty"/> -->
<!-- =============================== type ===================================== -->
<complexType name="MultiPolygonPropertyType">
<annotation>
<appinfo source="geometry4xls.xsd"/>
<documentation>Replacement for gml:MultiPolygonPropertyType Deprecated with GML 3.0 </documentation>
</annotation>
<sequence minOccurs="0">
<element ref="xls:MultiPolygon"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
<!-- <complexContent>
<restriction base="gml:MultiSurfacePropertyType">
<sequence minOccurs="0">
<element ref="xls:MultiPolygon"/>
</sequence>
<attributeGroup ref="gml:AssociationAttributeGroup"/>
</restriction>
</complexContent> -->
</complexType>
<!-- =============================================================================== -->
<!-- definitions formerly included from UOM.xsd -->
<!-- =============================================================================== -->
<complexType name="AbstractMeasureType" abstract="true">
<annotation>
<appinfo source="UOM.xsd"/>
</annotation>
<attribute name="value" type="decimal" use="required"/>
<attribute name="accuracy" type="decimal" use="optional"/>
</complexType>
<!-- ============================================================= -->
<element name="_Measure" type="xls:AbstractMeasureType" abstract="true"/>
<!-- ============================================================= -->
<simpleType name="DistanceUnitType">
<annotation>
<appinfo source="UOM.xsd"/>
</annotation>
<restriction base="string">
<enumeration value="KM"/>
<enumeration value="M"/>
<enumeration value="DM"/>
<enumeration value="MI"/>
<enumeration value="YD"/>
<enumeration value="FT"/>
</restriction>
</simpleType>
<!-- ============================================================= -->
<complexType name="DistanceType">
<annotation>
<appinfo source="UOM.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractMeasureType">
<attribute name="uom" type="xls:DistanceUnitType" use="optional" default="M"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================= -->
<element name="Distance" type="xls:DistanceType" substitutionGroup="xls:_Measure"/>
<!-- ============================================================= -->
<complexType name="AltitudeType">
<annotation>
<appinfo source="UOM.xsd"/>
</annotation>
<complexContent>
<extension base="xls:DistanceType"/>
</complexContent>
</complexType>
<!-- ============================================================= -->
<element name="Altitude" type="xls:AltitudeType"/>
<!-- ============================================================= -->
<complexType name="AngleType">
<annotation>
<appinfo source="UOM.xsd"/>
<documentation>This type is used as a unit of measure for ADTs only, it's not used by the GML3 geometry. This will be a point for future work of harmonization.</documentation>
</annotation>
<complexContent>
<extension base="xls:AbstractMeasureType">
<attribute name="uom" type="string" use="optional" fixed="DecimalDegrees"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================= -->
<element name="Angle" type="xls:AngleType" substitutionGroup="xls:_Measure"/>
<!-- ============================================================= -->
<simpleType name="SpeedUnitType">
<annotation>
<appinfo source="UOM.xsd"/>
</annotation>
<restriction base="string">
<enumeration value="KPH"/>
<enumeration value="MPH"/>
<enumeration value="MPS"/>
<enumeration value="FPS"/>
</restriction>
</simpleType>
<!-- ============================================================= -->
<complexType name="SpeedType">
<annotation>
<appinfo source="UOM.xsd"/>
</annotation>
<complexContent>
<extension base="xls:AbstractMeasureType">
<attribute name="uom" type="xls:SpeedUnitType" use="optional" default="KPH"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================= -->
<element name="Speed" type="xls:SpeedType" substitutionGroup="xls:_Measure"/>
<!-- ============================================================= -->
<complexType name="TimeStampType">
<annotation>
<appinfo source="UOM.xsd"/>
</annotation>
<attribute name="begin" type="dateTime" use="required"/>
<attribute name="duration" type="duration" use="optional"/>
</complexType>
<!-- ============================================================= -->
<element name="TimeStamp" type="xls:TimeStampType"/>
<!-- ============================================================= -->
<complexType name="TimeType">
<annotation>
<appinfo source="UOM.xsd"/>
</annotation>
<complexContent>
<extension base="xls:TimeStampType">
<attribute name="utcOffset" type="integer" use="optional"/>
</extension>
</complexContent>
</complexType>
<!-- ============================================================= -->
<element name="Time" type="xls:TimeType"/>
<!-- ============================================================= -->
<!-- =============== XLS definitions ================================= -->
<!-- ============================================================= -->
<element name="_RequestParameters" type="xls:AbstractRequestParametersType" abstract="true">
<annotation>
<appinfo source="XLS.xsd"/>
<documentation>Base element representing the set of parameters for a service request.</documentation>
</annotation>
</element>
<!-- ============================================================= -->
<complexType name="AbstractRequestParametersType" abstract="true">
<annotation>
<appinfo source="XLS.xsd"/>
<documentation>Abstract type representing the set of parameters for a service request.</documentation>
</annotation>
</complexType>
<!-- ============================================================= -->
<element name="_ResponseParameters" type="xls:AbstractResponseParametersType" abstract="true">
<annotation>
<appinfo source="XLS.xsd"/>
<documentation>Base element representing the response information returned from a service request.</documentation>
</annotation>
</element>
<!-- ============================================================= -->
<complexType name="AbstractResponseParametersType" abstract="true">
<annotation>
<appinfo source="XLS.xsd"/>
<documentation>Abstract type representing the response information returned from a service request.</documentation>
</annotation>
</complexType>
<!-- ============================================================= -->
</schema>
|