<?xml version="1.0" encoding="utf-8"?>
<schema targetNamespace="http://ws.infotorg.no/xml/Eniro/TelefonkatalogenBedrift/2011-07-08/TelefonkatalogenBedrift.xsd"
    xmlns:tns="http://ws.infotorg.no/xml/Eniro/TelefonkatalogenBedrift/2011-07-08/TelefonkatalogenBedrift.xsd"
    xmlns:feil="http://ws.infotorg.no/xml/Feil/Feil.xsd"
    xmlns="http://www.w3.org/2001/XMLSchema">


    <annotation>
        <documentation xml:lang="no">
            Datatyper for TelefonkatalogenBedrift.

            © 2011 EDB ErgoGroup
            Forfatter: Even Aasland &lt;even.aasland@ergogroup.no&gt;
        </documentation>
    </annotation>

    <element name="hentFritekstSoek">
        <complexType>
            <sequence>
                <element name="fritekst" type="string" minOccurs="1" maxOccurs="1">
                    <annotation>
                        <documentation xml:lang="no">Fritekstsøk</documentation>
                    </annotation>
                </element>
                <element name="fraTreff" type="int" minOccurs="0" maxOccurs="1"/>
                <element name="maxTreff" type="int" minOccurs="0" maxOccurs="1"/>
                <element name="privat" type="boolean" minOccurs="0" maxOccurs="1"/>
                <element name="bedrifter" type="boolean" minOccurs="0" maxOccurs="1"/>
                <element name="offentlig" type="boolean" minOccurs="0" maxOccurs="1"/>
                <element name="internkatalog" type="boolean" minOccurs="0" maxOccurs="1"/>
                <element name="foretaksregisteret" type="boolean" minOccurs="0" maxOccurs="1"/>
            </sequence>
        </complexType>
    </element>

    <element name="hentVisittkort">
        <complexType>
            <sequence>
                <element name="id" type="int" minOccurs="1" maxOccurs="1" />
                <element name="idlinje" type="string" minOccurs="1" maxOccurs="1"/>
                <element name="format" minOccurs="1" maxOccurs="1">
                    <simpleType>
                        <restriction base="string">
                            <enumeration value="vcard"/>
                            <enumeration value="bigvcard"/>
                        </restriction>
                    </simpleType>
                </element>
            </sequence>
        </complexType>
    </element>
    
    <element name="hentVisittkortXML">
        <complexType>
            <sequence>
                <element name="id" type="int" minOccurs="1" maxOccurs="1" />
                <element name="idlinje" type="string" minOccurs="1" maxOccurs="1"/>
                <element name="format" minOccurs="1" maxOccurs="1">
                    <simpleType>
                        <restriction base="string">
                            <enumeration value="xml_vcard"/>
                        </restriction>
                    </simpleType>
                </element>
            </sequence>
        </complexType>
    </element>

    <element name="hentSMS">
        <complexType>
            <sequence>
                <element name="melding" type="string"/>
                <element name="mobilnr" type="string"/>
            </sequence>
        </complexType>
    </element>

    <element name="hentVisittkortSMS">
        <complexType>
            <sequence>
                <element name="id" type="int" minOccurs="1" maxOccurs="1"/> 
                <element name="idlinje" type="string" minOccurs="1" maxOccurs="1"/>
                <element name="mobilnr" type="string" minOccurs="1" maxOccurs="1"/>
                <element name="format" minOccurs="1" maxOccurs="1">
                    <simpleType>
                        <restriction base="string">
                            <enumeration value="vcard" />
                        </restriction>
                    </simpleType>
                </element>
            </sequence>
        </complexType>
    </element>
	
    <element name="hentOppfoering">
        <complexType>
            <sequence>
                <element name="id" type="int" minOccurs="1" maxOccurs="1"/>
                <element name="idlinje" type="string" minOccurs="1" maxOccurs="1"/>
            </sequence>
        </complexType>
    </element>

    <element name="hentOppfoeringSMS">
        <complexType>
            <sequence>
                <element name="id" type="int" minOccurs="1" maxOccurs="1"/>
                <element name="idlinje" type="string" minOccurs="1" maxOccurs="1"/>
                <element name="mobilnr" type="string" minOccurs="1" maxOccurs="1"/>
            </sequence>
        </complexType>
    </element>



    <element name="FritekstSoek" type="tns:SearchType"/>
    <element name="Oppfoering" type="tns:OppfoeringRes"/>
    <element name="SMS" type="tns:SMSRes"/>
    <element name="OppfoeringSMS" type="tns:OppfoeringSMSRes"/>
    <element name="Visittkort" type="tns:VisittkortResponseType"/>
    <element name="VisittkortXML" type="tns:VisittkortXMLResponseType"/>
    <element name="VisittkortSMS" type="tns:VisittkortSMSResponseType"/>



<!-- ########################### -->
<!-- ########## SMS ############ -->
<!-- ########################### -->
    <complexType name="SMSRes">
        <sequence>
            <element name="sendsms" minOccurs="1" maxOccurs="1">
	        <complexType>
                    <sequence>
                        <element name="body" minOccurs="1" maxOccurs="1" type="string"/>
                    </sequence>
                </complexType>
            </element>
        </sequence>
    </complexType>

<!-- ########################### -->
<!-- ####### Oppfoering ######## -->
<!-- ########################### -->
    <complexType name="OppfoeringRes">
        <sequence>
            <element name="lookupxmlResponseDoc" type="string" minOccurs="1" maxOccurs="1"/>
        </sequence>
    </complexType>

<!-- ########################### -->
<!-- ####### OppfoeringSMS ######## -->
<!-- ########################### -->
    <complexType name="OppfoeringSMSRes">
        <sequence>
	<!--element name="OppfoeringSMS" minOccurs="1" maxOccurs="1">
	    <complexType>
                <sequence-->
            <element name="id" type="int" minOccurs="1" maxOccurs="1"/>
            <element name="idlinje" type="string" minOccurs="1" maxOccurs="1"/>
            <element name="status" type="string" minOccurs="1" maxOccurs="1"/>
            <element name="melding" type="string" minOccurs="1" maxOccurs="1"/>
            <element name="mobilnr" type="string" minOccurs="1" maxOccurs="1"/>
        	<!--/sequence>
	    </complexType>
	</element-->
        </sequence>
    </complexType>

<!-- ########################### -->
<!-- ####### VisittkortSMS ######## -->
<!-- ########################### -->
    <complexType name="VisittkortSMSResponseType">
        <sequence>
            <element name="id" type="int" minOccurs="1" maxOccurs="1"/>
            <element name="idlinje" type="string" minOccurs="1" maxOccurs="1"/>
            <element name="status" type="string" minOccurs="1" maxOccurs="1"/>
            <element name="melding" type="string" minOccurs="1" maxOccurs="1"/>
            <element name="mobilnr" type="string" minOccurs="1" maxOccurs="1"/>
            <element name="format" type="string" minOccurs="1" maxOccurs="1"/>
        </sequence>
    </complexType>

<!-- ########################### -->
<!-- ###### FritekstSoek ####### -->
<!-- ########################### -->
    <complexType name="SearchType">
        <sequence>
            <element name="qry" minOccurs="0" type="string"/>
            <element name="result" minOccurs="0" type="tns:ResultType"/>
        </sequence>
    </complexType>

    <complexType name="ResultType">
        <sequence>
            <element name="hit" minOccurs="0" maxOccurs="unbounded" type="tns:HitType" />
        </sequence>
        <attribute name="hitLinesBeforeFilter" />
        <attribute name="approxHits" />
        <attribute name="userID" />
    </complexType>

    <complexType name="HitType">
        <sequence>
            <element name="fieldindicator" type="string" minOccurs="0" maxOccurs="unbounded" />
            <element name="relevance" type="string" minOccurs="0" />
            <element name="listing" type="tns:ListingType" />
        </sequence>
        <attribute name="line" />
    </complexType>

    <element name="listing" type="tns:ListingType" />

    <complexType name="ListingType">
        <sequence>
            <element name="duplicates" minOccurs="0">
                <complexType>
                    <sequence>
                        <element name="duplicate" minOccurs="1" maxOccurs="unbounded">
                            <complexType>
                                <sequence>
                                    <element name="listing" type="tns:ListingType" />
                                </sequence>
                                <attribute name="number" type="int" />
                            </complexType>
                        </element>
                    </sequence>
                </complexType>
            </element>

            <element name="parent" minOccurs="0">
                <complexType>
                    <sequence>
                        <element name="listing" minOccurs="0" type="tns:ListingType" />
                    </sequence>
                    <attribute name="table"/>
                    <attribute name="id" />
                </complexType>
            </element>
            
            <element name="children" minOccurs="0">
                <complexType>
                    <sequence>
                        <element name="child" minOccurs="1" maxOccurs="unbounded">
                            <complexType>
                                <sequence>
                                    <element name="listing" type="tns:ListingType" minOccurs="0" />
                                </sequence>
                                <attribute name="sibling" />
                            </complexType>
                        </element>
                    </sequence>
                </complexType>
            </element>

            <element name="idlinje" type="string" minOccurs="0"/>
            <element name="tlfnr" type="string" minOccurs="0"/>
            <element name="etternavn" type="string" minOccurs="0"/>
            <element name="fornavn" type="string" minOccurs="0"/>
            <element name="veinavn" type="string" minOccurs="0"/>
            <element name="husnr" type="string" minOccurs="0"/>
            <element name="oppgang" type="string" minOccurs="0"/>
            <element name="postnr" type="string" minOccurs="0"/>
            <element name="virkkode" type="string" minOccurs="0"/>
            <element name="apparattype" type="string" minOccurs="0"/>
            <element name="telco" type="string" minOccurs="0"/>
            <element name="kilde" type="string" minOccurs="0"/>
            <element name="yrke" type="string" minOccurs="0"/>
            <element name="pbadresse" type="string" minOccurs="0"/>
            <element name="pbpostnr" type="string" minOccurs="0"/>
            <element name="htlfnr" type="string" minOccurs="0"/>
            <element name="gyldigfra" type="string" minOccurs="0"/>
            <element name="foretaksnr" type="string" minOccurs="0"/>
            <element name="tlfnr_start" type="string" minOccurs="0"/>
            <element name="tlfnr_stopp" type="string" minOccurs="0"/>
            <element name="parentid" type="string" minOccurs="0"/>
            <element name="childrenid" type="string" minOccurs="0" maxOccurs="unbounded"/>
            <element name="ekstratekst" type="string" minOccurs="0"/>
            <element name="epost" type="string" minOccurs="0"/>
            <element name="lenke" type="string" minOccurs="0"/>
            <element name="bransjekode" type="string" minOccurs="0"/>
            <element name="bransjer" type="string" minOccurs="0"/>
            <element name="daid" type="string" minOccurs="0"/>
            <element name="bkdata" type="string" minOccurs="0"/>
            <element name="prioritet" type="string" minOccurs="0"/>
            <element name="thumbnail" type="string" minOccurs="0"/>
            <element name="fodselsdato" type="string" minOccurs="0"/>
            <element name="status" type="string" minOccurs="0"/>
            <element name="txtline" type="string" minOccurs="0"/>
            <element name="henvisning" type="string" minOccurs="0"/>
            <element name="kommunenr" type="string" minOccurs="0"/>
            <element name="kid" type="string" minOccurs="0"/>
            <element name="poststed" type="string" minOccurs="0"/>
            <element name="pbpoststed" type="string" minOccurs="0"/>
            <element name="kommune" type="string" minOccurs="0"/>
            <element name="fylke" type="string" minOccurs="0"/>
            <element name="landsdel" type="string" minOccurs="0"/>
            <element name="bransjebokmaal" type="string" minOccurs="0"/>
            <element name="bransjenynorsk" type="string" minOccurs="0"/>
            <element name="hbransjebokmaal" type="string" minOccurs="0"/>
            <element name="hbransjenynorsk" type="string" minOccurs="0"/>
            <element name="telconavn" type="string" minOccurs="0"/>
            <element name="bydel" type="string" minOccurs="0"/>
            <element name="delivery" type="string" minOccurs="0"/>
            <element name="installment" type="string" minOccurs="0"/>
            <element name="creditcard_list" type="string" minOccurs="0"/>
            <element name="bus_stop" type="string" minOccurs="0"/>
            <element name="AddressDescript" type="string" minOccurs="0"/>
            <element name="PlaceNear1" type="string" minOccurs="0"/>
            <element name="PlaceNear2" type="string" minOccurs="0"/>
            <element name="public_transport" type="string" minOccurs="0"/>
            <element name="popular_address_list" type="string" minOccurs="0"/>
            <element name="opening_hours" type="string" minOccurs="0"/>
            <element name="inside_toll_zone" type="string" minOccurs="0"/>
            <element name="parking" type="string" minOccurs="0"/>
            <element name="product_list" type="string" minOccurs="0"/>
            <element name="lat" type="string" minOccurs="0"/>
            <element name="lon" type="string" minOccurs="0"/>
            <element name="dev" type="string" minOccurs="0"/>
        </sequence>
        <attribute name="table" type="string" />
        <attribute name="id" type="string" />
    </complexType>
    
    <element name="search_vcard" type="tns:SearchVCardType" />

    <!-- Nye definisjoner av svarene på hentVisittkort, da den som er definert fra Eniro (tns:SearchVCardType) ikke stemmer med virkeligheten  -->
    <!-- Element med vCard for .vcf-fil --> 
    <complexType name="VisittkortResponseType">
        <sequence>
            <element name="lookupxmlVCardResponseDoc" type="string" minOccurs="1" maxOccurs="1"/>
        </sequence>
    </complexType>
        
    <!-- Element for xml-representasjon av vCard  -->
    <complexType name="VisittkortXMLResponseType">
        <sequence>
            <element name="lookupxmlVCardResponseDoc" type="tns:VCardXMLType" minOccurs="1" maxOccurs="1"/>
        </sequence>
    </complexType>

    <complexType name="VCardXMLType">
        <sequence>
            <element name="listing" type="tns:ListingVCardType" minOccurs="0" maxOccurs="1" />
        </sequence>
    </complexType>

    <complexType name="SearchVCardType">
        <sequence>
            <element name="qry" minOccurs="0" type="string"/>
            <element name="result" minOccurs="0" type="tns:ResultVCardType"/>
        </sequence>
    </complexType>

    <complexType name="ResultVCardType">
        <sequence>
            <element name="hit" minOccurs="0" maxOccurs="unbounded" type="tns:HitVCardType" />
        </sequence>
        <attribute name="hitLinesBeforeFilter" />
        <attribute name="approxHits" />
        <attribute name="userID" />
    </complexType>

    <complexType name="HitVCardType">
        <sequence>
            <element name="listing" type="tns:ListingVCardType" />
        </sequence>
        <attribute name="line" />
    </complexType>

    <!--    Forsøk på å sortere listen i den rekkefølgen som kommer fra Eniro. Opprinnelig rekkefølge var feil, og svaret validerte ikke.
            Kan ikke bruke "all" siden TEL er maxOccurs="unbounded"
            Gjenstår å verifisere: BDAY, GEO, EMAIL, URL
    -->
    <element name="listing_vcard" type="tns:ListingVCardType" />

    <complexType name="ListingVCardType">
        <sequence>
            <element name="BDAY" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="FN" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="TITLE" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="N" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="KID" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="IDLINJE" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="ADR" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="ORGNR" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="LABEL" minOccurs="0" maxOccurs="unbounded" type="tns:VCardLine"/>
            <element name="ORG" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="GEO" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="TEL" minOccurs="0" maxOccurs="unbounded" type="tns:VCardLine"/>
            <element name="EMAIL" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            <element name="URL" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
        </sequence>
        <attribute name="table" type="string" />
        <attribute name="id" type="string" />
    </complexType>

    <!-- Endret til minOccurs="0" for value, da det er observert at <FN> ikke har value når svaret er tomt.  -->
    <complexType name="VCardLine">
        <sequence>
            <element name="type" minOccurs="0" maxOccurs="unbounded" type="string"/>
            <element name="value" minOccurs="0" maxOccurs="unbounded" type="string"/>
        </sequence>
    </complexType>

<!-- Opprinnelig listing_vcard der elementene ikke kom i angitt rekkefølge. Validering feiler-->
<!--
        <element name="listing_vcard" type="tns:ListingVCardType" />
        <complexType name="ListingVCardType">
            <sequence>
                <element name="BDAY" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="FN" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="N" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="TITLE" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="ADR" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="LABEL" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="ORG" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="ORGNR" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="KID" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="GEO" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="TEL" minOccurs="0" maxOccurs="unbounded" type="tns:VCardLine"/>
                <element name="EMAIL" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
                <element name="URL" minOccurs="0" maxOccurs="1" type="tns:VCardLine"/>
            </sequence>
            <attribute name="table" type="string" />
            <attribute name="id" type="string" />
        </complexType>
-->
<!--
        <complexType name="VCardLine">
            <sequence>
                <element name="type" minOccurs="0" maxOccurs="unbounded" type="string"/>
                <element name="value" minOccurs="1" maxOccurs="unbounded" type="string"/>
            </sequence>
        </complexType>
-->

</schema>



