<application xmlns="http://wadl.dev.java.net/2009/02" xmlns:xs="http://www.w3.org/2001/XMLSchema">
<grammars>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" attributeFormDefault="unqualified"
elementFormDefault="qualified">
<xs:element name="keyLookupRequest" type="keyLookupRequest"/>
<xs:complexType name="keyLookupRequest">
<xs:sequence>
<xs:element form="unqualified" minOccurs="0" name="type" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="preferences"
type="Preferences"/>
<xs:element form="unqualified" maxOccurs="unbounded" minOccurs="0" name="keys"
nillable="true" type="key"/>
</xs:sequence>
</xs:complexType>
<xs:element name="reverseGeocodeRequest" type="ReverseGeocodeRequest"/>
<xs:complexType name="ReverseGeocodeRequest">
<xs:sequence>
<xs:element form="unqualified" minOccurs="0" name="preferences"
type="Preferences"/>
<xs:element form="unqualified" maxOccurs="unbounded" minOccurs="0" name="points"
type="Points"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Preferences">
<xs:sequence>
<xs:element form="unqualified" name="returnAllCandidateInfo" nillable="true"
type="xs:boolean"/>
<xs:element form="unqualified" name="fallbackToGeographic" nillable="true"
type="xs:string"/>
<xs:element form="unqualified" name="fallbackToPostal" nillable="true"
type="xs:string"/>
<xs:element form="unqualified" name="maxReturnedCandidates" nillable="true"
type="xs:string"/>
<xs:element form="unqualified" name="distance" nillable="true" type="xs:string"/>
<xs:element form="unqualified" name="streetOffset" nillable="true"
type="xs:string"/>
<xs:element form="unqualified" name="cornerOffset" nillable="true"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="matchMode" nillable="true"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="clientLocale"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="clientCoordSysName"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="distanceUnits"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="streetOffsetUnits"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="cornerOffsetUnits"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="mustMatchFields"
type="FieldsMatching"/>
<xs:element form="unqualified" minOccurs="0" name="returnFieldsDescriptor"
type="ReturnFieldsDescriptor"/>
<xs:element form="unqualified" name="customPreferences">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="key" type="xs:anyType"/>
<xs:element minOccurs="0" name="value" type="xs:anyType"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element form="unqualified" maxOccurs="unbounded" minOccurs="0"
name="preferredDictionaryOrders" nillable="true" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="outputCasing" nillable="true"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="defaultBufferWidth"
nillable="true" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="returnCensusFields"
nillable="true" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="returnLatLongFields"
nillable="true" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="latLongOffset"
nillable="true" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="squeeze" nillable="true"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="useGeoTaxAuxiliaryFile"
nillable="true" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="latLongFormat"
nillable="true" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="taxRatetypeID"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="outputRecordType"
type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="FieldsMatching">
<xs:sequence>
<xs:element form="unqualified" name="matchOnAddressNumber" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnPostCode1" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnPostCode2" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnAreaName1" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnAreaName2" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnAreaName3" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnAreaName4" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnAllStreetFields" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnStreetName" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnStreetType" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnStreetDirectional" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnPlaceName" type="xs:boolean"/>
<xs:element form="unqualified" name="matchOnInputFields" type="xs:boolean"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="ReturnFieldsDescriptor">
<xs:sequence>
<xs:element form="unqualified" name="returnAllCustomFields" type="xs:boolean"/>
<xs:element form="unqualified" name="returnMatchDescriptor" type="xs:boolean"/>
<xs:element form="unqualified" name="returnStreetAddressFields"
type="xs:boolean"/>
<xs:element form="unqualified" name="returnUnitInformation" type="xs:boolean"/>
<xs:element form="unqualified" maxOccurs="unbounded" minOccurs="0"
name="returnedCustomFieldKeys" nillable="true" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Points">
<xs:sequence>
<xs:element form="unqualified" name="country" type="xs:string"/>
<xs:element form="unqualified" name="geometry" type="GeoPos"/>
<xs:element form="unqualified" minOccurs="0" name="objectId" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeoPos">
<xs:sequence>
<xs:element form="unqualified" name="type" type="xs:string"/>
<xs:element form="unqualified" maxOccurs="unbounded" minOccurs="0"
name="coordinates" type="xs:double"/>
<xs:element form="unqualified" name="crs" type="Crs"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Crs">
<xs:sequence>
<xs:element form="unqualified" name="type" type="xs:string"/>
<xs:element form="unqualified" name="properties" type="Properties"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Properties">
<xs:sequence>
<xs:element form="unqualified" name="name" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="keyByAddressRequest" type="KeyByAddressRequest"/>
<xs:complexType name="KeyByAddressRequest">
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" ref="address"/>
</xs:sequence>
</xs:complexType>
<xs:element name="address" type="address"/>
<xs:complexType name="address">
<xs:sequence>
<xs:element form="unqualified" minOccurs="0" name="objectId" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="displayName" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="streetSide" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="addressLine1"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="addressLine2"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="addressLine3"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="city" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="stateProvince"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="county" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="postalCode" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="latitude" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="longitude" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="status" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="urbanizationName"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="formattedAddress"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="mainAddressLine"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="addressLastLine"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="placeName" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="areaName1" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="areaName2" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="areaName3" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="areaName4" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="postCode" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="postCodeExt" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="country" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="addressNumber"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="streetName" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="unitType" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="unitValue" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:element name="geocodeRequest" type="GeocodeRequest"/>
<xs:complexType name="GeocodeRequest">
<xs:sequence>
<xs:element form="unqualified" minOccurs="0" name="type" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="preferences"
type="Preferences"/>
<xs:element form="unqualified" maxOccurs="unbounded" minOccurs="0"
name="addresses" type="Address"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="Address">
<xs:sequence>
<xs:element form="unqualified" minOccurs="0" name="mainAddressLine"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="addressLastLine"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="placeName" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="areaName1" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="areaName2" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="areaName3" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="areaName4" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="postCode1" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="postCode2" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="country" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="addressNumber"
type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="streetName" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="unitType" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="unitValue" type="xs:string"/>
<xs:element form="unqualified" name="customFields">
<xs:complexType>
<xs:sequence>
<xs:element maxOccurs="unbounded" minOccurs="0" name="entry">
<xs:complexType>
<xs:sequence>
<xs:element minOccurs="0" name="key" type="xs:anyType"/>
<xs:element minOccurs="0" name="value" type="xs:anyType"
/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element form="unqualified" minOccurs="0" name="objectId" type="xs:string"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeocodeESRIRequest">
<xs:sequence>
<xs:element form="unqualified" minOccurs="0" name="records" type="GeocodeESRIRecords"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeocodeESRIRecords">
<xs:sequence>
<xs:element form="unqualified" minOccurs="0" name="attributes" type="GeocodeESRIAttributes"/>
</xs:sequence>
</xs:complexType>
<xs:complexType name="GeocodeESRIAttributes">
<xs:sequence>
<xs:element form="unqualified" minOccurs="0" name="OBJECTID" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="Address" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="Neighborhood" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="countryCode" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="singleLine" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="City" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="Subregion" type="xs:string"/>
<xs:element form="unqualified" minOccurs="0" name="Region" type="xs:string"/>
</xs:sequence>
</xs:complexType>
</xs:schema>
</grammars>
<resources base="https://api.precisely.com">
<resource path="/geocode/v1">
<resource path="/key/byaddress">
<method name="GET">
<request>
<param name="address" style="query" type="xs:string"/>
<param name="country" style="query" type="xs:string"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
<method name="POST">
<request>
<representation mediaType="*/*"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource path="/keylookup">
<method name="GET">
<request>
<param name="key" style="query" type="xs:string"/>
<param name="type" style="query" type="xs:string"/>
<param name="country" style="query" type="xs:string"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
<method name="POST">
<request>
<representation mediaType="*/*"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource path="/{datapackBundle}/capabilities">
<param name="datapackBundle" style="template" type="xs:string"/>
<method name="GET">
<request/>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource path="/{datapackBundle}/dictionaries">
<param name="datapackBundle" style="template" type="xs:string"/>
<method name="GET">
<request>
<param name="country" style="query" default="USA" type="xs:string"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource path="/{datapackBundle}/geocode">
<param name="datapackBundle" style="template" type="xs:string"/>
<method name="GET">
<request/>
<response>
<representation mediaType="application/json"/>
</response>
</method>
<method name="POST">
<request>
<representation mediaType="application/json"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource path="/{datapackBundle}/reverseGeocode">
<param name="datapackBundle" style="template" type="xs:string"/>
<method name="GET">
<request/>
<response>
<representation mediaType="application/json"/>
</response>
</method>
<method name="POST">
<request>
<representation mediaType="application/json"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource path="/arcgis/rest/services/PBLocator/GeocodeServer">
<method name="GET">
<request>
<param name="f" style="query" type="xs:string"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource path="/arcgis/rest/services/PBLocator/GeocodeServer/geocodeAddresses">
<method name="POST">
<request>
<representation mediaType="application/x-www-form-urlencoded"/>
<param style="query" name="f" default="JSON" type="xs:string"/>
<param name="addresses" style="query" type="xs:string"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
<resource path="/transient/geocodeAddresses">
<method name="POST">
<request>
<representation mediaType="application/x-www-form-urlencoded"/>
</request>
<response>
<representation mediaType="application/json"/>
</response>
</method>
</resource>
</resource>
</resources>
</application>