<?xml version="1.0" encoding="UTF-8"?>
<wsdl:definitions targetNamespace="SushiService" xmlns:apachesoap="http://xml.apache.org/xml-soap" xmlns:impl="SushiService" xmlns:intf="SushiService" xmlns:tns1="http://www.niso.org/schemas/sushi" xmlns:tns2="http://www.niso.org/schemas/sushi/counter" xmlns:tns3="http://www.niso.org/schemas/counter" xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/" xmlns:wsdlsoap="http://schemas.xmlsoap.org/wsdl/soap/" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
 <wsdl:types>
  <schema elementFormDefault="qualified" targetNamespace="http://www.niso.org/schemas/sushi" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://www.niso.org/schemas/sushi/counter"/>
   <import namespace="http://www.niso.org/schemas/counter"/>
   <complexType name="Requestor">
    <sequence>
     <element name="ID" type="xsd:string"/>

     <element name="Name" nillable="true" type="xsd:string"/>
     <element name="Email" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="CustomerReference">
    <sequence>
     <element name="ID" type="xsd:string"/>
     <element maxOccurs="1" minOccurs="0" name="Name" nillable="true" type="xsd:string"/>
    </sequence>

   </complexType>
   <complexType name="Range">
    <sequence>
     <element name="Begin" nillable="true" type="xsd:date"/>
     <element name="End" nillable="true" type="xsd:date"/>
    </sequence>
   </complexType>
   <complexType name="ReportDefinition">
    <sequence>

     <element name="Filters" nillable="true">
      <complexType>
       <sequence>
        <element name="UsageDateRange" nillable="true" type="tns1:Range"/>
       </sequence>
      </complexType>
     </element>
    </sequence>
    <attribute name="Name" type="xsd:string"/>

    <attribute name="Release" type="xsd:string"/>
   </complexType>
   <complexType name="ReportRequest">
    <sequence>
     <element name="Requestor" nillable="true" type="tns1:Requestor"/>
     <element name="CustomerReference" nillable="true" type="tns1:CustomerReference"/>
     <element name="ReportDefinition" nillable="true" type="tns1:ReportDefinition"/>
    </sequence>
    <attribute name="ID" type="xsd:string"/>

    <attribute name="Created" type="xsd:dateTime"/>
   </complexType>
   <simpleType name="ExceptionSeverity">
    <restriction base="xsd:string">
     <enumeration value="Info"/>
     <enumeration value="Debug"/>
     <enumeration value="Warning"/>
     <enumeration value="Error"/>
     <enumeration value="Fatal"/>

    </restriction>
   </simpleType>
   <complexType name="Exception">
    <sequence>
     <element name="Number" type="xsd:int"/>
     <element name="Severity" nillable="true" type="tns1:ExceptionSeverity"/>
     <element name="Message" nillable="true" type="xsd:string"/>
     <element maxOccurs="1" minOccurs="0" name="HelpUrl" nillable="true" type="xsd:anyURI"/>
     <element maxOccurs="1" minOccurs="0" name="Data" nillable="true" type="xsd:anyType"/>

    </sequence>
    <attribute name="Created" type="xsd:dateTime"/>
   </complexType>
   <complexType name="ReportResponse">
    <sequence>
     <element maxOccurs="unbounded" minOccurs="0" name="Exception" nillable="true" type="tns1:Exception"/>
     <element name="Requestor" nillable="true" type="tns1:Requestor"/>
     <element name="CustomerReference" nillable="true" type="tns1:CustomerReference"/>
     <element name="ReportDefinition" nillable="true" type="tns1:ReportDefinition"/>

    </sequence>
    <attribute name="ID" type="xsd:string"/>
    <attribute name="Created" type="xsd:dateTime"/>
   </complexType>
  </schema>
  <schema elementFormDefault="qualified" targetNamespace="http://www.niso.org/schemas/sushi/counter" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://www.niso.org/schemas/sushi"/>
   <import namespace="http://www.niso.org/schemas/counter"/>
   <element name="ReportRequest" type="tns1:ReportRequest"/>

   <complexType name="CounterReportResponse">
    <complexContent>
     <extension base="tns1:ReportResponse">
      <sequence>
       <element name="Report" nillable="true" type="tns3:Reports"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>

   <element name="ReportResponse" type="tns2:CounterReportResponse"/>
  </schema>
  <schema elementFormDefault="qualified" targetNamespace="http://www.niso.org/schemas/counter" xmlns="http://www.w3.org/2001/XMLSchema">
   <import namespace="http://www.niso.org/schemas/sushi"/>
   <import namespace="http://www.niso.org/schemas/sushi/counter"/>
   <complexType name="Contact">
    <sequence>
     <element maxOccurs="1" minOccurs="0" name="Contact" nillable="true" type="xsd:string"/>
     <element maxOccurs="1" minOccurs="0" name="E-mail" nillable="true" type="xsd:string"/>

    </sequence>
   </complexType>
   <complexType name="Organization">
    <sequence>
     <element maxOccurs="1" minOccurs="0" name="Name" nillable="true" type="xsd:string"/>
     <element name="ID" type="xsd:string"/>
     <element maxOccurs="unbounded" minOccurs="0" name="Contact" nillable="true" type="tns3:Contact"/>
     <element maxOccurs="1" minOccurs="0" name="WebSiteUrl" nillable="true" type="xsd:anyURI"/>
     <element maxOccurs="1" minOccurs="0" name="LogoUrl" nillable="true" type="xsd:anyURI"/>

    </sequence>
   </complexType>
   <complexType name="Vendor">
    <complexContent>
     <extension base="tns3:Organization">
      <sequence/>
     </extension>
    </complexContent>
   </complexType>

   <complexType name="Consortium">
    <sequence>
     <element maxOccurs="1" minOccurs="0" name="Code" nillable="true" type="xsd:string"/>
     <element name="WellKnownName" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <simpleType name="IdentifierType">
    <restriction base="xsd:string">
     <enumeration value="Online_ISSN"/>

     <enumeration value="Print_ISSN"/>
     <enumeration value="EISSN"/>
     <enumeration value="ISSN"/>
     <enumeration value="ISBN"/>
     <enumeration value="Online_ISBN"/>
     <enumeration value="Print_ISBN"/>
     <enumeration value="DOI"/>
     <enumeration value="Proprietary"/>
    </restriction>

   </simpleType>
   <complexType name="Identifier">
    <sequence>
     <element name="Type" nillable="true" type="tns3:IdentifierType"/>
     <element name="Value" nillable="true" type="xsd:string"/>
    </sequence>
   </complexType>
   <complexType name="Customer">
    <complexContent>

     <extension base="tns3:Organization">
      <sequence>
       <element maxOccurs="1" minOccurs="0" name="Consortium" nillable="true" type="tns3:Consortium"/>
       <element maxOccurs="unbounded" minOccurs="0" name="InstitutionalIdentifier" nillable="true" type="tns3:Identifier"/>
      </sequence>
     </extension>
    </complexContent>
   </complexType>
   <simpleType name="DataType">

    <restriction base="xsd:string">
     <enumeration value="Journal"/>
     <enumeration value="Database"/>
     <enumeration value="Platform"/>
     <enumeration value="Book"/>
    </restriction>
   </simpleType>
   <complexType name="DateRange">
    <sequence>

     <element name="Begin" nillable="true" type="xsd:date"/>
     <element name="End" nillable="true" type="xsd:date"/>
    </sequence>
   </complexType>
   <simpleType name="Category">
    <restriction base="xsd:string">
     <enumeration value="Requests"/>
     <enumeration value="Searches"/>
     <enumeration value="Sessions"/>

     <enumeration value="Turnaways"/>
    </restriction>
   </simpleType>
   <simpleType name="MetricType">
    <restriction base="xsd:string">
     <enumeration value="ft_ps"/>
     <enumeration value="ft_pdf"/>
     <enumeration value="ft_html"/>
     <enumeration value="ft_total"/>

     <enumeration value="Toc"/>
     <enumeration value="abstract"/>
     <enumeration value="reference"/>
     <enumeration value="data_set"/>
     <enumeration value="audio"/>
     <enumeration value="video"/>
     <enumeration value="image"/>
     <enumeration value="podcast"/>
     <enumeration value="search_reg"/>

     <enumeration value="search_fed"/>
     <enumeration value="session_reg"/>
     <enumeration value="session_fed"/>
     <enumeration value="count"/>
     <enumeration value="other"/>
    </restriction>
   </simpleType>
   <complexType name="PerformanceCounter">
    <sequence>

     <element name="MetricType" nillable="true" type="tns3:MetricType"/>
     <element name="Count" nillable="true" type="xsd:nonNegativeInteger"/>
    </sequence>
   </complexType>
   <complexType name="Metric">
    <sequence>
     <element name="Period" nillable="true" type="tns3:DateRange"/>
     <element name="Category" nillable="true" type="tns3:Category"/>
     <element maxOccurs="unbounded" name="Instance" nillable="true" type="tns3:PerformanceCounter"/>

    </sequence>
    <attribute name="PubYr" type="xsd:int"/>
   </complexType>
   <complexType name="ReportItem">
    <sequence>
     <element maxOccurs="unbounded" name="ItemIdentifier" nillable="true" type="tns3:Identifier"/>
     <element name="ItemPlatform" nillable="true" type="xsd:string"/>
     <element name="ItemPublisher" nillable="true" type="xsd:string"/>
     <element name="ItemName" nillable="true" type="xsd:string"/>

     <element name="ItemDataType" nillable="true" type="tns3:DataType"/>
     <element maxOccurs="unbounded" name="ItemPerformance" nillable="true" type="tns3:Metric"/>
    </sequence>
   </complexType>
   <complexType name="Report">
    <sequence>
     <element name="Vendor" nillable="true" type="tns3:Vendor"/>
     <element maxOccurs="unbounded" name="Customer" nillable="true">
      <complexType>

       <complexContent>
        <extension base="tns3:Customer">
         <sequence>
          <element maxOccurs="unbounded" name="ReportItems" nillable="true" type="tns3:ReportItem"/>
         </sequence>
        </extension>
       </complexContent>
      </complexType>
     </element>

    </sequence>
    <attribute name="ID" type="xsd:string"/>
    <attribute name="Created" type="xsd:dateTime"/>
    <attribute name="Name" type="xsd:string"/>
    <attribute name="Title" type="xsd:string"/>
    <attribute name="Version" type="xsd:string"/>
   </complexType>
   <complexType name="Reports">
    <sequence>

     <element maxOccurs="unbounded" minOccurs="0" name="item" type="tns3:Report"/>
    </sequence>
   </complexType>
  </schema>
 </wsdl:types>

   <wsdl:message name="GetReportRequest">

      <wsdl:part element="tns2:ReportRequest" name="ReportRequest"/>

   </wsdl:message>

   <wsdl:message name="GetReportResponse">

      <wsdl:part element="tns2:ReportResponse" name="ReportResponse"/>

   </wsdl:message>

   <wsdl:portType name="SushiServiceInterface">

      <wsdl:operation name="GetReport" parameterOrder="ReportRequest">

         <wsdl:input message="impl:GetReportRequest" name="GetReportRequest"/>

         <wsdl:output message="impl:GetReportResponse" name="GetReportResponse"/>

      </wsdl:operation>

   </wsdl:portType>

   <wsdl:binding name="SushiServicePortSoapBinding" type="impl:SushiServiceInterface">

      <wsdlsoap:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>

      <wsdl:operation name="GetReport">

         <wsdlsoap:operation soapAction="SushiService:GetReportIn"/>

         <wsdl:input name="GetReportRequest">

            <wsdlsoap:body use="literal"/>

         </wsdl:input>

         <wsdl:output name="GetReportResponse">

            <wsdlsoap:body use="literal"/>

         </wsdl:output>

      </wsdl:operation>

   </wsdl:binding>

   <wsdl:service name="SushiService">

      <wsdl:port binding="impl:SushiServicePortSoapBinding" name="SushiServicePort">

         <wsdlsoap:address location="http://sushi.highwire.org/services/SushiService"/>

      </wsdl:port>

   </wsdl:service>

</wsdl:definitions>
