<?xml version="1.0" encoding="UTF-8"?>
<xsd:schema xmlns:tns="http://iplocation.developer.telekom.com/schema/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" targetNamespace="http://iplocation.developer.telekom.com/schema/" elementFormDefault="qualified" attributeFormDefault="qualified" version="1.0">
	<xsd:simpleType name="EnvironmentType">
		<xsd:restriction base="xsd:int">
			<xsd:minInclusive value="1"/>
			<xsd:maxInclusive value="3"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="IPType">
		<xsd:restriction base="xsd:integer">
			<xsd:enumeration value="4"/>
			<xsd:enumeration value="6"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:complexType name="IPAddressType">
		<xsd:sequence>
			<xsd:element name="ipType" type="tns:IPType" nillable="false"/>
			<xsd:element name="ipAddress" type="xsd:string" nillable="false"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="CityType">
		<xsd:sequence>
			<xsd:element name="countryCode" type="xsd:string" nillable="false"/>
			<xsd:element name="cityCode" type="xsd:string" nillable="false"/>
			<xsd:element name="city" type="xsd:string" nillable="false"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="RegionType">
		<xsd:sequence>
			<xsd:element name="countryCode" type="xsd:string" nillable="false"/>
			<xsd:element name="regionCode" type="xsd:string" nillable="false"/>
			<xsd:element name="regionName" type="xsd:string" nillable="false"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="GeoCoordinatesType">
		<xsd:sequence>
			<xsd:element name="geoLatitude" type="xsd:decimal" nillable="false"/>
			<xsd:element name="geoLongitude" type="xsd:decimal" nillable="false"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="IPAddressLocationType">
		<xsd:sequence>
			<xsd:element name="isInRegion" type="tns:RegionType" nillable="true" minOccurs="0"/>
			<xsd:element name="isInGeo" type="tns:GeoCoordinatesType" nillable="true" minOccurs="0"/>
			<xsd:element name="isInCity" type="tns:CityType" nillable="true" minOccurs="0"/>
			<xsd:element name="ipType" type="tns:IPType" nillable="false"/>
			<xsd:element name="ipAddress" type="xsd:string" nillable="false"/>
			<xsd:element name="radius" type="xsd:integer" nillable="false"/>
			<xsd:element name="statusCode" type="xsd:string" nillable="false"/>
			<xsd:element name="statusMessage" type="xsd:string" nillable="true" minOccurs="0"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="LocateIPRequestType">
		<xsd:sequence>
			<xsd:element name="environment" type="tns:EnvironmentType"  nillable="false" />
			<xsd:element name="account" type="xsd:string"  nillable="true" minOccurs="0"/>
			<xsd:element name="address" type="tns:IPAddressType" nillable="false" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="LocateIPResponseType">
		<xsd:sequence>
			<xsd:element name="statusCode" type="xsd:string" nillable="false"/>
			<xsd:element name="statusMessage" type="xsd:string" nillable="true" minOccurs="0"/>
			<xsd:element name="ipAddressLocation" type="tns:IPAddressLocationType" nillable="false" minOccurs="0" maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:element name="LocateIPRequest" type="tns:LocateIPRequestType"/>
	<xsd:element name="LocateIPResponse" type="tns:LocateIPResponseType"/>
</xsd:schema>
