<?xml version="1.0" encoding="UTF-8"?>

<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
	<xsd:simpleType name="E115String">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[&#x20;-&#xFFFD;]*"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="E115StringUb256">
		<xsd:restriction base="E115String">
			<xsd:minLength value="1"/>
			<xsd:maxLength value="256"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="NumericString">
		<xsd:restriction base="xsd:string">
			<xsd:pattern value="[0-9]*"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="SimpleAttribute">
		<xsd:restriction base="xsd:boolean">
			<xsd:pattern value="true"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="CharacterSubSet">
		<xsd:restriction base="xsd:NCName">
			<xsd:enumeration value="basic"/>
			<xsd:enumeration value="latin1"/>
			<xsd:enumeration value="latin-ext"/>
			<xsd:enumeration value="cyrillic"/>
			<xsd:enumeration value="greek"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:simpleType name="GeographicalType">
		<xsd:restriction base="xsd:NCName">
			<xsd:enumeration value="dms"/>
			<xsd:enumeration value="dd"/>
			<xsd:enumeration value="dec"/>
		</xsd:restriction>
	</xsd:simpleType>
	<xsd:attributeGroup name="CoordinateTypeDescription">
		<xsd:attribute name="geodeticDatum" type="E115StringUb256" use="required"/>
		<xsd:attribute name="geographical" type="GeographicalType" use="required"/>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="Coordinate">
		<xsd:attribute name="latitude" type="E115StringUb256" use="required"/>
		<xsd:attribute name="longitude" type="E115StringUb256" use="required"/>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="CommAddressService">
		<xsd:attribute name="fax" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="pbx" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="txt" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="pub" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="vid" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="pag" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="voice" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="data" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="http" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="ftp" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="eml" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="sms" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="mms" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="emg" type="SimpleAttribute" use="optional"/>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="InquiryCommAddressChar">
		<xsd:attribute name="ftn" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="mob" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="fixed" type="SimpleAttribute" use="optional"/>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="ReplyCommAddressChar">
		<xsd:attributeGroup ref="InquiryCommAddressChar"/>
		<xsd:attribute name="prn" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="npn" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="upn" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="old" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="adv" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="nmk" type="SimpleAttribute" use="optional"/>
	</xsd:attributeGroup>
	<xsd:attributeGroup name="Categories">
		<xsd:attribute name="business" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="residential" type="SimpleAttribute" use="optional"/>
		<xsd:attribute name="government" type="SimpleAttribute" use="optional"/>
	</xsd:attributeGroup>
	<xsd:complexType name="E115Message">
		<xsd:choice>
			<xsd:element name="directoryMessage" type="DirectoryMessage"/>
		</xsd:choice>
	</xsd:complexType>
	<xsd:complexType name="DirectoryMessage">
		<xsd:choice>
			<xsd:element name="inquiry" type="Inquiry"/>
			<xsd:element name="reply" type="Reply"/>
		</xsd:choice>

	</xsd:complexType>
	<xsd:complexType name="Inquiry">
		<xsd:sequence>
			<xsd:element name="inquiryHeader" type="InquiryHeader"/>
			<xsd:element name="inquiryData" type="InquiryData"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="InquiryHeader">
		<xsd:all>
			<xsd:element name="acceptedReplyTypes" minOccurs="0">
				<xsd:complexType>
					<xsd:attribute name="provinceList" type="SimpleAttribute" use="optional"/>
					<xsd:attribute name="localityList" type="SimpleAttribute" use="optional"/>
					<xsd:attribute name="streetList" type="SimpleAttribute" use="optional"/>
					<xsd:attribute name="businessCategoryList" type="SimpleAttribute"
							use="optional"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="inquiryCoordinateType" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="CoordinateTypeDescription"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="replyCoordinateType" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="CoordinateTypeDescription"/>
				</xsd:complexType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="originatingTerminalCode" use="required">
			<xsd:simpleType>
				<xsd:restriction base="E115String">
					<xsd:length value="8"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="dateAndTime" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="NumericString">
					<xsd:length value="12"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="messageNumber" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="E115String">
					<xsd:length value="4"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="countryName" use="required">
			<xsd:simpleType>
				<xsd:restriction base="E115String">
					<xsd:length value="2"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="providerCode" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="E115String">
					<xsd:length value="3"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="inquiryCharacterSubset" type="CharacterSubSet" use="optional"
				default="basic"/>

		<xsd:attribute name="replyCharacterSubset" type="CharacterSubSet" use="optional"
				default="latin1"/>
		<xsd:attribute name="requestedReplyType" use="optional" default="subscriberList">
			<xsd:simpleType>
				<xsd:restriction base="xsd:NCName">
					<xsd:enumeration value="subscriberList"/>
					<xsd:enumeration value="provinceList"/>
					<xsd:enumeration value="localityList"/>
					<xsd:enumeration value="streetList"/>
					<xsd:enumeration value="businessCategoryList"/>
				</xsd:restriction>

			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="InquiryData">
		<xsd:all>
			<xsd:element name="locality" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="subscriberName" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="streetName" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="houseNumber" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="forename" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="headingInTheGuide" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="professionCode" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="countyStateOrProvince" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="category" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="Categories"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="postalCode" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="nationalDestinationCode" minOccurs="0">
				<xsd:simpleType>
					<xsd:restriction base="NumericString">
						<xsd:minLength value="1"/>
						<xsd:maxLength value="14"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="commAddress" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="commAddressTypes" minOccurs="0">
				<xsd:complexType>
					<xsd:attribute name="e164" type="SimpleAttribute" use="optional"/>
					<xsd:attribute name="rfc822" type="SimpleAttribute" use="optional"/>
					<xsd:attribute name="rfc1738" type="SimpleAttribute" use="optional"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="additionalName" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="commAddressService" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="CommAddressService"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="commAddressChar" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="InquiryCommAddressChar"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="searchCoordinate" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="Coordinate"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="searchRadius" minOccurs="0">
				<xsd:simpleType>
					<xsd:restriction base="NumericString">
						<xsd:minLength value="1"/>
						<xsd:maxLength value="9"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="matchingRule" minOccurs="0">
				<xsd:complexType>
					<xsd:attribute name="wordRotation" type="xsd:boolean" use="optional"/>
					<xsd:attribute name="phonetic" type="xsd:boolean" use="optional"/>
					<xsd:attribute name="alias" type="xsd:boolean" use="optional"/>
				</xsd:complexType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="sequenceNumber" use="optional" default="0">
			<xsd:simpleType>
				<xsd:restriction base="NumericString">
					<xsd:minLength value="1"/>
					<xsd:maxLength value="2"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="geoExpansion" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="NumericString">
					<xsd:minLength value="1"/>
					<xsd:maxLength value="3"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="maxSelectionLevel" type="NumericString" use="optional"
				default="99"/>
	</xsd:complexType>
	<xsd:complexType name="Reply">
		<xsd:sequence>
			<xsd:element name="replyHeader" type="ReplyHeader"/>
			<xsd:element name="selection" type="Selection" minOccurs="0"
					maxOccurs="unbounded"/>
		</xsd:sequence>
	</xsd:complexType>
	<xsd:complexType name="ReplyHeader">
		<xsd:all>
			<xsd:element name="message" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="replyCoordinateType" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="CoordinateTypeDescription"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="searchCenter" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="Coordinate"/>
				</xsd:complexType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="originatingTerminalCode" use="required">
			<xsd:simpleType>
				<xsd:restriction base="E115String">
					<xsd:length value="8"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="dateAndTime" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="NumericString">
					<xsd:length value="12"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="messageNumber" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="E115String">
					<xsd:length value="4"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="messageCode" use="required">
			<xsd:simpleType>
				<xsd:restriction base="E115String">
					<xsd:length value="2"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="dbSelectionCount" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="E115String">
					<xsd:minLength value="1"/>
					<xsd:maxLength value="10"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:complexType name="Selection">
		<xsd:all>
			<xsd:element name="nationalDestinationCode" minOccurs="0">
				<xsd:simpleType>
					<xsd:restriction base="NumericString">
						<xsd:minLength value="1"/>
						<xsd:maxLength value="14"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="commAddress" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="locality" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="subscriberName" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="forename" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="streetName" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="houseNumber" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="supplementaryData" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="subscriberMessage" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="headingInTheGuide" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="professionCode" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="countyStateOrProvince" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="subscriberDescription" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="category" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="Categories"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="countryCode" minOccurs="0">
				<xsd:simpleType>
					<xsd:restriction base="NumericString">
						<xsd:minLength value="1"/>
						<xsd:maxLength value="3"/>
					</xsd:restriction>
				</xsd:simpleType>
			</xsd:element>
			<xsd:element name="postalCode" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="commAddressService" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="CommAddressService"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="commAddressChar" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="ReplyCommAddressChar"/>
				</xsd:complexType>
			</xsd:element>
			<xsd:element name="distance" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="additionalName" type="E115StringUb256" minOccurs="0"/>
			<xsd:element name="selectionCoordinate" minOccurs="0">
				<xsd:complexType>
					<xsd:attributeGroup ref="Coordinate"/>
				</xsd:complexType>
			</xsd:element>
		</xsd:all>
		<xsd:attribute name="commAddressType" use="optional">
			<xsd:simpleType>
				<xsd:restriction base="xsd:NCName">
					<xsd:enumeration value="e164"/>
					<xsd:enumeration value="rfc822"/>
					<xsd:enumeration value="rfc1738"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
		<xsd:attribute name="selectionLevel" use="optional" default="0">
			<xsd:simpleType>
				<xsd:restriction base="NumericString">
					<xsd:minLength value="1"/>
					<xsd:maxLength value="3"/>
				</xsd:restriction>
			</xsd:simpleType>
		</xsd:attribute>
	</xsd:complexType>
	<xsd:element name="e115Message" type="E115Message"/>
</xsd:schema>
