<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:ld="https://api.linkdex.com/schema" xmlns:tns="https://api.linkdex.com/schema/v1" elementFormDefault="qualified" targetNamespace="https://api.linkdex.com/schema/v1" version="1.0">

  <xs:import schemaLocation="schema3.xsd"/>

  <xs:import namespace="https://api.linkdex.com/schema" schemaLocation="schema.xsd"/>

  <xs:element name="author" type="tns:authorResource"/>

  <xs:element name="authors" type="tns:authorCollection"/>

  <xs:element name="campaign" type="tns:campaignResource"/>

  <xs:element name="campaigns" type="tns:campaignCollection"/>

  <xs:element name="contact" type="tns:contactResource"/>

  <xs:element name="contacts" type="tns:contactCollection"/>

  <xs:element name="domain" type="tns:domainResource"/>

  <xs:element name="domains" type="tns:domainCollection"/>

  <xs:element name="index" type="tns:indexResource"/>

  <xs:element name="indexes" type="tns:indexCollection"/>

  <xs:element name="job" type="tns:jobResource"/>

  <xs:element name="jobs" type="tns:jobCollection"/>

  <xs:element name="keyword" type="tns:trackingKeywordResource"/>

  <xs:element name="keywords" type="tns:trackingKeywordCollection"/>

  <xs:element name="locales" type="tns:visibilityLocaleCollection"/>

  <xs:element name="project" type="tns:projectResource"/>

  <xs:element name="projects" type="tns:projectCollection"/>

  <xs:element name="ranking-configuration" type="tns:rankingConfigurationResource"/>

  <xs:element name="ranking-configurations" type="tns:rankingConfigurationCollection"/>

  <xs:element name="raw-ranking-results" type="tns:rawRankingResource"/>

  <xs:element name="sitecrawl" type="tns:siteCrawlResource"/>

  <xs:element name="sitecrawls" type="tns:siteCrawlCollection"/>

  <xs:element name="tag" type="tns:tagResource"/>

  <xs:element name="tags" type="tns:tagCollection"/>

  <xs:complexType name="siteCrawlResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element name="available" type="xs:boolean"/>
          <xs:element minOccurs="0" name="crawledAt" type="xs:string"/>
          <xs:element minOccurs="0" name="domain" type="domainDescriptorResource"/>
          <xs:element name="numberOfPages" type="xs:int"/>
          <xs:element ref="settings"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="tagResource">
    <xs:sequence/>
    <xs:attribute name="value" type="xs:string"/>
  </xs:complexType>

  <xs:complexType name="rankingConfigurationResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element name="blended" type="xs:boolean"/>
          <xs:element minOccurs="0" name="country" type="xs:string"/>
          <xs:element minOccurs="0" name="engine" type="xs:string"/>
          <xs:element minOccurs="0" name="language" type="xs:string"/>
          <xs:element minOccurs="0" name="location" type="xs:string"/>
          <xs:element name="mobile" type="xs:boolean"/>
          <xs:element minOccurs="0" name="name" type="xs:string"/>
          <xs:element minOccurs="0" name="status" type="xs:string"/>
          <xs:element minOccurs="0" name="statusUpdatedAt" type="xs:string"/>
          <xs:element minOccurs="0" name="tags">
            <xs:complexType>
              <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:tag"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jobResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="downloadUrl" type="xs:string"/>
          <xs:element minOccurs="0" name="name" type="xs:string"/>
          <xs:element minOccurs="0" name="status" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="siteCrawlCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="rankingConfigurationCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="domainResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="createdAt" type="xs:string"/>
          <xs:element minOccurs="0" name="domain-name" type="xs:string"/>
          <xs:element minOccurs="0" name="indexes" type="xs:string"/>
          <xs:element minOccurs="0" name="mostRecentIndex" type="indexDescriptorResource"/>
          <xs:element minOccurs="0" name="mostRecentSiteCrawl" type="siteCrawlDescriptorResource"/>
          <xs:element name="primary" type="xs:boolean"/>
          <xs:element minOccurs="0" name="sitecrawls" type="xs:string"/>
          <xs:element minOccurs="0" name="locales" type="xs:string"/>
          <xs:element minOccurs="0" name="visibility" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="authorResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="content">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="linking-domains">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="links-to">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="names">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="social-profiles">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="campaignResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="link-relationships">
            <xs:complexType>
              <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="link-relationship"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="name" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="contactCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="trackingKeywordResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="createdAt" type="xs:string"/>
          <xs:element minOccurs="0" name="expectedPage" type="xs:string"/>
          <xs:element minOccurs="0" name="keyphrase" type="xs:string"/>
          <xs:element minOccurs="0" name="keyword" type="xs:string"/>
          <xs:element name="rankedDaily" type="xs:boolean"/>
          <xs:element minOccurs="0" name="tags">
            <xs:complexType>
              <xs:sequence>
                <xs:element maxOccurs="unbounded" minOccurs="0" ref="tns:tag"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="domainCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="authorCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="projectResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="createdAt" type="xs:string"/>
          <xs:element minOccurs="0" name="domains" type="xs:string"/>
          <xs:element minOccurs="0" name="jobs" type="xs:string"/>
          <xs:element maxOccurs="unbounded" minOccurs="0" name="keywords" type="keywordGroupResource"/>
          <xs:element minOccurs="0" name="tracked-keywords" type="xs:string"/>
          <xs:element minOccurs="0" name="name" type="xs:string"/>
          <xs:element name="numberOfCompetitors" type="xs:int"/>
          <xs:element minOccurs="0" name="primaryDomain" type="domainDescriptorResource"/>
          <xs:element minOccurs="0" name="ranking-configurations" type="xs:string"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="indexResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element name="available" type="xs:boolean"/>
          <xs:element minOccurs="0" name="crawledAt" type="xs:string"/>
          <xs:element minOccurs="0" name="domain" type="domainDescriptorResource"/>
          <xs:element name="domainCount" type="xs:long"/>
          <xs:element name="pageCount" type="xs:long"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="projectCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="indexCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="contactResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="campaigns">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="contact-items">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="name" type="xs:string"/>
          <xs:element minOccurs="0" name="tags">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="updatedAt" type="xs:dateTime"/>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="jobCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="visibilityLocaleCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="list">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="tagCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="campaignCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="rawRankingResource">
    <xs:complexContent>
      <xs:extension base="ld:resourceBase">
        <xs:sequence>
          <xs:element minOccurs="0" name="estimatedNextRankCheck" type="xs:string"/>
          <xs:element minOccurs="0" name="message" type="xs:string"/>
          <xs:element minOccurs="0" name="ppc-results">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
          <xs:element minOccurs="0" name="serp-results">
            <xs:complexType>
              <xs:sequence>
                <xs:any maxOccurs="unbounded" minOccurs="0" namespace="##other" processContents="skip"/>
              </xs:sequence>
            </xs:complexType>
          </xs:element>
        </xs:sequence>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>

  <xs:complexType name="trackingKeywordCollection">
    <xs:complexContent>
      <xs:extension base="ld:resourceCollection">
        <xs:sequence/>
      </xs:extension>
    </xs:complexContent>
  </xs:complexType>
</xs:schema>
