<?xml version="1.0" encoding="UTF-8"?>
<!-- Version 2.01 -->
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema">
  <xsd:simpleType name="E115String">
    <xsd:restriction base="xsd:string"/>
  </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:enumeration value="arabic"/>
    </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="PhoneService">
    <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="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="InquiryPhoneChar">
    <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="ReplyPhoneChar">
    <xsd:attributeGroup ref="InquiryPhoneChar"/>
    <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="GeneralChar">
    <xsd:attribute name="restriction" use="optional" default="disclose">
      <xsd:simpleType>
        <xsd:restriction base="xsd:NCName">
          <xsd:enumeration value="disclose"/>
          <xsd:enumeration value="nonDisclose"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
  </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="countryCode" use="required">
      <xsd:simpleType>
        <xsd:restriction base="E115String">
          <xsd:length value="2"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute name="providerCode" type="E115StringUb256" use="optional"/>
    <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:attribute name="inquiryLanguage" use="optional">
      <xsd:simpleType>
        <xsd:restriction base="xsd:NCName">
          <xsd:length value="3"/>
        </xsd:restriction>
      </xsd:simpleType>
    </xsd:attribute>
    <xsd:attribute name="replyLanguage" type="xsd:NCName" use="optional"/>
  </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="phone" type="SimpleAttribute" use="optional"/>
          <xsd:attribute name="email" type="SimpleAttribute" use="optional"/>
          <xsd:attribute name="uri" 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="commAddresses" type="CommAddresses" 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="postalCode" type="E115StringUb256" minOccurs="0"/>
      <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="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:complexType name="CommAddresses">
    <xsd:choice maxOccurs="unbounded">
      <xsd:element name="phone">
        <xsd:complexType>
          <xsd:all>
            <xsd:element name="countryCallingCode">
              <xsd:simpleType>
                <xsd:restriction base="NumericString">
                  <xsd:minLength value="1"/>
                  <xsd:maxLength value="3"/>
                </xsd:restriction>
              </xsd:simpleType>
            </xsd:element>
            <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="number" type="E115StringUb256"/>
            <xsd:element name="phoneService" minOccurs="0">
              <xsd:complexType>
                <xsd:attributeGroup ref="PhoneService"/>
              </xsd:complexType>
            </xsd:element>
          </xsd:all>
          <xsd:attributeGroup ref="ReplyPhoneChar"/>
          <xsd:attributeGroup ref="GeneralChar"/>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="email">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="E115StringUb256">
              <xsd:attribute name="nmk" type="SimpleAttribute" use="optional"/>
              <xsd:attributeGroup ref="GeneralChar"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
      <xsd:element name="uri">
        <xsd:complexType>
          <xsd:simpleContent>
            <xsd:extension base="E115StringUb256">
              <xsd:attributeGroup ref="GeneralChar"/>
            </xsd:extension>
          </xsd:simpleContent>
        </xsd:complexType>
      </xsd:element>
    </xsd:choice>
  </xsd:complexType>
  <xsd:element name="e115Message" type="E115Message"/>
</xsd:schema>